Download CONVERT_LFM.md from ryugyosoft/onw: direct link, hf CLI and curl.
- Browser
- Download file 9.99 kB
-
https://huggingface.co/ryugyosoft/onw/resolve/main/CONVERT_LFM.md
- Command line
-
hf download hf://ryugyosoft/onw/CONVERT_LFM.md
-
curl -L -o CONVERT_LFM.md https://huggingface.co/ryugyosoft/onw/resolve/main/CONVERT_LFM.md
LFM を自分で変換して onw で使う
README に戻る ・ 日本語 | English
LiquidAI の LFM2.5-2.6B・LFM2-8B-A1B・LFM2.5-24B-A2B は onw で動きますが、変換済みのモデルは配布していません。LFM のライセンス (LFM Open License v1.0)は、年間売上 1000 万ドル以上の法人による商用利用を対象外にしているためです。このページの 手順で、元のモデルを Hugging Face から取得して、自分の PC で変換してください。onw だけで変換でき(torch などは不要)、 1〜2 分で終わります。変換したモデルはその PC の中だけにあり、どこにも送られません。
AI アシスタントに任せる場合:このページの URL を渡して「この手順で LFM2.5-2.6B を onw 用に変換して」と頼めば、 そのまま実行できるように書いてあります(下の「AI アシスタントへ」も読ませてください)。
対応しているモデル
| 元のモデル | onw のアーキテクチャ | 元の大きさ | 変換後 | NPU 3720 生成速度 | 使用メモリ |
|---|---|---|---|---|---|
| LiquidAI/LFM2.5-2.6B | lfm2(dense) |
5.1 GB | 1.5 GB | 12〜13 tok/s(先読み検証で 29〜34) | 約 4.3 GB |
| LiquidAI/LFM2-8B-A1B | lfm2_moe(MoE) |
16 GB | 4.0 GB | 16〜17 tok/s(先読み検証で 29〜43) | 約 5 GB |
| LiquidAI/LFM2.5-24B-A2B | lfm2_moe(MoE、NF4) |
48 GB | 12 GB | 動かない(Panther Lake で約 20 tok/s) | 約 12.6 GB |
LFM2.5-24B-A2B は onw 3.3.0 以降、Lunar Lake 以降専用です(重みを NF4 にするため。NPU 3720 では動きません)。onw ウィンドウの「モデル」タブの「ダウンロードして変換」で、下の手順 2・3 を自動で行えます。手で変換するときは、手順 3 のコマンドの最後に --fmt nf4 を付けてください(変換はテスト機で約 9 分。空きは元のモデル+変換後で約 60 GB)。
同じ lfm2 構造のほかの LFM2/LFM2.5(テキストのみのもの)も変換できるはずですが、確認したのは上の 3 つだけです。
画像や音声を扱う LFM2-VL/LFM2-Audio には対応していません。
必要なもの
- onw 0.9.0 以降がインストール済みであること(README の「インストール」の 1 行コマンド)。
- 空き容量:元のモデル+変換後(LFM2.5-2.6B なら 6.6 GB、LFM2-8B-A1B なら 20 GB)。変換が終われば元のモデルは消せます。
- メモリ:変換中に実際に占有するのは 2〜4 GB です(元のファイルの読み込みで作業セットは 8〜17 GB まで増えますが、 OS が必要に応じて手放す分です)。
- インターネット接続(元のモデルの取得)。
手順
以下は Windows は PowerShell、Ubuntu は端末(bash) で、上から順に実行します。例は LFM2.5-2.6B です。
LFM2-8B-A1B にするときは LiquidAI/LFM2.5-2.6B と LFM2.5-2.6B をそれぞれ LiquidAI/LFM2-8B-A1B と LFM2-8B-A1B に
置き換えてください。
1. onw の Python と保存先を調べる
Windows(PowerShell)
$py = "$env:LOCALAPPDATA\onw\.venv\Scripts\python.exe"
& $py -c "import onw; print(onw.__version__)"
$models = & $py -c "from onw import app; print(app.models_dir(app.load_config()))"
$models
Ubuntu(bash)
py=~/onw/.venv/bin/python
"$py" -c "import onw; print(onw.__version__)"
models=$("$py" -c "from onw import app; print(app.models_dir(app.load_config()))")
echo "$models"
- 1 行目の表示(onw の版)が 0.9.0 以上であること。それより古ければ、トレイのメニューか onw ウィンドウの 「設定」→「今すぐ確認」で更新するか、インストールの 1 行コマンドをもう一度実行してから、やり直します。
$modelsは onw のモデルの保存先です(onw ウィンドウの「モデル」タブの「保存先」と同じ)。 ここに変換すると、onw の一覧に自動で出ます。
2. 元のモデルを取得する
Windows
$src = "$env:USERPROFILE\lfm-src\LFM2.5-2.6B"
& $py -c "from huggingface_hub import snapshot_download; snapshot_download('LiquidAI/LFM2.5-2.6B', local_dir=r'$src')"
Ubuntu
src=~/lfm-src/LFM2.5-2.6B
"$py" -c "from huggingface_hub import snapshot_download; snapshot_download('LiquidAI/LFM2.5-2.6B', local_dir='$src')"
途中で止まったら、同じコマンドをもう一度実行すれば続きから取得します。終わると $src に config.json、
model-*.safetensors、tokenizer.json などが入っています。
3. 変換する
Windows
& $py -m onw convert $src "$models\LFM2.5-2.6B-onw" --compact
Ubuntu
"$py" -m onw convert "$src" "$models/LFM2.5-2.6B-onw" --compact
プロンプトを速くしたいとき(LFM2-8B-A1B、onw 3.3.0 以降):変換の前に $env:ONW_LFM_MIXER = "128"(Ubuntu は export ONW_LFM_MIXER=128)を実行しておくと、プロンプトをエキスパートごとにまとめて計算するグラフも作ります。NPU 3720 でプロンプト 70 → 約 310 tok/s、Panther Lake で 147 → 約 650 tok/s になりますが、メモリが約 0.7 GB 増え、先読み検証(コード修正・要約で速くなる仕組み)は使わなくなります。LFM2.5-24B-A2B(--fmt nf4)では最初から作ります。
成功すると、最後に done in …s と表示されます(テスト機で LFM2.5-2.6B は約 1 分、LFM2-8B-A1B は約 2 分)。
出力フォルダには engine.json、seg00.bin〜、seg00_S1.xml〜、shared.bin、tokenizer.json、LICENSE などが
でき、LFM2-8B-A1B では experts.bin も加わります。大きさは上の表の「変換後」とほぼ同じになります。
4. onw で使う
- onw ウィンドウの「モデル」タブに、LFM2.5-2.6B-onw(「ローカル」の印付き)が出ます。出なければウィンドウを 開き直してください。保存先以外に変換した場合は、「ほかの場所」の「追加…」でそのフォルダ(またはその親フォルダ)を 選びます。
- 「サーバー」タブでモデルを選んで「ロード」を押します。初回だけ NPU 向けのコンパイルがあります(テスト機で LFM2.5-2.6B は約 5 分、LFM2-8B-A1B は約 1.5 分)。状態が「動作中」になれば使えます。
- コマンドから起動する場合:
& $py -m onw serve "$models\LFM2.5-2.6B-onw"(Ubuntu は"$py" -m onw serve "$models/LFM2.5-2.6B-onw")。
5. 動作を確かめる
- 「検証ページ」を開いて「検証を実行」を押し、すべての項目が「OK」になることを確かめます。生成速度の目安は 上の表のとおりです(PC によって変わります)。
- LFM2.5 は、既定では考えずにすぐ答えます。考えさせたいときは、チャット画面の「思考モード」をオンにするか、API で
"chat_template_kwargs": {"enable_thinking": true}を指定します。
6. 後片付け(任意)
変換が終われば、元のモデル($src)は使いません。容量が必要なら削除して構いません。
うまくいかないとき
| 症状 | 対処 |
|---|---|
unsupported architecture 'lfm2' |
onw が古い。0.9.0 以上に更新してから変換し直す。 |
No such file や config.json が見つからない |
手順 2 が終わっていない。取得のコマンドをもう一度実行する。 |
Ubuntu で returned NaN/inf logits と出る、回答が途中から空になる |
NPU ドライバー(linux-npu-driver)が 1.38 より古い。1.38 以降に更新する。 |
| 空き容量が足りない | 元のモデルの保存先($src)を別のドライブにする。 |
| 一覧に出ない | 変換先が保存先か「ほかの場所」の下にあるか確認し、ウィンドウを開き直す。 |
ライセンスについて
変換したモデルは、元のモデルと同じ LFM Open License v1.0 に従います(変換先に LICENSE がコピーされます)。
年間売上 1000 万ドル以上の法人(その関連会社を含む)が商用で使う場合は、Liquid AI との別の契約が必要です。
自分の使い方がどれに当たるかは、ご自身で判断してください。onw のコード自体は Apache 2.0 です。
AI アシスタントへ
このページの手順をユーザーの代わりに実行するときの約束です。
- 手順 1〜5 を上から順に、ユーザーの OS に合ったほう(Windows なら PowerShell、Ubuntu なら bash)だけ実行する。
変数(
$py、$models、$src)は同じシェルの中で使い続ける。 - 手順 1 で onw の版が 0.9.0 未満(LFM2.5-24B-A2B では 3.3.0 未満)なら、先に進まずユーザーに更新を頼む。
- 各手順の「成功の目安」(版の表示、
done in …s、出力フォルダのファイル、検証ページの OK)を確かめてから次に進み、 失敗したら「うまくいかないとき」の表に沿って対処する。 - モデルの取得(数 GB のダウンロード)の前と、手順 6 の削除の前には、ユーザーに確認する。
- ライセンスの判断はユーザーに任せる(上の「ライセンスについて」を伝えるだけにする)。
- 終わったら、変換先のフォルダ、変換にかかった時間、検証ページの生成速度をユーザーに報告する。