前回の記事 Copilot for Microsoft 365 について (1) が想定よりも多くの方からご覧頂けたことに感謝しております。
それでは「Copilot for Microsoft 365 (以下「Copilot for M365」という)」についてお話を続けて行こうと思います。
今回は Office 文書の生成に関わる機能をお伝えします。
前提知識としての Office JavaScript API
「Copilot for M365 の話をしているのに何故 Office JavaScript API?」と訝しがる方もいらっしゃるかも知れませんが、とても大事な関係があるので少しお付き合いください。
まず、この API ですが主な役割は Office 向けのアドインを作るために用意されており、アドインから Word や Excel などの Office アプリケーション、正確に言えば現在「Microsoft 365 Apps (以下「M365 Apps」という)」と呼ばれる Microsoft 365 のクラウド環境と併せて使用される Office アプリの内部機能へアクセスするために用意されています。
余談ですが、古くから Excel の自動化などで使われていた VBA マクロに変わって、Excel の自動化のために「Office スクリプト API」というものも用意されています。
これは Excel の【自動化】メニューから【操作を記録】を選択した際に JavaScript のスーパーセットである TypeScript で操作内容が記録されるというものです。
是非、移行が可能なものから挑戦してみてください。
この Office アプリ (M365 Apps) にとってネイティブな API である Office JavaScript API ですが、汎用言語である JavaScript で記述されているため ChatGPT などでもコードを自動生成できるということをイメージされ、「内部では GPT で Office JavaScript API を呼ぶコードを生成している?」と考えられるかも知れません。
ところが、この API を使ったコード例はまだ少なく、LLM (大規模言語モデル) が自動生成するには心許ない状況です。ただでさえ、LLM はその性質からハルシネーション (幻覚) によってオブジェクトや関数の名前、パラメータを誤って生成することがあります。そのために一工夫したのが、以下の「Office Domain Specific Language (ODSL)」です。
Office Domain Specific Language (ODSL)
この ODSL に関しては、マイクロソフトの研究者数名によって書かれた論文が製品の一般提供 (GA:General availability) 前の 2023 年 6 月 に発表されています。コーネル大学図書館が運営している arXiv(アーカイヴ) というサイトに載っていますのでご覧になってみてください。
Natural Language Commanding via Program Synthesis
この論文の中で、上記の問題へ対処するために、中間言語的な役割で ODSL が開発された背景とその機能の説明が PowerPoint アプリを例に行われています(注:現状もこの論文通りの実装になっているかは保証の限りではありません)。ODSL 自体はネイティブ API に比べて人間が指示する単位に近い表現方法が取られています。それを Office JavaScript API に変換する段階で様々な工夫 (コンパイル時にエラー検出をすることで実行時にエラーが起きないようにするなど) が凝らされています。
これらの処理が前回の記事で触れた RAG (Retrieval-Augmented Generation) の一部で行われていることになります。もちろん、現状でも実行時に思ったような結果が得られないこともあるかと思いますが、こうした仕組みが内部で動いており、発展途上であるということをご理解頂ければと思います。
また、上記の仕組みから Office 文書生成に関しては、現状 Office JavaScript API で実装されていないことは Copilot for M365 にはできないであろうことは想像に難くありません。今後、Office JavaScript API および ODSL の進化が機能向上に強く結び付いていくことと思います。
Office 文書の生成は、ChatGPT の Advanced Data Analysis (旧:Code Interpreter) の中で Python のライブラリなどを使っても実現できる部分はありますが、今後の ODSL やネイティブ API の進化の可能性も含めて Copilot for M365 にアドバンテージがあるのでは無いかと感じています。
今回は Office 文書生成に関連して、Office JavaScript API と Office Domain Specific Language (ODSL) に関して触れました。
次回は、ここまでの記事を元にして少し掘り下げた記事にしたいと考えています。