呼び出し機能

関数呼び出しにより、言語モデルは、関数呼び出しを指定する構造化された出力を生成し、APIやその他のシステムとの相互作用を可能にすることによって、外部ツールを使用することができます。

関数呼び出しは、大規模言語モデル(LLM)が外部ツールやAPIと対話できるようにする技術です。LLMは、単にテキストを生成するのではなく、呼び出す関数とその引数を指定するJSONなどの構造化データを生成するように訓練されています。これにより、LLMはタスクを委任し、情報を取得し、固有のテキスト生成能力を超えたアクションを実行できます。このプロセスには通常、説明と入出力スキーマを持つ一連の関数を定義することが含まれ、LLMはそれらを使用して適切な呼び出しを生成できます。これにより、LLMの有用性が拡張され、外部データやアクションを必要とするワークフローやアプリケーションに統合できるようになります。

        graph LR
  Center["呼び出し機能"]:::main
  Pre_logic["logic"]:::pre --> Center
  click Pre_logic "/terms/logic"
  Rel_api["api"]:::related -.-> Center
  click Rel_api "/terms/api"
  Rel_chain_of_thought["chain-of-thought"]:::related -.-> Center
  click Rel_chain_of_thought "/terms/chain-of-thought"
  Rel_function["function"]:::related -.-> Center
  click Rel_function "/terms/function"
  classDef main fill:#7c3aed,stroke:#8b5cf6,stroke-width:2px,color:white,font-weight:bold,rx:5,ry:5;
  classDef pre fill:#0f172a,stroke:#3b82f6,color:#94a3b8,rx:5,ry:5;
  classDef child fill:#0f172a,stroke:#10b981,color:#94a3b8,rx:5,ry:5;
  classDef related fill:#0f172a,stroke:#8b5cf6,stroke-dasharray: 5 5,color:#94a3b8,rx:5,ry:5;
  linkStyle default stroke:#4b5563,stroke-width:2px;

      

🧠 理解度チェック

1 / 3

🧒 5歳でもわかるように説明

それは、単に推測するのではなく、とても賢いアシスタントに特定の(関数という)本の中から何かを調べて答えを教えてもらうようなものです。

🤓 Expert Deep Dive

LLMにおける関数呼び出しは、純粋なテキスト生成からエージェント的な振る舞いへのパラダイムシフトを意味し、LLMが外部計算リソースのオーケストレーターとして機能することを可能にします。アーキテクチャ的には、LLMが構造化予測を実行し、関数シグネチャと引数を表す事前定義されたスキーマを出力する能力に依存します。このスキーマは通常、開発者によって定義され、LLMに利用可能な「ツールセット」を提供します。このプロセスでは、LLMがユーザーの自然言語クエリを解析し、意図を特定し、それを利用可能な関数にマッピングします。その後、スキーマに準拠したJSONオブジェクトを生成し、関数名と引数を指定します。これらはしばしば、プロンプトからのエンティティ抽出とスロットフィリングによって導き出されます。別の実行レイヤー(「ツールランナー」または「エージェントフレームワーク」)がこのJSONを傍受し、検証してから、対応する外部APIまたはコードを呼び出します。ツールの戻り値はLLMのコンテキストにフィードバックされ、最終的な応答を合成したり、さらに関数呼び出しを連鎖させたりすることが可能になります。このメカニズムは、LLMの応答をリアルタイムデータに根ざし、複雑で多段階の操作を可能にすることで、LLMの有用性を大幅に向上させます。トレードオフとしては、関数呼び出しメカニズムを標的としたプロンプトインジェクション攻撃の可能性、ツール定義とエラーハンドリングの管理の複雑さ、実行ループの計算オーバーヘッドが挙げられます。多数のツールや曖昧な名前のツールがある場合に、LLMが意図を正しい関数と引数に正確にマッピングできるようにすることは、重要な課題です。このマッピング精度を向上させるために、Few-shot学習やファインチューニングといった技術が用いられます。

🔗 関連用語

前提知識:

📚 出典