Whitchurch – The Kings Arms Public House

© Copyright Chris Talbot and licensed for reuse under this Creative Commons Licence.

前回、チューリングテストの話題を取り上げるにあたって、画像生成系AIで、擬人化したChatGPT、BingとBardが人間に交じってチューリングテストを受けているイラストを作成しようとしたのですが、試しにMicrosoftのImage Creatorに「ChatGPTと人間が、チューリングテストを受けているイラストを作ってください」と頼んだところ、拒否されてしまいました。

何が悪かったのかわかりませんが、「コンテンツフィルタリング」にかかってしまったようです。

ChatGPTに訊いてみたーその25でも書きましたが、ChatGPTに限らず、最近の生成系AIは、「コンテキスト フィルタリング」を強化しすぎている気がしないでもありません。

#その後、DALL-E2でもトライしたのですが、思うような絵が出来上がってこなかったので、絵の掲載はあきらめました。

さて、今回は、Microsoftが新たに提供するPrompt Flowについてご紹介しようと思います。

では、始めます。


Prompt Flow(正式名称:Azure Prompt Flow)は、米国時間 5 月 23 日に公開された 「Microsoft Build brings AI tools to the forefront for developers(通称:Microsoft Build 2023)」の中で、Copilotの陰に隠れて?Azure Machine Learning用の新しいツールとして導入されたものです。

したがって、Azure OpenAI Service専用としてではなく、プロンプトの開発・改良、評価・精緻化、他のモジュールとの統合、実運用への展開(デプロイ)を効率的に行うことができるツールとなっています。

AIシステム開発者は、ビジュアルインターフェースを用いて、自然言語プロンプト、テンプレート言語、組み込みツール、Pythonのコードを、Azure OpenAI Serviceと組み合わせ、カスタマイズしたプロンプトフローを作成でき、実行環境(ランタイムやAzure OpenAI Serviceとの連携)の設定、プロンプトの作成/開発/テスト/改良/精緻化から実運用AIシステムのデプロイまで、一連のプロセスがシームレスに行えるように設計されています。

Prompt Flowの概要/特徴や使い方に関しては、すでにいろいろWebで公開されていますので、以下では、まず、Prompt Flowを理解し、試験的に使う上で参考にさせていただいたURLと、ChatGPTが作成したその内容の要約を、プロンプトともに、ご覧いただきましょう。

なお、下記のPromptはGPT-4+WebPilotプラグインで実行しています。

Prompt:

以下の複数のURLで紹介されているAzure Prompt Flowの記事を日本語200文字程度に要約し、その内容が①主に概要説明、②主に各機能の説明、③主に導入および使い方の説明のどのカテゴリに入るかを教えてください。
#URL1:Microsoft Learn: プロンプト フローの概要 (プレビュー)
https://learn.microsoft.com/ja-jp/azure/machine-learning/prompt-flow/get-started-prompt-flow?view=azureml-api-2
#URL2: 【Prompt flow入門①】Prompt flowの作成・実行・カスタマイズ方法
https://qiita.com/sakue_103/items/0c1c225f52c2aeab4be1
#URL3: 【Prompt flow入門②】便利機能まとめ & Cognitive Searchのベクトル類似検索を実装する方法
https://qiita.com/sakue_103/items/526d874782a819d231d3
#URL4: AzureのPrompt FlowでAIソリューションを構築しよう!(Azure Machine Learning Studioでのクイックスタートガイド(日本語解説)
https://note.com/kyutaro15/n/nc96b5c0ece51
#URL5: “Prompt Flow”とは何か?その革新的な思考とAI時代の仕事上チーム協力への影響
https://note.com/panda_lab/n/nd740d1ad0ae2
#URL6: Azure Machine Learning新機能 prompt flowで大規模言語モデルを活用する
https://blog.jbs.co.jp/entry/2023/07/19/104242
#URL7: Prompt Flowが使えるようになったから、もうLangChainとか自分でホストしなくていい世界になったのかもしれない。
https://dev.classmethod.jp/articles/azureml-prompt-flow-ktkr/

以下は、このプロンプトに対するChatGPTの回答です。

ChatGPT(GPT-4+Webpilotプラグイン)

URL1:プロンプト フローの概要 (プレビュー) – Azure Machine Learning

Azure Machine Learning スタジオでのプロンプト フローの使用方法について説明しています。プロンプト フローは、Azure Machine Learning ワークスペースで有効にし、最初のプロンプト フローの作成および開発を行い、テストおよび評価を行った後に、運用環境にデプロイする方法について説明します。プロンプト フローは現在パブリック プレビュー段階であり、特定の機能が制限されることがあるため、運用環境のワークロードには推奨されません。

カテゴリ:プロンプト フローの概要と使用方法について説明しているため、カテゴリー①③に分類されます。

URL2: 【Prompt flow入門①】Prompt flowの作成・実行・カスタマイズ方法

Prompt Flowの作成、実行、カスタマイズ方法についての入門ガイドです。Prompt Flowの基本的な構造や、Azure OpenAIとの連携、Python関数の利用方法などが詳細に説明されています。また、Prompt Flow内でPythonの関数を使用する方法や、モデルの出力整形、エラーハンドリングなどの実装が楽になる便利機能についても触れられています。

カテゴリ: ③主に導入および使い方の説明

URL3:【Prompt flow入門②】便利機能まとめ & Cognitive Searchのベクトル類似検索を実装する方法

Prompt flowの入門者から中級者向けに、様々な機能とその実装方法について詳しく解説しており、Prompt flowを使用する開発者にとって有益な情報が満載されています。

  • マネージドオンラインエンドポイント: 外部から作成したフローを呼び出せるようにする機能。Azureポータルとの連携、デプロイ、認証などの設定が説明されています。
  • Variant: 複数のプロンプトを並列に実行し、結果の比較や評価を行うことができる機能。微調整が容易で、開発の効率を向上させることができます。
  • 評価: 作成したフローを定量的に評価できる機能。様々な評価方法が提供され、実行結果の確認が可能です。
  • 外部ツールの組み込み: Prompt flowは外部API連携やCognitive Searchとのデータ連携などを行える機能。具体的な実装方法や設定が詳細に解説されています。

カテゴリ:②主に各機能の説明

URL4: AzureのPrompt FlowでAIソリューションを構築しよう!(Azure Machine Learning Studioでのクイックスタートガイド(日本語解説)

Azure Machine Learning StudioでPrompt Flowを使用するための日本語のクイックスタートガイドです。ランタイム設定からコネクション設定、Prompt Flowの作成と運用まで、一連のプロセスが分かりやすく解説されています。ランタイムは計算リソースを提供し、コネクションは外部ツールとの通信を安全に行うためのものです。

Prompt Flowの作成から運用までの流れを具体的なサンプルを用いて説明しており、Azure Machine LearningのPrompt Flowを活用することで、AIソリューションの開発がより簡単かつ効率的になることを強調しています。

カテゴリ: ③主に導入および使い方の説明

URL5: “Prompt Flow”とは何か?その革新的な思考とAI時代の仕事上チーム協力への影響

Microsoft Buildで発表されたPrompt Flowについて、その概要と主な機能、チーム協力への影響に焦点を当てています。Prompt FlowはAzure Machine Learningの強力な機能として、プロンプトエンジニアリングプロジェクトの開発、評価、継続的な統合とデプロイ(CI/CD)をスケーラブルでチーム協力を容易にするワークフローに変えました。主な機能として、交互作用環境の強化、バリエーション機能、評価機能、デプロイと監視機能などが紹介されています。これらの機能により、プロンプトエンジニアリングが効率化され、チームの作業効率が数倍に向上するとされています。

カテゴリ: ①主に概要説明

URL6: Azure Machine Learning新機能 prompt flowで大規模言語モデルを活用する – JBS Tech Blog

Azure Machine Learningに新たに実装されたPrompt Flow機能についての解説です。Prompt Flowは、プロンプトエンジニアリングプロジェクトの開発、評価、継続的インテグレーションを視覚的に行うことができるツールで、2023年5月のMS Buildでプレビューされ、7月に全体のAzure Machine Learningユーザーに公開されました。記事では、Prompt Flowの概要、接続の作成、ランタイムの作成、フローの作成などのチュートリアル実行手順が詳細に説明されています。また、既存のライブラリとの違いや、Azure Machine Learningとの統合、APIデプロイなどの便利な機能についても触れられています。Prompt Flowの導入により、Python+LLMの知識だけでプログラムの流れを作成し、管理が非常にやりやすくなると強調されています。

カテゴリ: ③主に導入および使い方の説明

URL7: Prompt Flowが使えるようになったから、もうLangChainとか自分でホストしなくていい世界になったのかもしれない。 – DevelopersIO

Azure Machine Learningの新機能であるPrompt Flowについて詳しく解説されています。Prompt Flowはプロンプトエンジニアリングプロジェクトの開発、評価、継続的インテグレーションとデプロイを合理化する強力な機能で、AI Chatbotの構築が容易になります。記事では、Prompt Flowの3つのタイプ(Standard flow、Chat flow、Evaluation flow)について、それぞれの特徴と使い方が説明されています。Standard flowではカスタマイズされたプロンプトフローの作成、Chat flowではユーザーフレンドリーなチャットインターフェイスの提供、Evaluation flowではアウトプットの評価が可能です。また、APIの組み合わせやエンドポイントの作成、ロール設定などの実装の詳細も紹介されており、Prompt Flowを使うことで従来の実装が不要になると強調されています。

カテゴリ: ③主に導入および使い方の説明

それぞれのURLの内容のカテゴリを見ると③が多く、とりあえずPrompt Flowがどんなものか知るためにはURL5かURL1、個別の機能に関心があればURL3、実際にAzure環境で使ってみるにはURL2,4,6,7どれでも良いと思いますが、私はURL2を参考にさせてもらいました。

 

以上、Prompt Flowを理解し、使ってみる上で参考になった、日本語で解説されたURLについての概要をご紹介しましたが、以下にMicrosoftのtechcommunityに投稿された「Harness the power of Large Language Models with Azure Machine Learning prompt flow」から、Prompt Flowについて、もう少し詳しく中身をご紹介します。

 

Azure Machine Learningの新たなツールPrompt Flowで大規模言語モデルのパワーを活用しよう

2023年5月23日 Henry Zeng

AI、大規模言語モデルを使うアプリケーション開発の新しいトレンド

AIと大規模言語モデル(LLM)の台頭により、顧客サービス、コンテンツ作成、データ分析などの分野で、人間のようなテキスト理解と生成が可能になった。その中で、プロンプトエンジニアリングは、特定のビジネスシナリオに対応する効果的なプロンプトを作成し、LLMの潜在能力を最大限に引き出す重要な役割を果たしている。

 

プロンプトエンジニアリングの課題

プロンプトエンジニアリングは、データ準備、プロンプトの作成、LLM APIを使用した実行、生成されたコンテンツの精緻化などを反復的に行う困難な作業で、主な課題は、①設計・開発段階、②評価・精緻化段階、③最適化と運用段階に分類することができる。

①Prompt Flowはプロンプトの設計・開発段階を支援

Prompt Flowは、Azure Machine Learning(AzureML)の機能として新たに提供されるツールで、プロンプトエンジニアリングプロジェクトの開発、評価、継続的な統合と展開(デプロイ)を合理化する強力な機能である。Prompt Flowでは、自然言語プロンプト、テンプレート言語、組み込みツール、Pythonコードを組み合わせ、対話形式での開発から展開までの作業が可能となる。

拡大表示

※上図のPrompt Flow画面右上で、アプリケーション開始から終了までのフローを視覚的に把握でき、画面左側では、フローを構成するプロンプトの中の自然言語プロンプト、Pythonコード、LLM等の個々のブロックの定義と、前後のブロックとの関係を定義する。画面右下には、アプリケーション実行時、LLMからの出力が表示される。

 

②Prompt Flowは、プロンプトの効率的な調整、評価、精緻化を支援

Prompt Flowのバリアント機能は、プロンプトのバリアント(同じ結果を得るためのプロンプトの異なった表現)を作成・実行し、もとのプロンプトの実行結果と比較・評価する強力なツールである。これにより、プロンプトの最終形にたどり着くまでの精緻化のプロセスが合理化され、最も効果的なバリエーションを迅速に特定でき、AIアプリケーションのパフォーマンスと成果を最適化することができる。

拡大表示

※上図の例では、元のzero-shotプロンプト(variant-0)とfew-shotプロンプト(variant-1)の性能を比較評価しようとしている。

 

拡大表示

※上図の例では、4種類のプロンプトを実行した結果(score)を比較評価している。

 

③Prompt Flowは、開発から運用へのシームレスな移行を支援

Prompt Flow画面から、テスト・評価を終えたAIシステムをワンクリックで実運用システムとしてデプロイできる。また、実運用後も、評価指標、レイテンシ、スループットなど、AIシステムの継続的な監視を行うことができる。

 

結論

Prompt Flowは、LLMを組み込んだAIアプリケーションのプロンプト・エンジニアリング・プロセスを簡素化し、合理化する強力な機能を提供する。これにより、ユーザーは簡単かつ効率的に高品質なフローを作成、評価、デプロイできる。エンタープライズグレードのAzure Machine Learningサービス上に構築された新しいプロンプトエンジニアリング機能を活用することで、ユーザーはLLMの可能性をフルに活用し、さまざまなビジネスシナリオにインパクトのあるAIソリューションを提供できる。

 

長くなってきたので、本日は以上です。実際に使ってみた例は、次回ご覧いただきます。

 

終わり