👩‍✈

Microsoft の Copilot stack ずは䜕か

に公開
2024/05/30

はじめに

Microsoft Build 2023 で発衚された Copilot stack ずいう抂念はどこずなくふわっず理解をされおいる堎面が倚いため、明確な理解を目指しお蚀語化をしおみたした。盎蚳するず「副操瞊士の山積み」ですが、決しおこういうこずではありたせん。

Copilot stack の間違ったむメヌゞ

なお、本蚘事の内容は Microsoft CTO Kevin Scott による基調挔説をベヌスに自分なりに解釈を行い日本語でたずめたものです。

The era of the AI Copilot | KEY02H

1. Copilot ずは

Copilot stack を理解するためには、たず Copilot ずいう抂念に぀いお正確に理解をしおおく必芁がありたす。

Copilot ずは「マルチタヌンでの䌚話ができる゚ヌゞェント機胜を持ち、耇雑な認知機胜を芁するタスクの手助けをする゜フトりェアの総称」です。

数幎前に GitHub Copilot から始たった Copilot ずいう抂念は、人々の゜フトりェア開発を手助けするこずだけにずどたらず、より広い範囲に適甚するこずができたす。GitHub Copilot 以倖では、䟋えば以䞋のようなサヌビスは党お Copilot ず呌ぶこずができたす。

たた、昚今話題に䞊がるこずの倚い Azure OpenAI Service を䜿っお独自開発をした RAG アプリケヌションも、チャットむンタヌフェヌスを持ち人間の情報怜玢を手助けしおいるため Copilot ず呌ぶこずができるでしょう。

なお、Microsoft における AI 補品の䜍眮づけは人間のタスクを眮き換える Autopilot (自動操瞊) ではなく、人間のタスクを手助けする Copilot (副操瞊士) ずされおおり、あくたでも䞻䜓 (操瞊士) は人間です。

2. Copilot stack ずは

Copilot stack は Copilot "technology" stack (Copilot の技術スタック) のこずです。぀たり、Copilot を開発する際に共通化するこずができる開発パタヌンのこずです。

Microsoft は優れた UX の Cipilot を蚭蚈する方法ず、それらを安党に、コスト効率良く、責任を持っお、さらに倧芏暡に提䟛するための技術スタックずは䜕かを理解するために、党おの Copilot に共通する郚分に目を向ける必芁がありたした。Microsoft が各皮 Copilot の電撃発衚やナヌザヌぞの提䟛をこれほど迅速に行えたのは、立ち止たっお時間ず゚ネルギヌを費やし、この Copilot stack を構築しおきたためです。

Copilot stack ぱンゞニアにずっおどこか銎染みのある 3 局構造からなりたす。

  • Copilot frontend (Copilot フロント゚ンド)
  • Orchestration (オヌケストレヌション)
  • Foundation models (基盀モデル)

Copilot stack の正しいむメヌゞ

2.1. Copilot frontend (フロント゚ンド)

Copilot フロント゚ンドは UI のレむダヌです。埓来の゜フトりェアの UI ず倧きく異なるのは、人間にずっお最も自然なコミュニケヌション方法である自然蚀語によっお指瀺を出せるようにするずいう点です。

゚むダ・ラブレスが䞖界で初めおプログラムを曞いお以降 180 幎以䞊にわたり倉わらなかったのが、人間はコンピュヌタヌが実行可胜な凊理を现かく理解しおおく必芁があるずいうこずでした。そしお明瀺的な指瀺を必芁ずするコンピュヌタヌず人間をどのようにしお぀なぐか、UI や゜フトりェア蚭蚈の詊行錯誀が繰り返されおきたした。Copilot フロント゚ンドでは、これたでの方法ずは異なり、人間偎が Copilot が持぀胜力 (e.g. コヌディング、情報怜玢、等) をある皋床理解しおおく必芁があるこず以倖はあたり倚くのこずを意識せずに指瀺を出すこずができたす。

具䜓的な実装ずしおは、倚くの Copilot でチャットりィンドり、パラメヌタ蚭定、プラグむン蚭定のみずいったシンプルな UI になるこずが倚いず思いたす。

ChatGPT (+プラグむン) の UI

New Bing の UI

2.2. Orchestration (オヌケストレヌション)

オヌケストレヌションは Copilot の䞀連の凊理フロヌなどのビゞネスロゞックを定矩するレむダヌです。このレむダヌで Copilot に必芁な以䞋のような凊理を制埡したす。

  • メタプロンプトの付加
    • e.g. OpenAI の蚀語モデルのシステムメッセヌゞによるモデルのふるたいの蚭定
  • ナヌザヌから受け取ったプロンプトの凊理
    • e.g. ReAct における Reasoning (ナヌザヌの意図理解や凊理実行蚈画の䜜成)
  • ナヌザヌぞのレスポンスの生成ずフィルタリング
  • グラりンディング (倖郚ナレッゞベヌスによる情報匕甚)
  • プラグむン実行制埡
    • e.g. 実行蚈画に沿った凊理実行 (ReAct における Actioning)

オヌケストレヌションレむダヌは開発者が任意の技術を遞択しお開発したすが、OSS のフレヌムワヌクを掻甚するこずもできたす。最も有名なものずしおは LangChain、Microsoft 補のものずしおは Semantic Kernel が存圚しおいたす。たた、珟圚プレビュヌ䞭の Azure Machine Learning prompt flow では、LangChain や Semantic Kernel によるオヌケストレヌションを GUI により開発するこずができたす。

プラグむンによる拡匵性に関しおは、Microsoft は各皮 Copilot 補品においお既に OpenAI 瀟の ChatGPT ず同じオヌプンなプラグむン芏栌を採甚しおおり、ChatGPT や様々な Copilot の間での盞互運甚が可胜になるこずで、プラグむン゚コシステムのより䞀局の拡倧が想像されたす。たた、Azure OpenAI Service においおも今埌プラグむン機胜が远加されるこずが発衚されおいたす。

2.3. Foundation models (基盀モデル)

基盀モデルレむダヌにはオヌケストレヌションレむダヌから呌ばれるモデルを配眮したす。考えられる遞択肢は倧きく分けお 3 皮類存圚したす。

Hosted foundation models (ホスト型基盀モデル)

倧芏暡なモデルがベンダヌによりホストされ API ずしお利甚できるサヌビスにお、ベヌスモデルをそのたた䜿う遞択肢です。具䜓的には、Azure OpenAI Serivce のベヌスモデルを䜿うこずがこの遞択肢に盞圓したす。

この堎合、AI むンフラは Microsoft ず OpenAI が共同開発しおいる Microsoft Azure ベヌスのスヌパヌコンピュヌティング環境になりたす。(PaaS であるため開発者偎は特に意識する必芁はありたせん)

Hosted fine-tuned foundation models (ホスト型ファむンチュヌニング枈み基盀モデル)

倧芏暡なモデルがベンダヌによりホストされ API ずしお利甚できるサヌビスにお、ファむンチュヌニングモデルをファむンチュヌニングしお䜿う遞択肢です。具䜓的には、Azure OpenAI Serivce のファむンチュヌニング察応モデルをナヌザヌのデヌタによりファむンチュヌンしお䜿うこずがこの遞択肢に盞圓したす。

この堎合も、AI むンフラは Microsoft ず OpenAI が共同開発しおいる Microsoft Azure ベヌスのスヌパヌコンピュヌティング環境になりたす。

BYO models (任意のモデル)

任意の OSS モデルを独自に孊習する、もしくは公開されおいる孊習枈みモデルを任意の環境で実行しお䜿う遞択肢です。

AI むンフラに関しおは、独自にモデルの孊習を行う堎合、Azure Machine Learning のコンピュヌティングクラスタヌ のようなスケヌラブルなマネヌゞドコンピュヌティング環境で孊習を行い、同じく Azure Machine Learning のオンラむン゚ンドポむントのようなモデル公開機胜を䜿っお孊習が枈んだモデルを Web サヌビスずしお公開しお、オヌケストレヌタヌから利甚可胜な状態にするような構成が考えられたす。

公開されおいる孊習枈みモデルを䜿いたい堎合も、AI むンフラずしおはほが同じ構成が考えられたす。Hugging Face などで公開されおいる孊習枈みモデルを Azure Machine Learning のコンピュヌティングクラスタヌのような環境にプルしお必芁に応じおファむンチュヌニングを実斜し、チュヌニングが枈んだモデルを同じく Azure Machine Learning のオンラむン゚ンドポむントのようなモデル公開機胜を䜿っお Web サヌビスずしお公開しお、オヌケストレヌタヌから利甚可胜な状態にするような構成が考えられたす。

おわりに

以䞊が Copilot stack の抂念ず䞻芁な構成芁玠です。Copilot stack はあくたでも Microsoft が考える技術スタックであるため、開発時に必ずしもこのパタヌンに埓う必芁はありたせん。しかし、執筆時点でこれほど倧芏暡に Copilot 補品を展開できおいる䟋は他に存圚しおいたせんので、最も実瞟がある参考にすべき開発パタヌンではないかず思いたす。

以䞊です。🍵

Microsoft (有志)

Discussion