Skip to main content

Models を使用した AI 搭載アプリの最適化

AI 搭載アプリケーション用のモデルをテストしてプロンプトを調整する方法について説明します。

新しい AI モデルが定期的にリリースされるため、アプリケーションに適したものを選ぶのが難しい場合があります。 GitHub Models を使うと、組み込みのエバリュエータを使ってモデルの出力を検証しながら、サンプル入力に対してさまざまなモデルとプロンプトのバリエーションを比較することができ、AI 搭載アプリケーションの最適化に役立ちます。

シナリオの例を通じて、コマンド ラインからの Git の使用方法をユーザーが学習するのに役立つ AI 搭載アシスタントを構築します。 さまざまなモデルの比較を見ていきます。また、プロンプトのバリエーションを調整して出力の品質を向上させる方法を説明します。

メモ

プロンプトのテスト

GitHub Models の [Comparisons] ビューでは、モデルのパラメーターとプロンプトを調整して、モデルの出力をテストできます。

1.サンプル リポジトリの作成

[Comparisons] ビューには任意のリポジトリの [Models] タブから直接アクセスできますが、このガイドでは、テスト環境として使用する新しいリポジトリを作成します。

  1. 新しいリポジトリのページに移動します。
  2. [Owner] で、自分のユーザー アカウントが選ばれていることを確認します。
  3. [Repository name] フィールドに「models-playground」と入力します。
  4. 説明フィールドの下で [Private] を選んでリポジトリの可視性を設定します。
  5. [Create repository] (リポジトリの作成) をクリックします。

2.新しいプロンプトの作成

  1. 新しいリポジトリのメイン ページで、[Models] タブをクリックします。
  2. [Prompts] セクションで、 [New Prompt] をクリックします。
  3. 左上隅のドロップダウン メニューからモデルを選びます。

3.システム プロンプトの作成

システム プロンプトは、AI モデルがユーザーと対話する前にその役割、動作、制限を定義する一連の指示です。 この例では、コマンド ラインから Git を使う方法を説明する AI 搭載アプリケーションについての作業を行います。

次のテキストをコピーして、[System prompt] フィールドに貼り付けます。

Text
You are an expert at using the Git version control system. I will ask questions looking for guidance on the best way to perform tasks using Git, and you will give clear, step-by-step answers that explain each step you are recommending. 

メモ

[System] テキスト フィールドが編集可能でない場合は、上のモデル ドロップダウンで別のモデルを選んでみてください。 システム プロンプトを変更できないモデルもあります。

4. ユーザー プロンプトの作成

ユーザー プロンプトは、会話中に AI システムに直接行う質問または指示であり、それに対して AI システムが応答します。

次のテキストをコピーして、[User prompt] フィールドに貼り付けます。

Text
I want to learn how to use Git from the command line. 

5.サンプル入力の入力

[User prompt]{{input}} 変数は、サンプル入力のプレースホルダーとして機能します。 このプレースホルダーを管理するには、[Variables] ボタンをクリックして、次のテキストを入力します。

Text
When should I use rebase or merge? 

6.サンプル プロンプトの実行

  1. 右上隅にある [Play] をクリックします。
  2. モデルまたはプロンプトを変更してから、プロンプトをもう一度実行し、得られた結果を確認します。

プロンプトに対する異なるモデルのテスト

次に、[Comparisons] ビューを使って、アプリケーションで最適に動作するモデルを決定しましょう。 このビューを使うと、同じ入力で異なるモデルをテストし、正確さ、創造性、トーン、推論、信頼性の違いを明らかにできます。 これは、品質、速度、コスト、一貫性の関するニーズに最も適したモデルを選ぶのに役立ちます。

  1. 左上隅の [Comparisons] をクリックします。

  2. 異なるモデルを比較するには、 [Add prompt] をクリックして [Copy original prompt] を選び、既存のシステム プロンプトとユーザー プロンプトを複製します。 3 つの異なるモデルを評価するため、元のプロンプトのコピーを少なくとも 2 つ作成します。

  3. 各プロンプトの横にある をクリックします。 [Model] ドロップダウンから、作成したプロンプトごとに異なるモデルを選びます。

  4. [Add inputs] をクリックして、サンプル入力用に新しい行を作成します。

    • [Add inputs] をクリックします。 次のテキストをコピーして、[Input] フィールドに貼り付けます。

      Text
      How do I modify the most recent commit message in my current branch? 
    • [Add inputs] を再びクリックして、次の入力を貼り付けます。

      Text
      How do I move a specific commit from one branch to a different branch? 
    • [Add inputs] をもう一度クリックして、次の入力を貼り付けます。

      Text
      How do I find the author of a specific commit in a repository's history? 
  5. プロンプトを実行するには、右上隅の [Run] をクリックします。

  6. プロンプトに対してさまざまなモデルを試し、異なるモデルの [Latency] および [Input][Output] トークンの使用状況を記録します。

特定のモデルを使用したプロンプトのバリエーションのテスト

特定の AI モデルを使ってアプリケーションを構築する場合は、予測可能で信頼性の高い応答が必要です。 プロンプトのバリエーションのテストは、次のことに役立ちます。

  • パフォーマンスと品質を最適化する: 言葉遣いのわずかな変更が応答の品質に影響する可能性があります。 バリエーションをテストすると、最善の応答を得る文言を見つけることができます。
  • 指示を明確にする: プロンプトの言葉遣いを変えると、モデルで最も明確に理解されるバージョンを特定できます。
  • 特定のモデルの動作に適応させる: 特定のモデルによる言語の解釈方法に合わせて入力を調整できます。
  • 出力の形式を確認する: リスト、段落、コード ブロック、または特定のトーンが必要な場合があります。 プロンプトのバリエーションをテストすると、特定の構造またはスタイルを適用するのに役立ちます。

次に、GitHub Models を使って、特定のモデルのユーザー入力に対してプロンプトのバリエーションをテストしてみましょう。

1.プロンプトのバリエーションの追加

このシナリオ例では、列ごとに同じモデルを選びますが、既存のプロンプトの [User prompt] フィールドを編集して、異なるプロンプト バリエーションを提供します。 各プロンプトの横にある をクリックします。

  1. [Prompt 2] の をクリックします。 それから、次のテキストをコピーして、[User prompt] フィールドに貼り付けます。

    Text
    I want to learn how to use Git from the command line, but explain it to me like I am five years old. 
  2. [Prompt 3] の をクリックしてから、次の入力を貼り付けます。

    Text
    I want to learn how to use Git from the command line. Give me instructions in the form of a haiku. 

2.プロンプトのバリエーションの実行

  1. プロンプトを実行するには、右上隅の [Run] をクリックします。
  2. プロンプトのさまざまなバリエーションを試し、モデルで提供される出力の種類を比べます。

モデルの出力の評価

GitHub Models でさまざまなモデルとプロンプト バリエーションをテストしました。次のステップでは、結果を解釈して比較し、その情報に基づいて AI 搭載アプリケーションに関する決定を行います。

シナリオ例でモデルを実行したとき、各実行の後で [Input][Output] トークンの使用状況および [Latency] が表示されました。 トークンの使用状況は、コスト、パフォーマンス、モデルの制限に直接影響するため重要です。

  • ほとんどのモデルは、入力と出力両方のトークンごとに課金されるため、より多くのトークンを使うとコストが増えます。
  • また、各モデルには最大トークン制限 (コンテキスト ウィンドウと呼ばれます) があり、それを超えるとエラーになったり、応答が切り捨てられたりする可能性があります。
  • プロンプトが長いと応答に時間がかかったり、明確さが低下したりする場合があるのに対し、簡潔なプロンプトは、多くの場合、より優れた効率的な出力につながります。

GitHub Models を使ってトークンの使用状況と待ち時間をテストすると、制限内に抑え、コストを管理し、AI 搭載アプリケーションの全体的な有効性を向上させるのに役立ちます。

出力を判断するためのエバリュエータの使用

評価するプロンプトとモデルの数によっては、モデルの出力が多すぎて手動で並べ替えるのが難しいことがあります。 各モデルの出力の品質を評価するには、エバリュエータを使って、明確さ、正確さ、関連性などの主要なディメンションについて結果にスコアを付けることができます。 独自の評価基準を定義することも、組み込みのエバリュエータを使って出力を自動的に評価することもでき、最もパフォーマンスの高いモデルとプロンプト バリエーションを簡単に確認できます。

このシナリオ例では、文字列チェック エバリュエータを使って、出力内の文字列を調べてみましょう。

  1. [Prompts] フィールドの右下隅にある [Add evaluator] をクリックして、 [String check] を選びます。

  2. [Name] フィールドに「修正チェック」と入力し、次の入力をコピーして [Value] フィールドに貼り付けます。

    Text
    git commit --amend 
  3. プロンプトを実行するには、右上隅の [Run] をクリックします。

  4. プロンプトの出力で [Pass] または [Fail] のラベルが示され、どのモデルに必要な文字列が含まれるかがわかります。

類似性、グラウンデッドネス、関連性などの事前構築済みエバリュエータについて詳しくは、「AI モデルの評価」をご覧ください。

次のステップ

これで、GitHub Models を使ってモデルのテスト、プロンプトの調整、出力の評価を行う方法がわかたので、AI 搭載アプリケーション用のプロンプトの作成を始めることができます。 プロンプトを作成した後は、.prompt.yml ファイルをリポジトリにコミットして、その保存、バージョン管理、共有を行うことができます。 これにより、プロンプトはバージョン管理下に置かれ、プロンプトとモデルの調整でのコラボレーションが容易になります。 詳しくは、「GitHub リポジトリへのプロンプトの格納」をご覧ください。

コミュニティに参加

質問やフィードバックの共有については、こちらの GitHub Models に関するディスカッション投稿をご覧ください。
他のユーザーが GitHub Models をどのように使っているかについては、Models に関する GitHub コミュニティのディスカッションをご覧ください。