onwAMD / README.md
ryugyosoft's picture
onw AMD 0.1.1: FastFlowLM v1.0.7, NPU check reasons, diag.py
63211d2 verified
|
Raw History Blame Contribute Delete
7.77 kB
---
license: apache-2.0
language:
- ja
- en
tags:
- amd
- npu
- ryzen-ai
- xdna2
- fastflowlm
- lemonade
---
<img src="images/onw-banner.jpg" alt="onw" width="100%">
# onw AMD — 俺のNPUがこんなに動くわけない(AMD Ryzen AI NPU 版)
**日本語** | [English](README_en.md) ・ [更新履歴](CHANGELOG.md)
LLM を **AMD Ryzen AI の NPU(XDNA2)だけで** 動かすアプリです。[onw](https://huggingface.co/ryugyosoft/onw)(Intel NPU 版)の
UI と仕組み(タスクトレイ常駐、モデル管理ウィンドウ、OpenAI 互換 API、チャット画面、検証ページ、自動更新)はそのままに、
推論を NPU 専用エンジン [FastFlowLM](https://github.com/ROCm/FastFlowLM) に置き換えました。FastFlowLM の取得・起動・中継の
仕組みは [Lemonade Server](https://github.com/lemonade-sdk/lemonade) から移植しています。
- **NPU で動かす機能だけ**です。CPU・GPU(iGPU)・NPU+GPU のハイブリッドでは動かしません。
- NPU エンジンは FastFlowLM(`flm` v1.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 のドライバー案内](https://lemonade-server.ai/driver_install.html))。onw は `flm validate` で確認します。
- Windows 11、または Linux(`amdxdna` ドライバー)
- 空き容量:FastFlowLM 約 40 MB + モデル 1〜22 GB
## インストール
**Windows**(PowerShell に 1 行貼り付け)
```powershell
irm https://huggingface.co/ryugyosoft/onwAMD/resolve/main/install.ps1 | iex
```
`%LOCALAPPDATA%\onw-amd` に入り、タスクトレイに onw のアイコンが出て、モデルを選ぶウィンドウが開きます。
フォルダを直接持っている場合は `setup.bat` を実行してください。
**Linux**
```bash
curl -fsSL https://huggingface.co/ryugyosoft/onwAMD/resolve/main/install.sh | bash
```
## 使い方
1. onw ウィンドウの「**モデル**」タブで、上の「FastFlowLM」の「入れる」を押すとモデルの一覧が出ます。
使いたいモデルの「ダウンロード」を押します(FastFlowLM がまだなら、先に自動で入ります)。
2. 「**サーバー**」タブでモデルを選んで「ロード」。状態が「動作中」になったら使えます(ロードは十数秒)。
3. 「チャット」でブラウザのチャット画面、「検証ページ」で応答開始までの時間と生成速度をまとめて測れます。
4. 他のアプリからは **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` を付けると小さいモデルで実際に試します)。
```bash
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` コマンド
```bash
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](https://github.com/ROCm/FastFlowLM)
コードは Apache 2.0(onw と同じ)。`onw/lemonade.py` は Lemonade Server(Apache 2.0、AMD / lemonade-sdk)のコードを移植したものです。
FastFlowLM は onw には含まれず、実行時に公式のリリースからダウンロードされます(コードは MIT、NPU カーネルはソース非公開だが商用を含め無償)。
モデルはそれぞれのモデルのライセンスに従います。