👀

【生成 AI 時代の LLMOps】プロンプト管理編

に公開

はじめに

今日の大規模言語モデル、生成 AI の性能の進化により、モデルの多様化、バージョンアップは日々増すばかりです。機械学習モデルによって解くことのできるタスクが増えることで、ビジネスの可能性が拡がっていることは疑いようがありません。しかし技術の多様性や複雑性がますことは、使用するユーザにとって「何を使うべきか?」「今使っているものは最適なのか?」という疑問が拭えません。また、より高性能なモデルを提供するために、モデルのライフサイクルも短くなってきました。今お使いのモデル(バージョン)がいつまで提供されるか、ご存じでしょうか。

DevOps、MLOps という考え方も定着してきましたが、LLMOps という言葉が提唱されるようになりました。詳しい解説は LLMOps(大規模言語モデル運用)とは に譲りますが、例えば「どのプロンプトが良いのか?」や「どのモデルが良いのか?」といった不安や疑問を最小限に抑えるためのオペレーション(LLMOps の Ops)が整理されています。

ここでは、Google Cloud で提供されるツールを例に、プロンプトやモデルの管理する例をご紹介します。

プロンプト エンジニアリング

生成 AI からの応答が期待通りではないとき、問いかけが間違っている可能性があります。つまり、期待する出力を得るには正しく入力することが重要であり、モデルの特性を理解しながら入力(プロンプト)をデザインする必要があります。
このプロンプトを反復的な修正を繰り返す作業をプロンプト エンジニアリングと呼びます。生成モデルを思い通りに扱うためのガイドなども公開されていますので、初めて生成 AI を使われる際にはこういったノウハウをご一読いただくと良いと思います。

プロンプト管理の必要性

生成 AI の活用において、プロンプト エンジニアリングは避けられません。この作業は自然言語の修正を試行錯誤するわけですから、実験のログを残すのを怠りがちです。例えば予測 AI におけるハイパーパラメータの場合、チューニングをする場合には数字を規則的(一定間隔のデータ点を代入したり、確率分布でデータ点をサンプリングする)に変化させながらベストなハイパーパラメータの設定値求めることが主流です。そのため試行錯誤の部分は半自動化されており、データサイエンティストがそのログを意識的に残す必要がないケースも多いです。

例えば企画系の担当者が、生成 AI を触りながらビジネスの可能性を探る場合、その作業工程をコードのようにバージョン管理することはオーバーヘッドが大きいでしょう。しかし「さっきのプロンプトの方がいい感じの出力だった」という感想を持つこともきっと多いでしょう。

そういった試行錯誤のログは資産であり、再現性のある開発に非常に価値のあるものです。

プロンプト管理のためのツール

Google Cloud の Vertex AI では、プロンプト エンジニアリングを効率的に行えるインターフェイスとして Vertex AI Studio が用意されています。
気軽に始められる生成 AI の良さを保ちつつ、アセットの管理も手軽にできるようなインターフェイスです。

プロンプトの履歴とメモ

まずは、試行錯誤のログを残しながら、コメントなどの感想、評価を書き残せる機能です。
Vertex AI Studio 「プロンプト管理」というページがあり、プロンプトごとの履歴が保存されています。このプロンプトはエクスポート/インポートすることができるので、プロジェクトを超えてプロンプトを共有したい場合には、ファイルで実験の履歴を共有することも可能です。

新たにプロンプトを作成したり、既存のプロンプトを開くと、プロンプトを編集できる画面が表示されます。ここではモデルの設定、各種パラメータの変更が可能です。下のスクリーンショットでは、履歴の最後のプロンプトを編集し、メモに「オペレーターから連絡する旨を追記」というプロンプト編集の意図を書く流れが表示されています。メモを書いた上で再実行すると、履歴に新しい実験ログが残ります。


図1: プロンプトのメモを編集


図2: プロンプトのメモを履歴から確認

プロンプトの編集を試行錯誤していると、「ちょっと短いから丁寧に書かせよう」や「ちょっと冗長なので端的に書かせよう」などのコンテキストがあるはずです。このログによって、以前のプロンプトに戻す際にどこまで戻すべきかをより簡単に判断できるようになります。

プロンプトの比較

プロンプトの履歴によって作業ログを振り返ることができました。しかし出力結果が長いと、どちらのプロンプトの方が好ましい結果だったか直感的に比較が難しいと思います。
次にご紹介するのは、実行結果を比較する機能です。
この機能によって、出力結果を別のツールに貼り直して比較するという手間を省くことができ、より効率的に実験を進めることができます。プロンプトの比較に留まらず、モデル、パラメータの比較もできますので、実験そのものを比較できる機能です。
下のスクリーンショットでは既存のプロンプトと、別のモデル2つに変更した場合を並べて結果を比較しています。


図3: プロンプトの比較

モデルによって振る舞いが違うことが一目瞭然です。そして直感的に結果を選ぶことができ、プロンプト修正により微妙な変化などもツール上で比較することができます。別にブラウザのタブに移動したり、テキストエディタに貼り付ける必要もありません。

エンジニアとの連携

以上のツールを使いながらプロンプト エンジニアリングを無事に終えると、いよいよ実装フェーズになります。プロンプトの実験履歴を外部ファイルに書き出すこともできますが、いくつかフォーマットに対してはコードを取得することができます。


図4: コードを取得

上記のボタンを押すことで、Python や Node.js などのコードが取得でき、パラメータなどの設定も実験と同じものを組み込むことができます。「プロンプトは同じだったが、モデル名が間違っていた」と言った作業ミスを最小限に抑えることもできます。

最後に

ここでは、プロンプトエンジニアリングとは何か、なぜプロンプトを管理する必要があるのかを説明し、Google Cloud でどのようなツールが提供されているのかをご紹介しました。
生成 AI はこれまでに AI よりも幅広い方に使われています。車輪の再開発を避けるような実験フローを確立することが業務効率の向上にも重要です。
是非 Google Cloud のツールで皆様のビジネス課題が解決できないかお試しください。
次回はモデルを移行するためのマイグレーション ツールについてご紹介します。

Google Cloud Japan

Discussion