QEUR23_PHI2SFT10: コンテンツにCategoryを付けてSFT学習する
# ------
# プロンプト変換用の関数(Batch: For Reasoning)
def formatting_prompts_func(examples):
# ---
sys_message = "You are AI assistant who is good at multilingual support. Switch the answer lan-guage depending on the user."
#sys_message = "あなたは多言語対応が得意なAIアシスタントです。ユーザーに応じて回答する言語を切り替えます。"
# ---
output_text = []
for i in range(len(examples["instruction"])):
instruction = examples["instruction"][i]
input_text = examples["input"][i]
reasoning = examples["reasoning"][i]
response = examples["output"][i]
category = examples["category"][i]
language = examples["language"][i]
# ---
if len(input_text) >= 2:
text = f'''
<|system|>{sys_message}\n<|instruction|>{instruction}\n<|context|>{input_text}\n<|reasoning|>{reasoning}\n<|category|>{category}\n<|language|>{language}\n<|response|>{response}<|endoftext|>
'''
else:
text = f'''
<|system|>{sys_message}\n<|instruction|>{instruction}\n<|reasoning|>{reasoning}\n<|category|>{category}\n<|language|>{language}\n<|response|>{response}<|endoftext|>
'''
output_text.append(text)
return output_text
QEU:FOUNDER : “今回もPhi2というMITモデルで遊んでいます。我々の今回のBONSAIプロジェクトは「ぜ~んぶMIT」ね・・・。皆さんも、お気軽にBONSAIで遊んでください。”
(重要:MITライセンスへのリンク:これからは、ず~っと使うよ)
D先生(設定年齢65歳) : “さて、SFT学習の曲線の具合はどうなりましたか?”
D先生(設定年齢65歳) : “あれ?損失の減少が速い・・・。ひょっとして、何か(特殊なことを)しましたか?”
QEU:FOUNDER(設定年齢65歳) : “個人的にはカテゴリ追加の影響だと思うが・・・。ただし、この編集の過程でコンテンツのバグだしも少量だけしたのは否定できない。”
D先生 : “なるほと。じゃあ、次に肝心の結果をみてみましょう。もう、推論A/Bとかの能書きを言いません。ひとつのパネルに、推論の結果(A/B)を同時に貼っておきます。”
D先生(設定年齢65歳) : “あいからわず、推論はダメダメですね。まあ、学習するコンテンツが基本は変わっていないのでしようがないですが・・・。例のcategoryの属性は「open_qa」として出て来ています。”
QEU:FOUNDER : “ちょっと様子に変化がでてきたものだけをみてみましょう。”
D先生(設定年齢65歳) : “回答こそめちゃめちゃですが、回答の情報量が多くなってきています。つまり、LLMがモデルの内部を検索して回答しているということですね。さらに、例の翻訳(translation)をやってみませんか?”
QEU:FOUNDER : “ちなみに、今回の学習データの中には属性がtranslationである情報は入っていませんからね。今回のトライアルの後で入れる予定ですが・・・。”
D先生 : “あれ?翻訳機能が進化をし始めています!”
QEU:FOUNDER : “じゃあ、ついでにJ語をE語に翻訳する方向をやってみましょう。”
D先生 : “NYと来たか・・・。もちろんNYは首都ではないですけどね・・・(笑)。それにしても、少しだけにしろ進歩してきたのには驚きました。FOUNDER・・・。「LLMの学習とはBONSAIである」というのは至言ですね。”
QEU:FOUNDER : “我々のやったことと、LLM推論の品質レベルの進歩の因果関係が明確でしょ?ただし、Phi-2で我々の目標レベルに達成できるかはわかりません。”
(ユニーク群) ----- 一意性が(比較的に)ある
Open_qa、Closed_qa、Classification、Translation
(クリエイティブ群) ----- 一意性がない
Brainstorming、Creative、Question to question
D先生 : “もちろん・・・。それでも、ここでやっていることはLLMの学習すべてに共通します。今回の努力は無駄にはなりませんよ。それにしても、学習する情報を適切に分類させること(↑)が、これほどのパワーを発揮するとは思いませんでした。えーっと、あとやるべきことはC語の学習コンテンツをまだ入れていませんね。”
QEU:FOUNDER : “まだですよ・・・。ちなみに、我々はC語を使うことはないですが、J語と同じ2バイト文字(漢字)を使っている言語なので、LLMに識別させるための予備学習としてのC語コンテンツが必要なのです。”
D先生 : “その後で、本格的な翻訳(translate)学習データが必要ですよね。どれだけの情報量が必要なのかな?”
QEU:FOUNDER : “このプロジェクトは「ゆる~い。BONSAIプロジェクト」なので、最初は少しだけ入れますよ。まだまだ、本命のReasoningの改造ができる段階にはたどり着きません。ああ・・・、BONSAI道は長いなあ・・・。やりたいことがありすぎて、我々のような高齢者には体がついていっていません。今回は、ゆる~いプロジェクトです。次に進めましょう。”
>寄付のお願い(click here)<
QEU:FOUNDER : “次は、もうちょっとデータを追加しましょう。”
D先生 : “そして、うまくいけばHuggingfaceの上に、いままでのデータセットをアップしましょう。そうすれば、皆さんが自分でBONSAIを楽しめますよ。自分で改造して遊ぶことを強くお勧めします。”
~ まとめ ~
・・・ 前回のつづきです ・・・
QEU:FOUNDER : “小さなLLMにちゃんとした補間能力があらかじめ得られていれば、別に大きな言語情報を飲み込んだLLMって必要はないんじゃないか?自分(ユーザー)が必要な情報は、自分が一番知っているわけだし・・・。”
C部長 : “今回のプロジェクトの本質的なゴールは「Question to question」であり、ユーザーの質問力を強化することにあります。ユーザーが知りたくもないことを質問することがありません。”
QEU:FOUNDER : “あと、もうひとついうと、現状のRAGの技術をもう工夫すれば大きなLLM以上に(ユーザーにとっての)補間力を強化してくれると思うんです。実は、今回のBONSAIプロジェクトの構造は、我々が以前に開発した外観検査自動機(↑)と同じものなんです。さて、ちょっとBONSAIの話に戻るよ。Cさん、ねえ・・・。このデータ(↓)のカテゴリを分類してくださいな。小生の分類結果に気にしないで、自分なりにやってみてね・・・。”
C部長 : “えっ!?FOUNDERは「open_qa」に分類したんですか?ボクは、このQ&Aは「brainstorm」だと思っていました。”
QEU:FOUNDER : “いや・・・。ここで挙げられた情報で十分だと考えたら、open_qaになっちゃうんです。つまり、Categoryとは、コンテンツに(あるていど)かかわりなく、学習の質を決めるのは「コミュニケーションの受け手」であるユーザーにより任意に決められるべきなんですよ。もう一例、いくよ・・・。”
C部長 : “これはcreativeかな?それともopen_qaかな・・・。個人的には、open_qaが妥当だと思います。”
QEU:FOUNDER : “そうですね。実は、このデータセットの由来はALPACAなのですが、オリジナルにはinput欄の「私はギリシャに行きたい」という文はなかったんです。”
C部長 : “えっ!?だったら、creativeになっちゃうじゃないですか(笑)。”
QEU:FOUNDER : “creativeって、インプット情報によるアウトプットへの拘束が最小であり、出力文がまともでさえあれば、それだけでOKですからね。ですから、Creative類は言語モデルの学習としては効率がいいとはいえないと思います。小生はここでは、「LLM(大規模言語モデル)って、こんなに自由度が高いものだ!」と言いたかったのです。今流行の「大きなLLMを買って満足満足・・・」っていうわけにはいかないものなんです。本質的に・・・。”
C部長: “ただし、それはリテラシーが高い人(ユーザー)にとってはね。”
QEU:FOUNDER : “コミュニケーション(の良し悪し)は聞き手(ユーザー)が決めるんです。それが、BONSAIプロジェクトの本質です。”
コメント
コメントを投稿