candle+Rustで「stabilityai/japanese-stablelm-3b-4e1t-instruct」をCPU推論
はじめに
こんなのがあった。RustでLLMをCPU推論させようねって奴らしい
exampleから推論を試しにやってみる。
環境構築
git clone https://github.com/huggingface/candle
cd candle/candle-examples
cargo run --example phi --release -- --prompt "USER: Hello!\nASSISTANT:" --model puffin-phi-v2 --quantized
以上でphiを推論することに成功し、環境構築完了であることを確認した。
日本語モデルの推論
日本語モデルの推論を行いたい。
丁度stable-lmの3b-4e1tがexampleに存在するのでmodelの変更を行ってみる。
examples\stable-lm\main.rs
より抜粋
#[arg(long, default_value = "lmz/candle-stablelm-3b-4e1t")]
model_id: String,
上記の部分を以下に変更する。
#[arg(long, default_value = "stabilityai/japanese-stablelm-3b-4e1t-instruct")]
model_id: String,
quantizeモデルではないので、quantizedオプションは付けない。
cargo run --example stable-lm-jp --release -- --prompt "### 指示: 今夜の晩御飯のレシピを教えて \n ### 応答:"
おまけ
quantizedを付けない理由は、exampleを流用しているため。exampleは「lmz/candle-stablelm-3b-4e1t」リポジトリに依存した実装になっており、quantizedオプションを付けるとmodel-q4k.ggufが指定される。
None => {
if args.quantized {
vec![repo.get("model-q4k.gguf")?]
} else {
vec![repo.get("model.safetensors")?]
}
}
これは日本語モデルの方にはファイルがないのでエラーになる。model.safetensorsはstabilityai/japanese-stablelm-3b-4e1t-instructにもあるので、quantizedを付けないことで一旦回避している。
できなかったこと
quantizedモデルを使いたかったので、mmnga/japanese-stablelm-3b-4e1t-instruct-ggufを別途読み込もうとしたところ、Error: ggml: unsupported magic/version Gguf/3
エラーが発生した。多分GGUFの新バージョンに対応してないとか、そういう系な気がする。(あってるかは謎)
Discussion