次の方法で共有


Visual Studio Code 用の AI Toolkit の概要

AI Toolkit for VS Code (AI Toolkit) は、アプリまたはクラウドで AI モデルをダウンロード、テスト、微調整、デプロイできる VS Code 拡張機能です。 詳細については、「AI Toolkit 概要」に関するページを参照してください。

この記事では、次の方法について学習します。

  • VS Code 用 AI Toolkit をインストールします。
  • カタログからモデルをダウンロードする
  • プレイグラウンドを使用してモデルをローカルで実行する
  • REST または ONNX ランタイムを使用して AI モデルをアプリケーションに統合する

前提条件

インストール

AI Toolkit は Visual Studio Marketplace で入手でき、他の VS Code 拡張機能と同様にインストールできます。 VS Code 拡張機能のインストールに慣れていない場合は、次の手順に従ってください。

  1. VS Code のアクティビティ バーで、[拡張機能] を選択します。
  2. 拡張機能の検索バーに「AI Toolkit」と入力します。
  3. [AI Toolkit 用 Visual Studio code] を選択します。
  4. [インストール] を選択します。

拡張機能がインストールされると、アクティビティ バーに AI Toolkit アイコンが表示されます。

カタログからモデルをダウンロードする

AI Toolkit のプライマリ サイドバーは、モデルリソースに編成されています。 プレイグラウンド微調整機能は、[リソース] セクションで利用できます。 開始するには、[モデル カタログ] を選択します。

AI Toolkit モデルカタログ

ヒント

モデル カードには、モデルのサイズ、プラットフォーム、アクセラレータの種類 (CPU、GPU) が表示されています。 GPU が ひとつ以上搭載されている Windows デバイスのパフォーマンスを最適化するには、Windows のみを対象とするモデル バージョンを選択します。 これにより、DirectML アクセラレータ用に最適化されたモデルが用意されます。 モデル名の形式は、{model_name}-{accelerator}-{quantization}-{format} です。

Windows デバイスに GPU があるかどうかをチェックするには、タスク マネージャーを開き、[パフォーマンス] タブを選択します。GPU がある場合は、"GPU 0" や "GPU 1" などの名前の下に表示されます。

次に、デバイスで GPU を使用できるかに応じて、次のモデルをダウンロードします。

プラットフォーム GPU を使用できるか モデル名 サイズ (GB)
Windows はい Phi-3-mini-4k-directml-int4-awq-block-128-onnx 2.13 GB
Linux はい Phi-3-mini-4k-cuda-int4-onnx 2.30 GB
Windows
Mac
Linux
いいえ Phi-3-mini-4k-cpu-int4-rtn-block-32-acc-level-4-onnx 2.72 GB

Note

Phi-3-mini (int4) モデルのサイズはおよそ 2 GB から 3 GB です。 ネットワーク速度によっては、ダウンロードに数分かかる場合があります。

プレイグラウンドでモデルを実行する

モデルがダウンロードされたら、カタログのモデル カードで [Load in Playground] (プレイグラウンドに読み込む) を選択します。

プレイグラウンドに読み込む

プレイグラウンドのチャット インターフェイスで、次のメッセージを入力し、Enter キーを押します。

プレイグラウンドの選択

モデルの応答がストリーミングされたことが確認できます。

生成応答

警告

デバイスで GPU を使用できないのに Phi-3-mini-4k-directml-int4-awq-block-128-onnx モデルを選択した場合、モデルの応答は非常に遅くなります。 代わりに、CPU 最適化バージョンの Phi-3-mini-4k-cpu-int4-rtn-block-32-acc-level-4-onnx をダウンロードする必要があります。

また、以下を変更することもできます。

  • コンテキスト命令: モデルが要求の全体像を理解するのに役立ちます。 これには、背景情報、必要なものの例/デモンストレーション、タスクの目的の説明などがあります。
  • 推論パラメーター:
    • 最大応答長: モデルが返すトークンの最大数。
    • 温度: モデル温度は、言語モデルの出力をどの程度ランダムにするかを制御するパラメーターです。 温度が高いほど、モデルはより大きなリスクを負い、多様な単語の組み合わせを提供します。 一方、温度が低いほど、モデルは安全に役割を果たし、より焦点を絞った予測可能な応答で対応します。
    • 最上位 P: 核サンプリングとも呼ばれる設定で、次の単語を予測するときに言語モデルが検討する単語または語句の数を制御します。
    • 頻度ペナルティ: このパラメーターは、モデルが出力で単語や語句を繰り返す頻度に影響します。 値が大きい (1.0 に近い) ほど、単語や語句を繰り返さないことがモデルに推奨されます。
    • プレゼンス ペナルティ: このパラメーターは、生成されるテキストの多様性と具体性を促進するために生成 AI モデルで使用されます。 値が大きい (1.0 に近い) ほど、より斬新で多様なトークンを含めるようモデルに促します。 より小さい値を指定すると、モデルで一般的なありきたりの語句が生成される可能性が高くなります。

AI モデルをアプリに統合する

モデルをアプリケーションに統合するには、次の 2 つのオプションがあります。

  1. AI Toolkit には、OpenAI チャット入力候補形式を使用するローカル REST API Web サーバーが付属しています。 これにより、クラウド AI モデル サービスに依存することなく、エンドポイント http://127.0.0.1:5272/v1/chat/completions を使用してアプリケーションをローカルでテストすることができます。 運用環境でクラウド エンドポイントに切り替える場合は、このオプションを使用します。 OpenAI クライアント ライブラリを使用して、Web サーバーに接続できます。
  2. ONNX ランタイムの使用。 デバイスで推論機能を持つモデルをアプリケーション配布する場合は、このオプションを使用します。

ローカル REST API Web サーバー

ローカル REST API Web サーバーを使用すると、クラウド AI モデル サービスに依存することなく、アプリケーションをローカルでビルドしてテストできます。 Web サーバーと対話するには、REST または OpenAI クライアント ライブラリを使用します。

REST 要求の本文の例を次に示します。

{
    "model": "Phi-3-mini-4k-directml-int4-awq-block-128-onnx",
    "messages": [
        {
            "role": "user",
            "content": "what is the golden ratio?"
        }
    ],
    "temperature": 0.7,
    "top_p": 1,
    "top_k": 10,
    "max_tokens": 100,
    "stream": true
}'

Note

モデル フィールドを、ダウンロードしたモデルの名前に更新することが必要になる場合があります。

Postman や CURL ユーティリティなどの API ツールを使用して、REST エンドポイントをテストできます。

curl -vX POST http://127.0.0.1:5272/v1/chat/completions -H 'Content-Type: application/json' -d @body.json

ONNX Runtime

ONNX ランタイム生成 API は、ONNX ランタイムによる推論、ロジット処理、検索とサンプリング、KV キャッシュ管理など、ONNX モデルの生成 AI ループを提供します。 上位レベル generate() のメソッドを呼び出したり、モデルの各イテレーションをループで実行したりして、一度に 1 つのトークンを生成したり、必要に応じてループ内の生成パラメーターを更新したりできます。

最長一致/ビーム検索と TopP、TopK サンプリングをサポートし、トークン シーケンスを生成し、繰り返しペナルティなどの組み込みのロジット処理を生成します。 次のコードは、アプリケーションで ONNX ランタイムを活用する方法の例です。

ローカル REST API Web サーバーに示されている例を参照してください。 AI ToolkitREST Web サーバーは ONNX ランタイムを使用して構築されます。

次のステップ