QEUR23_PHI2SFT12: Fieldを追加してSFT学習をする
~ このLLMの限界がはっきりしたので、「対策」しましょう! ~
D先生(設定年齢65歳) : “さて、「高齢者による、ゆるいLLMモデル構築の試み」は、ついに転機をむかえますかね。今回は、かなり大きな構造変化になりますよね。”
D先生(設定年齢65歳) : “学習用のデータセットに新しく、2つの項目(「field」、「uniqueness」)が追加されています。しかし、コラム「Field」というのは意味が分かりますが、「uniqueness」のことがよくわかりません”
- Simple : 一意性がある
- Complex : 一意性がない
QEU:FOUNDER(設定年齢65歳) : “Q&Aが「1+1=2」って、他に答えようがないでしょ?これが一意性がある状態です。もちろん、その反対の状態があって、それが「Complex」です。これを踏まえて、Reasoningをレコードごとに変更するのが今回の目的です。Reasoning変更の初回なので、非常に簡単なものだけをかえました。それでは、Reasoning改造用のプログラムをドン!!”
# 必要なライブラリのインポート
import pandas as pd
import json
# Excelファイルからデータフレームを作成
df = pd.read_excel('alpaca_multi_language_eval_review.xlsx')
len_df = len(df)
# 内容を変更する
# "NO": 31,
# "category": "open_qa",
# "field": "other",
# "input": "@realDonaldTrump",
# "instruction": "以下のTwitterハンドルにおいて、ユーザーが投稿しているコンテンツのタイプを識別しなさい。",
# "language": "Japanese",
# "output": "ユーザーの@realDonaldTrumpは主に政治コンテンツを投稿しています。",
# "reasoning": "AI assistant should answer in Japanese language.",
# "seq": "13JA",
# "uniqueness": "simple"
arr_reasoning = []
for i in range(len_df):
val_reasoning = df.loc[i,"reasoning"]
val_category = df.loc[i,"category"]
val_uniqueness = df.loc[i,"uniqueness"]
str_reasoning = val_reasoning
if val_category == 'open_qa' and val_uniqueness == 'simple':
str_reasoning = val_reasoning + " Don't output the same answer over and over again unneces-sarily."
print(i, str_reasoning)
# ---
if val_category == 'creative' and val_uniqueness == 'simple':
str_reasoning = val_reasoning + " You should create sentences with correct grammar using free ideas within the framework specified by the user."
print(i, str_reasoning)
# ---
arr_reasoning.append(str_reasoning)
# ---
print(arr_reasoning)
# データフレームをJSON形式で保存
df.loc[:,"reasoning"] = arr_reasoning
with open('alpaca_multi_language_eval.json', 'w', encoding='utf-8') as f:
json.dump(df.to_dict(orient='records'), f, ensure_ascii=False, indent=4, sort_keys=True)
QEU:FOUNDER : “ちなみに、MITライセンスについて、ちょっとだけ宣伝をしておきます。今回は、全部の公開内容がMITライセンスになります。なにしろ、肝心のPHI-2モデルがMITなので・・・。”
(重要:MITライセンスへのリンク:これからは、ず~っと使うよ)
D先生(設定年齢65歳) : “「val_category == 'open_qa' and val_uniqueness == 'simple'」の条件では、出力の繰り返しを禁止するというReasoningにしていますね。”
QEU:FOUNDER(設定年齢65歳) : “いままで、非常に簡単な推論で「(日本語出力の)繰り返し現象」が起こっていますからね。さて、今回もSFTをやってみました。学習済モデルを使って、簡単な推論を行った結果を見てみましょう。”
D先生(設定年齢65歳) : “結果としては、FOUNDERの目論見は外れましたね・・・(笑)。”
QEU:FOUNDER : “それでも、今回の処置で学習損失は大変に改善されたんです。まあ、率直に言って「これ以上(の改善は)無理」くらいに・・・。はっきりいって、このLLMの「地頭」がわるい。このLLMは日本語が使えないんでしょう。オフィシャル資料によると、E語とC語位らしいよ。ある程度使える言語は・・・。”
D先生(設定年齢65歳) : “じゃあ、C語の推論機能をみてみましょう。”
D先生(設定年齢65歳) : “簡単な問題ですが、C語の問答はある程度いけそうですね。”
QEU:FOUNDER : “じゃあ、次は翻訳を中心にみてみましょうか・・・。”
(instructionがJ語)
(instructionがE語)
D先生 : “あれ?InstructionをE語にするとうまく行っちゃうの?”
QEU:FOUNDER : “おそらく、このLLMモデルはJ語を書くのができないだけで、J語の文を読むことはかなりできるんですよ。”
D先生 : “確かに、こんな簡単なQ&Aでも、J語の作文はダメダメですからね。「From E to J」の翻訳はあきらめたほうがよさげですね。じゃあ、少しだけ得意と言われているC語の作文の場合はどうなんですか?”
(instructionがJ語)
QEU:FOUNDER : “C語の出力も難しそうですね。やっぱり、E語を中心とした問答が圧倒的に得意なモデルだと思うので、他のテストをしてみました。”
(instructionがE語)
D先生 : “う~ん・・・。E語の出力だと、InstructionがC語でもうまく回答することがでてきました。さてと・・・。今までの一連のトライアルである程度の結論がでましたね。”
QEU:FOUNDER : “J語は出力はできない。あきらめましょう。ただし、E語をInstructionとし、J語をContentの中に置けばモデルはユーザーの意図を読むことはできます。そうすれば出力はE語でいいんじゃないですか?”
D先生 : “出てきたE語の出力を翻訳すればいいだけですからね。本当は、もっとJ語が得意なモデルでやってみたいんですが・・・。”
QEU:FOUNDER : “ここはあきらめどきです、もう(我々の)資源の限界です。もし、J語を自在に使いこなすには、モデルの大きさが13bには必要になるでしょう。ちなみにですが、もののためしにmixtral-7bのファインチューニングを試してみたら、RAM容量不足のエラーが出てしまいました。今回の対策だけでも、まだまだやれることがあります。少なくともReasoningの高度化は、ほとんど手を付けていません!さあ、さらに次のステップに進めましょう。”
>寄付のお願い(click here)<
QEU:FOUNDER : “データセットの仕様が「J語入力、E語出力」になりますので、データセットは大改造ですね。”
~ まとめ ~
・・・ 久々に「汎用技術構造」の登場です ・・・
QEU:FOUNDER : “C部長、この概念図を覚えていますか?”
C部長 : “ああ、なつかしい・・・。汎用技術構造ですね。この図式(↑)って、いろんな場面でも応用がきくんです。”
QEU:FOUNDER : “そうそう・・・。小生もそれを言いたかった。外観検査自動機って、汎用技術構造(↓)になるんです。”
C部長: “確かに、意外なことに汎用技術構造になりますね。タグチメソッドって、パラメタの選択が完全手作業ですが、ディープラーニングを使えばモデルのパラメタは勾配降下法で自動的に決まるんですよね。妙に人手を掛けなくてよいところがありがたいです。じゃあ、今回のLLMにも同様に汎用技術構造を書くことができるんですかねえ・・・?”
QEU:FOUNDER : “いやあ、それはわからない。”
QEU:FOUNDER : “もし、この図(↑)の「???」が見いだせれば面白いことになるでしょうね。”
C部長 : “やってみなければわからない。これは面白そうですね。”
QEU:FOUNDER : “品質工学(タグチメソッド)なんて、実務上は推進に手間がかかって、しかも(魅力への)効果が少なすぎるんですよ。2025年にはAIの能力が人類に追いつくと言われています。もうちょっと、他のやりかたを考えないとね。一体、平成の30年になにをしてたの・・・?C部長は、別に何もする義理もないから、べつにいいんだけどね・・・(笑)。”













コメント
コメントを投稿