はじめに
先日 Office Copilot が発表され、一般公開が待ちきれないので、先行的に公開されている Excel Labs という Microsoft 謹製 Excel アドインを試してみました。このアドオンを入れると LABS.GENERATIVEAI()
という関数が使えるようになり、OpenAI API Key を噛ませると Excel 数式から気軽に fetch できます。
- Microsoft AppSource ← "Excel Labs" で検索
- microsoft/Excel-Labs - GitHub
- Microsoft、「Excel Labs」を発表 ~開発初期のアイデアを詰め込んだ実験アドイン - 窓の杜
- API keys - OpenAI API
Windows ユーザは Office365 もしくは Web 版 Excel でのみ利用できるようです。
AppSource のレビューを見る限り、同梱されている Advanced formula environment はおおむね大好評な一方、 LABS.GENERATIVEAI は全体的に不評です。まだまだお遊び段階の機能ですね。この記事では手近な活用例として、 LABS.GENERATIVEAI を利用して大規模言語モデルから無限に単語帳を作成 します。
LABS.GENERATIVEAI
以下の書式が定義されています。アドインのサイドバーからデフォルト値を変更することもできます。
LABS.GENERATIVEAI(prompt, [temperature], [max_tokens], [model])
-
prompt
: AI モデルへの入力文字列を指定します。 -
temperature
: いわゆる結果のランダム性を示すパラメタです(デフォルト 0.5) -
max_tokens
: レスポンスの最大トークン長を指定します(デフォルト 256) -
model
: 使用する言語モデルです(gpt-3.5-turbo
など)。
注意点
- APIのレスポンスを待っている間は
#Bビジー!
(英語版だと#BUSY!
)と表示されるので、しばらく待ちましょう。 - 当該セルもしくは参照セル の内容が変更されるたびに再計算されます。言い換えると、そのたびに API コールが発生し、課金が発生します。
- レスポンスのデフォルト最大長は 256 トークンに設定されています。用途に応じて調整しましょう。
単語帳のつくりかた
- 対訳を作りたい言語名を入力する欄を用意します(ここでは
A2
,B2
)。 - 単語帳のテーマを入力する欄を用意します(ここでは
C2
)。 - 出力したい単語対の数を入力する欄を用意します(ここでは
D2
)。 - 以下の数式を適当なセルにセットすれば完成です。
=TEXTSPLIT(LABS.GENERATIVEAI(A2&"と"&B2&"のシソーラスを作ります。テーマ「"&C2&"」に対して、対訳フレーズを"&D2&"組出力してください。出力形式は、フレーズ同士がカンマ区切り、フレーズ組同士がセミコロン区切りです。説明文をつけず結果のみ出力してください。"),",",";")
プロンプトで出力形式を制限してやることで、処理が容易なレスポンスが得られます。TEXTSPLIT
関数を使ってパースすれば結果を配列としてうまくスピルしてくれますので、以下のような形式で単語帳が自動生成されることになります(言語の前後関係が逆転しているのはご愛敬)。
上述の通り、どれか一つのセルを変更すると単語帳が更新されるので、手軽に量を増やしていけます。繰り返すとカブリが出るので、max_tokens
パラメタを長くすると効率的ですね。
ただ、上の適当なプロンプトだとしばしばレスポンスの形式が乱れて、分析に失敗してしまいます。日本語-英語のペアだとよく成功しますが、日本語-トルコ語などやや頻度の落ちる組合せだと特に失敗する確率が大きくなります。そのへんは改良の余地アリですね。
おわりに
LABS.GENERATIVEAI
については別途包括的な記事を書き始めていましたが、仕事でまとまった時間がとれそうにないので、クイックに利用法のひとつを記事にしてみました。類似したフレーズの抽出は大規模言語モデルの特性のひとつだと思っており、方向性としてはなかなか良いのではないかと思います。もちろん、どこかの本当の単語帳を学習した結果かもしれませんが……。