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

Semantic KernelでGPTと外部ツールを連携する

Semantic KernelでGPTと外部ツールを連携する

takashi1029

May 25, 2023
Tweet

More Decks by takashi1029

Other Decks in Technology

Transcript

  1. Copyright © Acroquest Technology Co., Ltd. All rights reserved.
    ChatGPT Meetup #2
    Semantic Kernelで
    GPTと外部ツールを連携する
    2023/05/25
    アクロクエストテクノロジー株式会社
    佐々木 峻
    1

    View full-size slide

  2. 今日話すこと
    Copyright © Acroquest Technology Co., Ltd. All rights reserved. 2
    1.ReActとは?
    2.Semantic Kernelとは?
    3.検索・要約ツールを実装してみる

    View full-size slide

  3. Copyright © Acroquest Technology Co., Ltd. All rights reserved. 3
    1. ReActとは?

    View full-size slide

  4. 1. ReActとは?
    Copyright © Acroquest Technology Co., Ltd. All rights reserved. 4
    ユーザーの入力をGPTが解釈して、実行は外部ツールを使用するという考え方
    「OpenAI APIの使い方について検索してまとめを教えて」
    考え:OpenAI API 使い方で検索する
    行動:検索
    search(“OpenAI API 使い方”)
    考え:検索結果をもとに要約する
    行動:要約
    summary(“<検索結果>”)
    GPT-3モデル 外部ツール
    考え:回答を得られたので終了
    行動:終了

    View full-size slide

  5. 1. ReActとは?
    Copyright © Acroquest Technology Co., Ltd. All rights reserved. 5
    考え:OpenAI API 使い方で検索する
    行動:検索
    search(“OpenAI API 使い方”)
    考え:検索結果をもとに要約する
    行動:要約
    summary(“<検索結果>”)
    GPT-3モデル 外部ツール
    考え:回答を得られたので終了
    行動:終了
    Reasoning=するべきことは何かを思考 Action=実際にアクションを実行する

    View full-size slide

  6. ReAct 何がうれしい?
    Copyright © Acroquest Technology Co., Ltd. All rights reserved. 6
    言語モデルだけではできない
    他ツールとの連携ができる!

    View full-size slide

  7. Copyright © Acroquest Technology Co., Ltd. All rights reserved. 7
    2. Semantic Kernelとは?

    View full-size slide

  8. 2-1. Semantic Kernelとは?
    Copyright © Acroquest Technology Co., Ltd. All rights reserved. 8
    ReActを活用したアプリケーションを実装できるライブラリ
    他によく使われるライブラリ

    View full-size slide

  9. 2-1. Semantic Kernelとは?
    Copyright © Acroquest Technology Co., Ltd. All rights reserved. 9
    1.言語はC# or Python
    2.Microsoft発のOSS
    3.ReActのアプリを簡単に実装できる

    View full-size slide

  10. 2-1. Semantic Kernelの動作イメージ
    Copyright © Acroquest Technology Co., Ltd. All rights reserved. 10
    Kernel
    Elasticsearch検索
    要約
    Skill
    「OpenAI APIの使い方について検索してまとめを教えて」
    Planner
    入力 “OpenAI APIの使い方”


    要約
    実行
    入力 ①の出力
    実行結果
    Semantic Kernel
    Elasticsearch検索
    実行

    View full-size slide

  11. 2-2. Semantic Kernelの概念
    Copyright © Acroquest Technology Co., Ltd. All rights reserved. 11
    Kernel
    • 処理全体を制御する。
    • Plannerという機能を使えば、Kernelに実行したいスキルを登録することで、ユーザー
    の入力文からどのスキルをどの順番に実行するかを決定して自動で実行できる
    Skill
    • 何を実行するかを実装する部分。Functionという部分に実行することと実装する。
    • Functionには以下の2種類ある
    • Semantic Function:プロンプトテンプレートを使ってLLMの回答を取得する
    • Native Function:プログラムの関数として実装される。

    View full-size slide

  12. 2-3. Planner
    Copyright © Acroquest Technology Co., Ltd. All rights reserved. 12
    ユーザーの入力から登録されているスキルをどの順番で実行するか計画を立てる。
    「GPTをアシスタントとして使うための情報があるか検索して要約してください」
    ※Python版にはまだ実装されていないので注意

    View full-size slide

  13. Copyright © Acroquest Technology Co., Ltd. All rights reserved. 13
    3. 実際に作ってみる

    View full-size slide

  14. 3. 作るもののイメージ
    Copyright © Acroquest Technology Co., Ltd. All rights reserved. 14
    Kernel
    Elasticsearch検索
    要約
    Skill
    「OpenAI APIの使い方について検索してまとめを教えて」
    Planner
    入力 “OpenAI APIの使い方”


    要約
    実行
    入力 ①の出力
    実行結果
    Semantic Kernel
    Elasticsearch検索
    実行

    View full-size slide

  15. 3. やること
    Copyright © Acroquest Technology Co., Ltd. All rights reserved. 15
    1.Skillを作成する
    2.Kernelを実装する
    3.実行してみる

    View full-size slide

  16. 3-1. Skillを作成する
    Copyright © Acroquest Technology Co., Ltd. All rights reserved. 16
    1. 入力を要約するSkill(Semantic Function)
    2. Elasticsearchに検索するSkill(Native Function)
    以下の2つのSkillを作成する

    View full-size slide

  17. 3-1-1. Semantic Functionsを作成する
    Copyright © Acroquest Technology Co., Ltd. All rights reserved. 17
    1.config.json
    2.skprompt.txt
    以下の2ファイルを用意する

    View full-size slide

  18. 3-1-1. config.txt
    Copyright © Acroquest Technology Co., Ltd. All rights reserved. 18
    関数とLLMのパラメータを定義する

    View full-size slide

  19. 3-1-1. config.txt
    Copyright © Acroquest Technology Co., Ltd. All rights reserved. 19
    関数とLLMのパラメータを定義する
    LLMが実行計画を作るときに
    この内容で判断する

    View full-size slide

  20. 3-1-1. skprompt.txt
    Copyright © Acroquest Technology Co., Ltd. All rights reserved. 20
    LLMへ入力するプロンプトのテンプレートを定義する

    View full-size slide

  21. 3-1-1. skprompt.txt
    Copyright © Acroquest Technology Co., Ltd. All rights reserved. 21
    LLMへ入力するプロンプトのテンプレートを定義する
    config.txtで定義した
    parameterの値が入る

    View full-size slide

  22. 3-1-2. Native Functionの実装
    Copyright © Acroquest Technology Co., Ltd. All rights reserved. 22
    処理内容を関数として実装する

    View full-size slide

  23. 3-1-2. Native Functionの実装
    Copyright © Acroquest Technology Co., Ltd. All rights reserved. 23
    処理内容を関数として実装する
    LLMが実行計画を作るときに
    この内容で判断する

    View full-size slide

  24. 3-1-3. Skillを配置する
    Copyright © Acroquest Technology Co., Ltd. All rights reserved. 24
    Namespaceで定義した
    値と合わせる。
    プロジェクト内にSkill用のディレクトリを作成する

    View full-size slide

  25. 3-2. Kernelを実装する
    Copyright © Acroquest Technology Co., Ltd. All rights reserved. 25
    まずはSkillを使えるようにする

    View full-size slide

  26. 3-2. Kernelを実装する
    Copyright © Acroquest Technology Co., Ltd. All rights reserved. 26
    まずはSkillを使えるようにする
    基本はtext-davince-003
    モデルを使用する

    View full-size slide

  27. 3-2. Kernelを実装する
    Copyright © Acroquest Technology Co., Ltd. All rights reserved. 27
    まずはSkillを使えるようにする
    Plannerもスキルの一つ
    なので登録が必要

    View full-size slide

  28. 3-2. Kernelを実装する
    Copyright © Acroquest Technology Co., Ltd. All rights reserved. 28
    まずは簡単な文章でPlannerを実行してみる

    View full-size slide

  29. 3-2. Kernelを実装する
    Copyright © Acroquest Technology Co., Ltd. All rights reserved. 29
    検索だけ実行する実行計画が出力される

    View full-size slide

  30. 3-2. Kernelを実装する
    Copyright © Acroquest Technology Co., Ltd. All rights reserved. 30
    2つのタスクが必要な文章を試してみる

    View full-size slide

  31. 3-2. Kernelを実装する
    Copyright © Acroquest Technology Co., Ltd. All rights reserved. 31
    検索→要約の流れで実行計画が出力される

    View full-size slide

  32. 3-3. 実行してみる
    Copyright © Acroquest Technology Co., Ltd. All rights reserved. 32
    実行計画を順番に実行して、最終的に以下の結果を得られる

    View full-size slide

  33. まとめ
    Copyright © Acroquest Technology Co., Ltd. All rights reserved. 33
    1. Semantic Kernelを使えばReActで簡単に実装できる
    2. Plannerで動的に実行計画を作成できる

    View full-size slide

  34. Copyright © Acroquest Technology Co., Ltd. All rights reserved. 34
    詳しくは以下のブログに書いているのでよければご覧ください
    https://acro-engineer.hatenablog.com/entry/2023/04/18/120000

    View full-size slide

  35. 35
    ご清聴ありがとうございました
    Copyright © Acroquest Technology Co., Ltd. All rights reserved.

    View full-size slide