llama.cppのリリースを確認していたところ、気になるリリースが上がってました。
以前、Qwen3.5とか3.6で認識できない(というか処理が進まなくなる)画像が認識できるようになりました。全部が全部、と言うわけではなく、特定の画像を見てもらうと処理が止まるというだけだったのですが。
ただ、その後、llama-cppの動作が不安定に陥るので、それが解消されたと思っていいのかな?
このリリースによって治ったっぽいな、と思って試してみたところ見事に画像の認識を行ってくれるようになりました。もともとが3.5だったか3.6だったか、両方だったのか記憶が怪しいので両方のモデルで試してみましたが両方ともに処理が通るようになしました。3.6はQwen3.6-35B-A3B-UD-Q2_K_XL.ggufで試しましたが、処理に時間がかかったうえに中国語で回答されてしまいました。Q2の劣化の影響なのかどうかは不明。
Qwen3.5はQwen3.5-4B-Q4_K_M.ggufのモデルファイルが残っていたのでそれを実行して確認しましたが、回答は日本語で得られたものの、若干認識が間違っていました。パラメータサイズと言うよりは3.6の方がQ2といえどもチューニングのブラッシュアップがかなり効いている感じですね。
今回のリリースの内容はserver: use pos_next instead of n_tokens for m-rope (#22439)とのことで Qwen2.5-VL-7B-Instructでも発生しているようですね。Qwenの仕様とllama.cpp側の実装の問題のようです。修正内容はtools/server/server-context.cpp内の
llama_memory_seq_rm(llama_get_memory(slot.ctx), slot.id, slot.prompt.n_tokens(), -1);
↓
llama_memory_seq_rm(llama_get_memory(slot.ctx), slot.id, slot.prompt.tokens.pos_next(), -1);
となっていて、n_tokens()からpos_nest()へ置き換えられています。
0 件のコメント:
コメントを投稿