個人的なメモ

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

C# と ローカル SLM で Edge AI を試してみた(目次)

目次 目次 Phi3, Phi3.5, Phi4 関連 C# を使ってローカル PC の CPU か NPU かでお手軽にエッジ AI を始める方法 C# を使って CPU で Edge AI を試してみよう(1)Phi モデルの概要 C# を使って CPU で Edge AI を試してみよう(2)簡単なアプリを作成してみ…

C# を使ってローカル PC の CPU か NPU かでお手軽にエッジ AI を始める方法

はじめに CPU か NPU か CPU で SLM を試すには CPU 上の ONNX ランタイム対応の提供モデル一覧(2025/03 現在) NPU で SLM を試すには はじめに LLM を使うのはもう当たり前ですが、最近はローカル PC の SLM も手軽に試せる環境が整ってきました。 そこで…

Phi Silica を試す前に読んでおくとよいおすすめのドキュメント

はじめに 環境作成 前提条件 Windows App SDK experimental channel のリリースノート アプリ作成に必要な情報 Windows App SDK Phi Silica の API リファレンス 公式の Windows Copilot Runtime WinUI サンプルアプリ 筆者作成の Language Model を試すコン…

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

はじめに 推奨環境 目的 特長 設定ファイルは json プロンプトを一度英語に翻訳して問い合わせ、結果を再度日本語にできる RAG に対応 処理フロー 設定ファイルのフォーマット はじめに 公式のサンプルは WinUI3 アプリで、パラメータをいじりながら Phi Sil…

Phi モデルをローカルで検証できるサンプルアプリ

はじめに 推奨環境 目的 特長 設定ファイルは json プロンプトを一度英語に翻訳して問い合わせ、結果を再度日本語にできる RAG に対応 処理フロー 設定ファイルのフォーマット モデルのダウンロード はじめに Phi モデルをローカルで検証できるサンプルアプ…

Phi Silica (Language Model)で日本語の実用性があるか試してみた。

はじめに 検証 1 システムプロンプト ユーザープロンプト レスポンス 検証 2 システムプロンプト ユーザープロンプト レスポンス: 比較用:英語での検証 システムプロンプト ユーザープロンプト レスポンス: まとめ はじめに コンソールアプリで、Phi Sili…

Phi Silica をコンソールアプリで動かしたらエラー発生、そして解決

はじめに コンソールアプリではうまく動かない(のちに解決) GitHub の issue に新情報が! -> 解決 前の記事 hiro128.hatenablog.jp はじめに Phi Silica がリリースされたので早速検証しています。 まずは、以下の記事にあるように公式サンプルで検証して…

待ちに待った Phi Silica がようやくやってきたので Text Completion を試してみた

はじめに 検証環境 検証内容 検証結果 NPU の動作 CPU、NPU の使用率 メモリの使用量 精度 まとめ はじめに 2025/02/07 ようやく Phi Silica が使えるようになったので、さっそく試してみました。 発売日に大枚はたいて買った Copilot+ PC がようやく意味を…

C# を使って CPU で Edge AI を試してみよう(4)日本語の精度を高めるために、さらに RAG を導入してみる

はじめに 処理のフロー 翻訳するためのプロンプトを RAG に対応させる システムプロンプト(変更なし) ユーザープロンプトの冒頭に記載する、日本語 -> 英語の翻訳を指示するプロンプト(変更なし) ユーザープロンプトの冒頭に記載する、英語 -> 日本語の…

C# を使って CPU で Edge AI を試してみよう(3)日本語で精度を高めるために、英語に翻訳してプロンプトを投げる

はじめに 処理のフロー 翻訳するためのプロンプトをどう書くか 翻訳時に発生した問題 システムプロンプト ユーザープロンプトの冒頭に記載する、日本語 -> 英語の翻訳を指示するプロンプト ユーザープロンプトの冒頭に記載する、英語 -> 日本語の翻訳を指示…

C# を使って CPU で Edge AI を試してみよう(2)簡単なアプリを作成してみる

はじめに コード 実行環境 速度・精度 プロンプトとレスポンスの一例 Phi 3 Mini 128k(日本語) Phi 3 Mini 128k(英語) Phi 3 Medium 128k(日本語) Phi 3 Medium 128k(英語) 速度と精度の両立を狙うための改善を考えてみる 前の記事 hiro128.hatenabl…

C# を使って CPU で Edge AI を試してみよう(1)Phi モデルの概要

はじめに CPU 対応の提供モデル一覧(2025/03 現在) Hugging Face のリポジトリとダウンロードのコマンド Phi3 mini 4k Phi3 mini 128k Phi3 medium 4k Phi3 medium 128k Phi3.5 mini 128k Phi4 mini 128k はじめに Edge AI を試してみたく Phi Silica がリ…

C# だけで Azure OpenAI の RAG を試してみたい (9)デフォルトのチャットアプリをデプロイしてみる

①Web アプリをデプロイするボタンを押下 ②デプロイ設定の入力 ③デプロイが進行 ④デプロイが完了したら、アプリにアクセスする ⑤動作確認 前の記事 hiro128.hatenablog.jp 前回の記事でプレイグラウンドで動作確認をしましたが、プレイグラウンドは公開できま…

C# だけで Azure OpenAI の RAG を試してみたい(目次)

目次 目次 C# だけで Azure OpenAI の RAG を試してみたい (1)検討したシステム構成と処理フロー C# だけで Azure OpenAI の RAG を試してみたい (2)C# によるテキストのクレンジング・チャンクの方針 C# だけで Azure OpenAI の RAG を試してみたい (3…

C# だけで Azure OpenAI の RAG を試してみたい (8)「データの追加」とプレイグラウンドでの動作確認

データの追加 「データの追加」を開始する データソースの選択 「インデックスデータフィールドのマッピング」の設定 「データの管理」の設定 「設定のレビュー」行い完了させる プレイグランドでの動作確認 前の記事 hiro128.hatenablog.jp データの追加 チ…

C# だけで Azure OpenAI の RAG を試してみたい (7)インデックスへのドキュメント登録

ドキュメントの登録 Embedding の取得 ドキュメントのアップロード ドキュメントの削除時の注意点 ソースコード全体 前の記事 hiro128.hatenablog.jp ドキュメントの登録 作成したソースコードの詳細は以下を参照ください。 github.com Embedding の取得 チ…

C# だけで Azure OpenAI の RAG を試してみたい (6)AI Search の検索インデックス作成

AI Search の検索インデックス作成 フィールド セマンティック構成 ベクタープロファイル 前の記事 hiro128.hatenablog.jp AI Search の検索インデックス作成 クロールしてクレンジングしたはてなブログ記事のドキュメントを登録する AI Search のインデック…

C# だけで Azure OpenAI の RAG を試してみたい (5)Blob コンテナ上でのソースデータの更新日時の管理

留意点②:Blob コンテナ上でのソースデータの更新日時の管理 Blob メタデータへ url と 最終更新日時を付加したうえで、Blob 上の既存項目から更新があればアップロードする 前の記事 hiro128.hatenablog.jp 留意点②:Blob コンテナ上でのソースデータの更新…

C# だけで Azure OpenAI の RAG を試してみたい (4)html ファイルのクレンジング

html ファイルのクレンジング どのような実装をしたのか 参考にした Python のサンプルの実装 移植した C# の実装 前の記事 hiro128.hatenablog.jp html ファイルのクレンジング 作成したソースコードの詳細は以下を参照ください。 github.com どのような実…

C# だけで Azure OpenAI の RAG を試してみたい (3)TokenCounter の実装

TokenCounter の実装 Tokenizer のライブラリ 作成した C# のソースコード 前の記事 hiro128.hatenablog.jp TokenCounter の実装 SplitPlainTextParagraphs メソッドで正しくトークンをカウントするために必要な tokenCounter パラメーターはソースコードを…

C# だけで Azure OpenAI の RAG を試してみたい (2)C# によるテキストのクレンジング・チャンクの方針

C# のみで RAG を構築する場合の留意点 留意点①:C# によるテキストのクレンジング・チャンク SemanticKernel.TextChunker を使う SplitPlainTextParagraphs メソッドの留意点 前の記事 hiro128.hatenablog.jp C# のみで RAG を構築する場合の留意点 C# では…

C# だけで Azure OpenAI の RAG を試してみたい (1)検討したシステム構成と処理フロー

はじめに カスタマイズ方針 検討したシステム構成と処理フロー 注意 ソースコードと各プロジェクトの解説 はじめに 最近 Azure OpenAI の RAG について色々調べていますが、サンプルアプリは Python が多いです。 自分は C# が大好きなので、C# でやってみた…

Azure Functions のローカルデバッグで Azure Blob Storage トリガーのリトライ回数、同時実行数を制御する方法

ブレークポイントやコンソールに出力させてデバッグしたいときに、リトライが発生して、関数が複数実行されると非常にデバッグがやりにくいです。 それを制御する設定です。なお、この設定値は Source = BlobTriggerSource.EventGridの場合でも有効です。Azu…

GitHub Copilot Chat の AI-Powered Rename Suggestions を試してみた(2)

前回 Visual Studio Preview の既知の問題で時間を溶かしてあまり詳しく挙動を確認できなかったので、再度どれくらいいい感じにリネームしてくれるか確認してみました。 hiro128.hatenablog.jp well-known なアルゴリズム well-known なアルゴリズムのネーミ…

GitHub Copilot Chat の AI-Powered Rename Suggestions を試してみた(ら詰みかけた話)

AI-Powered Rename Suggestionsを試しました。以下のブログで紹介されていた記事です。 devblogs.microsoft.com 動作させるのに地獄を見る… この機能、2023/12/24 現在、Visual Studio 2022 Preview Version 17.9.0 Preview 2 (この時点での最新版)では不具…

「山東探究塾II中間発表会」に研究助言者として参加してきました。

2023年7月18日に、母校である山形県立山形東高等学校の「山東探究塾II中間発表会」に研究助言者として参加してきました。 山東探究塾とは「主体的・協働的で深い学び(探究型学習)による様々な教育プログラムを通して、将来、地域や国内外の課題を解決でき…

Visual Studio 2022 for Mac v17.6 Preview 2 にアップデートしたら...

「壊れているため開けません。ゴミ箱に入れる必要があります。」 なんじゃこりゃ!? アプリをゴミ箱に捨てて、インストーラーDLしてインストールし直したら直りました。

Orleans の Microsoft learn モジュール

Orleans について一通り、学んだ後は以下のモジュールにトライしてみると、より深く理解が得られます。おすすめです。learn.microsoft.com

Xamarin から .NET へのアップグレード

公式でも、Xamarin から .NET へのアップグレードが案内されるようになりました。いよいよ Xamarin が終焉が近くなってきました。 learn.microsoft.com Xamarin.Forms から MAUI への移行は .NET Upgrade Assistant が利用できます。 learn.microsoft.com Xa…

Orleans の構成要素:サイロ

目次 目次 サイロの役割 サイロの実装例 前の記事はこちらです。 hiro128.hatenablog.jp サイロの役割 サイロは複数の仮想アクターつまりグレインをホストするコンテナです。サイロは単一ではその効力を発揮できません。複数のサイロによって構成されるグル…