赞
踩
Qwen2 是 Qwen 大型语言模型的新系列。对于 Qwen2,我们发布了许多基础语言模型和指令调优语言模型,范围从 0.5 到 720 亿个参数,包括专家混合模型。此存储库包含指令调整的 72B Qwen2 模型。与之前发布的 Qwen1.5 等最先进的开源语言模型相比,Qwen2 总体上超越了大多数开源模型,并在语言理解、语言生成、多语言能力、编码、数学、推理等一系列基准测试中表现出了与专有模型的竞争力。
Qwen2-72B-Instruct 支持高达 131,072 个令牌的上下文长度,从而能够处理大量输入。
Qwen2系列包含5个尺寸的预训练和指令微调模型,其中包括Qwen2-0.5B、Qwen2-1.5B、Qwen2-7B、Qwen2-57B-A14B和Qwen2-72B。如下表所示:
关于模型评测结果:Qwen2-72B在包括自然语言理解、知识、代码、数学及多语言等多项能力上均显著超越当前领先的模型,如Llama-3-70B以及Qwen1.5最大的模型Qwen1.5-110B
Qwen2-72B-Instruct的表现
在代码方面,成功将CodeQwen1.5的成功经验融入Qwen2的研发中,实现了在多种编程语言上的显著效果提升。而在数学方面,大规模且高质量的数据帮助Qwen2-72B-Instruct实现了数学解题能力的飞升。
长文本处理方面,Qwen2-7B-Instruct几乎完美地处理长达128k的上下文;Qwen2-57B-A14B-Instruct则能处理64k的上下文长度;而该系列中的两个较小模型则支持32k的上下文长度。
使用qwen2大模型:
-
from transformers import AutoModelForCausalLM, AutoTokenizer
-
device
=
"cuda" # the device
to load the model onto
-
-
model
= AutoModelForCausalLM.
from_pretrained(
-
"Qwen/Qwen2-72B-Instruct",
-
torch_dtype
=
"auto",
-
device_map
=
"auto"
-
)
-
tokenizer
= AutoTokenizer.
from_pretrained(
"Qwen/Qwen2-72B-Instruct")
-
-
prompt
=
"Give me a short introduction to large language model."
-
messages
= [
-
{
"role":
"system",
"content":
"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(device)
-
-
generated_ids
= model.
generate(
-
model_inputs.
input_ids,
-
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]
为了处理超过 32,768 个标记的广泛输入,我们利用了 YARN,这是一种增强模型长度外推的技术,确保在冗长文本上的最佳性能。
对于部署,我们建议使用 vLLM。您可以按照以下步骤启用长上下文功能:
pip install "vllm>=0.4.3"
或者,您可以从源代码安装 vLLM。
config.json
-
{
-
"architectures": [
-
"Qwen2ForCausalLM"
-
],
-
/
/ ...
-
"vocab_size":
152064,
-
-
/
/ adding the following snippets
-
"rope_scaling": {
-
"factor":
4.0,
-
"original_max_position_embeddings":
32768,
-
"type":
"yarn"
-
}
-
}
模型部署:利用 vLLM 部署模型。例如,您可以使用以下命令设置类似 openAI 的服务器:
python -m vllm.entrypoints.openai.api_server --served-model-name Qwen2-72B-Instruct --model path/to/weights
然后,您可以通过以下方式访问聊天 API:
-
curl http:
//localhost:8000/v1/chat/completions \
-
-H "Content-Type: application/json" \
-
-d '{
-
"model":
"Qwen2-72B-Instruct",
-
"messages": [
-
{
"role":
"system",
"content":
"You are a helpful assistant."},
-
{
"role":
"user",
"content":
"Your Long Input Here."}
-
]
-
}'
注意:目前,vLLM 仅支持静态 YARN,这意味着无论输入长度如何,缩放因子都保持不变,这可能会影响较短文本的性能。建议仅在需要处理长上下文时才添加配置。rope_scaling
在huggingface上体验: https://huggingface.co/spaces/Qwen/Qwen2-72B-Instruct
文章地址 :阿里最新大模型Qwen2-72B-Instruct 开源体验 – AI小站 (aisites.cn)
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。