$30 off During Our Annual Pro Sale. View Details »

ChatGPTの10ヶ月と開発トレンドの現在地

Hirosato Gamo
September 29, 2023

 ChatGPTの10ヶ月と開発トレンドの現在地

9/28の #日本CTO協会 さんのイベントで登壇した資料を公開しました。
「ChatGPTの10ヶ月と開発トレンドの現在地」
開発のトレンドの最新情報をざっくり纏めています。
・Prompt Engineering開発の現在地
・RAG開発の現在地
・Plugin開発の現在地
・GPT-Vの登場と生成AI時代のこれからについて

やや開発者寄りな内容なので、基礎を知りたい場合はAzure OpenAI大全も併せてご確認を。
(こっちも近々最新化します…)
https://speakerdeck.com/hirosatogamo/chatgpt-azure-openai-da-quan

Hirosato Gamo

September 29, 2023
Tweet

More Decks by Hirosato Gamo

Other Decks in Technology

Transcript

  1. 1
    ChatGPT の 10ヶ月 と開発トレンドの現在地
    ※解釈しやすいよう抽象度の高い表現をしている箇所や個人的な見解を含みます。Microsoftサービスについての正確な情報は公式ドキュメントをご参照ください。
    Hirosato Gamo (Microsoft Cloud Solution Architect)

    View Slide

  2. 2
    WHO AM I ?
    @hiro_gamo
    Azure OpenAI Champ
    元データサイエンティスト。データ基盤、エンタープライズブロックチェーンサービス
    構築など経験し、現在はAI/MLシステム開発の技術支援に従事。
    HIROSATO GAMO
    Microsoft Japan Co., Ltd.
    Cloud Solution Architect (Data & AI)
    About me
    『ChatGPTによって描かれる未来とAI開発の変遷』webセミナー|IT勉強会・イベントならTECH PLAY[テックプレイ]
    20230421_DS協会のChatGPTセミナーが凄かった件(大城、正式版、4/23、4/24更新)|ChatGPT部
    Produced by NOB DATA (note.com)

    View Slide

  3. 3
    ChatGPT - Azure OpneAI の基本事項を解説した150ページの大全を公開中
    ChatGPT - Azure OpenAI 大全 - Speaker Deck

    View Slide

  4. 4
    ChatGPT 登場から10ヶ月…
    2022/11
    ChatGPT の登場
    OpenAI社からUIサービスとして発表。
    瞬く間に生成AIモメンタムが加速。
    プロンプトエンジニアリングの
    テクニックに関する議論が各所で話題に。
    2023/2
    Bing Chat
    検索を組み合わせて情報の精度を
    高めたチャットサービス。検索した
    情報を付与する「Grounding」と
    いう考え方が定着し、
    これを実現するRAGアーキテクチャ
    の浸透が加速。
    2023/3
    GPT-4 / Plugin
    GPT-4+Plugin の仕組みを使った
    他サービスや機能との連携により、
    GPT で実現可能な機能領域が大
    幅に拡大。
    2023/6
    Function Calling
    API を使った Plugin 呼び出し機能
    とも呼べる Function Calling が
    リリース。関数の定義をプロンプトと
    共に渡すことで、プロンプトから必要
    パラメータを抽出し JSON で応答する。
    2023/8
    Fine tuning
    待望の ChatGPT モデルの
    Fine tuning がリリース。
    会話トーンの変更や Few-shot
    Learning のトークン消費を抑える
    用途で用いられる。
    2023/9
    ChatGPT アプリに新UX
    GPT-4V, Whisper などを
    組み込んだ画像・音声・文字での
    新しいユーザインタフェースを公開。

    View Slide

  5. 5
    Prompt Engineering の現在地

    View Slide

  6. 6
    Prompt Processing※
    プロンプト自体の情報が足りない場合や、AIに解釈しづらい場合に
    プロンプトの与え方を変えるなどの加工処理。
    ※本資料での独自名称
    Few-shot Learning
    プロンプトに問いに対する回答例をいくつか提示し、
    回答形式や振る舞いをプロンプトで学ばせる手法。
    数個レベルの例示でも精度向上が見られることがある。
    ReAct
    内部情報からの言語的な生成だけでなく、プロンプトから必要なタスクを動的に認識させ、
    検索や計算など外部APIを活用した情報を取得し、その情報を付加して回答を返すプロ
    ンプティング。Agentの実装で主として用いられる。
    Chain of Thought
    (CoT)
    大規模言語モデルにおいては、段階的に考える工程を与えることで
    難しい問題でも解決ができるようになる性質。
    ReActやSelf ConsistencyもCoTの考え方を継承している。
    Recursively Criticizes
    and Improves (RCI)
    GPTの出力をGPT自身に吟味させて、修正させる考え方。
    繰り返し実行することで出力がブラッシュアップされる。
    特にプログラミングコードなどが動作するように用いられることが多い。
    Prompt Engineering の基本概念

    View Slide

  7. 7
    Prompt Engineering は基本概念をベースに発展中
    ReAct
    Chain of Thought
    (CoT)
    Recursively Criticizes
    and Improves (RCI)
    CoT を並列化させてアンサンブルすることで精度を高める CoT-SC
    CoT を並列化したあとにどの思考プロセスが適切か自己評価させる ToT
    問題解決をアルゴリズム指定することで効率化させる AoT
    CoT-SC, ToT, AoTなどの発展形が登場
    一旦回答を生成しつつ、その検証方法をGPTに検討させ、その問いに対して再度回答
    を生成し、結果を加味して最終回答を出す Chain-of-Verification が Meta から発
    表。再帰的修正という意味合いもあれば CoT のような側面もある。
    CoVe など RCI+CoT で高性能
    Agentの実装はReActが主流であるが、
    Semantic Kernel の Planner では最初に実行計画を作成した上で、それに基づいた
    行動選択をする。
    Agent 実行計画を立てる Planner も登場
    [2309.11495] Chain-of-Verification Reduces Hallucination in Large Language Models (arxiv.org)
    ChatGPTで戦略的な深読みができるTree of Thoughts (ToT)プロンプト実演|VERSAROC (note.com)
    AoTとは、少ないトークン数で高い精度の回答を得るプロンプトエンジニアリング|VERSAROC (note.com)
    LLMの出力から誤り(ハルシネーション)を減らす新手法『CoVe(Chain-of-Verification)』と実行プロンプト | AIDB (aiboom.net)
    Python版 Semantic Kernelのプランナーを理解しよう。~実装を通して学んだことの備忘録~ - Qiita

    View Slide

  8. 8
    複数 GPT の連携 ~AIワークフロー開発という概念~
    Input
    ツール判別・入力情報生成
    Web検索 画像生成
    回答生成
    ツール判定結果
    GPT
    GPT
    回答生成
    画像生成
    Web検索
    タスク、InputのJSON
    検索結果 生成画像
    参考:Baby AGIのパイプライン@yoheinakajima
    DALL-E2
    bing Search
    入力
    検索結果
    入力
    画像
    # User_input {User_input}
    # tool
    - Image_gen: <ツールの役割、Inputパラメータなどの情報>
    - Web_Search: <ツールの役割、Inputパラメータなどの情報>
    # instruction User_inputに書かれた目的を達成するために必要なtoolを選択し、そのInput
    パラメータを出力してください
    # Question {User_input}
    # Search_Result {Search_result}
    # instruction Search_Resultの結果を踏まえてQuestionへ返答してください。
    ※ プロンプトはかなり簡易化しています
    Prompt
    Prompt

    View Slide

  9. Public Preview
    Azure Machine Learning
    “Prompt flow”
    Customer Benefits
    • AIワークフローを可視化しながら開発
    • 実際のチャットでのシミュレーションが可能
    • エンドポイントをノーコードで生成
    • 事前構築済の指標で AI ワークフロー の品質を評価
    • VS Codeでも利用可能

    View Slide

  10. 10
    GPT の知識獲得の現在地

    View Slide

  11. 11
    Retrieval Augmented Generation (RAG) アーキテクチャ
    検索結果を元にLLMが回答することで問いかけに対してより正確な回答を返すためのアーキテクチャ
    Storage
    Doc A のテキストほか
    JSON①
    Doc A のテキストほか
    JSON②
    Doc A のテキストほか
    JSON③ Doc A
    Doc B のテキストほか
    JSON①
    Doc B のテキストほか
    JSON②
    Doc B のテキストほか
    JSON③
    Doc B
    Cognitive Search
    チャンク
    格納


    Index化
    (検索可能に)
    具体的には本文のテキスト(ベクトル化することも)、
    メタ情報、元ファイルの格納先情報など
    チャンク
    格納
    事前にドキュメントの
    分割(チャンク)し格納

    View Slide

  12. 12
    Retrieval Augmented Generation (RAG) アーキテクチャ
    検索結果を元にLLMが回答することで問いかけに対してより正確な回答を返すためのアーキテクチャ
    Storage
    Doc A のテキストほか
    JSON①
    Doc A のテキストほか
    JSON②
    Doc A のテキストほか
    JSON③ Doc A
    Doc B のテキストほか
    JSON①
    Doc B のテキストほか
    JSON②
    Doc B のテキストほか
    JSON③
    Doc B
    Cognitive Search
    チャンク
    格納


    Index化
    (検索可能に)
    具体的には本文のテキスト(ベクトル化することも)、
    メタ情報、元ファイルの格納先情報など
    チャンク
    格納
    2023年のWBC優勝国はどこ?
    ユーザ
    事前にドキュメントの
    分割(チャンク)し格納
    アプリケーション
    バックエンド
    プログラム
    GPT
    質問+クエリ化
    プロンプト

    View Slide

  13. 13
    Retrieval Augmented Generation (RAG) アーキテクチャ
    検索結果を元にLLMが回答することで問いかけに対してより正確な回答を返すためのアーキテクチャ
    Storage
    Doc A のテキストほか
    JSON①
    Doc A のテキストほか
    JSON②
    Doc A のテキストほか
    JSON③ Doc A
    Doc B のテキストほか
    JSON①
    Doc B のテキストほか
    JSON②
    Doc B のテキストほか
    JSON③
    Doc B
    Cognitive Search
    チャンク
    格納


    Index化
    (検索可能に)
    具体的には本文のテキスト(ベクトル化することも)、
    メタ情報、元ファイルの格納先情報など
    チャンク
    格納
    2023年のWBC優勝国はどこ?
    ユーザ
    事前にドキュメントの
    分割(チャンク)し格納
    アプリケーション
    バックエンド
    プログラム
    GPT
    クエリを基に
    ベクトル検索など

    View Slide

  14. 14
    Retrieval Augmented Generation (RAG) アーキテクチャ
    検索結果を元にLLMが回答することで問いかけに対してより正確な回答を返すためのアーキテクチャ
    Storage
    Doc A のテキストほか
    JSON①
    Doc A のテキストほか
    JSON②
    Doc A のテキストほか
    JSON③ Doc A
    Doc B のテキストほか
    JSON①
    Doc B のテキストほか
    JSON②
    Doc B のテキストほか
    JSON③
    Doc B
    Cognitive Search
    チャンク
    格納


    Index化
    (検索可能に)
    具体的には本文のテキスト(ベクトル化することも)、
    メタ情報、元ファイルの格納先情報など
    チャンク
    格納
    2023年のWBC優勝国はどこ?
    ユーザ
    事前にドキュメントの
    分割(チャンク)し格納
    アプリケーション
    バックエンド
    プログラム
    GPT
    質問+検索結果+
    回答プロンプト

    View Slide

  15. 15
    知識の獲得のメイン手法は依然として RAG が優先
    コスト ①GPU学習コスト ②テキスト生成時トークン処理コストの割増
    ③Fine tuned Model専用エンドポイント稼働費
    ①検索エンジン利用料
    ②トークンの肥大化による毎リクエストのコスト増
    RAG
    Fine tuning
    リソース調達 GPUの確保が必要 比較的容易
    技術 ニューラルネットワークの学習の知見が必要 チャンクチューニング、Vector検索、Promptingの知識が必要
    回答精度の確保 やや手間や技術が必要 比較的手軽
    推奨用途 ①トーンの変更 ②タスク精度の強化
    ③出力形式の固定化 ④トークンの節約
    知識やロジックの獲得
    生成速度 トークン処理量減少のため高速 検索へのアクセスやプロンプトのトークン増などで比較的低速
    時間 データセットのサイズに依存し数分~数時間
    数秒~
    (検索エンジンへのデータ取り込みとして)
    ※ データやタスクにも依存するのであくまで目安です。また、GPTのAPIに限った比較であり、LLM全般に当てはまるものではありません。

    View Slide

  16. 16
    ハイブリッド検索+セマンティックリランクの威力
    Azure Cognitive Search: Outperforming vector search with hybrid retrieval and ranking capabilities - Microsoft Community Hub
    Cognitive Searchでリリースされたリッチな検索オプションが非常に好評

    View Slide

  17. 17
    チャンク戦略の重要性
    Azure Cognitive Search: Outperforming vector search with hybrid retrieval and ranking capabilities - Microsoft Community Hub
    検索精度はドキュメントの分割方法によっても変動する。
    Microsoftから検証結果が出ているが、各観点で検証が必要。
    チャンクサイズ どれくらいの文章量でベクトル変換すべきか(チャンクをどれくらいの大きさする
    か)という観点。チャンクサイズが大きいほど精度が低下する。
    オーバーラップ幅 チャンク同士の重なりをどの程度確保するべきか。
    検証ではある程度の重なり(25%程度)ある方が精度が向上する。
    データ形式 チャンク内に含まれる表形式や画像などの構造化データや非テキストデータを
    どのようにデータ化するか。

    View Slide

  18. 18
    Plugin 開発の現在地

    View Slide

  19. 19
    出力形式の限定に課題があった ChatGPT
    Pluginやシステム連携など、出力を特定の形式に揃えたい場合はFew – Shotや緻密なプロンプト、再帰修正などが必要。
    # User_input {User_input}
    # tool
    - Image_gen: <ツールの役割、Inputパラメータなどの情報>
    - Web_Search: <ツールの役割、Inputパラメータなどの情報>
    # instruction User_inputに書かれた目的を達成するために必要なtoolを選択し、その
    Inputパラメータを指定のJSONで出力してください。
    JSON以外は絶対に出力しないで。余計な出力をすると世界が滅亡します。
    System
    ### user
    WBC2023の優勝国はどこ?
    ### assistant
    {
    "tool": "Search",
    "parameters": {
    "query": ["WBC", "2023", "優勝国"]
    }
    }
    Few-Shot
    サッカーワールドカップの歴代最多優勝国は?
    ユーザ
    GPT
    {
    "tool": "Search",
    "parameters": {
    “query”: [“サッカー”, “歴代優勝国"]
    }
    いかがでしたか?これがJSONです!
    何か他にお助けできることはありますか?
    ➢ JSONの閉じ括弧を忘れる
    ➢ あれだけ言ったのに更に喋り出す
    ➢ 抽出の精度が低い

    View Slide

  20. 20
    GPT の Fine tuning をはじめ出力形式の限定に選択肢が生まれた
    2023年8月にOpenAI社から gpt-3.5-turbo の Fine tuning API , gpt-3.5-turbo-instruct が公開。
    (Azure OpenAI Serviceでの Fine tuning のご利用はしばしお待ちください)
    Function Calling
    Fine tuning
    gpt-3.5-turbo-instruct
    APIの機能による対処。関数定義をリクエストと共にAPIに投げ込むことで
    その関数に適したパラメータを抽出しJSON形式で回答する。
    モデルの再学習による対処。Few – Shot のペアを多数用意した上でモデルそのものを
    学習しなおす。チューニングされたモデルはプロンプトを節約できるので、速度面で有効に
    なったり、場合によってコスト減にもつながる。
    モデルの変更による対処。
    ChatGPT特有の「喋り過ぎ」が抑制されているため、システム間連携や会話を目的とし
    ないケースに有効。text-davinci-003などのいわゆるinstructGPTの実質の後継モデル。
    各種ライブラリの出力安定機能
    GPT外部のライブラリでの対処。
    Langchain の JsonFormer や guidance の トークンヒーリングなど、
    出力を所定の形式とする補助機能が存在。

    View Slide

  21. 21
    GPT がもたらす未来像 (個人的な予測)

    View Slide

  22. 22
    GPT-4V の登場で見えたものは何なのか
    ChatGPT can now see, hear, and speak (openai.com)
    OpenAI社からGPT-4Vが発表されたが、「GPT-4V」ではなく see,hear,speak という表現を使っている。
    単に技術を紹介したいのではなく、あくまでAGIの未来像、未来のUXのコンセプトを示しているように見える。

    View Slide

  23. 23
    長きに渡り君臨した「テキスト入力UI」を覆すサービスの登場を、世界は待っている
    スマートフォンやパソコンを使いテキスト入力が常に求められる生活さえも、 AIはいずれ根本から変えてしまうかもしれない。
    従来のサービス
    ユーザ
    ユーザはテキスト入力を前提に
    OS・デバイス・アプリが設計されている。
    アプリ
    デバイス
    OS
    テキスト
    入力
    ※このページは完全に個人的な予想です。

    View Slide

  24. 24
    長きに渡り君臨した「テキスト入力UI」を覆すサービスの登場を、世界は待っている
    スマートフォンやパソコンを使いテキスト入力が常に求められる生活さえも、 AIはいずれ根本から変えてしまうかもしれない。
    従来のサービス Copilot or AI機能追加
    ユーザ
    ユーザはテキスト入力を前提に
    OS・デバイス・アプリが設計されている。
    テキスト入力を前提に補助的に
    OSやアプリへAIを導入。
    (かなり便利だがテキスト入力はやや大変)
    アプリ
    デバイス
    OS
    ユーザ
    アプリ+AI
    デバイス
    OS
    GPT
    テキスト
    入力
    テキスト
    入力
    ※このページは完全に個人的な予想です。

    View Slide

  25. 25
    AI前提UI
    デバイス・OS
    長きに渡り君臨した「テキスト入力UI」を覆すサービスの登場を、世界は待っている
    スマートフォンやパソコンを使いテキスト入力が常に求められる生活さえも、 AIはいずれ根本から変えてしまうかもしれない。
    従来のサービス Copilot or AI機能追加 AGI ネイティブ UX
    ユーザ
    ユーザはテキスト入力を前提に
    OS・デバイス・アプリが設計されている。
    テキスト入力を前提に補助的に
    OSやアプリへAIを導入。
    (かなり便利だがテキスト入力はやや大変)
    人間とデバイスを繋ぐメインUIが
    AIへのマルチモーダル入力に置き換わる前提で
    アプリのアーキテクチャが再構築。より自然に、
    手を動かさずデバイスと対話可能な世界へ。
    アプリ
    デバイス
    OS
    ユーザ
    アプリ+AI
    デバイス
    OS
    GPT
    ユーザ
    AIネイティブ
    アプリ
    GPT
    テキスト
    入力
    テキスト
    入力
    Vision
    Text
    Voice
    ※このページは完全に個人的な予想です。

    View Slide

  26. 26
    Microsoft の音声サービスラインナップも今後注目
    VALL-E X (Text to Speech)
    Whisper on Azure AI Speech
    OpenAIの音声認識モデルWhisperを強化。
    話者識別・タイムスタンプ・バッチ処理などを追加。
    MicrosoftのTTS技術。スピーカーの1発話の音声でパー
    ソナライズされた音声を合成。クロスリンガル音声合成や
    音声間翻訳タスクを実現。
    OpenAI Whisper is Coming Soon to Azure OpenAI Service and Azure AI Speech - Microsoft Community Hub
    Introducing Whisper (openai.com)
    VALL-E (X): Vall-e (microsoft.com)

    View Slide

  27. 27
    Microsoft エンジニアによる生成 AI 技術支援サービスが発足
    導入検討支援 スキルアップ支援 本番導入支援
    PoC 支援
    LLMアプリ開発
    ナレッジベース構築
    (RAGアーキテクチャ)
    Plugin開発
    プロンプト
    エンジニアリング
    ➢ ユーザ向けワークショップ
    ➢ 開発者向けワークショップ
    ➢ Prompt flowハンズオン
    ➢ 回答精度改善支援
    ➢ プロンプトアーキテクチャ検討
    ➢ プロンプトテンプレート検討
    ➢ Power Platform市民開発実践
    ➢ App Service実践
    ➢ API Managementハンズオン
    ➢ UI検討支援
    ➢ イベントストリーム表示 ほか
    ➢ Function Calling実践 ➢ Plugin開発支援
    (Function Definitionほか)
    ➢ Cognitive Search実践
    ➢ Document Intelligence実践
    ➢ ベクトルサーチ実践
    ➢ インデックス検討支援
    ➢ チャンクチューニング支援
    ➢ AIによる情報抽出検討支援
    ➢ NW閉域化
    ➢ API負荷分散
    ➢ 認証・セキュリティ
    ➢ コンテンツフィルタ
    ➢ GPT以外のAI活用
    ➢ ログ収集・監視
    ➢ ログ活用・分析
    ➢ レスポンス改善
    ➢ GPT基本技術解説
    ➢ ユースケース検討
    ➢ アーキテクチャ
    ディスカッション
    QA・よろず相談
    Fine tuning Coming Soon
    プロジェクトの状況に応じて
    選択的にご支援可能です
    プロジェクトの状況に応じて
    選択いただきご支援可能です

    View Slide

  28. 28
    Microsoft エンジニアによる生成 AI 技術支援サービスが発足

    View Slide

  29. 29
    ◼ 本書に記載した情報は、本書各項目に関する発行日現在の Microsoft の見解を表明するものです。Microsoftは絶えず変化する市場に対応しなければならないため、ここに記載した情報に対していかなる責務を負うものではなく、提示された情報の信憑性
    については保証できません。
    ◼ 本書は情報提供のみを目的としています。 Microsoft は、明示的または暗示的を問わず、本書にいかなる保証も与えるものではありません。
    ◼ すべての当該著作権法を遵守することはお客様の責務です。Microsoftの書面による明確な許可なく、本書の如何なる部分についても、転載や検索システムへの格納または挿入を行うことは、どのような形式または手段(電子的、機械的、複写、レコー
    ディング、その他)、および目的であっても禁じられています。
    これらは著作権保護された権利を制限するものではありません。
    ◼ Microsoftは、本書の内容を保護する特許、特許出願書、商標、著作権、またはその他の知的財産権を保有する場合があります。Microsoftから書面によるライセンス契約が明確に供給される場合を除いて、本書の提供はこれらの特許、商標、著作権、ま
    たはその他の知的財産へのライセンスを与えるものではありません。
    © 2023 Microsoft Corporation. All rights reserved.
    Microsoft, Windows, その他本文中に登場した各製品名は、Microsoft Corporation の米国およびその他の国における登録商標または商標です。
    その他、記載されている会社名および製品名は、一般に各社の商標です。

    View Slide