onw AMD — 俺のNPUがこんなに動くわけない(AMD Ryzen AI NPU 版)
LLM を AMD Ryzen AI の NPU(XDNA2)だけで 動かすアプリです。onw(Intel NPU 版)の UI と仕組み(タスクトレイ常駐、モデル管理ウィンドウ、OpenAI 互換 API、チャット画面、検証ページ、自動更新)はそのままに、 推論を NPU 専用エンジン FastFlowLM に置き換えました。FastFlowLM の取得・起動・中継の 仕組みは Lemonade Server から移植しています。
- NPU で動かす機能だけです。CPU・GPU(iGPU)・NPU+GPU のハイブリッドでは動かしません。
- NPU エンジンは FastFlowLM(
flmv1.0.7、約 40 MB)だけで、初回に自動でダウンロードします。モデルはflm listに出る チャットモデル(Qwen3.5/3.6、Gemma 4、gpt-oss、Llama 3.x、Phi-4-mini、LFM2 など)です。
必要なもの
- XDNA2 の NPU を持つ AMD Ryzen AI の PC(Ryzen AI 300 シリーズ〔Strix Point / Krackan Point〕、Ryzen AI Max〔Strix Halo〕以降)。 XDNA1(Ryzen 7040/8040 の Phoenix / Hawk Point)は FastFlowLM が対応していないため動きません。
- NPU ドライバー(Windows:デバイスマネージャーに「NPU Compute Accelerator Device」が出ていること。
入れ方は Lemonade のドライバー案内)。onw は
flm validateで確認します。 - Windows 11、または Linux(
amdxdnaドライバー) - 空き容量:FastFlowLM 約 40 MB + モデル 1〜22 GB
インストール
Windows(PowerShell に 1 行貼り付け)
irm https://huggingface.co/ryugyosoft/onwAMD/resolve/main/install.ps1 | iex
%LOCALAPPDATA%\onw-amd に入り、タスクトレイに onw のアイコンが出て、モデルを選ぶウィンドウが開きます。
フォルダを直接持っている場合は setup.bat を実行してください。
Linux
curl -fsSL https://huggingface.co/ryugyosoft/onwAMD/resolve/main/install.sh | bash
使い方
- onw ウィンドウの「モデル」タブで、上の「FastFlowLM」の「入れる」を押すとモデルの一覧が出ます。 使いたいモデルの「ダウンロード」を押します(FastFlowLM がまだなら、先に自動で入ります)。
- 「サーバー」タブでモデルを選んで「ロード」。状態が「動作中」になったら使えます(ロードは十数秒)。
- 「チャット」でブラウザのチャット画面、「検証ページ」で応答開始までの時間と生成速度をまとめて測れます。
- 他のアプリからは OpenAI 互換 API:base URL
http://localhost:8010/v1、モデル名はウィンドウに表示される名前 (例qwen3-it-4b-FLM)。
迷ったら qwen3-it-4b-FLM(3.1 GB、ツール呼び出し対応)、画像も読ませたいなら qwen3.5-4b-FLM(5.0 GB)。 テスト機(Ryzen AI 9 HX 370)では qwen3.5-0.8b で生成 約 44 tok/s、応答開始 約 0.5 秒でした。
- 思考モード(reasoning のラベルがあるモデル):チャット画面の「思考モード」、API の
chat_template_kwargs: {"enable_thinking": true}かreasoning_effort。思考はreasoning_contentに分けて返します。
うまく動かないとき
「モデル」タブに FastFlowLM の NPU チェックの結果(理由)が出ます。それでも分からないときは診断スクリプトを実行し、
保存される onw-amd-diag.txt を送ってください(読み取りのみ。--try-model を付けると小さいモデルで実際に試します)。
curl -fsSL https://huggingface.co/ryugyosoft/onwAMD/resolve/main/diag.py | python3 - --try-model
Windows(PowerShell)は irm https://huggingface.co/ryugyosoft/onwAMD/resolve/main/diag.py | python - --try-model。
onw コマンド
onw serve MODEL [--port 8010] [--host 0.0.0.0] [--api-key KEY] [--context 4096] [--open]
onw tray # 常駐アプリ(setup が起動するもの)
onw window [--tab models] # モデル管理・サーバー操作・設定のウィンドウ
onw list # この PC で動かせるモデル(* はダウンロード済み)
onw npu # NPU と FastFlowLM の状態(flm validate の結果も)
onw serve はモデルや FastFlowLM がなければ先にダウンロードします(コンソールで 1 回だけ動かすなら start.bat モデル名)。
サーバー
GET /(案内)、/health(モデルを読み終わると 200、読み込み中は 503)、/v1/models、POST /v1/chat/completions(ストリーミング可)、POST /v1/completions、/chat、/check、/api/info- 既定のポートは 8010 です(Lemonade Server がよく使う 8000 とぶつからないように)。設定画面で変えられます。
- CORS は開放済み。LAN に公開するときは API キー(
--api-keyまたは設定画面)で/v1を保護できます。 - 仕組みは Lemonade Server と同じです:
flm serveを空いているローカルのポート(8001〜)で子プロセスとして起動し、 リクエストを転送します(modelは FastFlowLM のチェックポイント名に書き換えます)。onw のサーバーが止まれば FastFlowLM も必ず止まり(Windows ではジョブオブジェクト)、FastFlowLM が止まれば onw のサーバーも止まってウィンドウに理由が出ます。
保存場所
| もの | 場所 |
|---|---|
| 設定・ログ | %APPDATA%\onw-amd(Linux: ~/.config/onw-amd) |
| FastFlowLM | %APPDATA%\onw-amd\bin\flm\npu |
| モデル | 保存先フォルダ(既定 %APPDATA%\onw-amd\flm、ウィンドウで変更可)。FLM_MODEL_PATH として flm に渡します |
構成
| ファイル | 内容 |
|---|---|
onw/lemonade.py |
Lemonade Server の FastFlowLM 経路の移植:XDNA2 の検出、FastFlowLM の取得(版は Lemonade の backend_versions.json と同じ)、flm validate / list / pull / remove、起動コマンド、準備完了の待ち合わせ |
onw/server.py |
OpenAI 互換サーバー:FastFlowLM を起動して転送、思考モードの変換、チャット画面・検証ページ・API キー |
onw/app.py、onw/manager.py、onw/dl.py |
設定・モデル一覧・サーバープロセスの管理、ウィンドウの裏側(ローカル API)、ダウンロード(別プロセス) |
onw/tray.py、onw/update.py、onw/i18n.py、onw/web/ |
トレイアイコン、自動更新、表示言語(日本語・英語・中国語)、画面 |
ライセンス
Powered by FastFlowLM
コードは Apache 2.0(onw と同じ)。onw/lemonade.py は Lemonade Server(Apache 2.0、AMD / lemonade-sdk)のコードを移植したものです。
FastFlowLM は onw には含まれず、実行時に公式のリリースからダウンロードされます(コードは MIT、NPU カーネルはソース非公開だが商用を含め無償)。
モデルはそれぞれのモデルのライセンスに従います。