模型概述
模型特點
模型能力
使用案例
🚀 Qwen2.5-14B-Instruct GGUF模型
Qwen2.5-14B-Instruct GGUF模型是一系列專為文本生成任務設計的模型。這些模型基於Qwen2.5-14B基礎模型,經過指令微調,適用於多種聊天場景。本項目旨在為用戶提供不同格式的模型,以滿足各種硬件和內存條件下的使用需求。
🚀 快速開始
選擇合適的模型格式
選擇正確的模型格式取決於您的硬件能力和內存限制。
BF16(Brain Float 16)– 若有BF16加速功能則使用
- 一種16位浮點格式,專為更快的計算而設計,同時保持良好的精度。
- 提供與FP32 相似的動態範圍,但內存使用更低。
- 如果您的硬件支持BF16加速(請查看設備規格),則推薦使用。
- 與FP32相比,適用於高性能推理,且內存佔用減少。
📌 使用BF16的情況: ✔ 您的硬件具有原生BF16支持(例如,較新的GPU、TPU)。 ✔ 您希望在節省內存的同時獲得更高的精度。 ✔ 您計劃將模型重新量化為其他格式。
📌 避免使用BF16的情況: ❌ 您的硬件不支持BF16(可能會回退到FP32並運行較慢)。 ❌ 您需要與缺乏BF16優化的舊設備兼容。
F16(Float 16)– 比BF16更廣泛支持
- 一種16位浮點格式,精度較高,但取值範圍比BF16小。
- 適用於大多數支持FP16加速的設備(包括許多GPU和一些CPU)。
- 數值精度略低於BF16,但通常足以進行推理。
📌 使用F16的情況: ✔ 您的硬件支持FP16但不支持BF16。 ✔ 您需要在速度、內存使用和準確性之間取得平衡。 ✔ 您在GPU或其他針對FP16計算優化的設備上運行。
📌 避免使用F16的情況: ❌ 您的設備缺乏原生FP16支持(可能運行速度比預期慢)。 ❌ 您有內存限制。
量化模型(Q4_K、Q6_K、Q8等)– 用於CPU和低顯存推理
量化可在儘可能保持準確性的同時減小模型大小和內存使用。
- 低比特模型(Q4_K) → 內存使用最少,但精度可能較低。
- 高比特模型(Q6_K、Q8_0) → 準確性更好,但需要更多內存。
📌 使用量化模型的情況: ✔ 您在CPU上運行推理,需要優化的模型。 ✔ 您的設備顯存較低,無法加載全精度模型。 ✔ 您希望在保持合理準確性的同時減少內存佔用。
📌 避免使用量化模型的情況: ❌ 您需要最高的準確性(全精度模型更適合此需求)。 ❌ 您的硬件有足夠的顯存來支持更高精度的格式(BF16/F16)。
模型格式選擇總結表
屬性 | 詳情 |
---|---|
模型格式 | BF16、F16、Q4_K、Q6_K、Q8 |
精度 | 最高、高、低、中低、中 |
內存使用 | 高、高、非常低、低、中等 |
設備要求 | 支持BF16的GPU/CPU、支持FP16的設備、CPU或低顯存設備、有更多內存的CPU、有足夠顯存的CPU或GPU |
最佳用例 | 高速推理且內存減少、BF16不可用時的GPU推理、內存受限環境、量化時更好的準確性、量化模型中最佳的準確性 |
包含的文件及詳情
Qwen2.5-14B-Instruct-bf16.gguf
- 模型權重以BF16保存。
- 如果您想將模型重新量化為不同格式,請使用此文件。
- 如果您的設備支持BF16加速,則為最佳選擇。
Qwen2.5-14B-Instruct-f16.gguf
- 模型權重以F16存儲。
- 如果您的設備支持FP16,尤其是在BF16不可用時,請使用此文件。
Qwen2.5-14B-Instruct-bf16-q8_0.gguf
- 輸出和嵌入保持為BF16。
- 所有其他層量化為Q8_0。
- 如果您的設備支持BF16,並且您想要一個量化版本,請使用此文件。
Qwen2.5-14B-Instruct-f16-q8_0.gguf
- 輸出和嵌入保持為F16。
- 所有其他層量化為Q8_0。
Qwen2.5-14B-Instruct-q4_k.gguf
- 輸出和嵌入量化為Q8_0。
- 所有其他層量化為Q4_K。
- 適用於內存有限的CPU推理。
Qwen2.5-14B-Instruct-q4_k_s.gguf
- 最小的Q4_K變體,以犧牲準確性為代價減少內存使用。
- 適用於極低內存設置。
Qwen2.5-14B-Instruct-q6_k.gguf
- 輸出和嵌入量化為Q8_0。
- 所有其他層量化為Q6_K。
Qwen2.5-14B-Instruct-q8_0.gguf
- 完全Q8量化的模型,以獲得更好的準確性。
- 需要更多內存,但提供更高的精度。
測試模型
如果您覺得這些模型有用,請點贊 ❤。另外,如果您能測試我的網絡監控助手,我將不勝感激。點擊👉 網絡監控助手。
💬 點擊聊天圖標(主頁和儀表盤頁面的右下角)。選擇一個大語言模型;在大語言模型類型之間切換:TurboLLM -> FreeLLM -> TestLLM。
正在測試的內容
我正在針對我的網絡監控服務進行函數調用實驗。使用小型開源模型。我關注的問題是“模型可以多小仍能正常工作”。
🟡 TestLLM – 使用llama.cpp在CPU虛擬機的6個線程上運行當前測試模型(加載大約需要15秒。推理速度相當慢,並且一次只處理一個用戶提示 — 仍在努力擴展!)。如果您感興趣,我很樂意分享其工作原理!
其他可用的AI助手
🟢 TurboLLM – 使用gpt-4o-mini,速度快!注意:由於OpenAI模型價格昂貴,令牌有限,但您可以登錄或下載免費的網絡監控代理以獲取更多令牌,或者使用TestLLM。
🔵 HugLLM – 運行開源Hugging Face模型,速度快,運行小型模型(≈8B),因此質量較低,可獲得2倍的令牌(取決於Hugging Face API的可用性)。
✨ 主要特性
Qwen2.5-14B-Instruct介紹
Qwen2.5是通義大語言模型的最新系列。對於Qwen2.5,我們發佈了一系列從5億到720億參數的基礎語言模型和指令微調語言模型。Qwen2.5在Qwen2的基礎上帶來了以下改進:
- 由於我們在這些領域的專業專家模型,擁有更多的知識,並在編碼和數學方面的能力有了極大的提升。
- 在遵循指令、生成長文本(超過8K令牌)、理解結構化數據(例如,表格)和生成結構化輸出(尤其是JSON)方面有顯著改進。對系統提示的多樣性更具彈性,增強了聊天機器人的角色扮演實現和條件設置。
- 長上下文支持高達128K令牌,並且可以生成高達8K令牌。
- 支持29種以上語言,包括中文、英文、法文、西班牙文、葡萄牙文、德文、意大利文、俄文、日文、韓文、越南文、泰文、阿拉伯文等。
本倉庫包含經過指令微調的14B Qwen2.5模型,具有以下特點:
- 類型:因果語言模型
- 訓練階段:預訓練和後訓練
- 架構:帶有RoPE、SwiGLU、RMSNorm和注意力QKV偏置的transformers
- 參數數量:147億
- 非嵌入參數數量:131億
- 層數:48
- 注意力頭數量(GQA):Q為40,KV為8
- 上下文長度:完整的131,072令牌,生成8192令牌
- 有關如何部署Qwen2.5以處理長文本的詳細說明,請參閱此部分。
📦 安裝指南
本項目代碼依賴於Hugging face的transformers
庫,建議使用最新版本的transformers
。如果使用transformers<4.37.0
,會遇到以下錯誤:
KeyError: 'qwen2'
💻 使用示例
基礎用法
以下是一個使用apply_chat_template
的代碼片段,展示瞭如何加載分詞器和模型,以及如何生成內容。
from transformers import AutoModelForCausalLM, AutoTokenizer
model_name = "Qwen/Qwen2.5-14B-Instruct"
model = AutoModelForCausalLM.from_pretrained(
model_name,
torch_dtype="auto",
device_map="auto"
)
tokenizer = AutoTokenizer.from_pretrained(model_name)
prompt = "Give me a short introduction to large language model."
messages = [
{"role": "system", "content": "You are Qwen, created by Alibaba Cloud. You are a helpful assistant."},
{"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=512
)
generated_ids = [
output_ids[len(input_ids):] for input_ids, output_ids in zip(model_inputs.input_ids, generated_ids)
]
response = tokenizer.batch_decode(generated_ids, skip_special_tokens=True)[0]
處理長文本
當前的config.json
設置為上下文長度最大為32,768令牌。
為了處理超過32,768令牌的大量輸入,我們使用YaRN,這是一種增強模型長度外推的技術,確保在長文本上的最佳性能。
對於支持的框架,您可以在config.json
中添加以下內容以啟用YaRN:
{
...,
"rope_scaling": {
"factor": 4.0,
"original_max_position_embeddings": 32768,
"type": "yarn"
}
}
對於部署,我們建議使用vLLM。如果您不熟悉vLLM,請參閱我們的文檔以瞭解用法。目前,vLLM僅支持靜態YARN,這意味著縮放因子無論輸入長度如何都保持不變,可能會影響較短文本的性能。我們建議僅在需要處理長上下文時添加rope_scaling
配置。
📚 詳細文檔
評估與性能
詳細的評估結果在這篇📑 博客中報告。
有關GPU內存要求和相應吞吐量的信息,請參閱此處的結果。
引用
如果您覺得我們的工作有幫助,請隨意引用。
@misc{qwen2.5,
title = {Qwen2.5: A Party of Foundation Models},
url = {https://qwenlm.github.io/blog/qwen2.5/},
author = {Qwen Team},
month = {September},
year = {2024}
}
@article{qwen2,
title={Qwen2 Technical Report},
author={An Yang and Baosong Yang and Binyuan Hui and Bo Zheng and Bowen Yu and Chang Zhou and Chengpeng Li and Chengyuan Li and Dayiheng Liu and Fei Huang and Guanting Dong and Haoran Wei and Huan Lin and Jialong Tang and Jialin Wang and Jian Yang and Jianhong Tu and Jianwei Zhang and Jianxin Ma and Jin Xu and Jingren Zhou and Jinze Bai and Jinzheng He and Junyang Lin and Kai Dang and Keming Lu and Keqin Chen and Kexin Yang and Mei Li and Mingfeng Xue and Na Ni and Pei Zhang and Peng Wang and Ru Peng and Rui Men and Ruize Gao and Runji Lin and Shijie Wang and Shuai Bai and Sinan Tan and Tianhang Zhu and Tianhao Li and Tianyu Liu and Wenbin Ge and Xiaodong Deng and Xiaohuan Zhou and Xingzhang Ren and Xinyu Zhang and Xipin Wei and Xuancheng Ren and Yang Fan and Yang Yao and Yichang Zhang and Yu Wan and Yunfei Chu and Yuqiong Liu and Zeyu Cui and Zhenru Zhang and Zhihao Fan},
journal={arXiv preprint arXiv:2407.10671},
year={2024}
}
📄 許可證
本項目採用Apache-2.0許可證。



