Team 甲(きのえ) Phase1 が始まった
はじめに
- まずLLM開発を行う今回のプロジェクトでは、以下のようなスケジュールで進捗しています。
- Phase0は2024/3/4~2024/4/21の期間でLLM開発に必要な準備を行う
- Phase1は2024/4/22~2024/5/26の期間で10B相当のLLMを開発
- Phase2は2024/6/1~2024/8/8の期間でPhase1で上位評価のチームが50B相当のLLMを開発
- この記事を書いている現時点では既にGWも明けてPhase1も既に中盤ですが、怒涛の前半戦だったので何回かの記事に分けて記載させて頂きます。
- なおPhase0については、前回の振り返りで触れさせて頂きましたので、そちらも合わせてご確認いただけると幸いです。
Phase1の開始
もう少し前提となる話をさせていただくとPhase0の期間中はプレ環境と呼ばれる環境でスペックはVRAM24GB x 8GPU x 3ノードという環境が松尾研の方から提供されていました。また、Phase1からは本番環境と呼ばれる環境でH100(VRAM80GB) x 8GPU x 3ノードという環境になりました。
そのため、プレ環境のPhase0は主に学習データを揃えるという所にフォーカスが当たり、本番環境のPhase1からはモデルとか学習にフォーカスが当たるというのが、LLM開発の流れと照らし合わせても感覚的に理解しやすいかと思います。
そんなPhase1の開始タイミングでの話題です。
モデルが乗らない!
はい、まず結論から言うとモデルがVRAM上に乗らないのです。モデルとしてMixtral7Bx8は、それなりに大きいとしてもMistral7BやQwen Moe(サイズ的には14B)も公表されているパラメータサイズではCUDA out of memoryが出ました。
個人的には、プレ環境のVRAM24GBではメモリ不足は当然としてもVRAM80GBなら十分だと思っていました。そうしないと世間でバンバン出ている7Bのモデルってどうしているのって感じになるからです。
当初の見積もりでは初日にモデルを選定して学習をさせようという段取りだったのが、脆くも崩れ去った瞬間でもありました。
パラメータの調整
パラメータの調整については、私の知識の範囲外なので具体的に記載することができないのですが、チーム一丸となって調整を行いました。バッチサイズやレイヤー数、その他諸々・・・そして一つ変えては実行の繰り返し・・・根気のいる作業です。
まだ、実行してから即結果が分かるのであれば救いもあったのかもしれませんが、実行してから結果が出るまでの時間が、余計に焦りを作り時間をどんどん削っていきます。
気が付いたらPhase1が開始してから1週間が過ぎていました。
モデルの決着
現在Team 甲ではMistral9Bのモデルで学習を行っています。結果的にはVRAM上に乗ったという事になりますが、どのような調整をしたかというのは後日改めて確認をして記事にしたいと思います。(特に担当した方々へインタビューもして、どういった所がポイントだったのか等聞きたいと思っています。)
また最終的にはソースコードは公開されるとのことで、そこでも苦労が滲み出るソースコードを確認できるでしょう。
いずれにしても開始早々から苦労しましたが、この程度の事はまだまだ序の口でした・・・。
さらなるトラブルは、次の記事をお待ちください。
東京大学 松尾・岩澤研究室が運営する松尾研LLMコミュニティのLLM開発プロジェクト[GENIAC] の開発記録、情報発信になります。 各種リンクはこちら linktr.ee/matsuolab_community
Discussion