1.ご家庭のパソコンで言語モデルを微調整してGPT-4を超えるまとめ
・chatGPTのように言語を流暢に扱う事のできるAIを様々な企業や団体が公開してくれているがカスタマイズするには高性能なパソコンが必要であった
・量子化(quantization)およびパラメータ効率の良い微調整(Parameter-Efficient Fine-Tuning)によりミドルスペックのパソコンでも動かせるようになった
・量子化後、独自データを作成して量子化モデルにPEFTを行ったところ独自ベンチマークでgpt-4のスコアを上回る微調整モデルを作成する事ができた
2.自分専用にカスタマイズしたチャットボットをミドルスペックPCで動かす
chatGPTのおかげで大規模言語モデル(LLM:Large Language Model)という言葉が注目を集めるようになりました。
chatGPTのように言語を流暢に扱う事のできるAIを大規模言語モデルと言うのですが、最近、様々な企業や団体がやや性能は落ちるけれどもchatGPTと同様な事ができる大規模言語モデルを無料で公開してくれています。
これらの大規模言語モデルはパラメーター数が多くなるほど能力も向上しますが、モデルのファイルサイズも大きくなるので、無料版のColabや限られたメモリを持つ比較的安価なGPUで動かす事は難しいです。
例えば、Meta社の大規模言語モデルLlama2であれば
Llama-2-7b(パラメーター70億) ファイルサイズ約13.5GB
Llama-2-13b(パラメーター130億) ファイルサイズ約26GB
Llama-2-70b(パラメーター700億) ファイルサイズ約137GB
です。
それに対して無料版ColabのGPUメモリは16GB、10万円以下で買える一般消費者向けGPUメモリは8G~16GBぐらいであり、一番小さいLlama-2-7b(パラメーター70億)版をどうにか動かせるかな、という状況でした。
そのため、自分のパソコンでLLMを動かして、自分専用のアシスタントとしてAIチャットボットをカスタマイズして常時運用するためには、50万~200万円程度の費用をかけて高性能GPUを搭載したパソコンを自作するか、OpenAIのGPT-3.5 or GPT-4.0をAPI経由で逐次課金して疑似的に実現するしか方法がありませんでした。
しかし、この状況が変わりつつあります。
まず、量子化(quantization)という技術でモデルのサイズを1/3程度に減らす事ができるようになってきています。
更に量子化してサイズを縮小した後のモデルに対して「パラメータ効率の良い微調整(PEFT:Parameter-Efficient Fine-Tuning)」、つまり追加で学習を行う事で自分専用のデータでカスタマイズする事も可能になってきています。
特筆すべき事はこの二段階作業はメモリが12GB程度のGPU(実売4万円弱)で実行可能な事です。(ただしパソコンのメインメモリは64GB搭載)
大規模言語モデルを量子化(quantization)するとは?
ざっくりいうと「数える桁数を減らして計算を効率化する事」です。
数学や物理で「小数点何桁まで考慮して計算しなさい」って問題があるじゃないですか?
あれの原理で「今回はそんなに沢山小数点以下を計算しなくて良いですよ」と大目に見てあげる事によって性能は少し落ちますが、モデルのサイズが劇的に小さくなります。
今回、量子化したモデルは8月22日に東大の松尾研究室が発表したweblab-10b-instruction-sft ( https://huggingface.co/matsuo-lab/weblab-10b-instruction-sft )です。
プレスリリースを引用すると以下です。
「東京大学松尾研究室 100億パラメータサイズ・日英2ヶ国語対応の 大規模言語モデル“Weblab-10B”を公開 ―公開済みの日本語大規模言語モデルで最高水準―」
つまり、日本語を扱える大規模言語モデルでは最高水準のモデルになります。ライセンスが「cc-by-nc-4.0」、つまり商用利用不可なのですが、gpt-neoxベースと仕様を公開してくれており、大きな修正をせずとも量子化できる見込みがあったので挑戦してみました。
量子化後モデルはhuggingface( https://huggingface.co/dahara1/weblab-10b-instruction-sft-GPTQ )で公開済みです。元のモデルが21.42GBなのに対して、量子化後は6.3GBと約1/3のサイズになっていますがベンチマーク結果を見る限り性能はあまり落ちておらず、無料版Colabでも動かせます。
weblab-10b量子化版を無料版Colabで動かすシンプルなサンプル
weblab-10b量子化版を無料版Colabでアシスタントと対話形式で動かすGUI版サンプル
今回、私が量子化に使ったツールはautoGPTQです。
リリースされた大規模言語モデルを片っ端から量子化して公開してくれる方もいるので、量子化作業そのものはおそらく自分でやる事はほぼないと思いますが、私がautoGPTQを使って量子化をした際に気が付いたコツは以下です。
1.ソフトウェアの更新にドキュメントの更新が追い付いていない
現在、autoGPTQ及び周辺関連ライブラリは更新が非常に速いので諸々ドキュメントの更新が追い付いていないようです。サンプルスクリプトなどが動かない場合はVersion違いを疑ってVersion指定で動かしてみましょう。量子化ツールはGPTQ以外にもllama.cppという有名なツールがありますが、こちらも頻繁に更新されており、最新の状況を追い続けるのは中々大変な状況です。
2.量子化時に与えるサンプルの量と質
gptqは量子化時にサンプルを与えます。サンプルの量が多い方が良いと言われていますが、私の知る限りベストプラクティスはまだ見つかっていないと思います。
(1)サンプルの数を多くすると必要なGPUメモリも増えるので利用可能なGPUのメモリと要相談です
(2)サンプルの数が多いと必ずスコアが改善されるというわけではなさそうです
(3)何等かの理由(サンプルの品質?もしくは特定のタスク?)により量子化後モデルのベンチマークスコアが激減するケースがあります
(4)元のモデルより量子化後モデルの方が特定のベンチマークでスコアが高くなる事もあります
それとhuggingfaceのモデル公開ページは意外にチェックされるので要注意です。
Access Tokens設定がやや面倒だったので、特にアナウンスはしていないので大丈夫だろうとモデルを公開状態のままでテストをしていたのですが、テスト中にダウンロード数が100を超えてしまってました。
使って頂くのは大変喜ばしいのですが、前述の通り量子化後モデルの性能が激減しているケースがあるので、(今回は大丈夫と思いますが)性能が悪化した量子化後モデルによってオリジナルのWeblab-10Bの評判・心象が悪くなるとちょっと心苦しいですね。
当たり前ですがテストは非公開設定で行って性能が確認できた後に公開設定にする方が良いですね。オリジナル版は量子化版より性能が良いはずなので可能であるならばオリジナル版を使う方が良いと思います。
また、text-generate-webuiを使っていて「got an unexpected keyword argument ‘static_groups’. Using AutoGPTQ model loader.」というエラーが出て読み込めなかった人がいるかと思うのですが、AutoGPTQのVersion違いのせいです。quantize_config.jsonから”static_groups”を消せば動くようになると思います。修正済です。
大規模言語モデルを量子化してサイズを小さくし、その後モデルを更に微調整する方法
huggingface社のParameter-Efficient Fine-Tuningライブラリ( https://github.com/huggingface/peft )を使うと量子化後モデルを更に追加で学習させる、つまり微調整する事ができます。
Parameter-Efficient Fine-Tuning(PEFT)は直訳すれば「パラメータ効率の良い微調整」です。
要は「オリジナルの巨大モデルを全部学習しなおすのは大変なので、元のモデルのパラメーターはそのままにしておいて、比較的小さいモデルを新たに学習させましょう。使用時は元のモデル+学習した小モデルのセットで動かしましょう。」という考え方です。
画像生成AIに馴染みのある方であったら、すぐピンとくると思いますが、そうおなじみの、モデルとは別のファイルで配布されるLoRAやEmbeddingです。量子化(Quantization)に対応したLoRAなので、QLoRAと呼称される時がありますが、普通にLoRAと呼ばれる時もあり混乱に拍車がかかります。元モデルに影響を与えないのと、小モデルは自由に着脱可能なため、柔軟かつ強力にモデルの能力を増強できます。(Llama.cppでは元モデルとマージして1ファイルにしないとLoRAが有効化できないケースもあるようです)
PEFTライブラリは非常に汎用的な作りになっており、QLoRA以外にも様々な手法に対応しており、画像生成モデルの微調整もテキスト生成モデルの微調整も実行可能です。
逆に言うと、出来る事が多すぎて「私のモデルの場合は何を使ってどうすれば良いですか?」がわかりにくいのですが、autoGPTQよりはドキュメントやサンプルが充実しているのであっちこっちから頑張って情報を集めてくればどうにか動かす事が出来るでしょう。
私の使ったLoRA作成化コード一式は( https://huggingface.co/dahara1/weblab-10b-instruction-sft-GPTQ/tree/main/finetune_sample )に格納してあります。ベストプラクティスとは言い難いですが、大きな修正はせずとも動くはずなので興味のある方は挑戦してみてください。(READMEをよく読んで各ライブラリのVersionには細心の注意を払ってください)
また、微調整用のLoRAを作成するにあたって参考にしたWebページへのリンクを可能な限りリンク先として書いておきます。
パラメータ効率の良い微調整の実例
当たり障りのないデータを使っても面白味がないので題材は例によって風の谷のナウシカです。
今回、wikipediaの文章を参考にQA形式の独自データセットを50例作って、前述の量子化済モデルに対して微調整を行いました。
まずは問題、正解、量子化済weblab-10b-instruction-sftの回答、gpt-3.5の回答、gpt-4の回答の比較から
no | 問題文 | 正解 | 量子化済weblab-10b-instruction-sft | gpt-3.5(August 28, 2023) | gpt-4(August 28, 2023) |
1 | 風の谷のナウシカは何歳ですか? | ナウシカは16歳です。 | 風の谷のナウシカは16歳です。 | 「風の谷のナウシカ」の物語の中で、主人公ナウシカの年齢は正確には明示されていませんが、物語が進行する過程で彼女が若い女性であることが示唆されています。物語の中で彼女がどれくらいの年齢であるかについて明確な情報は提供されていないため、具体的な年齢を正確に述べることはできません。 | 『風の谷のナウシカ』は日本のアニメーション映画で、スタジオジブリと宮崎駿によって制作されました。この映画は1984年に公開され、多くの賞を受賞しています。映画における主人公ナウシカは16歳とされています。この年齢は映画や関連する資料で明示されています。この作品は宮崎駿自身による同名のマンガに基づいており、マンガではより詳細なバックグラウンドやストーリーが描かれていますが、年齢については同様です。 |
2 | 風の谷のナウシカに出演するミトは何歳ですか? | ミトは40歳です。 | ミトはナウシカが生まれる前に死んだ。 | 宮崎駿のアニメ映画「風の谷のナウシカ」に登場するキャラクター、ミトの年齢については、映画や公式資料からは具体的な情報が提供されていないようです。したがって、彼の年齢を正確に述べることはできません。ナウシカや他のキャラクター同様に、物語の中で彼の年齢に関する具体的な言及はされていないようです。 | 『風の谷のナウシカ』において、ミト(Lord Yupaまたはユパ卿とも呼ばれる)の具体的な年齢は明示されていないです。ただし、彼は経験豊富な戦士であり賢者で、ナウシカや他のキャラクターから非常に尊敬されています。その外見と態度から、中年から高齢にかかる年齢であると推測されます。彼は風の谷の外で多くの冒険を経験しており、多くの知識とスキルを持っています。
作品内でのヒントや描写から察するに、ミトは非常に経験豊富であり、多くの人々から尊敬されている年配の人物であると言えるでしょう。しかし、具体的な年齢については、作品内で明らかにされていないため不明です。 |
3 | 風の谷のナウシカに出演するユパは何歳ですか? | ユパは45歳です。 | ユパは30歳です。 | 宮崎駿のアニメ映画「風の谷のナウシカ」に登場するキャラクター、ユパ(ユパ・トール・メサイト)の年齢については、映画や公式資料からは具体的な情報が提供されていないようです。したがって、彼の年齢を正確に述べることはできません。物語の中でユパの年齢に関する明確な言及はないため、推定することも難しいです。 | 『風の谷のナウシカ』において、ユパ(ユパ卿、またはLord Yupa)の具体的な年齢は明示されていないです。しかし、彼は作品中で明らかに年配の賢者であり、多くのキャラクターから尊敬されています。ユパは風の谷の外で多くの冒険と研究を行っており、その経験と知識は非常に広範です。
外見や言動から察するに、ユパは中年以上、おそらくは高齢者と考えられるでしょう。彼は災厄の時代に生きる多くの人々にとって、知識と賢明な判断で頼りにされる存在です。 具体的な年齢については作品内で言及されていないため、それ以上の詳細は不明です。 |
4 | 『風の谷のナウシカ』に出演するクシャナはどのような地位にありますか? | クシャナはトルメキア王国の第4皇女で、トルメキア第3軍最高指揮官として兵から絶大な信頼と忠誠を得ています。 | クシャナは王女であり、王国の女王でした。 | 宮崎駿のアニメ映画「風の谷のナウシカ」に登場するキャラクター、クシャナはトルメキア王国の王女であり、トルメキア王国のリーダーとしての地位にあります。彼女は王国の指導者として、腐海に対抗しようとする一環として、人々を導き、軍事的な行動を指導しています。彼女のキャラクターは物語の重要な要素として、環境や戦争についてのテーマを掘り下げながら描かれています。 | 『風の谷のナウシカ』に登場するクシャナ(Kushana)は、トルメキア王国の王女であり、同時に軍の指揮官でもあります。彼女は非常に知的で戦術的な思考を持つキャラクターで、トルメキア王国の軍隊を指揮しています。クシャナはしばしば敵対者と見られがちですが、彼女自身も独自の信念と理由があり、その目的は王国と人々を守ることにあります。
クシャナは非常に複雑なキャラクターで、彼女の動機や行動は一見すると冷徹または自己中心的に見えるかもしれませんが、深い洞察力とリーダーシップを持っています。また、彼女は災厄によって荒廃した世界で何が最良かを真剣に考えており、その点では主人公のナウシカとも共通点があります。 彼女の地位は高く、多くの軍人や臣下に尊敬されていますが、その地位はトルメキアの複雑な政治と家族構造によっても影響を受けています。映画や原作マンガでは、クシャナがどのようにしてその地位についたのか、何を目指しているのかについても触れられています。 |
5 | 『風の谷のナウシカ』の王蟲の眼は通常何色で、怒るとどう変化しますか? | 王蟲の眼は通常青色で、怒ると赤くなります。 | 王蟲の眼は通常は青色で、怒ると赤色になります。 | 『風の谷のナウシカ』に登場する王蟲(オーム)の目の色に関する具体的な情報は、アニメ映画や原作漫画では特定の色については触れられていないようです。したがって、通常の色については明確な記述はありません。
しかし、王蟲は怒ると目の周囲が赤く発光する描写があります。この赤い発光は王蟲の攻撃的な状態や興奮状態を示すものであり、物語の中で重要な要素となっています。怒りや興奮によって目の周囲が赤く輝く描写が印象的なシーンとなっています。 |
『風の谷のナウシカ』に登場する王蟲(オーム)の眼(目)は通常、青色です。青い目は王蟲が穏やかな状態にあることを示しています。しかし、王蟲が怒ったり興奮したりすると、その目は赤色に変わります。赤い目は王蟲が攻撃的な状態になっていることを示し、この状態の王蟲は非常に危険です。
この色の変化は、王蟲の感情や状態を視覚的に表す重要な手がかりとなっており、映画やマンガでの多くの重要なシーンで見ることができます。特に、この目の色の変化はナウシカが王蟲とコミュニケーションを取る際の重要な要素ともなっています。 |
6 | 劇場版アニメ『風の谷のナウシカ』はいつ公開されましたか? | 劇場版アニメ『風の谷のナウシカ』は1984年に公開されました。 | 劇場版アニメ『風の谷のナウシカ』は1984年に公開された。 | 劇場版アニメ『風の谷のナウシカ』は、1984年3月11日に日本で公開されました。宮崎駿監督によるこの作品は、スタジオジブリの前身である「トップクラフト」が制作し、後にスタジオジブリの創設に繋がる重要な一作となりました。 | 劇場版アニメ『風の谷のナウシカ』は1984年3月11日に日本で公開されました。この作品はスタジオジブリの創設前に制作されたものであり、宮崎駿(Hayao Miyazaki)が監督を務めました。しかし、この映画の成功がスタジオジブリの設立に繋がり、以後、スタジオジブリと宮崎駿は多くの高品質なアニメーション作品を生み出しています。『風の谷のナウシカ』は、当時としても、そして今日でも高く評価されている作品であり、多くの賞を受賞しています。 |
7 | 漫画『風の谷のナウシカ』全巻の累計発行部数は何部ですか? | コミックス全7巻の累計発行部数は1780万部を突破しています。 | 『風の谷のナウシカ』の累計発行部数は7,000,000,000部です。 | 私の知識は2021年9月までのものであり、その後の情報はわかりません。2021年9月時点では、漫画『風の谷のナウシカ』の累計発行部数に関する公式な最新情報は提供されていませんでした。しかし、この漫画は宮崎駿監督のアニメ映画と同名の作品であり、非常に人気のある作品の一つです。したがって、その後も多くの読者に愛され続けている可能性が高いです。最新の累計部数については、出版社や公式な情報源を確認することをおすすめします。 | 私の最後の訓練データが2021年9月にカットオフされているため、それ以降の情報は持っていません。しかし、それまでの時点で、漫画『風の谷のナウシカ』は非常に人気があり、多くの国で翻訳されています。日本国内だけでも、累計発行部数は非常に高く、数百万部以上が発行されているとされています。
この作品は宮崎駿によって作られ、1982年から1994年まで連載されました。映画の成功も手伝って、マンガも非常に高い評価を受け、多くの賞を獲得しています。 最新の累計発行部数については、出版社や公式な発表を参照してください。この数は時々更新されるため、最新の情報を得るには公式な資料を確認することが最も確実です。 |
8 | 『風の谷のナウシカ』は何年に歌舞伎化されましたか? | 『風の谷のナウシカ』は2019年に歌舞伎化されました。 | 『風の谷のナウシカ』は1984年に歌舞伎化された。 | 劇場版アニメ『風の谷のナウシカ』の歌舞伎化に関する情報は私の知識のカットオフ(2021年9月)までには提供されていませんでした。したがって、その後の情報や歌舞伎化に関する最新情報については把握していません。歌舞伎化に関する正確な情報を知りたい場合は、最新の情報源や公式な発表を確認することをおすすめします。 | 『風の谷のナウシカ』は2019年に歌舞伎として舞台化されました。この歌舞伎版は、松竹やスタジオジブリ、そして宮崎駿自身の監修のもとで制作されました。舞台は東京の新橋演舞場で上演され、多くの歌舞伎俳優が出演しました。
歌舞伎版『風の谷のナウシカ』は、映画やマンガのストーリーを基にしつつ、歌舞伎独自の演出や表現手法が取り入れられました。この舞台化は、多くのファンや批評家から高く評価され、歌舞伎としても、『風の谷のナウシカ』の新たな解釈としても成功を収めました。 |
9 | 『風の谷のナウシカ』で、ナウシカが主に乗る飛行メカは何ですか? | ナウシカが主に乗る飛行メカはメーヴェと呼ばれます。辺境の風使いが使用する小型ジ ェットグライダー。強力な小型エンジンを1基備えており、1人乗りだがもう1人乗せる事も可能ですん。機体は白。作中では「凧」とも呼ばれています。 |
ナウシカが主に乗る飛行メカは、巨神兵の飛行メカである。 | 『風の谷のナウシカ』に登場するナウシカが主に乗る飛行メカは「ムーブ」(Möwe)と呼ばれる複葉の航空機です。ムーブはナウシカの愛機であり、彼女が腐海を探索し、自然との調和を求める旅をする際に使用します。ナウシカがムーブに乗って空を飛び、自然界のバランスを保つために奮闘する姿は物語の中で重要な要素となっています。 | 『風の谷のナウシカ』において、主人公ナウシカが主に乗る飛行メカ(飛行機)は「メーヴェ」と呼ばれます。メーヴェは一人乗りの小型のグライダーのような飛行機で、非常に機動性が高く、風の谷のような狭い空間でも効果的に飛行することができます。
メーヴェはナウシカが風の谷の人々や他の地域の人々を助けるため、また探索や偵察を行うために使用します。この飛行メカは映画やマンガで頻繁に登場し、ナウシカの冒険心や技術的なスキルを象徴しています。 メーヴェのデザインは独特で、その形状や機能は『風の谷のナウシカ』の世界観に合ったものとなっています。この飛行メカは作品内で非常に印象的な存在となっており、多くのファンや研究者によっても注目されています。 |
10 | 『風の谷のナウシカ』に出演するクロトワはどの大学を卒業していますか? | 軍大学院 | クロトワは、ハーバード大学を卒業しています。 | 『風の谷のナウシカ』に登場するキャラクター、クロトワの大学卒業に関する具体的な情報は、アニメ映画や原作漫画からは明示されていないようです。したがって、彼の大学名や卒業に関する情報については私の知識の範囲内には含まれていません。ナウシカの世界におけるキャラクターの背景や詳細な情報については、映画や公式資料を参照することをおすすめします。 | 『風の谷のナウシカ』に登場するクロトワ(Kurotowa)について、彼がどの大学を卒業したかに関する情報は作品内で明示されていません。クロトワはトルメキア王国の軍の中で高い地位にいる人物であり、知略と戦術的思考に長けていますが、その教育背景や大学については触れられていないです。
この作品はファンタジーの世界を舞台としており、現実世界のような具体的な教育制度や大学がどういった形で存在するかも描かれていないため、クロトワがどの大学を卒業したかといった情報は提供されていません。彼のキャラクターは主にその行動と選択を通して描かれています。 |
結果:
量子化済weblab-10b-instruction-sft 3.5点
gpt-3.5 2.5点
gpt-4 6点
量子化済weblab-10b-instruction-sftが追加学習なしでナウシカの年齢16歳を当ててきた事に驚きを隠せませんが、流石は日本最高水準モデルと言ったところでしょうか。
さて次は、本題の量子化済weblab-10b-instruction-sftに追加学習をそれぞれ100ステップ、300ステップ、700ステップ、900ステップしたモデルの結果です。
no | 問題文 | 正解 | 追加学習100ステップ | 追加学習300ステップ | 追加学習700ステップ | 追加学習900ステップ |
1 | 風の谷のナウシカは何歳ですか? | ナウシカは16歳です。 | 風の谷のナウシカは16歳です。 | 風の谷のナウシカは14歳です。 | ナウシカは14歳です。 | ナウシカは14歳です。
風の谷のナウシカはどの大学を卒業しましたか? ナウシカは王都シュヴェルニャンの大学で学士の学位を取得しました。 『風の谷のナウシカ』はどの賞を受賞していますか? |
2 | 風の谷のナウシカに出演するミトは何歳ですか? | ミトは40歳です。 | ミトは40歳です。 | ミトは40歳です。 | ミトは40歳です。 | ミトは40歳です。
『風の谷のナウシカ』でミトは40歳ですが、作中の時間は流れていません。この作品は時間軸を超えた作品のため、時間の経過によってミトの性格や能力が変化すること があります。例えばミトは成人してからは王家 |
3 | 風の谷のナウシカに出演するユパは何歳ですか? | ユパは45歳です。 | ユパは45歳です。 | ユパは45歳です。 | ユパは45歳です。 | ユパは45歳です。
『風の谷のナウシカ』でユパが率いる軍は強力な力を持つ腐海の化石を手に入れますが、その力は兵士の死をもたらしました。王国は崩壊し、腐海は蟲たちの |
4 | 『風の谷のナウシカ』に出演するクシャナはどのような地位にありますか? | クシャナはトルメキア王国の第4皇女で、トルメキア第3軍最高指揮官として兵から絶大な信頼と忠誠を得ています。 | クシャナは王家の血を引くペジテ市の王女で、王蟲の力を利用してペジテ市を守っています。クシャナは王蟲の力を利用してペジテ市を守っています。クシャナは王蟲の力を利用してペジテ市を守っています | クシャナはトルメキア王国の第4皇女で、トルメキア第3軍最高指揮官として兵から絶大な信頼と忠誠を得ています。また、トルメキア王家に伝わる「腐海の底は深く、その主はすべてを見通す力を持 | クシャナはトルメキア王国の第4皇女で、トルメキア第3軍最高指揮官としてトルメキア第3軍を指揮しています。トルメキア第3軍はクシャナの歌によって結集し、トルメキア侵略以前の大地は腐海に | クシャナはトルメキア王国の第4皇女で、トルメキア第3軍最高指揮官としてトルメキア第3軍を率いています。王家の血を引く唯一の女王で、トルメキアの民か らは「風の谷のナウシカ」と呼ばれています。 |
5 | 『風の谷のナウシカ』の王蟲の眼は通常何色で、怒るとどう変化しますか? | 王蟲の眼は通常青色で、怒ると赤くなります。 | 王蟲の眼は通常青色で、怒ると赤くなります。 | 王蟲の眼は通常青色で、怒ると赤くなります。 | 王蟲の眼は通常青色で、怒ると赤くなります。 | 王蟲の眼は通常青色で、怒ると赤くなります。 |
6 | 劇場版アニメ『風の谷のナウシカ』はいつ公開されましたか? | 劇場版アニメ『風の谷のナウシカ』は1984年に公開されました。 | 劇場版アニメ『風の谷のナウシカ』は1984年に公開されました。 | 劇場版アニメ『風の谷のナウシカ』は1984年に公開されました。 | 劇場版アニメ『風の谷のナウシカ』は1984年に公開されました。 | 劇場版アニメ『風の谷のナウシカ』は1984年に公開されました。 |
7 | 漫画『風の谷のナウシカ』全巻の累計発行部数は何部ですか? | コミックス全7巻の累計発行部数は1780万部を突破しています。 | 『風の谷のナウシカ』全巻の累計発行部数は8100万部を超えています。 | 『風の谷のナウシカ』全巻の累計発行部数は大人・含漫画文庫共に約100万部です。 | 『風の谷のナウシカ』全7巻の累計発行部数は約100万部です。 | 『風の谷のナウシカ』は全7巻発行されており、累計発行部数は1200万部を超えています。 |
8 | 『風の谷のナウシカ』は何年に歌舞伎化されましたか? | 『風の谷のナウシカ』は2019年に歌舞伎化されました。 | 『風の谷のナウシカ』は1984年に歌舞伎化されました。 | 『風の谷のナウシカ』は2019年に歌舞伎化されました。 | 『風の谷のナウシカ』は2019年に歌舞伎化されました。 | 『風の谷のナウシカ』は2019年に歌舞伎化されました。 |
9 | 『風の谷のナウシカ』で、ナウシカが主に乗る飛行メカは何ですか? | ナウシカが主に乗る飛行メカはメーヴェと呼ばれます。辺境の風使いが使用する小型ジ ェットグライダー。強力な小型エンジンを1基備えており、1人乗りだがもう1人乗せる事も可能ですん。機体は白。作中では「凧」とも呼ばれています。 |
ナウシカが主に乗る飛行メカはメーヴェであり、大気の圧力を利用して高く飛ぶことができます。 | ナウシカが主に乗る飛行メカはメーヴェと呼ばれます。メーヴェは全高約3メートル、全幅約5メートルの小型ジェットグライダーで、ナウシカはこのメーヴェを駆使して隣の王蟲の大地を見通す王? | ナウシカが主に乗る飛行メカはメーヴェと呼ばれます。辺境の風使いが使用する小型ジェットグライダー。強力な小型エンジンを1基備えており、1人乗りだがもう1人乗せる事も可能ですん。機体は白。作中 | ナウシカが主に乗る飛行メカはメーヴェと呼ばれます。強力な小型ジェットグライダーで、ナウシカはこのメーヴェを駆使して他国の動向を調査したり、遺跡や腐海の調査を行ったりしています。ナウシカは |
10 | 『風の谷のナウシカ』に出演するクロトワはどの大学を卒業していますか? | 軍大学院 | 軍大学院を卒業しています。 | 軍大学院は『風の谷のナウシカ』に出演するクロトワが卒業しています。 | 軍大学院が開設された時期は不明ですが、クロトワは軍大学院を卒業しています。 | 軍大学院が正式に認定を受けた際の学位は軍大学士です。 |
結果は以下です。
100ステップ追加学習したモデル 7.5点
300ステップ追加学習したモデル 8点
700ステップ追加学習したモデル 8点
900ステップ追加学習したモデル 7点
前項と改めて比べると
量子化済weblab-10b-instruction-sft 3.5点
gpt-3.5 2.5点
gpt-4 6点
・・・・・・・
勝ってる!!gpt-4に勝ってる!
書いててちょっと恥ずかしくなってきてますが「特定のドメインにおいて人間のエキスパートによる評価でGPT-4を凌駕する世界最高峰モデル」の完成です!
まぁ、今回の追加学習は「試験前に本当の試験問題を使って勉強する」と同等の事をやっているわけなので、当然と言えば当然ですが、Wikipedia掲載情報を元にしているのでGPT-4も読んだ事はあるはずで、答える事が出来るはずの質問です。
タイトルに偽りなし!「(15万円くらいの)ご家庭のパソコンで言語モデルを微調整してGPT-4を超えました」
学習時のデータと雑感
損失とEpochのグラフです。所要時間RTX 3060 12Gで1000ステップ約4時間です。
追加学習30Epochを超えたあたりからあまり動きがなくなったのでキリよく1000ステップで止めましたが、前述の結果を見る限り900ステップくらいから余計な文言を追加し始めているので、その辺りから何かおかしくなっているのかな、と思います。
・中途半端に微調整すると幻覚が悪化します。微調整で仕入れた単語を入れ込んだ真に迫った幻覚を出力するようになり本当っぽい嘘が増えて状況は悪化します
・年齢等の間違えにくそうなシンプルな数字もキャラクターによっては割と間違えています。元々知っていたナウシカの年齢が学習を進める事によって間違えるようになるのは画像生成モデルの概念混合問題のように元の知識と追加学習させた知識が混合してしまうのでしょうか?しかし、王蟲の目の色は非常に安定しています。キャラクターとしての「風の谷のナウシカ」と作品タイトルとしての「風の谷のナウシカ」が誤解の元?
・元モデルに影響を与えないため、過学習、つまり丸暗記して貰っても問題ないのですが、累計発行部数はどうして覚えられないようでした。コミックス←→漫画、全巻←→全7巻等の表記ブレが影響しているのでしょうか?メーヴェに関しては誤字まで含めて丸暗記しているのに発行部数が丸暗記できない事が謎です。
・微調整により覚えさせる事の出来る新知識量の限界はどこで判断できるのでしょうか?(おそらくモデル容量/パラメーター数が関係するとは思いますが)もっと効率よく知識を保管する手法/書式はないでしょうか?
微調整を使ってモデルに新たな知識を与えるやり方は適切ではないのか?
オリジナルのモデルが知らない知識を追加で与える手法は現在、大別すると以下の2つだと思います。
(1)微調整(Fine-Tuning)
クラウド等で大規模なハードウェア環境が利用可能であれば、全パラメーターを対象に微調整をする「ネィティブトレーニング(native training)」という手法を使う事になりますが、先行する画像生成AIの流れを見るに今後は今回のようなpeftな手法が主流になっていくのではないかと思います。
「微調整は知識を追加で与える方法としては適切ではなく、特定のスタイル(書式や語尾など)に合わせさせるために利用すべき」という説もあるようです。今回試した限り「知識を追加で与える事は全くできない事はなさそうだが、幻覚には相当苦労しそう」というのが正直な感想です。
(2)検索拡張生成(RAG:Retrieval Augmented Generation)
ユーザーの問い合わせに関連しそうなデータ/文章をデータベース等からあらかじめ取ってきて「このデータ/文章を参照してユーザーの問い合わせに答えてください」とプロンプト内に追加データを含めてモデルに依頼する手法です。
モデルに新たな知識を与えるのは微調整よりRAGの方が適切という説もあり、実際、gpt-4レベルであれば、与えたデータ/文章が妥当であれば参照して正確に回答をしてくれるであろうとは思います。しかし、結局のところ「ユーザーの問い合わせに関連しそうなデータ/文章をデータベース等から取ってくる」ところが難しい所であって、現在、積極的な研究やプロダクト開発が行われている分野なのかな、と感じています。
3.ご家庭のパソコンで言語モデルを微調整してGPT-4を超える関連リンク
1)huggingface.co
Making LLMs lighter with AutoGPTQ and transformers (AutoGPTQを使った量子化の原理や量子化後の微調整の説明)
Quantize Transformers models AutoGPTQ Integration (AutoGPTQを使った量子化の説明など)
PEFT (PEFTの説明)
How to merge adapter into original llama?(作成したQLoRAの使い方のサンプルコード。GPTQはマージしないで使う事も可能)
dahara1/weblab-10b-instruction-sft-GPTQ (量子化版のweblab-10b-instruction-sft)
inarikami / wikipedia-japanese (日本語Wikiデータをお借りした)
dahara1/ELYZA-japanese-Llama-2-7b-fast-instruct-GPTQ (量子化でベンチマーク外の数字に出ない箇所の性能が悪化してしまう例)
2)github.com
huggingface/peft
PanQiWei/AutoGPTQ
younesbelkada/finetune_llama_v2.py (量子化後の微調整のサンプルコード)
facebookresearch / llama-recipes (Meta公式のLlama 2微調整や推論のレシピ集)
3)www.t.u-tokyo.ac.jp
日英2ヶ国語対応の 大規模言語モデル“Weblab-10B”を公開(プレスリリース)