見出し画像

大規模言語モデルを作ります(10-50b, 2024年3-8月頃)


要点

  • 大規模言語モデル(10-50b)の開発に関わることになりました。

  • オープンソースの短期集中プロジェクト(24年3-8月)です。

  • データセットやコードなどを随時オープンに開発し、共有する予定です。

こちらのプロジェクトのチームリーダの一人をつとめます。下記URLに記載のSlackから、誰でも参加できます(オープンな部分の開発、助言、コメント、情報収集など)。

プロジェクトのslackにも誰でも参加できます。見るだけの参加もOKです。
(参加方法はページの末尾を参照)

24/3/4追記
オープンな日本語の指示データセットを作っています。
誰でも投稿・利用できるフォームと、作り方のコツなどが記されています。

経緯: どうしてそうなったのか? (読み飛ばしOK)

(細かな話なので、読み飛ばしても支障のないセクションです)

筆者の本業は一応、化学者(大学教員 in 2024)なのですが、ITや機械学習が好きなので、趣味や研究で取り組んできました (専門家向けリンク: ResearchMap, GoogleScholar)。


Xも去年から始めました!

大規模言語モデルも23年の3月頃から触り始め、Llama2のファインチューニング記事などを(おそらく日本最速?で)書いたりしました。

ファインチューニングの記事の例

東大 松尾研が開催した大規模言語モデルのサマースクール2023にも参加させていただき、最後のコンペでは、たまたま入賞しました(3位、スライドはこちら)。

こうしたご縁もあり、上記プロジェクトの開発リーダーの一人※をやらせていただけることになりました。

※リーダーは8名ほどいます。各チームに分かれて10bクラスのモデルを開発し、その後、成績が良かったチームを中心に、50bのモデルを開発するというルールです(詳細はこちら)。

プロジェクトの位置付け (読み飛ばしOK)

(細かな話なので、読み飛ばしても支障のないセクションです)

本案件の母体は、経産省が支援するGENIACプロジェクトです。日本国内の基盤モデル開発力を底上げし、また企業等の創意工夫を促すことを目的に、計算環境を提供することになっています。

第一期の採択組織は、Preferred Networksの関連会社、Google出身の研究者が日本で創業したSakana AI、自動運転のTuring、LLM-jpを運営するNIIなど、錚々たる顔ぶれです。

筆者が参加する東大の松尾・岩澤研のプロジェクトの位置付けは、以下のとおりです。

大規模言語モデル講座(2023年9月開催、2000名が受講)の修了生及び松尾研究室講座修了生および一般公募によって集まった有志の開発者(⺠間企業・研究者・学⽣で構成)が、最新の研究成果や技術的な知見を取り入れ、開発を進めます。
(中略)

目的
・日本国内に100名規模のLLM開発経験者を育成する。
透明性の高い情報公開やコミュニティの運用により開発メンバー以外にもデータや開発ノウハウを普及させる。
・50Bの日本語LLMを開発、公開する事で社会貢献および国内のLLM実装を加速させる。

https://weblab.t.u-tokyo.ac.jp/geniac_llm/ より転載


「開発者育成」がプロジェクトのキーワードになっている通り、研究室の支援の下、多彩なメンバーが集まって開発を行うことに、大きな特色があります。筆者も、「多様性枠」の一人としてリーダーに採択されたといえます。

やらないこと (読み飛ばしOK)

(細かな話なので、読み飛ばしても支障のないセクションです)

GENIAC全体を俯瞰しながら、プロジェクトや筆者のチームの位置付けを考えると、まずはじめに、「何をやるべきでないのか」が浮き彫りになってきます。

  • 避けること1: 他の開発プロジェクトの単なる後追い

    • 筆者よりも、大規模言語モデルの開発能力が高い組織やメンバーがGENIAC内に沢山います。

    • 他所でやっていることを下手に真似をするだけでは、劣化コピーが生まれるだけです。

  • 避けること2: 超最先端なアルゴリズムの追求

    • 開発期間の短さや、筆者も含めたメンバーの性質を鑑みると、超最先端のアルゴリズム開発や実装は難しいと考えています。

  • 避けること3: 公開出来ないデータセットやスクリプトの構築

    • 本プロジェクトは有志が集まった単発のプロジェクトであり、終了後は解散します。

    • そのため、「非公開のデータや知見を蓄積し、組織内での秘伝の情報・技術・ノウハウとして将来活用する」といった類のことは行いません。

やること

避けることを踏まえつつも、「多様性枠」として参加するメンバーとしての位置付けを考えると、「やるべきこと」も見えてきます。

最も重要なのは、オープンなデータセットの整備です。

商用も含め、誰でも自由に使えて、上質なデータセット(特に日本語)を作ることは、日本として間違いなく重要で、しかも本プロジェクトのメンバーが貢献しやすい領域です。

(特に日本語の)オープンデータセットの整備は、かなり遅れています。
なぜなら、この作業には膨大なマンパワーを要する上、アカデミック・企業の双方で、データベースの構築ー公開の十分なインセンティブが働きにくいからです。

  • アカデミック機関の場合

    • データベース整備のような、ともすれば単調に見える作業は、学術研究としての評価が必ずしも高くない。

    • 研究者として、高度なアルゴリズム等を考えるタスクの方が、知的に楽しい。

    • マンパワーが足りない。

  • 企業の場合

    • 上質なデータセットはモデル性能や顧客体験に直結するため、開発が必要である。

    • しかし企業競争力という観点においては、構築したデータセットを敢えて公開する動機が弱い。

現状、公開されている日本語のデータセットの多くが、英語の自動翻訳※であったり、ノイズを多く含むコーパスであるという状況です(例えば、こちらこちら)。

※英語の自動翻訳は入手が容易な学習データとして、現実的に重要です。しかし、誤訳があったり、不自然な日本語を使っていたり、日本文化とはかけ離れたテキストが多く含まれているなどの問題があります。多くの大規模言語モデルの日本語応答がぎこちない理由の一因は、データセットの問題であると筆者は考えています。

意気込み

本プロジェクトでは、大規模言語モデルに素養があるメンバーが、有志で大量に集まります。そのため、マンパワーを活かしながら、上質な公開データセットを作成することができそうです。

主に、以下のことに取り組む予定※です(詳細ページは今後に作成予定)。
やりたいことがあまりにも多いので、協力してくれる方を随時、募集中です。(プロジェクトのメンバーでなくても行えるテーマが大半です)

※スケジュールがかなりカツカツなので、期間内で100%の完成度を出すことはまず無理です。8割程度のクオリティを目指しながら、各テーマで、たたき台を作りたいと考えています。

上質な指示データセットの作成

  • google formなどを活用し、誰でも簡単に指示データを投稿・閲覧できるシステムを作る

  • チームメンバーもコツコツ投稿する

  • 投稿されたデータはCreative Commons (CC0)などで自由に使えるようにする

日本語のコーパスをクリーニングする公開スクリプトの開発

  • mc4-jaなどの公開コーパスには、多量の"ノイズ情報"が含まれます

    • 体感では、コーパスの半分程度が、販促や公序良俗に反するサイトです

  • 言語モデルには上質なデータを学習してもらいたいので、コーパスをクリーニングするスクリプトを開発・公開します(予備検討)

    • ルールベースでのフィルタリング

    • 機械学習での選別

CommonCrawlの収集・解析スクリプトの開発

  • huggingfaceなどで公開されているコーパスの情報が古いので、最新のデータをCommonCrawlから、並列処理で収集・解析するscriptを作ります(プロトタイプはこちら)。

  • CommonCrawlから抽出したテキスト自体の公開は、著作権法上、おそらく難しいので、scriptの公開になる予定です。

  • フェアユース明文化されているアメリカで、誰かが当該scriptを実行し、そこで得られたコーパスを公開すれば、成果物としてのテキストを容易に得られるようになるかもしれません。

PDFパーサーの開発・CreativeCommonsテキストの公開

  • PDF文書は一般的なhtmlテキストに比べ、上質な日本語が記載されていることが多いです。

  • 一方でPDFからのテキスト出力は意外と難しく、一筋縄ではいきません。

  • そのため、完成度の高いPDFパーサーを作りたいと考えています(予備検討)。

  • 加えて、CreativeCommonsのテキストについては、処理済みのデータを公開したいと考えています。

学術データセットの整備

  • 筆者が大学教員なこともあり、学術テキストの収集にこだわりがあります。

  • 学術文書は適切に校正され、論理的にもしっかりしたケースが多く、学習データとして有用と考えています。

  • 特に化学・材料系に興味があるので、この分野に詳しい方も交えながら、データセットを作る予定です(化学・材料の推論に使えるモデルを得たいという思惑があります。自己報酬モデルによる物性予測の研究などもやっています)。

合成データセットの整備

  • Web上の雑多なテキストではなく、AIが生成した合成データセットを使おう、という潮流が形成されつつあると感じています。

  • cosmopediaの邦訳(抜粋)や、Wikipediaからのデータセット生成、オリジナルなデータ生成などを、可能な範囲で検討予定です。

  • 多くの言語モデルは四則演算や算数の文章題の解答もおぼつかないので、うまくトレーニングしたいと考えています。

分野特化のモデル群の構築(予定)

  • 人的・計算リソースの制約を鑑みながら、モデル構築の方も、頑張る予定です。

  • 学習に使える計算リソースも限られていることから、Branch-Train-Merge (BTM)のような分野特化のモデル群を得ることを検討中です

  • テクニカルな話をすると、学習データをドメイン分割した上で、それぞれを単一の10bモデルを継続学習し、複数のcheckpointを得た上で、最後にアンサンブルする予定です。

  • 専門分野に特化したモデルを個別に作り、推論時に複合するという手法は、学習コストの観点で小回りが効く上、カスタマイズ性も高いので、今後の有力な選択肢の一つになりうると考えています。

  • MambaやMixture of Expertsのような、最新または技術的に高度な手法の適用可能性についても、検討中です。

コンペ

  • 本プロジェクトは複数チームのコンペの形式で実施されています。

  • より高性能な50bモデルの構築時に、中心的な立場にいるためには、チームで作った10b相当のモデルで高性能を出す必要があります。

  • ベンチマークでハイスコアを出すことを自己目的化すべきではありませんが、競争は競争なので、ファインチューニング職人に協力してもらいながら、一位のスコアを目指す予定です。

まとめ

  • 10bモデルを開発させてもらえることになりました。

  • 作業の大半がオープンソースで進められる案件なので、成果は随時、公開していく予定です。

  • コミュニティのSlackもオープンに公開されています(詳細はこちら)。興味のある方は、ご参加ください。

参加方法

step 1: プロジェクトslackに入る
デバイスによっては、「ワークスペースが見つかりません」というエラーが出るようです(調査中) 。 まずはPCからアクセスしてみた方が良いかもしれません。

step 2: 筆者のchannelに入る

slackの画面内で、"geniac_team_hatakeyama"のchannelを探して参加します。

チャンネル一覧をクリックし…
geniac_team_hatakeyama を探して、channelに入れるはずです…

あるいは、step1を終えた後であれば、以下のURLから、直接入れるかもしれません(動作未確認)。


この記事が気に入ったらサポートをしてみませんか?