2024.10.01
自社の社内情報を未来の“ゴミ”にしないための備え 「情報量が多すぎる」時代がもたらす課題とは?
リンクをコピー
記事をブックマーク
大嶋悠司氏(以下、大嶋):「Keynotesだけじゃない! 深掘りセッションズ」ということで、キーノートで全体の地図を与えられたわけです。じゃあその地図の中で、それぞれどこにどういう話をしているかという深掘りセッションズをいくつか紹介できればなと思います。
まず、Foundation modelsについてです。もしかしたらみなさん、もう見ているかもしれませんが、このセッションはマジでみんな見たほうがいいと私は思っています。「State of GPT」というタイトルなのですが、OpenAIのAKさん(Andrej Karpathy氏)が発表してくれた内容で、GPTについてすごく詳しく話してくれているんですね。
GPTだけじゃなくてLLMと言ってもいいかな? とにかく、トレーニングパイプラインの話をしてくれています。ここまで整理されたGPTのトレーニングパイプラインを私は初めて見たので、頭を整理する上ですごく良い発表だったなと思っています。
トレーニングパイプラインがあって、それぞれのモデルが生まれるので、自分が見ているモデルがこのフェーズのどこに相当するモデルなのかを考えながら見ると、非常に整理できるし、これも地図だと思っています。
最初が事前学習言語モデルで、GPTのベースモデル、「GPT3 davinci」とか「LLaMA」とかがここに相当します。大規模な言語資源でランゲージモデルを事前学習したようなものですね。こいつはアシスタントではありません。
ランゲージモデルなので、最初に言語が与えられたらその先を推定するだけのモデルですね。最近サイバーエージェントさんが出した「CALM(OpenCALM)」も、ここの事前学習言語モデルに相当します。このモデルは、ChatGPTみたいなアシスタントにはならないものです。
それをQAの形式になっている少量かつ高品質のデータでチューニングしたものが、SFTモデルです。ここになると、少しアシスタントっぽい感じになります。これは、「Vicuna-13B」などのモデルに相当すると説明されています。
これだと、まあ確かに、アシスタントみたいな振る舞いはしてくれるけれど、ChatGPTはさらにRLHF(Reinforcement learning from human feedback)ということをしているよと説明してくれています。
知っている限り、実際にここまでできているのはChatGPTとClaudeだけだと言っていますが、生成された回答を人手でランキング付けして、それを強化学習に使って、人間が思うより良い回答を学習するという流れになりますね。
そういうことで、よりアシスタントとして優秀になるという話になります。
これ、ちょっとおもしろかったので挟んだのですが、「なんでRLHFが必要なんですか?」という質問に対して、(回答は)「いい感じに動くからです」。エキサイティングな理由ではないけれど、それをすると人がいいと思う回答が出るからでしかないと言っています。
もし潜在的な理由を説明できるとしたら、「いい俳句を作りなさい」と言うよりも、「どっちの俳句のほうが良さそうですか?」という質問のほうが、人間にとっては簡単ですよねということです。
生成よりも比較のほうが簡単というのがRLHFがよく動く潜在的な理由かもね、みたいなことも別で話してくれているので、非常に技術的に深いセッションだったなと(思います)。
ほかにおもしろかったのは、RLHFによる悪影響もあるという話ですね。ベースモデルだと、次の単語を予想する時に、けっこうエントロピーが高く、言語を満遍なく推定するのですが、RLHFを挟むと非常にピーキーな推定をするようになります。
(スライドを示して)例えばここの「If you are referring」の時の「are」の予想ですが、ほかにも可能性がなくはないはずなのに、「are」が99.9パーセントになっていて、かなりピーキーなモデルになると話されています。
ということは、エンベディングモデルにはRLHFをしたモデルは向かないのかな? と想像をしたり、なかなかおもしろい発表だったと思います。
あとは、LLM使用のベストプラクティスについても話してくれていました。「Chain of Thought」、「Self-consistency」、「ASK for Reflection」、「Tree of Thought」など、「Expertとして振る舞ってください」みたいなことを言うと質が上がるよねみたいな。
そういうよくあるベストプラクティスをまとめて話してくれているし、メタファーを含めて話してくれるので、すごくわかりやすいセッションだったなと思います。
最後に、検索の拡張みたいなものも話されていました。これについては後の発表で詳しく話しますが、LLMに検索による拡張を付けるのはすごくいいよねという話ですね。
それに関連して、Groundingの部分になりますが、個人的に、これはLLMの本質的な使い方における拡張だと思っています。
先ほども申し上げたとおり、Groundingというものが、ある情報に基づいて生成する上で証拠となる情報を取ってこないといけないというところで、Vector searchを使うというのが、なんとなく今の技術的な流れになっているかなと思います。
Vector searchについてのセッションはElasticsearchがやってくれたのですが、Vector searchという技術について話した後、Vector searchを使ってChatGPTを拡張すると、こんなにいいことがあるよという話をしてくれたので、Groundingについて興味がある人は、この発表を見るとおもしろいと思います。
Embeddingというものが、こういう概念みたいなものを何次元かの空間に落とし込みます。リアルな鹿、リアルなカートゥーン、イラスト、鳥なのか哺乳類なのかみたいなのにマッピングされています。
こういう鹿のイラストっぽいやつが与えられた時に、その周辺の概念みたいなものも取ってくることができるのがVector searchです。
このVector searchがなぜ今流行っているかというと、別にVector searchはそんなに新しい技術ではありませんが、LLMを使うとEmbeddingがすごくうまくいくので、LLMと組み合わせると非常に効果的だよねということを説明してくれています。
Vector searchは、今まで見つけられなかったものが見つけられるようになる技術ではありますが、キーワードマッチのほうが完全に一致するものを見つけることに優れているので、トラディショナルなサーチとVector searchを合わせたHybrid searchみたいなものがすごく重要になってくるよねという話もしてくれています。
Vector searchやHybrid searchはけっこう当たり前になりつつあるなと思っています。
Elasticsearchは当然のこと、Azureの「Cognitive Search」とか「Azure Cosmos DB」とか「Vertex AI」とか「Pinecone」「Qdrant」。
いろいろな方法でこれは実現できるので、今後当たり前の技術になるんだろうなという気がしています。
次の、MetapromptとResponse Filteringについての発表でおすすめなのがこれですね。
「Build and maintain your company Copilot with Azure ML and GPT-4」。これはけっこうデモベースですごくおもしろい発表なので、聞くと楽しいと思います。
先ほどみたいに、Retrieval Augmented Generationみたいなものをすると、いい感じのCopilotが作れるよという話から始まるんですよね。
「実際にCopilotを設計する時には、これぐらいのパイプラインを組まなきゃいけないんや」と言っていて、「クライアントがチャットに質問した時に、内部でプロダクトIDを入れて、プロダクトをサーチして、その情報を使ってLLMに問い合わせつつ、リプライを生成するんや、複雑なフローがあるんや」という話をしてくれるわけです。
PromptFlowで実現できるよというのがその話の流れになるわけですね。PromptFlowは、基本的にLangChainを想像してもらえればいいので、わかるかなと思いますが、インプットがあって、if文みたいなものがあって、並列でLLMと合わせた結果をアグリゲーションしたりできます。
PromptFlowは私がめちゃくちゃ欲しかった機能なのですが、これはプロンプトのバージョニングをしてみたり、過去のものから良くなったのか悪くなったのかを比較したり、取ってきた情報にどれだけ基づいているか、Groundnessみたいなパイプラインをきちんと測ったりすることで、プロンプトのデバッグなどがすごくビジュアルでやりやすくなる機能です。
なので、LangChainやPromptFlowみたいなものは、非常に必要になってくると思いますが、それをどれだけ楽にできるかが、今後重要なのかなと思います。
まとめとして、Copilotという名前がどれだけ一般的になるかはわかりませんが、Copilot Stackという整理されたマップは、マジでありがたいです。
今後こういう概念のスタックがあるよねというのは共有されるのかなと想像しています。
FrontendやOrchestrationが、どこに当てはまるのかを考えながらツールなどを整理すると、どこまでの責任を持たせられるかが非常にわかりやすいと。
あと、現状のLLMについても、State of GPTで非常に整理されたと思っています。パラメーター数が7ビリオンだとか、65ビリオンだとかというだけではなく、そのモデルがいったいどのフェーズにあるのかもすごく重要だよね、ユースケースに合ったモデル選択をしないとねという話があります。
Vector searchやPromptFlowみたいな、Orchestrationのツールは、Azureに今後拡充されていくだろうし、オープンソースのものもたぶん出てくるので、Copilot Stackのどこにあるのかを見ながら選んでいきたいなと思っている次第です。
メルカリでの取り組みについても、ちょっとここで話をしたいなと思っています。私はLLMと生成系AIの専属チームでやっているのですが、社内でどういう取り組みをしているかについて、ちょっと簡単に紹介できたらと思います。
まず1個目が、これはすでにうちのチームのmaze(石川佑樹氏)も発表しているのですが、「mercari ChatGPT」みたいなものを社内で出しています。
ChatGPTだと社内の機密情報などが漏洩するリスクがあるから、社内で安心して使えるものを作ろうねという話が、最初にありました。
付加価値として、もっといろいろできないかということで、バックエンドはAzureのOpenAIを使って、gpt-3.5-turboやgpt-4などやっていたところにGoogleの「chat-bison」も入れて、いろいろなモデルを社内で比較しやすいようにしようねと、社内の理解を深めました。
あと、シェアの機能を入れています。これは最近、ChatGPTにも入ったらしいですね。自分のチャットの履歴をシェアできます。プロンプトを書くのが上手な人がやはりいるわけですよ。言語能力に長けている人。そういう人が作ったプロンプトはけっこう汎用的に使えるので、それを社内で展開して、活用や習熟を促進していくことを狙ってやっています。
もう1つ。たぶんこれは、非常にティピカルなユースケースではありますが、社内ドキュメント検索ですね。
「Confluence」とか「Google Docs」とか「Slack」とか、データソースがいろいろあるものをベクトライズします。ただの全文検索と違うのは、自然言語で質問して、検索して、自然言語で返してくれるところです。
例えば「○○の施策の内容について教えてください」と言った時に、「○○の施策ってこういうもんですよね。こういう進捗ですよ」みたいなことを、自然言語で教えてくれるというのはすごく便利だよねと取り組んでいます。
内部では、AzureのCognitive SearchのVector searchを使っていて、Hybrid searchとかも入れています。それ自体は非常に便利だし、ツール自体も整っているのですが、じゃあ幸せな世界が訪れるかというと、決してそんなことはありません。やはりチューニングはまだまだ必要だなという印象です。
例えばドキュメントを、どの粒度でベクトル化をするか。例えばConfluenceのドキュメントはめちゃめちゃ長いので、それを一度に全部ChatGPTには入れられません。チャンクに切らないといけないのですが、どれぐらいのサイズで切っていくかとか。
ほかにも、ドキュメントをサマライズしてからベクトル化するとか、これはこういうドキュメントですよみたいなインストラクションを付けるとか、いろいろな選択肢がありますが、どれがベストかはまだいまいちつかめていません。
例えばFAQは質問と応答なので、検索が非常にしやすいのですが、社内ドキュメント検索だと、質問に対してのドキュメントが、ベクトル空間上でそんなに近くはなかったりすることがけっこうあるわけです。
そういう場合に、どうやってそこを近づけていくか、正しい検索となっていくかみたいなところでTwo-Towerモデルみたいな概念はありますが、それを使ったからきれいにできるかというとそうでもありません。
そこは今後社内で検討しなきゃいけないし、みんなで知見共有できると、車輪の再発明をしなくて済むなと思っているので、ぜひともみんなで深めていきたいし、ベストプラクティスを深めていきたいなと思っている分野です。
最後に、LLMチームは採用もしています。LLMをメルカリでもやっていきたい人は、私たちのチームにアプライしてもらえると。みんなでやっていきましょうという感じです。以上です。ありがとうございます。
そうだ、最後に。実は私、今までMacしか使っていなかったのですが、今回の「MS Build」の発表が良すぎて、「Surface」買ったんですよ。
発表を実はWindowsからやっているというオチで、おしまいにしようと思います。ありがとうございました。
司会者:はい、大嶋さん、ありがとうございました。Windowsデバイスも買ってもらって(笑)。「MS Build」自体も非常に良かったかなと思います。質問が1件来ているので、公開させていただけたらなと思います。
「mercari ChatGPTのように、社内GPTの構築にかかった費用はどのくらいでしょうか? 差し支えない範囲でご教示いただければ幸いです」ということですが、いかがでしょう?
大嶋:額そのものを言ってもいいかというと、ちょっと怪しいので、ふわっとした感じになるんですけども。
実際、けっこう使ってはくれていますが、ChatGPTの3.5のAPIとかだとそんなに高くはないので、月に何百万ということは決してないですね。許されるレベルのお金感でやっている感じです。
ただ、GPT-4とかだと事情が違ってくるので、GPT-4をいっぱい使うようになってくると、ちょっと変わってくるかなという気がしている感じですかね。
司会者:ありがとうございます。ちなみに、構築の工数でいうとどれくらいかかったんですか?
大嶋:構築の工数自体は、どれぐらいだろう? 2週間ぐらいで作ったんだと思います。そこはもう、1人のエンジニアが気合いを入れて作った感じ。
司会者:おぉ、1人で2週間で(笑)、メルカリさんのChatGPTを構築したということですね。
大嶋:そうですね。内部的にはAPIコールするだけで、基本的にフロントエンド開発だけなので、それぐらいの規模感でやった感じです。
司会者:ありがとうございます。
2024.10.29
5〜10万円の低単価案件の受注をやめたら労働生産性が劇的に向上 相見積もり案件には提案書を出さないことで見えた“意外な効果”
2024.10.24
パワポ資料の「手戻り」が多すぎる問題の解消法 資料作成のプロが語る、修正の無限ループから抜け出す4つのコツ
2024.10.28
スキル重視の採用を続けた結果、早期離職が増え社員が1人に… 下半期の退職者ゼロを達成した「関係の質」向上の取り組み
2024.10.22
気づかぬうちに評価を下げる「ダメな口癖」3選 デキる人はやっている、上司の指摘に対する上手な返し方
2024.10.24
リスクを取らない人が多い日本は、むしろ稼ぐチャンス? 日本のGDP4位転落の今、個人に必要なマインドとは
2024.10.23
「初任給40万円時代」が、比較的早いうちにやってくる? これから淘汰される会社・生き残る会社の分かれ目
2024.10.23
「どうしてもあなたから買いたい」と言われる営業になるには 『無敗営業』著者が教える、納得感を高める商談の進め方
2024.10.28
“力を抜くこと”がリーダーにとって重要な理由 「人間の達人」タモリさんから学んだ自然体の大切さ
2024.10.29
「テスラの何がすごいのか」がわからない学生たち 起業率2年連続日本一の大学で「Appleのフレームワーク」を教えるわけ
2024.10.30
職場にいる「困った部下」への対処法 上司・部下間で生まれる“常識のズレ”を解消するには