個人的なメモ

Tomohiro Suzuki @hiro128_777 のブログです。Microsoft MVP for Developer Technologies 2017- 本ブログと所属組織の公式見解は関係ございません。

Phi Silica の Language Model を検証できるコンソールアプリ

 

はじめに

公式のサンプルは WinUI3 アプリで、パラメータをいじりながら Phi Silica の検証をするには使い勝手が悪かったので
もっとシンプルに Phi Silica の Language Model を検証できるコンソールアプリを作成しました
github.com

  • Windows Copilot Runtime API を使用します。
  • C# で書かれています

 

推奨環境

  • Copilot+ PC (Snapdragon X)
  • Windows App SDK (1.7.0-experimental3)
  • RAM 16GB 以上
  • Windows 11 Insider Preview Build 26120.3073 (開発およびベータ チャネル)

 

目的

  • Phi Silica の検証
  • Phi Silica でエッジ AI アプリを作る前に、精度が出るか確認したい
  • NPU が動いているのを手っ取り早く確認したい

 

特長

設定ファイルは json

以下の項目を設定できます

  • 翻訳の ON/OFF
  • RAG の ON/OFF

 

プロンプトを一度英語に翻訳して問い合わせ、結果を再度日本語にできる

Phi Silica は英語に最適化されているため、プロンプトを一度英語にして問い合わせ結果を再度日本語にすることで精度を高められる可能性があります。翻訳の ON/OFF は設定ファイルのオプションで指定します。
(残念ながら現状あまり効果が出ていません)
 

RAG に対応

md, txt で付加情報を与えることでで RAG に対応しています。特に翻訳した時の固有名詞を与えることで、精度を高められます。

ベクトル検索は Build5Nines 氏の SharpVector
を使用しています。
github.com
 

処理フロー
  1. システムプロンプトを英語に翻訳する
  2. ユーザープロンプトを英語に翻訳する
  3. 英語にしたプロンプトで問い合わせ
  4. レスポンスでベクトルデータベースに問合せし、RAG のデータ取得
  5. RAG のデータを付加して日本語に翻訳

 

設定ファイルのフォーマット

settings.json

{
  "isTranslate": "<true or false>",
  "isUsingRag": "<true or false>",
  "systemPrompt": "<Your system prompt>",
  "userPrompt": "<Your user prompt>",
  "additionalDocumentsPath": "<Your documents path>" // RAG 用ファイルの Path
}