地平線まで行ってくる。

記録あるいは忘備録。時には検討事項。

Unslothでphi-4をcolabでファインチューニングしてみる。

Phi-4のBugをfixした!というXを見かけたので、追っていくとUnslothの記事に行きつきました。すると、ファインチューニングすぐできるよ!というColabまであるのでお試し。Colab T4で動くとありますが、L4環境で稼働させました。

 

データセットは丁寧に人力で作成されているMalum-230日本語のデータセットを利用させていただきました。大きな変更部分は不要でしたが、一通りデーターを学習させたいので、サンプルでは30stepであったものをepochs=1としています。また、GGUF変換とpush部分をtoken直書きだったので、シークレットから引っ張ってくるようにしました。あとは、huggingfaceのidとmodel名をセットすればよいだけです。

 

ollama公式モデルだと多弁でしたが、淡泊な回答(max_new_tokens = 512時)が得られました。まとめも計算もいい感じです。理屈っぽく答えてくれるのを期待したのですが、試行錯誤してみます。ともかくも、BugFix後は14Bの中でも高い性能をより感じさせます。もう少し指示が効きやすくチューニングしたモデルが出てくるのも楽しみです。

 

Unslothを使うとファインチューニングからGGUF変換まで簡単にできました。14Bクラスだと基本性能も高いですし、目的に応じたファインチューニングで楽しめます。何しよう(笑)

 

変更例

datasetの変更

dataset = load_dataset("Manual-Dataset-Creation-Project/Malum-230", split = "train")

サンプルコードそのままで変換できるので、これだけ。

 

trainerのセットアップ変更:

  num_train_epochs = 1, # Set this for 1 full training run.
  # max_steps=30,

 

GGUFをq4_k_mで保存。

from google.colab import userdata
HF_TOKEN = userdata.get('HF_TOKEN')
my_hf = "Chottokun/phi-4-Malum-230n"

if True: model.push_to_hub_gguf(my_hf, tokenizer, quantization_method = "q4_k_m", token = HF_TOKEN)

 

出来たモデル

huggingface.co

 

チューニング後の生成結果

Q: まどか☆マギカで一番かわいいのは?

A: まどか☆マギカの一番かわいいキャラクターは、まどかです。

生成時間: 2.4853 秒

 

Q: 日本で二番目に高い山を検討して答えてください。日本語で回答してください。

A:日本で二番目に高い山は北岳です。

生成時間: 1.5917 秒

 

Q: 以下を簡単にまとめてください。

ウィキペディア(英: Wikipedia)は、世界中のボランティアの共同作業によって執筆及び作成されるフリーの多言語[6]インターネット百科事典[7]。収録されている全ての内容がオープンコンテントで商業広告が存在しないということを特徴とし、主に寄付に依って活動している非営利団体ウィキメディア財団」が所有・運営している[8][9][10][11]。「ウィキペディアWikipedia)」という名前は、ウェブブラウザ上でウェブページを編集することができる「ウィキ(Wiki)」というシステムを使用した「百科事典」(英: Encyclopedia)であることに由来する造語である[12]。設立者の1人であるラリー・サンガーにより命名された[13][14]。

A:ウィキペディアは、世界中のボランティアの共同作業によって執筆及び作成されるフリーの多言語インターネット百科事典であり、収録されている全ての内容がオープンコンテントで商業広告が存在しないということを特徴としている。主に寄付に依って活動している非営利団体ウィキメディア財団」が所有・運営している。
生成時間: 12.1830 秒

 

Q: 1+1*2+3/2+2^10を計算してください。計算が終わったら検算をしてください。最後に最終的な計算経過と結果を答えてください。

A:1+1*2+3/2+2^10=1+2+1.5+1024=1028.5
検算:1+1*2+3/2+2^10=1+2+1.5+1024=1028.5
最終的な計算経過と結果:1+1*2+3/2+2^10=1+2+1.5+1024=1028.5
生成時間: 8.5674 秒

 

Q: 両さんと部長の話を創作してください。

A: 両さんは部長に「部長、今日はどうされましたか?」と尋ねました。部長は「今日は、会社の新しいプロジェクトについて考えていました。」と答えました。
生成時間: 5.4231 秒

 

参考と感謝

huggingface.co

 

 

unsloth.ai