大規模言語モデル
LLMだけでは解決が難しい、あるいは不可能な問題もある。たとえば、「354 * 139 = 」のような計算式の場合、次のトークンを予測することは困難であり、「What is the time now? It is」(今は何時ですか? 今は)についてはまったく予測できない。しかし、人が計算機を使って計算し、時計を使って時刻を知るように、LLMも他のプログラムを呼び出して次のトークンを予測することができる。LLMは、「What is the time now? It is {system.time()}」(今何時ですか? 今は{system.time()})や、「354 * 139 = {354 * 139}」のようにプログラムコードを生成し、次に別のプログラムインタプリタが生成されたコードを実行してその出力を埋める。この基本的な戦略は、生成されたプログラムを複数回試行したり、別のサンプリング戦略を使用して改良することもできる。
LLMがタスクを実行する能力や対応可能な範囲は、ある意味では設計における画期的な進歩には依存せず、LLMに費やされた資源(データ、パラメータサイズ、計算力)の量の関数であるように見える。多数のパラメータを持ったニューラル言語モデルは、文の次の単語を予測するという単純なタスクで十分に訓練することで、人間の言葉の構文や意味の多くを捉えられることがわかった。さらに、大規模な言語モデルは、世の中に関するかなりの一般知識を示し、訓練中に大量の事実を「記憶」することができる。
質の高い証拠とされる2023年のメタ分析によれば、大規模言語モデルの創造性に目を輝かせる研究者はもちろん世界中に存在し、小規模言語モデルにはできないタスクで大規模言語モデルが創造的であると主張する学者もいるが、これは測定基準の選択によるものであり、創造性によるものではないことが示唆されている。異なる測定基準を選択した場合、大規模言語モデルの創造性の優位性は見られない可能性が示唆されている。
一般的に、LLMにツール(道具)を使わせるためには、ツールを使えるようにファインチューニングする必要がある。ツールの数が有限であれば、ファインチューニングは一度で済むかもしれない。オンラインのAPIサービスのようにツールの数が任意に増えるのであれば、APIの仕様書を読み取ってAPIを正しく呼び出せるようにLLMをファインチューニングすることができる。
より単純なツールの使用形態として、検索拡張生成(Retrieval Augmented Generation、RAG)があり、これはLLMを文書検索を使用して拡張するもので、ときにはベクトルデータベース(英語版)を使うこともある。クエリが与えられると、文書検索ツールが呼び出され、もっとも関連性が高い文書が取得される(通常、初めにクエリと文書をベクトルで符号化し、次にクエリベクトルにユークリッドノルムで最も近いベクトルを持つ文書を検索する)。その後、LLMは、クエリと取得した文書の両方に基づいて出力を生成する。