

素晴らしいご紹介をありがとうございます。この講演の別バージョンを昨年ポルトで行いましたが、その時から内容がかなり変わっています。このセッションに来てくださってありがとうございます。アデルが言ったように、私の名前はジョディ・バーチェルです。現在、ジェットブレインズでデベロッパーアドボケートとして働いています。今日はジェットブレインズのブランドカラーで来ました。私はほぼ10年間データサイエンティストとして働いてきました。キャリアの大部分を自然言語処理(NLP)の分野で過ごしました。面白い話があります。NLPの仕事をしていた時、私が辞める頃にはBERTのような初期の大規模言語モデルの研究を始めていました。そこにまだ働いている友人がいて、数ヶ月前に連絡してきて、「CEOが我々のチームに連絡してきて、AIへの取り組みについて知りたがっていた」と言っていました。友人は「おいおい、我々は7年前からそれをやっているんだぞ」と言っていました。混乱が広がっているようです。
データサイエンティストとしてのキャリアの前は、実は心理学で博士号を取得しました。想像できるかもしれませんが、私はこの分野を非常に興味深く見てきましたが、同時に多くの懸念も持っています。最も大きな懸念の一つは、大規模言語モデルに関するメッセージングについてです。この講演では、この分野をより慎重に見て、ハイプを少し取り除いてみたいと思います。
過去2年間、予想通り私たちはAIのハイプサイクルの真っ只中にいました。実は、皆さんがLLMsについての私の講演に来てくれたことに驚いています。おそらくもう聞き飽きているだろうと思っていたからです。Lambdaのような
モデルが意識を持っているという主張から、ホワイトカラーの仕事市場の大部分が生成モデルに置き換えられるという推測、さらにはAIによる終末論的な主張まで、様々な主張がありました。意見、アイデア、推測の圧倒的な洪水でした。
当然、ほとんどの人にとって、これらのモデルについて何を考えればいいのかわからないのは当然です。これらは本当に有用なのか、それとも単なる楽しいおもちゃなのか?単なる流行なのか?現実的に何に使えるのか?本当に私たちを置き換えたり破壊したりするのでしょうか?
これから40分間、ハイプを取り除いて、これらのモデルの実際の応用と限界を見ていきます。これらのモデルの背景と科学を見て、人工汎用知能(AGI)への道を歩んでいるというような、より過激な主張に挑戦していきます。もちろん、40〜50分の時間枠では多くのことを省略せざるを得ませんでした。質問の時間が少しあると思いますので、アプリを通じて質問を送るか、後で私を見つけてください。
多くの人にとって、ChatGPT 3.5や4のようなモデルは突然現れたように感じられましたが、当然ながらこの分野の長い研究の歴史の一部です。特に私が言及した自然言語処理の分野です。これらのモデルの面白いところは、テキストの生成が初期のモデルの本来の目的ではなかったことです。元々の目的は、テキスト分類や要約など、大量の人力を必要とするテキストタスクを自動化できるモデルを構築することでした。
この旅がどのように進化したかを見てみましょう。大規模言語モデルは全て、ニューラルネットと呼ばれるタイプのモデルに属しています。これらは元々、人間の脳を人工的に模倣する方法として提案されました。この分野の研究は1940年代に始まり、1980年代まで断続的に続きました。その頃、いくつかの重要な技術的限界が克服されました。しかし、ニューラルネットの実用的な応用は21世紀の初めまで限られていました。これは、これらのモデルが非常に高い計算能力を必要とするからです。研究者たちは、モデルを大きくすればするほど、入力データについてより多くのことを学び、予測がより正確または洗練されることを発見しました。しかし、これには大量の行列乗算を非常に効率的に行うプロセッシングユニットの使用が必要です。そのため、この分野では線形代数についての言及をよく耳にします。
これが、大規模言語モデルへの道の最初のブレークスルーとなったCUDAの開発につながります。CUDAによって、GPUを汎用の行列乗算マシンに変換し、大規模なニューラルネットの訓練をより実現可能にすることができました。ニューラルネットのサイズを大きくすると、当然ながらデータへの要求も大きくなります。したがって、次の大きな進歩は、Common Crawlというデータセットの開発でした。これは、インターネット上で頻繁にリンクされているページの巨大なダンプです。Common Crawlの開発により、研究者はより複雑な言語モデルの訓練を始めるのに十分なテキストデータを手に入れました。
最後のステップは、モデリング側での革新でした。早期の予測では簡単な問題だと思われていましたが、テキストの扱いは非常に複雑で、高度に文脈依存であることが判明しました。これらの素晴らしい計算能力とデータがあっても、単語間の関係を実際に捉えることができるタイプのニューラルネットを開発するのに時間がかかりました。これも2007年、Common Crawlが開発されたのと同じ年に、Long Short-Term Memory Networks(LSTMs)と呼ばれるタイプのニューラルネットの開発で実現しました。この分野の命名はあまり上手ではありませんね、あまりキャッチーな名前ではありません。
これらのモデルは、文脈の中で単語を本当に理解できる最初のモデルの一つでした。そのため、様々なタスクで以前のモデルを大きく上回る性能を発揮しました。もちろん、テキスト生成においても以前のモデルよりも優れていましたが、テキスト分類、要約、翻訳など、様々なタスクを実行できる最初の汎用自然言語処理モデルの一つでもありました。実際、2016年にGoogle翻訳が突然良くなったことに気づいたかもしれませんが、これはLSTMsを使い始めたからです。
しかし、LSTMsの大きな制限は、テキスト内の単語を順番に処理しなければならないことです。最初の単語を処理し、それについて何かを覚え、次の単語を処理し、その情報をメモリに追加し、というように進めます。これはいくつかの問題を引き起こしましたが、最大の問題は、これらのモデルのスケーリングに問題を引き起こし、研究者が実現可能な大きさを制限したことです。
この問題を解決したのは、もちろんTransformerモデルです。この用語はどこでも聞いたことがあると思います。このタイプのモデルは、この順次処理を回避し、したがってモデルを非常に大きくすることができます。Transformerモデルの本当にクールな点は、訓練の一部として、言語がどのように機能するかについての非常に豊かな内部表現を学習することです。したがって、もちろん汎用モデルであり、明示的に訓練されていない様々なNLPタスクを実行することができます。
これが、テキスト処理モデルの現在の世代を開始し、大規模言語モデルの「大規模」を可能にした理由です。生成的または自己回帰的モデルに進化したTransformerモデルの分岐は、生成的事前訓練済みTransformer(GPT)であり、最初のものは2018年に登場しました。GPTは非常に成功したタイプのモデルであり、過去3年間にリリースされた多くの大規模言語モデルのほとんどすべてがGPTベースのアーキテクチャを持っています。これには、ChatGPT、GPT-4、Falcon、Mistral 7B、Gemini、Claudeなどの有名なモデルが含まれます。
大規模言語モデルの最近の歴史といくつかの基礎について理解したところで、GPTモデルをより詳しく見てみましょう。もちろん、すべてのバリエーションを見ることはできません。先ほど示したように、講演の残りの時間がかかってしまいます。代わりに、OpenAIが開発したモデルのグループを見てみましょう。彼らが最初のGPTモデルを考案したからです。
自然言語処理の最も興味深い問題の一つは機械翻訳です。これがTransformerモデルの最初の主要な使用例でした。2つの言語間で翻訳を行うために、Transformerベースのモデルには2つのコンポーネントが必要です:エンコーダーとデコーダーです。エンコーダーの役割は、ソース言語について可能な限り学習し、その情報をデコーダーに送ることです。デコーダーの仕事はもう少し複雑です。ターゲット言語がどのように機能するかについて可能な限り学習する必要がありますが、エンコーダーから送られてきた情報を使用して、ターゲット言語で最も可能性の高い一致するシーケンスを単語ごとに予測しようとする必要があります。
この例を見てみましょう。英語で「I have visited Italy」という文があり、それをドイツ語に翻訳したいとします。エンコーダーは英語がどのように機能するかについて多くのことを学習します。デコーダーはドイツ語がどのように機能するかについて多くのことを学習します。私たちの文はまずエンコーダーによって処理され、そして単語ごとにデコーダーがドイツ語で最も可能性の高い一致するシーケンスを生成します。
しかし、研究者たちがすぐに気づいたのは、デコーダーユニットそれ自体が非常に有用だということです。先ほど説明したように、デコーダーの仕事はターゲット言語がどのように機能するかを学習し、その知識を使って入力に基づいてシーケンス内の次の単語を予測することです。研究者たちは、このソース言語を取り除き、エンコーダーを取り除いて、同じ言語で次の単語を予測するようにデコーダーを訓練することを考え始めました。これらのモデルを、同じ言語の何百万もの単語を見せて訓練し、次の単語を正確に予測できるかどうかに基づいて予測を調整させることができます。その結果、与えられたテキスト入力に基づいて次に来る可能性が最も高い単語についてかなり良い考えを持つモデルが得られます。
この例を見てみましょう。入力として「I have」という2つの単語があり、モデルは次の単語とその次の単語の確率を学習しています。
興味深いことに、これは当初、テキスト生成能力のためには大きなブレークスルーではありませんでした。むしろ、これらの非常に大きなモデルを訓練するのに十分なデータをどこから得るかという問題を解決したのです。私が言ったように、ニューラルネットを大きくすればするほど、データへの要求も大きくなります。ほとんどのモデル、これは機械学習モデル全般に言えることですが、LLMsに限ったことではありません。通常、データを何らかの方法で手動で準備する必要があります。データにラベルを付けたり、物事をペアにしたりするかもしれません。そして明らかに、本当に大きなデータセットを作りたい場合、これは非常にコストがかかるか、実現不可能になる可能性があります。しかし、基本的に文を入力と出力の両方として使用する場合、この問題は解決されます。文を一点で切り、文の始まりを入力として使用し、次の単語をターゲットとして使用するだけです。これにより、簡単にスケールアップできる既製の訓練セットが得られます。
これがGPTモデルの基礎であり、その美しくスケーラブルなTransformerアーキテクチャとともに、これらのモデルがこれほど大きくなれた秘密です。これらのモデルの働き方は、大まかに言えばデコーダーユニットを積み重ねることでサイズを増やしていきます。これは正確な仕組みではありませんが、一般的な考え方です。これによってモデルのパラメータ数が増加します。つまり、モデルのサイズが大きくなるということです。
最初のGPTは1億2000万パラメータで、今となっては可愛らしく思えます。2番目のGPTはその13倍の15億パラメータでした。そして、モデルはどんどん大きくなり続け、GPT-4は約1兆パラメータと推定されています。GPT-4はこのスライドから外しました。これらの新しいものについていくのが大変で、「もうスライドに入れないよ」と思ったんです。
モデルは世代を重ねるごとに、様々な自然言語タスクでより優れた性能を発揮するようになりました。同じプロンプトに対する各モデルの応答を見ることで、モデルがどのように進化したかを理解できます。「ベルギーは」という文を完成させてみましょう。ベルギーの方がいらっしゃったら申し訳ありません。冗談を言っているわけではありません。これは約1年間使っているプロンプトなんです。
さて、GPT-1は文法的に正しいテキストを生成するのは得意ですが、文脈の感覚がありません。これがGPT-1が出した答えで、文法的に正しいと言えるのがせいぜいです。GPT-2はGPT-1よりも洗練されていますが、まだ本当に奇妙な出力を生成する傾向があります。これがGPT-2の試みです。
GPT-3は、モデルが文法だけでなく、訓練されたテキストに含まれる情報もエンコードし始めたところです。これがGPT-3の試みです。文法的に正しいだけでなく、実際にトピックに関連した情報を提供する素晴らしい小さな文を生成しています。
最後に、これをChatGPT 3.5に入力したところ、長々とした小論文を書き始めました。多言語主義や漫画について延々と続けるので、途中で切らなければなりませんでした。
さて、LLMsがどこから来たのか、そしてどのように機能するのかについて少し探ってきました。次は、これらのモデルがテクノロジー界やそれ以外でどのように認識されているかを見てみましょう。
議論してきたように、これらのモデルは現在、元々の目的である汎用自然言語処理モデルをはるかに超える主張をするハイプサイクルの中に存在しています。最も注目を集めている主張の一つは、冒頭で言及したように、LLMsが人工汎用知能(AGI)の兆候を示しているということです。
これらのAGIの主張は幅広く、実際に分野の最も尊敬される研究者たちによって裏付けられています。例えば、「AIの3人の教父」の一人と呼ばれるジェフリー・ヒントンや、マイクロソフトリサーチの論文などです。
これらの人々がLLMsがAGIを示しているという考えを支持している中で、これらのモデルが実際に知能を発達させていないことをどのように確信できるでしょうか?
1997年5月に戻ってみましょう。当時の世界チャンピオンだったガリー・カスパロフがIBMのチェス対戦AIであるディープ・ブルーと対戦していました。これは彼らが対面した2回目でした。
対戦の2番目のゲームで、ディープ・ブルーが予想外の手を打ちました。これがカスパロフを動揺させ、モデルが実際よりもはるかに洗練されているか高度であると信じさせました。ゲームの流れが乱れ、彼はこのゲームに負け、その後3戦目も4戦目も負け、結局全試合に負けてしまいました。そしてメディアは、もし人工システムでチェスを解決できるなら、確実にAGIはすぐそこまで来ているに違いないと推測して大騒ぎしました。
しかし、ご覧のとおり、この画面キャプチャの画質からわかるように、それは約30年前のことです。そして、その予測がどのように実現したかを私たちは知っています。
このような方法で知能を評価しようとする問題は、AIシステムの出力と、システムがそこに至るまでに取ったメカニズムを混同していることです。人間の場合、ある分野で著しいスキルを示す能力は、根底にある生の一般的能力を反映していることがわかっているため、このようなスキルベースの評価を使用できます。
機械学習やAIモデルはこのように機能しません。訓練目標を最適化しようとし、それらの目標に到達するためにショートカットを取れるなら絶対に取ります。間違いは、機械学習モデル(LLMsを含む)がある種のスキルを学習するために必要な経路が、根底にある知能の発達を必要とすると考えることです。
このスキルベースの知能の錯覚は非常によく知られており、実際に名前があります。有名な機械学習コンペティションウェブサイトにちなんで「Kaggleエフェクト」と呼ばれています。
このウェブサイトでは、人々が特定のタスクを最もよく完了できるアルゴリズムを作成するために競争します。勝利したソリューションは、この特定のタスクを非常にうまく実行するので、それを行っている間は一種の知能を示しているように見えます。しかし、訓練されたものからあまりにも外れた例で予測しようとすると、失敗します。脆弱性を示します。
これは現在のLLMsにおける知能評価を悩ませている問題です。特定のタスクでこれらのモデルがどのように性能を発揮するかに非常に強く焦点を当てており、知能が人間でどのように定義され測定されるかを無視しています。これは、これらの分野の研究者が自分の分野では非常に確立されているものの、その分野がコンピューターサイエンス、物理学、数学、工学などであって、心理学ではないからです。
スキルベースの評価がなぜ問題なのかを示す例を見てみましょう。昨年の初めを思い出してください。GPT-4が登場した後、最大のハイプトピックの一つは、このモデルが医学や法律の試験を解けるということでした。このモデルが医師や弁護士に取って代わるという主張がたくさんありました。そして彼らは私たちにも来ました。モデルはLeetCodeの問題を解き始め、そしてこれらのモデルがプログラマーに取って代わると言い始めました。
この最後の主張を詳しく見てみましょう。GPT-4が登場した頃、Twitterで非常に良い例が流れていました。ホラス・ヘイという人がいて、彼はCodeForcesというウェブサイトのコーディング問題でGPT-4をテストしました。CodeForcesの良いところは、各コーディング問題がリリースされた日付が実際にタイムスタンプされていることです。
彼は、GPT-4が訓練されていた時期にリリースされた10個のパズルを集めました。つまり、潜在的にはトレーニングデータに含まれていた可能性があります。彼はそれらをGPT-4に実行させました。そして、ご存知の通り、GPT-4は全問正解しました。おめでとう、私たちの仕事を奪いに来ています。
しかし、彼が次に行ったのは、GPT-4が訓練された後にリリースされた別の10個のパズルを集めることでした。これらは同等の難易度でしたが、今回GPT-4は全問不正解でした。
何が起こったのでしょうか?これは、GPT-4がトレーニングデータにあるパズルを単に暗記していたのではないかという疑惑を引き起こしました。
別の研究者であるサヤス・カポーレは、これを明示的にテストしました。彼は、GPT-4が訓練された時点で利用可能だったCodeForcesのパズルについてGPT-4に尋ねました。そして、GPT-4は喜んで完全なソースコードを吐き出し、確かにCodeForcesのパズルがトレーニングデータに含まれていたことを確認しました。
これは、LLMsの知能のスキルベース評価が非常に誤解を招く可能性があることを示す素晴らしい例だと思います。代わりに、これらのシステムが以前に見たことのないタスクをどれだけうまく解決できるか、つまりこれらのシステムがどれだけうまく一般化できるかを見る必要があります。
これは、非常に有名なAI研究者であるフランソワ・ショレによって、一般化の階層として定義されています。彼はグーグルで働いています。私たちは一般化の欠如から始めます。これには、ティック・タック・トーをプレイできるアルゴリズムのように、事前にすべての可能な結果を知っているシステムが含まれます。それは、プレイできるすべての可能な構成を知ることでプレイすることができます。
次に、ローカル一般化に移ります。これは、システムが以前に見たことのない例について推論できるが、それらの例が訓練されたものと十分に似ている場合に限られます。機械学習モデルはこれに該当し、これはKaggleエフェクトの例示です。
広範な一般化は、単一の広範な活動領域における人間レベルの能力を反映しています。有名な例として、驚くべきことにアップルのスティーブ・ウォズニアックによって提案された「WNIAC(ウォズニアック)コーヒーテスト」があります。彼は、キッチンに入って人間の介入なしにコーヒーを作るために必要なすべてのステップを完了できるシステムがあれば、それは広範な一般化を示すと提案しました。完全な自動運転車もこのカテゴリーに該当します。
次に、極端な一般化があります。これは本質的に人間レベルの知能です。これは基本的に、以前に見たことのない問題を解決できるシステムで、抽象的な共通点しか共有していない問題でも解決できるシステムです。そして、人間が解決できると予想される範囲の問題を解決できます。
この時点で、人間レベルの能力に多く焦点を当てていると思われるかもしれません。しかし、私たちは人工的なシステムについて話しているのであって、私たちを超えて、私たちよりも優れたものになってほしいのではないでしょうか?
これは最終レベルである普遍性につながります。これは、私たちにとって何の関連性もない問題を含め、宇宙のあらゆる問題を解決するシステムの能力です。
普遍性については、人工システムの初期目標として考えるべきではない理由がいくつかあります。まず、開発者として、私たちはすべての問題が有用であるためには範囲が必要であることを知っています。現在私たちが持っている範囲は、私たち自身が手動で行うタスクを自動化できることです。人工システムにとっては。
第二に、私たちはまだ広範な一般化さえ解決できていません。そのため、これらの低いレベルに焦点を当てる前に、そんなに高い目標を目指すべきではないかもしれません。
さて、知能に戻ると、実際にCholetの一般化の概念化を人間の知能の受け入れられた定義と整合させることができます。
この概念化では、人間には「G」または一般知能と呼ばれる学習の一般的能力があると言います。私たちは一般知能を使って、料理や車の運転など、広範な活動を学びます。そして、これらの広範な活動の中には、卵を泡立てたり、ウインカーを使用したりするなどの特定のタスクがあります。
人工システムの極端な一般化が人間のGと一致し、広範な能力が広範な一般化と一致し、特定のスキルが一般化なしまたはローカル一般化と一致することがわかります。
この重複を考えると、人間の知能測定(これは確立された分野です)から教訓を導き出し、それを人工システムの知能測定に適用することは公平だと思われます。
ちなみに、続ける前に言っておきますが、私は心理学者です。知能が議論の的になる分野であることは承知しています。これは万能薬として提案されているわけではありません。むしろ、これらのシステムのスキル重視の評価を超えて、システムが本当にどれだけ一般化できるかを理解しようとするためのフレームワークを提供するものです。
Choletは、人工汎用知能を持つシステムを設計または構築する方法も提案しています。彼は以下のように定義しています。人工システムは、タスクを解決する能力を示すべきですが、これはお馴染みのものです。しかし、それはそのタスクに関連するスキルプログラムにエンコードされた知識を使用して行います。そして、スキルプログラムは人間のような知的システムによって生成されます。
これらのスキルプログラムは、遭遇する状況と応答の効果の両方に関する入力に基づいて洗練されます。知的システム自体は、より多くのタスクに触れることで時間とともに学習します。
Choletはまた、人間のような知的システムについて話している場合、そのようなシステムが人間が生まれつき持っているのと同じ先験的知識またはスキルで設計されていると想定すべきだと主張しています。これは、初歩的な幾何学と物理学、算術、そして他者の行動主体性の理解です。
スキルプログラムは、タスクの経験をエンコードし、過去にそのような問題をどのように解決したかを覚えることができます。タスク自体は、一般化の難しさに基づいて変化する可能性があります。
タスクの一般化の難しさは、このシステム設計において非常に中心的なものです。基本的に、タスクがシステムがすでに見たものとどれだけ異なるかということです。明らかに、システムが以前に見たものとかなり異なるタスクは、システムが解決するのがはるかに難しくなり、それを成功裏に解決するためにはより一般化する必要があります。
これにより、人工汎用知能を持つシステムをどのように構築できるかについての出発点となる概念化が得られます。
Choletの研究は、DeepMindの研究者たちによって続けられました。これらは実際にOpenAIの前身であり、その後Googleに買収されました。彼らも、知的な人工システムは一般化できなければならないという考えから始めますが、この次元を狭いものと一般的なものに単純化しています。
これに、彼らは2番目の次元として性能を追加し、特定のタスクまたはタスクの範囲でどれだけの人々を上回ることができるかで測定します。彼らが分類する方法は、誰も上回らないものから、そのタスクに熟練していない人々、50%の人々、90%、99%、そして最終的にはすべての人々を上回るシステムまでの範囲です。
まず、彼らが狭い一般化を持つと分類するシステムを見てみましょう。誰も上回らないシステムとしては、電卓や完全に手動で操作する必要がある他のシステムを挙げています。新興の狭いAIとしては、GOFAIまたは「良き古き人工知能」を挙げています。これらは、特定のルールを明示的にエンコードする必要があった古い学校のシステムです。私はその用語が大好きです。
そして、より高いレベルでは、スペルチェックと文法タスクで90%の人々を上回るGrammarlyのようなシステムを挙げています。チェスで99%の人々を上回る古い友人のDeep Blueがあります。そして、熟練した科学者を含む100%の人々よりもタンパク質の3D構造を予測できるAlphaFoldというシステムがあります。
しかし、これらがどれほど印象的であっても、これらは狭いシステムです。私たちが知っているように、AGIへの真の道は一般化できるシステムにあります。では、DeepMindチームがここに何を置いているか見てみましょう。
現在のところ、彼らは2つのシステムしか持っていません。興味深いことに、彼らはChatGPTを新興AGIとして分類しています。私はこれに強く反対します。先ほどCholetの定義をお見せしましたが、これは彼らの定義とは異なります。一般性の範囲には、人間が合理的に遭遇すると予想されるすべてのタスクが含まれます。ChatGPT 4でさえ、できることはまだ限られています。
もう一つ興味深いのは、DeepMindチームが一般化のより高いレベルで他の例を見つけられなかったことです。
これは、これらの研究者たちが、AGIに到達する前に、または彼らが何らかの理由で呼んでいる人工超知能に到達する前に、まだかなりの道のりがあると本当に信じていることを示しています。AGIはセクシーでなくなったので、ブランディングを変える必要があったのでしょう。
これをCholetのそのようなシステムを構築する方法の定義と組み合わせると、私たちはこの目標からかなり遠いという十分な証拠があると思います。
これは何を意味するのでしょうか?LLMsが役に立たないということでしょうか?もちろんそうではありません。ただし、設計された問題領域に適用された場合にのみ役立ちます。この講演全体で言ってきたように、それは自然言語の問題です。
自然言語タスクについては、この講演を通じて少し触れてきましたが、それらが実際に何であるかを定義するために一歩下がって見てみましょう。
この問題領域は非常に広範で、自然言語で行いたいことすべてを包含しています。自然言語とは、オランダ語、英語、中国語のように自然に進化した言語のことです。
冒頭で述べたように、これらは数十年にわたって解決しようとしてきた問題であり、LLMsは単にこれらの問題を解決するための最新かつ最も洗練されたツールです。
自然言語の問題の例をいくつか見てみましょう。これは単なる一例ですが、この問題領域がどのようなものかを示すでしょう。
LLMsは以下のことが得意です:
ある言語から別の言語への翻訳(ただし、モデルが両方の言語の十分な例で訓練されている場合に限ります)
テキスト分類(テキストの内容を推論してカテゴリに割り当てる)
長いテキストの要約
質問応答(入力された質問に基づいて回答を提供する)
この講演の残りの部分では、この最後のアプリケーションに焦点を当てていきます。
LLMsはいくつかの方法で質問に答えることができます。もちろん、ベルギーについてのスライドで見たように、パラメトリックな知識を使用して回答することができます。訓練中に、十分に大きなLLMsは訓練データに含まれる知識をエンコードすることができます。モデルと訓練データに応じて、LLMsはこのパラメトリックな知識のみに基づいて正確に質問に答えられる可能性があります。
LLMsは特定のドメインでより良く質問に答えるようにさらに訓練することもできます。これはファインチューニングと呼ばれる技術です。アイデアは、高品質の入力(質問)と期待される出力からなるデータセットを作成し、モデルをさらに訓練して、このデータセットに沿った出力を返すようにすることです。このデータセットでさらに訓練した後、LLMはこの特定のドメインの質問により適切に答えられるようになります。
最後に、現在最も話題になっている方法の1つが、検索拡張生成(RAG)です。これは、入力プロンプトに関連する追加のコンテキストがLLM外部のソースから取り込まれ、プロンプトに組み込まれて、LLMがより正確に質問に答えるのを助けます。
RAGについてもう少し詳しく見てみましょう。RAGパイプラインを使って「今年のアメリカンスーパーボウルの優勝チームは?」という質問にどのように答えられるかを見てみましょう。
この質問を意図的に選んだのは、アメリカンスポーツの大ファンだからではなく、比較的最近の出来事だからです。ほとんどのモデルは、パラメトリックな知識だけでこの質問に答えることはできません。代わりに、どこか他の場所からこの情報を取り込む必要があります。
では、RAGパイプラインを使ってこの質問にどのように答えられるでしょうか?通常のLLMを使用する場合と同様に、プロンプト(この場合はスーパーボウルに関する質問)を作成します。しかし、これを直接LLMに渡す代わりに、まず追加の情報を収集することができます。
この情報はさまざまな場所から来る可能性があります。実際にウェブ検索エンジンから来る可能性もあります。ChatGPT 4を使用したことがある場合、時々裏でBingに問い合わせて情報を取り込んでいることがあります。しかし、機密文書を扱っている場合は、何らかの方法で内部的に、何らかのデータベースに保存したいでしょう。
では、質問時に、つまりLLMに質問に答えてもらいたい時に、どのようにしてデータベースから情報を効率的に検索するのでしょうか?まず、文書をチャンクに分割する必要があります。次に、これらのチャンクを2番目のエンコーダーモデルと呼ばれるものに送り込みます。その結果、これらのチャンクを文書埋め込みに変換し、これらをベクトルデータベースに保存します。Weaviateやpineconeなど、人々が話題にしているこれらのデータベースがなぜ使用されているのか、これが理由です。
検索時には、プロンプトも同じモデルを使用して文書埋め込みに変換され、ベクトルデータベースから最も類似した文書チャンクが検索されます。スーパーボウルのクエリでは、カンザスシティ・チーフスがサンフランシスコ49ersに勝ったことを教えてくれるチャンクと、スコアを教えてくれる2つ目のチャンクが見つかりました。
これで拡張されたプロンプトを構築できます。LLMにパラメトリックな知識を無視し、質問に答える際にベクトルデータベースから取得したこの追加情報のみを使用するよう指示します。そして、voila!LLMは今や正確に質問に答えることができます。
では、PyCharmに移動して、質問応答のための単純なRAGパイプラインを実際にどのように構築できるかを見てみましょう。
(次のセクションは実際のコードデモに関するものですが、ここでは省略します。デモの後、講演は以下のように続きます。)
では、退屈な警告の話を数スライドで終わりにしましょう。申し訳ありません。
これは、本当に可愛らしく素敵なRAGアプリを見せた後で、退屈なデータサイエンティストとして皆さんに伝えるべきポイントです。実際に、RAGの作業、そして実際にLLMsの展開作業は本当に単純ではなく、多くの落とし穴があります。
まず、RAGに関する問題から始めましょう。クエリごとに返すチャンクの数など、私が言及したすべてのレバーを覚えていますか?これらはすべて、RAGアプリのパフォーマンスに大きな影響を与える可能性があります。これには、チャンクのサイズ、数、文書埋め込みの作成方法、使用するモデル、データベースからの検索方法、プロンプトの作成方法、その情報をプロンプトに統合する方法など、重要な事項が含まれます。
そして、LLMs一般に関しては、すべてのLLMsがすべてのタスクに適しているわけではありません。汎用モデルですが、異なるモデルが異なる分野に特化している可能性があります。特定のデータセットで訓練されている可能性もあります。
非常に単純な例を挙げると、ファン語からオランダ語への翻訳にモデルを使用したいとします。ファン語は非常に小さな言語なので、もしモデルがファン語のテキストで訓練されたことがない場合、LLMはこの翻訳を行うことができません。基礎となるデータが必要です。魔法ではありません。その情報を無から作り出すことはできません。そして、もしそうしたら、それは幻覚です。
適切なモデルをタスクに選択しなかったり、アプリケーションを正しく調整しなかったりすると、パフォーマンスの低下、回答の質の低下、そして先ほど述べた幻覚につながる可能性があります。
最後の質問として、使用したいLLMが使用ケースに適切かどうかをどのように知ることができるでしょうか?これは、時間の関係で詳しく説明できない非常に大きくて複雑なトピックに入ります。LLMの測定について簡単に触れるだけにとどめます。
一般的に自然言語タスクでLLMがどれだけうまく実行できるかを測定するためのベンチマークがいくつか存在します。Hugging Faceが作成したこのようなオープンソースLLMのリーダーボードで、様々なモデルのパフォーマンスを見ることができます。しかし、特定のタスクでモデルがどのようにパフォーマンスを発揮するかは、ドメインとユースケースに大きく依存します。場合によっては、ドメイン固有のベンチマークを探すか、独自のベンチマークデータセットを作成する必要があるかもしれません。
結論として、LLMは強力ですが、まだ限界があるモデルです。AGIを開発する寸前ではありませんが、応用がないわけでもなく、空虚なハイプサイクルの一部でもありません。コツは、適切なユースケースを選び、慎重に展開を調整し構築し、パフォーマンスを注意深く測定することです。これが馴染みのある話に聞こえるとすれば、数十年にわたってソフトウェア開発と機械学習で扱ってきた同じ退屈な問題だからです。
ありがとうございました。


コメント