Upgrade to Pro — share decks privately, control downloads, hide ads and more …

AssistantsAPI.pdf

 AssistantsAPI.pdf

More Decks by AIxIoTビジネス共創ラボ

Transcript

  1. Azure OpenAI の 注目機能をご紹介! - Assistants API 編 Takashi Okawa

    Partner Solution Architect Microsoft Japan Co., Ltd. 2024/03/17
  2. What’s Assistants API ?  独自のアプリケーション内で AI アシスタントを構築するための API 

    モデル、ツール、知識を活用してユーザーのクエリに応答できる それって今までも できてなかったっけ…?
  3. Assistants API 以前 / 以後…  Assistants API がない世界 

    基本的にはオーケストレーターを自力実装  モデルを思考エンジンとして利用  知識は外部データベースから取得  使うべき知識は Embedding などで自力検索  外部ツールを使う判断も自前実装  状態管理も自分で頑張る  Semantic Kernel / LangChain 頑張る  Assistants API がある世界  エージェントを作るための基本機能は内包  グラウンディングのためのデータの読み込み  データの永続化  呼び出すべき外部ツールの選定  目的を達するためのコードの自動生成 頑張れば ステートフルかつ 外部データ連携のある エージェントを作れる 頑張らなくても ステートフルかつ 外部データ連携のある エージェントを作れる
  4. Chat Completions API vs. Assistants API  Chat Completions API

     軽量でパワフル  本質的にステートレス  Assistants API  ステートフル (組み込みの会話状態管理)  永続スレッドへのアクセス  複数の形式のファイルにアクセス  チャンク化  Embedding の保存と作成  ベクトル検索  モデルのコンテキストウィンドウの自動管理  複数のツールに並行してアクセス  アシスタントあたり最大128ツール  コードインタープリターを含む  関数呼び出しを使用して独自のツールを構築
  5. Assistants API を使うとうれしいこと  Copilot にステートフルネスを簡単に導入  単一の API を使用して、強力でステートフルな

    Copilot とエージェントのようなエクスペリエンスを構築可能  開発工数の削減  状態、コンテキストウィンドウ、チャットスレッド、取得、コード実行、外部拡張機能は API の機能  オーケストレーターで頑張る必要がなくなる  強力なネイティブツールと 3rd party 拡張性  強力な組み込みツールに並行してアクセス可能  コードインタープリター  知識検索  関数呼び出しによる外部拡張機能など
  6. Before Assistants な Copilot の姿 Plugin extensibility Copilots Apps AI

    orchestration Foundation models AI infrastructure Semantic Kernel や LangChain で 頑張って作ってた
  7. Before Assistants な世界で何かアシスタントを作るとしたら? Orchectrator • アシスタントの設定 • 状態管理 • コンテキストの管理

    • 外部ツールの呼び出し Chat Completions API 外部ツール LLM モデル ここら辺自前実装しなければいけない部分。
  8. Microsoft Copilot Extensibility Copilots Instructions (Meta Prompt) Function Calling Code

    Interpreter Foundation models AI infrastructure Knowledge Retrieval Apps AI orchestration Assistants Stack Built-in safety system and responsible AI tools
  9. with Assistants な世界で何かアシスタントを作るとしたら? Assistants API 外部ツール LLM モデル アシスタントに必要な機能を Assistants

    API が内包・抽象化している Assistant Thread Run Code Interpreter Function Calling Knowledge Retrieval
  10. Assistants を作るにあたり必要な情報  アシスタントの名前  アシスタントへの指示 (instruction)  アシスタントの定義や目的 

    Completion API でいうところの System Message に近い役割  アシスタントが利用可能なツールのリスト  アシスタントが利用するモデル
  11. Assistants API で取り扱うオブジェクト  Assistants API に固有のオブジェクトについて以下に列挙 オブジェクト名 説明 Assistant

    OpenAI のモデルに関する設定や利用可能なツールのリスト、利用するファイルなどを格納する箱 Thread アシスタントとユーザーの会話セッションのオブジェクト 会話は最大トークン長に収まるように自動的に切り捨てが行われる Message アシスタントもしくはユーザーによって作られたメッセージそのもののオブジェクト テキスト・画像・その他のファイルを含めることが可能 Run Thread からアシスタントを呼び出すためのオブジェクト Run に含まれる構成情報とメッセージを基に、Assistant はモデルとツールを実行する Run Step Assistant が Run で実行したステップの詳細リスト この中にアシスタントがどのように思考して最終的な結果に至ったかが含まれている
  12. Assistants API が課題解決のために使うツール  Azure OpenAI にてホストされているツール  Code Interpreter

     AOAI にホストされたサンドボックス環境で Python コードを実行可能  アシスタントにコードを自動生成させて結果を得ることも可能  ユーザーがアップロードしたファイルを Python コードで分析させて画像としてプロットするなどの用途も可能  Knowledge Retrieval  アップロードしたファイルをデータソースとして RAG (Retrieval Augmented Generation) を行う方法  外部の API  Function Calling  ReAct でいうところの “Reasoning” にあたるツール  ツールで指定した外部の API のリストの中から、ユーザーの目的を達するために必要なものの推論、選択、引数生成を実行  最終的な外部ツールの実行は Assistants API の機能の中にはない  ユーザー自身で API を叩いて、その結果をまた Assistants API に教える必要がある
  13. 自力で試してみるために必要な Azure リソース  (今のところ Assistants が有効化されている)特定リージョンの AOAI  米国東部

    2、オーストラリア東部、スウェーデン中部  Assistant に対応した GPT モデルのデプロイメント  お勧めは GPT-4, GPT-3.5-turbo の 1106 モデル
  14. Assistant Playground  Azure OpenAI Studio を開く  左側のメニューから「アシスタント(プレビュー)」を選択 

    ここで対応していないリージョンの AOAI だと警告画面に遷移する  その場合、対応したリージョンのデプロイメントに切り替える  アシスタントのセットアップとチャットの画面が開いたら OK
  15. Assistant Playground の初期設定  アシスタント名  手順  ここに System

    Message にあたる指示を書く  デプロイ  ここで利用する GPT のモデルを選択  関数  ここで Function Calling の定義を追加  コードインタープリター  このチェックを有効化するとツールとして利用可能  ファイル  Assistant が使うファイルをアップロード
  16. Code Interpreter を使ってみた例 TeX 形式で数式を入力し その清書を Code Interpreter に依頼 Code

    Interpreter が バックグラウンドでコード生成 入力された式が マクローリン展開の例であることを理解 式を最終的に清書して描画
  17. Assistants API の先にあるもの – マルチエージェント チャット Your Copilots Proxy Agent

    出張予約用アシスタント 経費精算用アシスタント 名刺管理用アシスタント 旅行サイト API 経費精算 API 名刺管理API 来月の神戸出張 の予約をしたい
  18. 1bit LLM を使うと嬉しいこと  浮動小数点演算 to 整数演算  行列の演算が加減算の処理のみで成立するようになる 

    CPU で行うにはコストの高い計算が不要になる  つまり GPU が不要となる可能性?!  値を高々 2bit で表現できるようになる  メモリー利用効率の向上 乗算回路 = シフト回路 + 加算回路 加算回路 = 単純な AND,OR,NOT で 構成可能な論理回路 加算回路だけで構成可能な LLM 専用ハードウェアの登場の可能性!?