Downloads · 30 days
463
14% of all-time downloads
j-llm/Qwen3.5-2B-SpeedX
Qwen3.5-2B-SpeedX is a text generation model from j-llm. Use it when you need the model to write or continue text. It is set up for transformers. The card lists the license as apache-2.0.
Qwen3.5-2B-SpeedX は、Qwen/Qwen3.5-2B をベースに、自己回帰推論の高速化と固定サイズの再帰メモリを目的として変換した、実験的なテキスト専用リカレントモデルです。
Downloads · 30 days
463
14% of all-time downloads
All-time downloads
3.3K
Public
Parameters
1.9B
14.9 GB on disk
Likes
0
Public
Click a slice to open those files.
.safetensors3.8 GB · 99%
From the Hugging Face model README
Qwen3.5-2B-SpeedX は、Qwen/Qwen3.5-2B をベースに、自己回帰推論の高速化と固定サイズの再帰メモリを目的として変換した、実験的なテキスト専用リカレントモデルです。
元の Qwen3.5-2B のテキストバックボーンは、ネイティブの Gated DeltaNet(GDN) レイヤーとフルアテンションレイヤーを組み合わせた構成です。
SpeedX では、6層のフルアテンションレイヤーを蒸留済みのネイティブ GDN レイヤーへ置き換え、24 / 24 層すべてが再帰的トークンミキシングを行う構成へ変換しています。
本モデルは実験的な研究用チェックポイントであり、Qwen の公式リリースではありません。
元の Qwen3.5-2B テキストスタック:
GDN → GDN → GDN → Full Attention
SpeedX:
GDN → GDN → GDN → GDN
この構成を全24層にわたって繰り返します。
再帰状態は次式に従います。
[ S_t = F(S_{t-1}, x_t) ]
したがって、デコード状態のメモリ使用量はコンテキスト長に対して概ね
[ M_{\mathrm{state}} = O(1) ]
となります。
これは、コンテキスト長 (T) に応じてメモリ使用量が概ね
[ M_{\mathrm{KV}} = O(T) ]
と増加する、トークン単位の Transformer KV キャッシュとは異なります。
単一の NVIDIA L4 22.03 GiB、バッチサイズ 1、Greedy Decoding で測定。
| Context | Official Qwen3.5-2B | SpeedX exact | Speedup |
|---|---|---|---|
| 256 | 25.90 tok/s | 60.75 tok/s | 2.35× |
| 1,024 | 26.63 tok/s | 60.58 tok/s | 2.28× |
| 4,096 | 26.06 tok/s | 60.67 tok/s | 2.33× |
| 16,384 | 26.46 tok/s | 60.68 tok/s | 2.29× |
| Context | Official Qwen3.5-2B | SpeedX FP8 | Speedup |
|---|---|---|---|
| 256 | 25.90 tok/s | 79.27 tok/s | 3.06× |
| 1,024 | 26.63 tok/s | 78.85 tok/s | 2.96× |
| 4,096 | 26.06 tok/s | 78.47 tok/s | 3.01× |
| 16,384 | 26.46 tok/s | 78.38 tok/s | 2.96× |
これらの結果は、本プロジェクトの最適化済みランタイムを使用したものです。
標準的な Hugging Face の model.generate() で、上記の CUDA Graph / FP8 の性能値をそのまま再現できるとは限りません。
16K コンテキストでは、最適化された Exact Recurrent Path において、おおよそ以下の Prefill 性能を測定しました。
カスタムモデルコードが含まれているため、trust_remote_code=True が必要です。
pip install -U \
"transformers @ git+https://github.com/huggingface/transformers.git@e453228ef83ce0d756f7621ef8607220ebf5da6a" \
"kernels>=0.16.0,<0.17" \
"accelerate>=1.1.0" \
"safetensors>=0.8.0"
import torch
from transformers import AutoTokenizer, AutoModelForCausalLM
MODEL_ID = "JLLM/Qwen3.5-2B-SpeedX"
tokenizer = AutoTokenizer.from_pretrained(
MODEL_ID,
trust_remote_code=True,
)
model = AutoModelForCausalLM.from_pretrained(
MODEL_ID,
trust_remote_code=True,
torch_dtype=torch.bfloat16,
device_map="cuda",
).eval()
inputs = tokenizer(
"Explain recurrent memory in neural networks.",
return_tensors="pt",
).to("cuda")
with torch.inference_mode():
output = model.generate(
**inputs,
max_new_tokens=128,
do_sample=False,
)
print(tokenizer.decode(output[0], skip_special_tokens=True))
messages = [
{"role": "system", "content": "You are a precise technical assistant."},
{"role": "user", "content": "Compare recurrent state memory with a Transformer KV cache."},
]
text = tokenizer.apply_chat_template(
messages,
tokenize=False,
add_generation_prompt=True,
)
inputs = tokenizer(text, return_tensors="pt").to("cuda")
with torch.inference_mode():
output = model.generate(
**inputs,
max_new_tokens=256,
do_sample=False,
)
print(tokenizer.decode(output[0], skip_special_tokens=True))
元のテキストスタックには、18層のネイティブ GDN レイヤーと6層のフルアテンションレイヤーが含まれています。
SpeedX は既存のネイティブ GDN レイヤーを維持し、以下のフルアテンションレイヤーを置換します。
3, 7, 11, 15, 19, 23
置換先にはネイティブの Qwen3_5GatedDeltaNet モジュールを使用します。
置換されたレイヤーは、近傍にあるネイティブ GDN レイヤーを基に初期化し、元のフルアテンションレイヤーの出力を教師として蒸留します。
実験的なレイヤー単位の目的関数では、正規化 MSE と Cosine Distance を組み合わせています。
\frac{|y_S-y_T|_2^2} {\mathbb{E}[y_T^2]+\epsilon} + \lambda \left(1-\cos(y_S,y_T)\right). ]
このチェックポイントは、主として再帰型アーキテクチャへの変換と高速推論ランタイムを検証するために作成されています。
Smoke Distillation の学習スケジュールは短いため、元の Qwen3.5-2B が持つ推論能力、事実知識、多言語性能、各種ベンチマーク性能を完全に維持していると仮定すべきではありません。
本格的な用途では、より長期間の蒸留または継続事前学習を推奨します。
上流の Qwen3.5-2B はマルチモーダルモデルですが、SpeedX に含まれるのは変換済みのテキスト生成スタックのみです。
元モデルの Vision スタックは提供されません。
以下を有効化する前に、リポジトリ内のコードを確認してください。
trust_remote_code=True
約 60 tok/s の Exact 性能、および約 79 tok/s の FP8 性能は、以下を含むランタイム固有の最適化に依存しています。
通常の Hugging Face 読み込み経路は、主として互換性を提供するためのものです。
SpeedX は、以下の研究を主な用途として想定しています。
Hugging Face Space:
JLLM/Qwen-speed
以下のモデルから派生しています。
Qwen/Qwen3.5-2B
上流モデルのモデルカードおよびライセンスも併せて確認してください。
上流の Qwen3.5-2B のモデルメタデータに従い、Apache-2.0 とします。
SpeedX を実験等で使用する場合は、上流の Qwen 関連研究を引用したうえで、本チェックポイントが Qwen3.5-2B を実験的に再帰型アーキテクチャへ変換したモデルであることを明記してください。
現時点では、SpeedX 専用の技術レポートは公開されていません。