全2072文字
自社システムにChatGPTをはじめとする生成AIの機能を導入するのは簡単ではない。例えばChatGPTのAPIを用いた簡易チャットボットを開発したとしても、実用性には課題が残る。現在のChatGPTは2021年9月までのデータで学習しているため、無料版のChatGPTでは「現在の日本の総理大臣は誰?」という質問をしても正しく答えられない。また長文を入力することができず、複雑な計算を行わせることも難しい。
こうした生成AIが苦手とする処理を補うフレームワークが注目されている。OSS(オープンソースソフトウエア)として提供されている「LangChain(ラングチェーン)」や「LlamaIndex(ラマインデックス)」などだ。他のシステムやサービスと連携し、生成AIを補う処理ができるようになる。
さまざまなモジュールが用意されているLangChain
LangChainには「Agent(エージェント)」「Prompt(プロンプト)」「Models(モデルズ)」「Memory(メモリー)」といったモジュールが用意されている。Pythonで記述したプログラムなどでこれらのモジュールを利用すれば、他のシステムやサービスと簡単に連携できる。
例えばAgentモジュールを利用すると、ChatGPTだけでは回答できなかった「現在の日本の総理大臣は誰?」といった問いに対してGoogle検索の結果を返せるようになる。GMOペパボの栗林健太郎取締役CTO(最高技術責任者)は「エージェントが外部サービスとのやり取りを代行できる。これにより、ChatGPTなどの大規模言語モデル(LLM)が知らない情報を取得できる」と説明する。
Agentモジュールを使えば、LLM機能を拡張できる
(出所:日経クロステック)
[画像のクリックで拡大表示]
Promptモジュールを使えば、受け取った入力値を基にプロンプトを生成したり、大量の教師データからプロンプトに入力するデータを選択したりできる。例えば「○○について教えてください」というテンプレートを作り、○○の部分を可変にしておく。こうすることで、利用者が入力した値を可変部分に当てはめてプロンプトをつくり、ChatGPTに問い合わせられる。
Modelsモジュールでは、さまざまなサービスが提供しているモデルを切り替えたり、組み合わせたりできる。このモジュールを使うことで、米OpenAI(オープンAI)が提供するGPT-4などのモデルと、他社が開発したモデルを組み合わせて利用できるようになる。またMemoryモジュールではChatGPTとのやり取り履歴を保存できる。過去のチャット内容などを引き継ぎたいときに便利だ。