AI Fundamentals for AI-Assisted Development · Chapter 8

第8章 AIの能力を広げる

Type
Book
Edition
Version 1
Language
Japanese
Format
Web
Author
mars70
Chapter 8

モデル単体だけで仕事をしているとは限らない

第4章では、モデルがinputからoutputを生成する流れを見ました。

しかし、実際のAIサービスでは、モデルによるGenerationだけでは足りない仕事があります。

たとえば、

  • 現在のWeb情報を調べる
  • 文書群から必要な情報を探す
  • fileを読む
  • APIを呼ぶ
  • commandを実行する

といった仕事です。

第6章では、仕事に現在の外部情報や外部での実行が必要になる場合を整理しました。この章では、そのような能力をAIシステムがどのような仕組みで広げることがあるのかを見ます。そのためAIシステムには、モデル以外の機能が組み合わされることがあります。

この章では、次の五つを区別します。

Search
Retrieval
RAG
Tool Use
AI Agent

これらは同じものではありません。

Search

Search(検索)は、情報やdocumentなどの集合にqueryを与えて、目的に関係する情報や結果を探す処理・機能です。Web SearchはSearchの一例ですが、Search = Web Searchだけ ではありません。また、Search = GenerationSearch = Retrieval でもありません。

どこを、どの方法で検索するのかはsystemによって異なります。

Retrieval

Retrieval(情報取得)は、情報要求に関係するdocumentや情報を、collectionやindexなどから見つけて取り出すことです。SearchとRetrievalは密接に関係する場合がありますが、同義語ではありません。また、RetrievalはGenerationでもありません。

概念的には、次のように分けて考えられます。

必要な情報を探す・取り出す
        ↓
Retrieval

その情報などを使って文章を作る
        ↓
Generation

RAG

RAGは Retrieval-Augmented Generation の略です。日本語では検索拡張生成などと呼ばれます。RAGでは概念的に、

利用者の質問に応じて外部情報源から関連情報を取得し、質問と取得した情報を使って出力を生成するRAGの概念図
この図は理解のための概念図です。

のように、RetrievalとGenerationを組み合わせます。

この図は理解のための概念図です。

RAGを使った = 必ず正しい ではありません。Retrievalで得られた情報が不十分であったり、生成時に内容を誤って扱ったりすれば、誤った回答になることがあります。

Search・Retrieval・RAGを混ぜない

三つを並べると、次のようになります。

Search
→ 関係する情報を探す

Retrieval
→ 関係する情報を取り出す

RAG
→ Retrievalした情報をGenerationへ利用する考え方・構成

実際のsystemではこれらが組み合わされることがあります。しかし、用語としては分けて理解します。

Tool Use

AIシステムが外部のtoolを利用することもあります。たとえば、

  • Search
  • API
  • function
  • code execution
  • file操作

などです。これを広くTool UseTool Use(ツール使用)は、AIモデルやAIシステムが、検索、API、関数、コード実行などの外部ツールを利用して、情報取得や処理、操作を行う仕組み・能力です。モデルがツール利用の要求を生成することと、外部のツールが実際に実行されることは同じではなく、Tool UseがFunction Callingだけを意味するわけでもありません。 → Function Calling、AI Agentとして扱うことがあります。ここで重要なのは、

モデルがtool利用を要求した
        !=
toolが実際に実行された

という点です。モデルが「このfunctionを呼び出してください」という構造化されたoutputを生成したとしても、それは実行requestです。実際のtool invocationとは別です。

Request・Execution・Result・Explanation

Tool Useを理解するときは、次の四つを分けると分かりやすくなります。

1. modelがtool requestを生成
        ↓
2. external toolが実行
        ↓
3. tool resultが返る
        ↓
4. AIがresultを説明

これらは別の状態です。特に、request != executionresult != AI explanation です。

AIが「実行しました」と文章で報告したことと、tool executionのartifactがあることも同じではありません。

Function Calling

Function Callingは、モデルがあらかじめ定義されたfunctionやtoolを使うために、function名やargumentなどを構造化してoutputする仕組みです。しかし、Function Calling output = function execution ではありません。

実行するのは、モデルの外側にあるsoftwareやsystemである場合があります。

したがって、Function Callingを確認するときも、

  • request
  • invocation
  • result

を分けます。

AI Agent

AI AgentAI Agent(AIエージェント)は、ある目標や課題に対して、モデルなどを使って状況を判断し、必要に応じて複数の手順やTool Useを組み合わせながら処理を進めるAIシステムです。すべてのLLMアプリケーションやチャットボットがAI Agentであるわけではなく、AI Agentであることが完全な自律性を意味するわけでもありません。 → Tool Use、LLM、Agentic AIという言葉もよく使われます。この本では、AI Agentを、

あるgoalやtaskに対して、modelなどを使いながら、必要に応じて複数のstepやTool Useを組み合わせて処理を進めるAI system

として理解します。

たとえば、

goal
 ↓
状況を確認
 ↓
次のactionを決める
 ↓
Toolを使う
 ↓
resultを受け取る
 ↓
次のactionを決める

といった処理が関係する場合があります。これはAgentの処理を考える一例です。

AI AgentはLLMそのものではない

ここでも重要なのは非同義性です。AI Agent != LLMAI Agent != Tool UseだけAI Agent != Chatbot全部 です。

AI Agentにはmodelが使われる場合がありますが、Agentという概念はsystem-levelの概念です。

また、Toolを一回使っただけで必ずAgentになるとも限りません。

Agentだから完全自律とは限らない

AI Agentという言葉から、「人間なしで何でも自律的にできるsystem」を想像することがあります。しかし、AI Agent = 完全自律 ではありません。

Agentの自律性、権限、実行できるaction、Human approvalの必要性はsystemによって異なります。

Agentic AIという言葉も、自律的なplanningやTool Useなどを強く含む表現として使われますが、用語の範囲には幅があります。

Tool accessは能力だけでなく影響範囲も広げる

Toolを使えるようになると、AI systemはmodel outputだけではできなかったことを実行できるようになります。たとえば、

読む
検索する
APIを呼ぶ
書き換える
実行する

といったactionです。しかし、外部世界へ作用できるようになるということは、確認すべき範囲も増えるということです。回答を生成する ことと、外部状態を変更する ことは同じではありません。

ToolやAgentの安全性については、第10章で改めて扱います。

見えないpipelineを作り上げない

Search、Retrieval、RAG、Tool、Agentという言葉を知っても、特定AIサービスの非公開内部構造が分かるわけではありません。たとえば、

Searchしたはず
↓
必ずVector DBを使ったはず
↓
Chunkingして
↓
Embeddingを作って
↓
このreranking algorithmを使ったはず

というように、一般的な実装例を特定systemの事実へ変換してはいけません。公開Evidenceがない部分は UNKNOWN / UNDISCLOSED のままです。

この章のまとめ

Search != Retrieval != Generation
Retrieval != RAG
RAG != correctness guarantee
Tool request != Tool execution
Tool result != AI explanation
AI Agent != LLM
AI Agent != complete autonomy
  • Searchは関係する情報を探す機能
  • Retrievalは関係する情報を取得する概念
  • RAGはRetrievalした情報をGenerationに利用する考え方
  • Tool Useではrequest・execution・result・explanationを分ける
  • Function Calling outputと実際のfunction executionは同じではない
  • AI Agentはsystem-levelの概念でありLLMそのものではない
  • Agentだから完全自律とは限らない
  • Tool accessは能力と同時に外部への影響範囲も広げる
  • 公開されていない内部pipelineは推測で埋めない

次の章では、こうしたmodelやAI systemが、実際にはどのような物理的な環境で動いているのかを見ていきます。