模型概述
模型特點
模型能力
使用案例
🚀 QwenLong-L1-32B GGUF模型
QwenLong-L1-32B GGUF模型是專為長上下文推理設計的大語言模型,通過強化學習訓練,在多個長上下文問答基準測試中表現出色,能有效處理複雜的推理任務,且有多種量化格式可供不同硬件和內存條件選擇。
✨ 主要特性
- 模型生成:使用llama.cpp在提交版本
f5cd27b7
生成。 - 超低比特量化:引入精度自適應量化方法,在超低比特模型(1 - 2比特)上有顯著改進,在Llama - 3 - 8B基準測試中表現良好。
- 多種模型格式:提供BF16、F16、Q4_K等多種量化格式,可根據硬件能力和內存限制選擇。
- 長上下文處理:通過強化學習框架,能從短上下文推理過渡到長上下文泛化,有效處理長文檔。
📦 安裝指南
# 創建conda環境
conda create -n qwenlongl1 python==3.10
conda activate qwenlongl1
# 安裝依賴
pip3 install -r requirements.txt
# 安裝verl
cd verl
pip3 install -e .
# 安裝vLLM
pip3 install vllm==0.7.3
# 安裝flash - attn
pip3 install flash-attn --no-build-isolation
💻 使用示例
基礎用法
from transformers import AutoModelForCausalLM, AutoTokenizer
model_name = "Tongyi-Zhiwen/QwenLong-L1-32B"
# 加載分詞器和模型
tokenizer = AutoTokenizer.from_pretrained(model_name)
model = AutoModelForCausalLM.from_pretrained(
model_name,
torch_dtype="auto",
device_map="auto"
)
# 準備模型輸入
template = """Please read the following text and answer the question below.
<text>
$DOC$
</text>
$Q$
Format your response as follows: "Therefore, the answer is (insert answer here)"."""
context = "<YOUR_CONTEXT_HERE>"
question = "<YOUR_QUESTION_HERE>"
prompt = template.replace('$DOC$', context.strip()).replace('$Q$', question.strip())
messages = [
# {"role": "system", "content": "You are QwenLong-L1, created by Alibaba Tongyi Lab. You are a helpful assistant."}, # Use system prompt to define identity when needed.
{"role": "user", "content": prompt}
]
text = tokenizer.apply_chat_template(
messages,
tokenize=False,
add_generation_prompt=True
)
model_inputs = tokenizer([text], return_tensors="pt").to(model.device)
# 進行文本生成
generated_ids = model.generate(
**model_inputs,
max_new_tokens=10000,
temperature=0.7,
top_p=0.95
)
output_ids = generated_ids[0][len(model_inputs.input_ids[0]):].tolist()
# 解析思考內容
try:
# rindex finding 151649 (</think>)
index = len(output_ids) - output_ids[::-1].index(151649)
except ValueError:
index = 0
thinking_content = tokenizer.decode(output_ids[:index], skip_special_tokens=True).strip("\n")
content = tokenizer.decode(output_ids[index:], skip_special_tokens=True).strip("\n")
print("thinking content:", thinking_content)
print("content:", content)
📚 詳細文檔
模型生成細節
該模型使用llama.cpp在提交版本f5cd27b7
生成。
超低比特量化(1 - 2比特)
最新的量化方法為超低比特模型(1 - 2比特)引入了精度自適應量化,在Llama - 3 - 8B上的基準測試證明了其有效性。該方法採用特定層策略,在保持極高內存效率的同時保留準確性。
基準測試環境
所有測試在Llama - 3 - 8B - Instruct上進行,使用:
- 標準困惑度評估流程
- 2048令牌上下文窗口
- 所有量化使用相同的提示集
方法
- 動態精度分配:
- 前/後25%的層 → IQ4_XS(選定層)
- 中間50% → IQ2_XXS/IQ3_S(提高效率)
- 關鍵組件保護:
- 嵌入/輸出層使用Q5_K
- 與標準1 - 2比特量化相比,誤差傳播降低38%
量化性能比較(Llama - 3 - 8B)
量化方式 | 標準PPL | DynamicGate PPL | Δ PPL | 標準大小 | DG大小 | Δ 大小 | 標準速度 | DG速度 |
---|---|---|---|---|---|---|---|---|
IQ2_XXS | 11.30 | 9.84 | -12.9% | 2.5G | 2.6G | +0.1G | 234s | 246s |
IQ2_XS | 11.72 | 11.63 | -0.8% | 2.7G | 2.8G | +0.1G | 242s | 246s |
IQ2_S | 14.31 | 9.02 | -36.9% | 2.7G | 2.9G | +0.2G | 238s | 244s |
IQ1_M | 27.46 | 15.41 | -43.9% | 2.2G | 2.5G | +0.3G | 206s | 212s |
IQ1_S | 53.07 | 32.00 | -39.7% | 2.1G | 2.4G | +0.3G | 184s | 209s |
關鍵改進
- IQ1_M:困惑度大幅降低43.9%(從27.46到15.41)
- IQ2_S:困惑度降低36.9%,僅增加0.2GB
- IQ1_S:儘管是1比特量化,準確性仍提高39.7%
權衡
- 所有變體大小略有增加(0.1 - 0.3GB)
- 推理速度相當(差異<5%)
使用場景
- 適合裝入GPU顯存的模型
- 內存受限的部署
- 可容忍1 - 2比特誤差的CPU和邊緣設備
- 超低比特量化研究
選擇正確的模型格式
選擇正確的模型格式取決於硬件能力和內存限制。
BF16(Brain Float 16) - 若支持BF16加速則使用
- 16位浮點格式,專為更快計算設計,同時保留良好精度。
- 與FP32具有相似的動態範圍,但內存使用更低。
- 若硬件支持BF16加速,推薦使用(檢查設備規格)。
- 與FP32相比,適用於高性能推理且內存佔用減少。
使用場景:
- 硬件具有原生BF16支持(如較新的GPU、TPU)。
- 希望在節省內存的同時獲得更高精度。
- 計劃將模型重新量化為其他格式。
避免場景:
- 硬件不支持BF16(可能回退到FP32並運行較慢)。
- 需要與缺乏BF16優化的舊設備兼容。
F16(Float 16) - 比BF16更廣泛支持
- 16位浮點格式,精度高,但取值範圍小於BF16。
- 適用於大多數支持FP16加速的設備(包括許多GPU和一些CPU)。
- 數值精度略低於BF16,但通常足以用於推理。
使用場景:
- 硬件支持FP16但不支持BF16。
- 需要在速度、內存使用和準確性之間取得平衡。
- 在GPU或其他針對FP16計算優化的設備上運行。
避免場景:
- 設備缺乏原生FP16支持(可能運行比預期慢)。
- 有內存限制。
量化模型(Q4_K、Q6_K、Q8等) - 用於CPU和低顯存推理
量化可在儘可能保持準確性的同時減小模型大小和內存使用。
- 低比特模型(Q4_K) → 內存使用最少,精度可能較低。
- 高比特模型(Q6_K、Q8_0) → 準確性更好,需要更多內存。
使用場景:
- 在CPU上進行推理,需要優化的模型。
- 設備顯存低,無法加載全精度模型。
- 希望在保持合理準確性的同時減少內存佔用。
避免場景:
- 需要最高準確性(全精度模型更適合)。
- 硬件有足夠的顯存用於更高精度格式(BF16/F16)。
極低比特量化(IQ3_XS、IQ3_S、IQ3_M、Q4_K、Q4_0)
這些模型針對極端內存效率進行了優化,適用於低功耗設備或大規模部署,其中內存是關鍵限制因素。
- IQ3_XS:超低比特量化(3比特),具有極端內存效率。
- 使用場景:最適合超低內存設備,即使Q4_K也太大。
- 權衡:與高比特量化相比,準確性較低。
- IQ3_S:小塊大小,實現最大內存效率。
- 使用場景:最適合低內存設備,IQ3_XS過於激進。
- IQ3_M:中等塊大小,準確性優於IQ3_S。
- 使用場景:適用於低內存設備,IQ3_S限制太大。
- Q4_K:4比特量化,具有逐塊優化以提高準確性。
- 使用場景:最適合低內存設備,Q6_K太大。
- Q4_0:純4比特量化,針對ARM設備優化。
- 使用場景:最適合基於ARM的設備或低內存環境。
模型格式選擇總結表
模型格式 | 精度 | 內存使用 | 設備要求 | 最佳使用場景 |
---|---|---|---|---|
BF16 | 最高 | 高 | 支持BF16的GPU/CPU | 減少內存的高速推理 |
F16 | 高 | 高 | 支持FP16的設備 | BF16不可用時的GPU推理 |
Q4_K | 中低 | 低 | CPU或低顯存設備 | 內存受限環境 |
Q6_K | 中等 | 適中 | 內存更多的CPU | 量化模型中準確性更好 |
Q8_0 | 高 | 適中 | 有足夠顯存的CPU或GPU | 量化模型中最佳準確性 |
IQ3_XS | 非常低 | 非常低 | 超低內存設備 | 極端內存效率和低準確性 |
Q4_0 | 低 | 低 | ARM或低內存設備 | llama.cpp可針對ARM設備優化 |
包含文件及詳情
- QwenLong-L1-32B-bf16.gguf:模型權重保存為BF16。若要將模型重新量化為不同格式,可使用此文件。若設備支持BF16加速,最佳選擇。
- QwenLong-L1-32B-f16.gguf:模型權重保存為F16。若設備支持FP16,尤其是BF16不可用時,可使用。
- QwenLong-L1-32B-bf16-q8_0.gguf:輸出和嵌入保持為BF16,其他層量化為Q8_0。若設備支持BF16且需要量化版本,可使用。
- QwenLong-L1-32B-f16-q8_0.gguf:輸出和嵌入保持為F16,其他層量化為Q8_0。
- QwenLong-L1-32B-q4_k.gguf:輸出和嵌入量化為Q8_0,其他層量化為Q4_K。適合內存有限的CPU推理。
- QwenLong-L1-32B-q4_k_s.gguf:最小的Q4_K變體,以準確性為代價減少內存使用。最適合極低內存設置。
- QwenLong-L1-32B-q6_k.gguf:輸出和嵌入量化為Q8_0,其他層量化為Q6_K。
- QwenLong-L1-32B-q8_0.gguf:完全Q8量化模型,準確性更好。需要更多內存,但提供更高精度。
- QwenLong-L1-32B-iq3_xs.gguf:IQ3_XS量化,針對極端內存效率優化。最適合超低內存設備。
- QwenLong-L1-32B-iq3_m.gguf:IQ3_M量化,提供中等塊大小以提高準確性。適用於低內存設備。
- QwenLong-L1-32B-q4_0.gguf:純Q4_0量化,針對ARM設備優化。最適合低內存環境。優先選擇IQ4_NL以獲得更好的準確性。
測試模型
如果覺得這些模型有用,請點擊“點贊”!幫助測試支持量子安全檢查的AI網絡監控助手:免費網絡監控器
測試方法
選擇一個AI助手類型:
TurboLLM
(GPT - 4o - mini)HugLLM
(Huggingface開源)TestLLM
(僅實驗性CPU)
測試內容
正在突破用於AI網絡監控的小型開源模型的極限,具體包括:
- 針對即時網絡服務的函數調用
- 模型可以多小,同時仍能處理:
- 自動Nmap掃描
- 量子就緒檢查
- 網絡監控任務
TestLLM - 當前實驗模型(llama.cpp在2個CPU線程上)
- 零配置設置
- 30秒加載時間(推理慢,但無API成本)
- 尋求幫助!如果對邊緣設備AI感興趣,讓我們合作!
其他助手
- TurboLLM - 使用gpt - 4o - mini進行:
- 在免費網絡監控代理上創建自定義cmd處理器以運行.net代碼
- 即時網絡診斷和監控
- 安全審計
- 滲透測試(Nmap/Metasploit)
- 通過登錄或下載集成AI助手的免費網絡監控代理獲得更多令牌
- HugLLM - 最新開源模型:
- 在Hugging Face推理API上運行
示例命令
"Give me info on my websites SSL certificate"
"Check if my server is using quantum safe encyption for communication"
"Run a comprehensive security audit on my server"
- '"Create a cmd processor to .. (what ever you want)" 注意需要安裝免費網絡監控代理才能運行.net代碼。這是一個非常靈活和強大的功能,請謹慎使用!
模型介紹
提出了QwenLong-L1,一種新穎的強化學習(RL)框架,旨在促進大型推理模型(LRMs)從短上下文能力過渡到強大的長上下文泛化能力。初步實驗說明了短上下文和長上下文推理RL訓練動態之間的差異。
框架通過在RL訓練期間逐步擴展上下文來增強短上下文LRMs。該框架包括三個核心組件:預熱監督微調(SFT)階段以初始化強大的策略,課程引導的RL階段以促進從短到長上下文的穩定適應,以及難度感知回顧性採樣機制,該機制在各個階段調整訓練複雜度以激勵策略探索。利用最近的RL算法,包括GRPO和DAPO,框架集成了混合獎勵函數,結合基於規則和基於模型的二元結果獎勵,以平衡精度和召回率。通過在策略優化期間戰略性地利用組相對優勢,引導LRMs學習有效的推理模式,這對於強大的長上下文基礎和卓越的推理能力至關重要。
模型發佈
發佈了QwenLong-L1-32B,這是第一個使用強化學習進行長上下文推理訓練的長上下文LRM。在七個長上下文文檔問答(DocQA)基準測試中的實驗表明,QwenLong-L1-32B優於旗艦LRMs,如OpenAI-o3-mini和Qwen3-235B-A22B,性能與Claude-3.7-Sonnet-Thinking相當,展示了在現有LRMs中的領先性能。
處理長文檔
對於總長度(包括輸入和輸出)顯著超過32,768令牌的輸入,建議使用RoPE縮放技術來有效處理長文本。使用YaRN方法驗證了模型在長達131,072令牌的上下文長度上的性能。
YaRN目前由幾個推理框架支持,例如用於本地使用的transformers
和llama.cpp
,用於部署的vllm
和sglang
。通常,有兩種方法可以為支持的框架啟用YaRN:
- 修改模型文件:
在
config.json
文件中,添加rope_scaling
字段:
對於{ ..., "rope_scaling": { "rope_type": "yarn", "factor": 4.0, "original_max_position_embeddings": 32768 } }
llama.cpp
,修改後需要重新生成GGUF文件。 - 傳遞命令行參數:
對於
vllm
,可以使用
對於vllm serve ... --rope-scaling '{"rope_type":"yarn","factor":4.0,"original_max_position_embeddings":32768}' --max-model-len 131072
sglang
,可以使用
對於python -m sglang.launch_server ... --json-model-override-args '{"rope_scaling":{"rope_type":"yarn","factor":4.0,"original_max_position_embeddings":32768}}'
llama.cpp
的llama-server
,可以使用llama-server ... --rope-scaling yarn --rope-scale 4 --yarn-orig-ctx 32768
⚠️ 重要提示
如果遇到以下警告
Unrecognized keys in `rope_scaling` for 'rope_type'='yarn': {'original_max_position_embeddings'}
請升級
transformers
庫。
📄 許可證
本項目採用Apache - 2.0許可證。
屬性 | 詳情 |
---|---|
模型類型 | 長上下文大型推理模型 |
訓練數據 | Tongyi - Zhiwen/DocQA - RL - 1.6K |
基礎模型 | deepseek - ai/DeepSeek - R1 - Distill - Qwen - 32B |
標籤 | long - context, large - reasoning - model |
管道標籤 | text - generation |
庫名稱 | transformers |



