0. GPTがOffice製品連携して仕事してくれる?!
2024/02/10 Microsoftが公開したUFO🛸というリポジトリについて紹介します。
こちらはタイトルの通り、WindowsOS特化型のGPTシステムで、
- Office製品(Word, PowerPoint, Outlook, Explorer等)やAdobe Acrobatなどよく使われるアプリに対応
-
複数のアプリをまたいで複雑なタスクも一気通貫実行
- 例:wordの内容をメールで〜宛に送る
- 例:ネットで〜と検索して、出てきた記事の内容を要約し社内SNSに送る
- GPT-Visionを使うのでPCのスクショから作業を理解
といった特徴があります。筆者も「ChatGPTの回答は割といいんだけど、Officeアプリと連携してないから、結果をコピペする手間が必要→自動化まではできてないな」と思ってたので、遂に全部自動化できるようになったか!と息巻いてます。
本記事ではUFOのコンセプトや仕組みについて解説していきます。
1. UFOの仕組み
UI Focused agent(= UFO🛸)はこちらで24/02/08に初版論文が提出されています。
最近流行しているマルチ自律型エージェント1を採用し、特にAppAgentとActAgentの二つの役割を持ったエージェントが協業することでタスクを高精度にこなしていきます。
-
AppAgent
- タスクの管理する役割
- ユーザリクエストに対して、サブタスクを定義しタスクの実行計画を立てる
- どのアプリを次に操作するべきかActAgentに伝える
-
ActAgent
- 実際にアプリを操作してインタラクションする役割
- 指定されたアプリ上でサブタスクの実行を試みる
- 実行後、実行結果を保存しAppAgentに処理を返す
2. 具体的にできること
性能評価のため、筆者らは新たにWindowsBenchという50問のユーザリクエスト例を定義しました。これら「具体的にUFOが実行できたタスク」のうち特筆すべき結果を以下にまとめます:
|リクエスト内容|成功したか?|ステップ数|
|パワポの発表用メモを全部削除して!|◎|8|
|Photoで写真の内容を要約して、これをOutlookで○○さんにメールして!|◎||
|○○について検索して|◎||
3. 新規性
プロンプトの詳細
基本的にはシステムプロンプト、画像エンコード、ユーザリクエストの順番でプロンプトは構成されているが、システムプロンプトはAppAgent用とActionAgent用で分けて役割を変えている。
AppAgent
- 役割と命令概要(ガイドライン)
- pywinautoで選択可能なアプリ操作の説明
- セーフガード
- 出力して欲しい項目やフォーマット
- few shotの例(計8つ)
ActionAgent
- 役割と命令概要(ガイドライン)
- スクショの仕様
- 実行対象と実行可能な操作リスト&それぞれのアプリ操作に必要な引数の説明
- セーフガード
- 出力して欲しい項目やフォーマット
- few shotの例(計8つ)
アノテーション付きスクリーンショット
UFOが参照する画像として、素のスクショ以外に「選択可能な次のアクション候補付近を四角で囲って、強調表示したスクショ」を利用している(該当実装)。
上画像のオレンジ色の四角で囲まれた数字部分がpywinautoで検出された「アプリ上でコード実行可能な操作」に対応している。操作の種類が違うレイヤーに対しては別の色(画像左上の青四角部分など)が割り当てられている。
この四角はアプリに付属の機能などではなく、
- スクショを画像データとして取得
- コード実行可能な操作の一覧を取得
- スクリーン上でそれぞれの操作アイコンがどこの座標にあるかを取得
- 取得した座標を中心にpython上で四角形を上から描画
という手順で無理やり新規作成していることにも留意する。
4. 今後の展望
論文
まず論文の展望としては
- 対応操作の拡張
- 現状pywinautoの範囲内でしか使えないが、Win32APIに対応することやGUIモデルを組み込むことを検討している
- 未対応アプリへの拡張
- 実は今回は9のアプリにしか実験していない
- 未知のアプリに適用しようとすると精度はかなり悪化する模様(vscode→×、adobe→△)
- 実はwindows特化とは謳いながらExcelやTeamsは一切タスクとして検討されていない
- 多分難しんだろうな...
所感
論文には特に言及なかったが、Teamsに関してはWindowsBenchの中に一切入っていないアプリであるにも関わらず、プロンプトのfew shot部分にteamsを使ったサンプルが入っていた。このことや、リポジトリがすでに更新始まっていることから、今後より多くのOffice製品に対応したコードに改変されていくことが期待できると個人的に思いました。
免責事項
記事の内容に不適切な点などありましたら、ご指摘いただけると幸いです。また、万一、読者様に何らかの不都合や損害が発生したとしても、著者や著者の所属組織は何らの責任を負うものではありません。
(2024/03/03現在追記中...)