KDL BLOG
Promptflow使って文書検索の仕組みを作ってみた! ~精度向上・デプロイ編~
データインテリジェンスチームの畑です。
こちらの記事は「Promptflow使って文書検索の仕組みを作ってみた!」の第三弾です。独自の文書から質問・回答する仕組みをAzure Machine Learningに追加されたPromptflowを使って実装します。
本記事は連載記事です。
- 第一弾:Promptflowを使うための準備編
- 第二弾:独自データを使ったQ&Aのフロー作成編
- 第三弾:質問・回答の精度向上&エンドポイントへのデプロイ編
第三弾の質問・回答の精度向上&エンドポイントへのデプロイを進めていきます。
第一弾、第二弾をまだ読まれていない方は以下のブログを確認してください。
第一弾:Promptflowを使うための準備編
第二弾:独自データを使ったQ&Aのフロー作成編
今回は以下の2項目をご紹介します。
- 質問・回答の精度向上
- エンドポイントへのデプロイ
1. 質問回答の精度向上
Q&Aのフローを作成していると、思ったような回答をしてくれないときがあると思います。
その場合にも2パターンあり、1つ目は質問に対する回答になっていない場合です。これは検索方法を変更する、Azure AI Searchでのデータの持たせ方を変更するなど修正が大掛かりになります。
2つ目は、回答が読みにくい場合です。例えば回答が英語で返ってきてしまう、回答が長すぎるなどです。こちらはプロンプトを書きかえることで大部分が修正可能です。
今回は2つ目のプロンプトの調整をやってみたいと思います。
情報がない場合に回答を指定する
前回はブログ記事に書いてあることを質問してみました。少しいじわるをして、全くブログと関係の質問をしてみます。
質問:パイナップルについて教えて
回答:I’m sorry, but the provided context does not contain any information about pineapples.

英語で「パイナップルについては情報がないよー。」と回答が返ってきました。日本語で回答したいので、修正してみましょう!このとき役に立つのがvariants機能です。 Prompt variantsのバリエーションを表示するボタンを押して一番上のプロンプトを複製してみましょう。

variant_0の下に、variant_1が増えるのでプロンプトを書きかえてみましょう。もともとのプロンプトが英語なのをまず日本語に直しました。加えて、情報がないときには「情報がありません。」と回答するように指定しました。variant_0をそのまま書き換えてもいいのですが、プロンプトをどう変更したらどう回答が変わるのかを把握したいので残しておきます。
(つづきは、ブログ「神戸のデータ活用塾!KDL Data Blog」へ)