「GPT-4を作ってください」と言われたらどう答える?

秋葉拓哉氏:みなさん、こんにちは。秋葉と申します。それでは、発表させていただきたいと思います。

みなさん、さっそくですが、「GPT-4」ってすごいですよね。ここにいらっしゃっている方々はこれについては、もう疑いの余地なく、同意してくださるかなと思います。

では、質問なんですが、もし「GPT-4を作ってください。予算はあるんだよ」と上司に言われたら、どう答えますか? ということをちょっと聞いてみたいですね。

これはけっこう意見が分かれるポイントだと思うのですが、今日は、この質問に対して、少しでもみなさんの回答の解像度を上げられるように話ができればなと思っています。時間が限られていますが、よろしくお願いします。

登壇者の自己紹介とStability AI社の紹介

まず、自己紹介ですね。私は、Stability AIという会社に勤めています。

先日、「Weights & Biases」のエンドースメントを書かせていただきました。ちょっとふざけているかのような文章を書いたのですが、無事却下されず載ったので、私は一応、Weights & Biases公式で「毎朝起床してWeights & Biasesを眺めている男」と認められています。

これは正直若干盛ってはいるのですが、特に新しいトレーニングをしている時期は、毎朝、本当に眺めています。かなりお世話になっています。

Stability AIという会社ですが、おそらく「Stable Diffusion」が非常に有名かなと思います。(スライドを示して)このStable Diffusionというのを2022年に出していて、日本には、1月に支社ができました。そこから、いろいろなモデルをリリースしています。

日本では、日本に特化した生成モデルということで、今のところ、「StableLM」および「InstructBLIP」というモデルを出しています。これは、言語モデルおよび言語画像モデルなのですが、今日は、この中でもStableLMという言語モデルに関連する話をします。

こちらはね、ここまででもいろいろな話があったとおり、いわゆるLLMで、普通にWebなどのコーパスをいっぱい突っ込んで続きを生成するように学習されたベースモデル、および、インストラクトモデル、「ChatGPT」とかGPT-4に近いような、対話ができるようなモデルの2つを公開しています。どちらも商用利用可能なライセンスで公開しています。

これってけっこう、すごいことな気がしますよね。無料で商用利用可能なLLMが公開されている。

ただ、けっこう驚くべきことに、こういったオープンなLLMというのは、私たちだけでなく、けっこういろいろなグループが出しています。

私たちは、英語でも日本語でもモデルを出しているのですが、どちらに関しても、実はかなりいろいろなモデルが出ており、日々しのぎを削るような状況になっています。

GPT-4ってむちゃくちゃすごくて唯一無二で、ほかの人たちはぜんぜん作れなさそうなのに、片や、LLMを作っている人たちがいっぱいいるっていう話もあるわけです。

そこで、やはり疑問になってくるわけですよね。LLMを作るのは簡単なのか難しいのか。そして、GPT-4みたいなむちゃくちゃすごいモデルというのは、この延長線上にあるのか。ちょっとこのあたりについて、時間は限られていますが少し迫ってみたいと思います。

LLMは「Pretraining」と「Fine-Tuning」の2つのステップで作られる

その前にですね、簡単にあらためてLLMの作り方をおさらいしましょう。

LLMの作り方は、どうやって学ぶのがいいのか。いろいろな資料がありますが、やはり僕のお薦めはこれですね。Weights & Biasesさんが、「LLMをゼロからトレーニングするためのベストプラクティス」というPDFを無料で公開しています。

これ、けっこう内容がいいと思います。Scaling Lawなどいろいろな話が入っているので、これでちょっとキーワードをさらった後、必要な部分を勉強していただくとけっこういいんじゃないかなと思います。

今日は、ちょっと時間が限られているのですごくシンプルにこれを紹介します。LLMというのは、基本的に2つのステップで作ります。

1つ目が、「Pretraining」、そして2つ目が「Fine-Tuning」ですね。Pretrainingは、LLM作りにおける膨大な計算資源が投入されるという象徴的な部分で、Webなどの非常に大規模なデータをとにかくモデルに突っ込む。それによって、言語能力や知識を身につけているパートだと言われています。

次は、Fine-Tuningです。PretrainingしただけだとWebみたいな文章を書けるだけのものになってしまうのですが、そうではなくて、人の指示を聞いたり対話ができるようにするために、そのモデルをチューニングしていくんですね。

使われる計算資源自体はもっとずっと限られていて、使うデータも小さいのですが、このために作られたデータなのでやや特殊であって、そこが大変という感じですね。この2つをやると、だいたいLLMになります。

これはどのぐらい大変なんでしょうね。今日は、実際にLLMを作られている講演者の方もいると思いますが、やはり大部分の方は、LLMを作ったことがないですよね。

LLM構築タイムアタック

じゃあ、「急いでLLMを作れ」ともし上司に言われたらどうするか。今日は、そんな忙しい方のために、タイムアタックしたいと思います。

LLM構築タイムアタック。できるだけ急いでLLMを作りましょう。最初、やはりPretrainingをするためには、GPUを確保する必要があります。これがけっこう大変なのですが、今日は、ロールプレイで上司が「作れ」と言っていて「予算ある」と言っているので、たぶんGPUはもういっぱいあると。これね、かなり勝ち確(勝ち確定)です。

じゃあ、次に、データを準備しないといけません。Webの膨大なコーパスなどを集めるのは大変そうだなという感じがすると思いますが、実は意外とそうではなく、もし英語だとすると、実はけっこうパブリックに大きくてすぐに使えるデータセットがあります。

例えば「RedPajama」というやつが有名です。これは「LLaMA」というモデル、Metaが作った時のデータを再現しようというプロジェクトで、Metaが使ったデータを、おそらくこんな感じなんじゃないかなと、なるべく再現しているデータです。なんと、これが無料でダウンロードできます。今すぐダウンロードを開始したほうがいいです。

次に、トレーニングをやりたいですと。いやぁ、分散大規模学習は大変そうだなと。専門性のあるコードを書かないといけないのかなと思いきや、実はそうでもなくて、「GPT-NeoX」というフレームワークがあって、それをインストールして、もしそのまま動いたら非常にラッキー、もうそれで学習できます。

ほかにもフレームワークはいろいろありますが、GPT-NeoXは、Weights & Biasesがくっついてすぐ使えるのでお薦めです。

動かない場合は、もしかしたらHPC関連の技術がないと問題解決できないかもしれませんが、もし仮にすんなり動くとけっこうラッキー。

あとは、学習設定も余計なことはせず、なるべく有名な学習設定に合わせて設定しましょう。そうすると、運が悪いとうまくいかないのですが、運が良ければ学習はうまくいくと思います。もうベースモデルができました。

次に、Fine-Tuning。Fine-Tuningをどうやるかという話ですが、ここもまたすごいんですね。Weights & Biasesさんは、LLMのFine-Tuningに関するPDFも出しています。しかも今日は、冊子も配っているので、もしゲットされていない方はぜひゲットしていただければと思います。

Fine-Tuningのやること。まずはデータを準備します。こっちはいよいよ大変そうだなという気がしますよね。Pretrainingと違って、特別なデータな気がするのですが、なんとすごいことに、意外と無料で使えるデータアセットがすでにいっぱいアップロードされています。なので、こういうのを、へぇへぇって見て、良さそうなやつをダウンロードしたらもう使えます。

後は、もう学習するだけ。Fine-Tuningのやり方はいろいろあるのですが、それっぽいのを急いで作るだけであれば、まずはSFT、Supervised Fine-Tuningをやるだけでいいと思います。

機械学習における一番シンプルなSupervised Trainingなので、もう本当になんでもいいのですが、例えば「TRL」とか「TRLX」みたいなフレームワークを使ったら、コードをあまり書かなくてもできるかもしれません。

(次回へつづく)