阿里最新大模型Qwen2-72B-Instruct 开源体验
Qwen2 是 Qwen 大型语言模型的新系列。对于 Qwen2,我们发布了许多基础语言模型和指令调优语言模型,范围从 0.5 到 720 亿个参数,包括专家混合模型。此存储库包含指令调整的 72B Qwen2 模型。与之前发布的 Qwen1.5 等最先进的开源语言模型相比,Qwen2 总体上超越了大多数开源模型,并在语言理解、语言生成、多语言能力、编码、数学、推理等一系列基准测试中表现出了与专有
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。您可以按照以下步骤启用长上下文功能:
- 安装 vLLM:可以通过运行以下命令来安装 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
更多推荐
所有评论(0)