?拥抱脸| ?模型范围 | ?纸质(待定)| ?博客|文档
演示 | 微信 (微信) | ?不和谐
访问我们的 Hugging Face 或 ModelScope 组织(点击上面的链接),搜索名称以Qwen2.5-
开头的检查点,或访问 Qwen2.5 系列,您将找到您需要的一切!享受!
要了解有关 Qwen2.5 的更多信息,请随时阅读我们的文档 [EN|ZH]。我们的文档由以下部分组成:
llama.cpp
和Ollama
等框架;vLLM
、 TGI
等框架部署 Qwen 进行大规模推理;自 Qwen2 发布以来的过去三个月里,众多开发者在 Qwen2 语言模型上构建了新模型,为我们提供了宝贵的反馈。在此期间,我们专注于创建更智能、更有知识的语言模型。今天,我们很高兴向大家介绍 Qwen 家族的最新成员: Qwen2.5 。
详细的评估结果在此报告?博客。
有关 GPU 内存和相应吞吐量的要求,请参阅此处的结果。
建议使用最新版本的transformers
(至少 4.37.0)。这里我们展示了一个代码片段,向您展示如何将聊天模型与transformers
一起使用:
from transformers import AutoModelForCausalLM , AutoTokenizer
model_name = "Qwen/Qwen2.5-7B-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 ]
对于量化模型,我们建议您使用 GPTQ 和 AWQ 对应项,即Qwen2.5-7B-Instruct-GPTQ-Int8
和Qwen2.5-7B-Instruct-AWQ
。
我们强烈建议用户尤其是中国大陆的用户使用ModelScope。 snapshot_download
可以帮助您解决有关下载检查点的问题。
安装ollama后,您可以使用以下命令启动ollama服务:
ollama serve
# You need to keep this service running whenever you are using ollama
要拉取模型检查点并运行模型,请使用ollama run
命令。您可以通过向qwen2.5
添加后缀来指定模型大小,例如:0.5b
、 :1.5b
、 :7b
或:72b
:
ollama run qwen2.5:7b
# To exit, type "/bye" and press ENTER
您还可以通过 OpenAI 兼容的 API 访问 ollama 服务。请注意,您需要 (1) 在使用 API 时保持ollama serve
运行,以及 (2) 在使用此 API 之前执行ollama run qwen2.5:7b
以确保模型检查点已准备好。
from openai import OpenAI
client = OpenAI (
base_url = 'http://localhost:11434/v1/' ,
api_key = 'ollama' , # required but ignored
)
chat_completion = client . chat . completions . create (
messages = [
{
'role' : 'user' ,
'content' : 'Say this is a test' ,
}
],
model = 'qwen2.5:7b' ,
)
如需了解更多详情,请访问 ollama.ai。
下载我们提供的 GGUF 文件或自己创建它们,您可以通过一行命令直接将它们与最新的llama.cpp
一起使用:
./llama-cli -m < path-to-file > -n 512 -co -sp -cnv -p " You are Qwen, created by Alibaba Cloud. You are a helpful assistant. "
如需其他指南,请参阅我们的文档。
如果您在 Apple Silicon 上运行,我们还提供了与mlx-lm
兼容的检查点。在 HuggingFace Hub 上查找以 MLX 结尾的型号,例如 Qwen2.5-7B-Instruct-MLX。
Qwen2.5已经得到lmstudio.ai的支持。您可以直接将 LMStudio 与我们的 GGUF 文件一起使用。
Qwen2.5已经得到OpenVINO工具包的支持。您可以使用 Intel CPU、集成 GPU 或独立 GPU 安装并运行此聊天机器人示例。
您可以直接使用text-generation-webui
创建 Web UI 演示。如果你使用GGUF,记得安装最新的llama.cpp
轮子,并支持Qwen2.5。
克隆llamafile
,运行源安装,然后按照此处的指南使用 GGUF 文件创建您自己的 llamafile 。您可以运行一行命令(例如./qwen.llamafile
)来创建演示。
Qwen2.5支持多种推理框架。这里我们演示了vLLM
、 SGLang
和OpenLLM
的用法。
警告
不适用于 vllm 0.6.3。
我们建议您使用最新版本的vLLM来构建兼容OpenAI的API服务,包括工具使用支持。使用聊天模型启动服务器,例如Qwen2.5-7B-Instruct
:
vllm serve Qwen/Qwen2.5-7B-Instruct
然后使用聊天 API,如下所示:
curl http://localhost:8000/v1/chat/completions -H " Content-Type: application/json " -d ' {
"model": "Qwen/Qwen2.5-7B-Instruct",
"messages": [
{"role": "system", "content": "You are Qwen, created by Alibaba Cloud. You are a helpful assistant."},
{"role": "user", "content": "Tell me something about large language models."}
],
"temperature": 0.7,
"top_p": 0.8,
"repetition_penalty": 1.05,
"max_tokens": 512
} '
from openai import OpenAI
# Set OpenAI's API key and API base to use vLLM's API server.
openai_api_key = "EMPTY"
openai_api_base = "http://localhost:8000/v1"
client = OpenAI (
api_key = openai_api_key ,
base_url = openai_api_base ,
)
chat_response = client . chat . completions . create (
model = "Qwen2.5-7B-Instruct" ,
messages = [
{ "role" : "system" , "content" : "You are Qwen, created by Alibaba Cloud. You are a helpful assistant." },
{ "role" : "user" , "content" : "Tell me something about large language models." },
],
temperature = 0.7 ,
top_p = 0.8 ,
max_tokens = 512 ,
extra_body = {
"repetition_penalty" : 1.05 ,
},
)
print ( "Chat response:" , chat_response )
警告
SGLang 提供的兼容 OpenAI 的 API 目前不支持工具使用或函数调用。
请从源代码安装SGLang
。与vLLM
类似,您需要启动服务器并使用 OpenAI 兼容的 API 服务。首先启动服务器:
python -m sglang.launch_server --model-path Qwen/Qwen2.5-7B-Instruct --port 30000
您可以在 Python 中使用它,如下所示:
from sglang import function , system , user , assistant , gen , set_default_backend , RuntimeEndpoint
@ function
def multi_turn_question ( s , question_1 , question_2 ):
s += system ( "You are Qwen, created by Alibaba Cloud. You are a helpful assistant." )
s += user ( question_1 )
s += assistant ( gen ( "answer_1" , max_tokens = 256 ))
s += user ( question_2 )
s += assistant ( gen ( "answer_2" , max_tokens = 256 ))
set_default_backend ( RuntimeEndpoint ( "http://localhost:30000" ))
state = multi_turn_question . run (
question_1 = "What is the capital of China?" ,
question_2 = "List two local attractions." ,
)
for m in state . messages ():
print ( m [ "role" ], ":" , m [ "content" ])
print ( state [ "answer_1" ])
OpenLLM 允许您轻松地将 Qwen2.5 作为 OpenAI 兼容的 API 运行。您可以使用openllm serve
启动模型服务器。例如:
openllm serve qwen2.5:7b
服务器在http://localhost:3000/
处于活动状态,提供与 OpenAI 兼容的 API。您可以创建一个 OpenAI 客户端来调用其聊天 API。有关更多信息,请参阅我们的文档。
对于工具使用功能,我们建议查看 Qwen-Agent,它提供了这些 API 的包装器以支持工具使用或函数调用。 Qwen2.5 的工具使用也可以通过 Hugging Face transformers
、Ollama 和 vLLM 进行。请按照我们文档中的指南了解如何启用支持。
我们建议您使用训练框架,包括Axolotl、Llama-Factory、unsloth、Swift等,通过SFT、DPO、PPO等来微调您的模型。
我们所有的开源模型(3B 和 72B 变体除外)均在 Apache 2.0 下获得许可。您可以在相应的 Hugging Face 存储库中找到许可证文件。您无需提交商业用途请求。
如果您发现我们的工作有帮助,请随时给我们一个引用。
@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}
}
如果您有兴趣给我们的研究团队或产品团队留言,请加入我们的Discord或微信群!