3
3

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

LangchainのTool Callingについて紹介します

Posted at

先日、Langchainが”Tool Calling”という機能を正式にリリースしましたので、共有したいと思います。

1.Tool Callingとは

tool callingはAI-agentのコアになる機能で、LLMが外部ツールを使用することを指します。最初OpenAIから発表されて、当時は”function calling”という名前だったです。
(昨年11月に”tool calling”に変更され、それと同時に複数のツールを並行して呼び出せるようにもなりました。)

tool callingのメリットとしては、ツールを活用することでLLMができない作業もできるようになることです。
例えば、モデルにPythonを使った数式計算を行う関数(ツール)を提供し、そのツールに対して適切な説明を加えれば、モデルはそのコードを使って数学計算ができるようになり、LLMの計算能力の弱点を補うことができます。

2.Tool Callingの流れとイメージ

tool callingの処理の流れは、各ツールに詳細な説明用のprompt文を用意し、モデルがユーザーの指示とツールの説明文に基づいて、どのツールを使用するかを判断して処理を実行します。

例えば、ユーザーから「JSONの形式で質問に答えてほしい」というリクエストがあった場合、モデルは自動的にJSONparserというツールを呼び出して回答を生成します。また、「最新の論文情報を知りたい」という質問があれば、arXivなどの関連APIを呼び出して情報を取得します。

今回Langchainが発表した"tool calling"は、各モデルのこのようなツール呼び出しのプロセスを統一化しています。(これまで主要なLLM(chatgpt,gemini,claude,cohereなど)はそれぞれ独自のtool calling形式を持っており、入力、出力、パラメータの設定方法などもバラバラでした。)

ただし、tool callingが適切に機能するかどうかは、主にLLMの能力に依存しています。そのため、小規模なモデルではtool callingを活用することが難しい場合があります。そういった場合は、tool callingのデータを使ってモデルをファインチューニングする必要があります。(tool calling用のオープンソースデータはHugging Faceに多数あります。イメージとしては以下のようなものです。)

image.png

Langchainのgithubコミュニティで、他の人がファインチューニングした結果を見ると、およそ1万件程度のデータを使えば、7B規模のモデルでも特に問題なくtool callingを習得できるようです。私も最近ちょっと試してみたいと思います。

興味ある方:

3
3
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
3
3

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?