DatabricksのプロンプトエンジニアリングUIの活用

:::note alert
**2025/4/23追記**
現在こちらの機能のプレビューはクローズしており、利用することはできません。
:::

こちらの記事で触れていましたが、触ってませんでした。

https://qiita.com/taka_yayoi/items/34381c349525a797db7a

> **インタラクティブなプロンプトインタフェースによるLLMプロジェクトの実行可能性の評価**
> プロンプトエンジニアリングは、あるユースケースを大規模言語モデル(LLM)で解決できるかどうかをクイックに評価できる優れた手法です。MLflow 2.7の[新たなプロンプトエンジニアリングUI](https://mlflow.org/docs/latest/llms/prompt-engineering.html)によって、ビジネスのステークホルダーは、新規にプロジェクトをスタートするのに十分なアウトプットを得られるのかどうかを確認するために、様々なベースモデル、パラメータ、プロンプトを用いて実験することができます。インタラクティブなプロンプトエンジニアリングツールにアクセスするには、シンプルに新たな空のエクスペリメントを作成するか、(既存のエクスペリメントを開き)New Runをクリックします。こちらからプレビューにサインアップできます。

上の記事を翻訳した際には申請が必要なプレビューでしたが、普通に使えるようになっていました。

# 準備

プロンプトを送信できるモデルサービングエンドポイントがあることを確認します。無い場合には作成してください。

# エクスペリメントの作成

サイドメニューで**エクスペリメント**にアクセスして、**従来型エクスペリメントを作成**をクリックします。

![Screenshot 2024-10-30 at 20.24.20.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1168882/f8df3134-6f8d-b0b6-909d-dd619d2f587e.png)

![Screenshot 2024-10-30 at 20.24.33.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1168882/eef7ed16-837f-7c6b-0883-3e94e442784d.png)

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

エクスペリメントが作成されたら、右上の**新規ラン > プロンプトエンジニアリングの使用**を選択します。

![Screenshot 2024-10-30 at 20.24.43.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1168882/26ec295f-e972-3ccc-9d21-0fb7def3fcdd.png)

ここでのエクスペリメントやランは、MLflowの用語です。

- [エクスペリメント](https://mlflow.org/docs/latest/tracking.html#experiments): 後述のランを管理するための箱
- [ラン](https://mlflow.org/docs/latest/tracking.html#runs): 従来は一回の機械学習トレーニングを管理する単位でしたが、最近ではLLMにおけるトレーニング、ファインチューニング、評価、そして今回のようにプロンプトエンジニアリングの営みも管理できるようになっています。リンク先の説明も以下のようになっています。

    > executions of some piece of data science code, for example, a single python `train.py` execution (単一のPythonの`train.py`のようなある程度の規模のデータサイエンスコードの実行)

すると、新規にランを作成する画面が現れます。ここでプロンプトエンジニアリングを行うということですね。

![Screenshot 2024-10-30 at 20.25.32.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1168882/ac138627-2f3e-a259-db2e-bf6ee2612b3c.png)

左上でモデルを選んで、プロンプトテンプレート、パラメーターを指定して**評価**をクリックするとレスポンスが帰ってきます。

![Screenshot 2024-10-30 at 20.25.38.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1168882/3ea27f4b-1d4b-146b-487b-5bb7cb3170a3.png)

せっかくですので、日本語でやりましょう。以下のようなプロンプトテンプレートを指定します。

> 指定されたテキスト「{{ text }}」をメインのアイデアとキーポイントをカバーする簡潔で一貫性のある要約にまとめてください。要約は文字数 {{ word_count }} を超えないようにしてください。

二つの中括弧でパラメータを囲むと、それに合わせて画面更新されます。

![Screenshot 2024-10-30 at 20.53.52.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1168882/80d01baa-e28f-71f1-7379-4c516bf20de6.png)

評価をしてもらいます。

![Screenshot 2024-10-30 at 20.54.47.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1168882/d6f29949-ba3f-95cb-42b1-7d244146d254.png)

一旦これで**ランを作成**をクリックして保存します。

![Screenshot 2024-10-30 at 20.55.40.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1168882/e647c987-3173-218c-d1f6-cdab44a0cba3.png)

ここからはいくつかの方向性があります。

- 他のテキストをプロンプトテンプレートに与える
- モデルを切り替える
- プロンプトテンプレートを変更する

ここでは、最初の二つを実際に行なってみます。

## 他のテキストをプロンプトテンプレートに与える

表の左にある **+** を押します。

![Screenshot 2024-10-30 at 20.57.06.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1168882/d885d74e-5d6f-1b01-844c-7112f20948d3.png)

プロンプトテンプレートのパラメータが聞かれます。

![Screenshot 2024-10-30 at 20.57.52.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1168882/d1da3822-c956-a7de-b182-e7d294ab686e.png)

入力します。

![Screenshot 2024-10-30 at 20.58.29.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1168882/db680f5a-437f-2737-e3fd-e493945c99b7.png)

行が増えますがoutputは空です。セル内の**Evaluate**を押しましょう。

![Screenshot 2024-10-30 at 20.58.40.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1168882/c9fa4e18-006f-de6f-40ac-e3de020fe9d1.png)

新たなレスポンスを得ることができました。これを繰り返していくことで、プロンプトテンプレートの良し悪しを把握できるようになります。

![Screenshot 2024-10-30 at 21.01.08.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1168882/00183308-f190-77b8-b7f1-f6578f54c7d9.png)

## モデルを切り替える

再度、右上の**新規ラン > プロンプトエンジニアリングの使用**を選択します。今度は左上でモデルを変更します。

![Screenshot 2024-10-30 at 21.02.46.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1168882/5cde5080-e166-0879-9001-bea1e5c58f68.png)

新規ランとして保存します。

![Screenshot 2024-10-30 at 21.03.10.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1168882/06b28b18-adba-1162-cbe4-92a5657a842e.png)

今度は列が追加されました。先ほどと同じように**Evaluate**あるいは**すべて評価**をクリックします。

![Screenshot 2024-10-30 at 21.04.04.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1168882/efba68e0-0e1c-d6a1-6afc-afaa85ffbff7.png)

このように、さまざまな入力、モデルを組み合わせながらプロンプトテンプレートをブラッシュアップすることができます。

![Screenshot 2024-10-30 at 21.05.07.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1168882/e0073506-8b51-4b6b-cc1f-c90b74f41825.png)

### はじめてのDatabricks

[はじめてのDatabricks](https://qiita.com/taka_yayoi/items/8dc72d083edb879a5e5d)

### Databricks無料トライアル

[Databricks無料トライアル](https://databricks.com/jp/try-databricks)