Devotd Github
新着推論・サービング

joakimpalm-zen/xyntetik-runner R2.14 — 既知テンプレートオプションの取り扱い変更

2026-11-07 のコミット(PR #672 マージ、R2.14)により、xyntetik-runner は既知の `chat_template_kwargs` キーを黙って無視せず、そのまま反映するか、400 で拒否するようになった。

リポジトリ情報joakimpalm-zen/xyntetik-runner ↗

2026-11-07 のコミット(PR #672 マージ、R2.14)により、xyntetik-runner は既知の `chat_template_kwargs` キーを黙って無視せず、そのまま反映するか、400 で拒否するようになった。

GitHub の説明: Local inference you can prove. A single-binary GGUF engine in C: serves, scores, and trains LoRA through the quantized weights it deploys, byte-reproducibly. Tool calls survive the token limit; every run replays as a signed receipt. CPU/CUDA/Metal, OpenAI- and Anthropic-compatible.

スター
★ 28
フォーク
1
言語
C
ライセンス
Apache-2.0
最新リリース
v1.4.1
原文を見る ↗GitHub で見る ↗

joakimpalm-zen/xyntetik-runner は C で書かれた単一バイナリの GGUF エンジンである。サービングとスコアリング、デプロイされる量子化重みをそのまま使う LoRA 学習を同時に扱い、CPU/CUDA/Metal 上で OpenAI・Anthropic 互換 API を提供する。2026-11-07 の最新コミット(PR #672 マージ、R2.14)が手を掛けた対象は `chat_template_kwargs` である。これはリクエストに付随し、モデルのチャットテンプレート(メッセージをプロンプト文字列に組み立てる Jinja テンプレート)へ渡されるオプションのまとまりである。今回の変更の要点は、既知のキーを黙って消すのではなく、反映するか拒否するか anymore ということである。

Runner はファミリーごとに独自のレンダラーでテンプレートを描画し、ファイル内の Jinja を直接解釈するわけではない。そのため、キーはそのレンダラーが実際に扱う箇所でのみ効く。R2.14 はこの点を分けた。現在反映されるのは LFM2 と LFM2-24B の `preserve_thinking`、Qwen 3.8 の `preserve_thinking: false`(デフォルトではすべての思考を保持)、Apertus の `enable_thinking`、Granite 4.2 の `reasoning_effort: low` である。一方、ファイル内のテンプレートがそのキーを変数として読む箇所では、リクエストは 400(`unsupported_template_kwarg`)で拒否される。それらは Responses と Messages の `preserve_thinking`、Messages の `reasoning_effort` と `reasoning_strength`、`add_generation_prompt: false` である。Spark も gou 自身のテンプレートと同じように `reasoning_effort: xhigh` を拒否するようになった。MANUAL には、どのキーがどのファミリーとどのサーフェス(Chat Completions、Responses)で効くかをまとめた表が載った。コミットは 18 ファイルで 654 行を追加し 90 行を削除し、`tests/test_known_kwargs.py` と `docs/compat-reports/r2.14-known-kwargs-2026-11-06/` の監査ログ(変更前後)を同梱した。

ただし、このすべてが実測結果ではない。CHANGELOG は 33 個の参照実装と比較したとしているが、19 個のファミリーはこのホスト上で参照実装と対照できなかったため、実測の代わりに拒否ルールのみでカバーされている。R2.14 は CHANGELOG の Unreleased 項目に記載されており、リリースされたリリースではない。null の `preserve_thinking` は存在しない値として数えられるが、Qwen 3.8 のテンプレートはこれを false として扱うという差異は残るままである。思考制御のオン・オフのスイッチが黙って異なる結果を生む問題について、ファミリー別の整合性を追ってきたプロジェクトの進歩と見なすことができる。ただし、19 個のファミリーの実測整合性をこのコミットだけで確認することは難しい。