赞
踩
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
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。