引言
近日,浪潮信息的新一代基础语言大模型源2.0 迎来了重要更新。浪潮信息正式发布了 Yuan2-2B-July-hf 模型,标志着源2.0系列模型在性能和功能上的进一步提升。这一版本将为开发者和研究人员提供更强大的工具,以满足各种语言处理需求。
一、模型介绍
模型名称:Yuan2-2B-July-hf
发布时间:2024 年 8 月
简介:
源2.0 是浪潮信息发布的全新一代基础语言大模型系列,包含源2.0-102B、源2.0-51B 和源2.0-2B。基于源1.0,源2.0 利用更多样的高质量预训练数据和指令微调数据集,显著提升了模型在语义理解、数学推理、代码生成和知识获取等方面的能力。我们提供了全套预训练、微调和推理服务的脚本,支持研发人员进行深度开发。
开源信息:
源2.0系列模型的完整源码和文档已经开源,您可以在以下平台找到新发布模型的相关资源:
魔搭社区:https://modelscope.cn/models/IEITYuan/Yuan2-2B-July-hf
始智AI:https://www.wisemodel.cn/models/IEIT-Yuan/Yuan2-2B-July-hf
二、更新内容
- 英文生成与推理能力的显著提升
- 在 HumanEval 测试集上的准确率提高至 62.8%,代码生成的准确性显著增强。
- 在 GSM8K 数学推理任务中的准确率达到 68%,解决复杂数学问题的能力得到提高。
- 在 MATH数学竞赛中的准确率为 31.2%,在数学推理方面的表现有所提升。
- 编程语言支持的广泛扩展
- 新增了对 C、JavaScript、SQL、Shell 等多种编程语言的支持,强化了代码生成能力。
- 强化了添加代码注释、生成单元测试等代码任务能力,提高了代码质量和维护性。
- 任务能力的全方位增强
- 指令跟随:提升了对复杂指令的理解和执行能力。
- 文档翻译:改进了多语言翻译的准确性,支持更多语言。
- 文档总结:增强了长文本总结的能力,提供更为简洁和准确的摘要。
- 检索增强生成(RAG):在检索和生成任务中表现更加优异。
- 支持更长的序列长度
新版本模型支持 16384个token的序列长度,能够处理更长的文本输入,提高了长篇文档处理的能力,确保生成结果的连贯性和一致性。
三、使用指南
Yuan2-2B-July-hf模型具备强大的文本生成和代码任务能力,在云实例或本地部署上均可高效运行,只需满足基本的硬件要求。推荐的运行环境为阿里云的PAI-DSW,该平台能够提供稳定且高效的计算资源,确保在多种任务中的最佳表现。
- 运行环境
在开始使用模型之前,请确保您的环境符合以下要求:
- 推荐运行环境: 阿里云PAI-DSW
- 最低GPU显存:
- 推理:6GB
- 微调:80GB
- 安装所需库
使用以下命令安装所需的Python库:
pip install transformers==4.30.2 torch modelscope
- 下载和加载模型
Yuan2-2B-July-hf模型支持通过多个平台进行下载,包括魔搭、HuggingFace、OpenXlab、百度网盘、WiseModel等。示例代码使用ModelScope库下载并加载模型:
# 导入所需的库
from transformers import AutoTokenizer, AutoModelForCausalLM
import torch
# 源大模型下载
from modelscope import snapshot_download
model_dir = snapshot_download('IEITYuan/Yuan2-2B-July-hf', cache_dir='./')
# 定义模型路径
path = './IEITYuan/Yuan2-2B-July-hf'
# 定义模型数据类型
torch_dtype = torch.float16 # P100
# 获取模型和tokenizer
print("Creat tokenizer...")
tokenizer = AutoTokenizer.from_pretrained(path, add_eos_token=False, add_bos_token=False, eos_token='<eod>')
tokenizer.add_tokens(['<sep>', '<pad>', '<mask>', '<predict>', '<FIM_SUFFIX>', '<FIM_PREFIX>', '<FIM_MIDDLE>','<commit_before>','<commit_msg>','<commit_after>',
'<jupyter_start>','<jupyter_text>','<jupyter_code>','<jupyter_output>','<empty_output>'], special_tokens=True)
print("Creat model...")
model = AutoModelForCausalLM.from_pretrained(path, torch_dtype=torch_dtype, trust_remote_code=True).cuda()
print("Done.")
- 文本生成测试
使用以下代码进行文本生成测试:
# 输入和生成
prompt = "请问目前最先进的机器学习算法有哪些?"
inputs = tokenizer(prompt, return_tensors="pt")["input_ids"].to("cuda:0")
outputs = model.generate(inputs, do_sample=False, max_length=1024)
# 如果有长文本输出, 参数加上'repetition_penalty=1.2'设置重复性惩罚
# outputs = model.generate(inputs, do_sample=False, max_length=1024, repetition_penalty=1.2)
output = tokenizer.decode(outputs[0])
clean_output = output.replace("<sep>", "\n\n").replace("<eod>", "")
print(clean_output)
在生成长文本时,可以通过增加
repetition_penalty=1.2
参数来设置重复性惩罚,进一步优化生成结果。
- 测试效果优化
为了确保最佳的测试效果,请注意以下几点:
- 输入:确保输入的问题清晰且具有一定的复杂性,以便模型能够充分展示其能力。
- 参数:调整 max_length 和 repetition_penalty 参数,根据不同任务需求优化生成结果。
- 总结
通过上述步骤,可以顺利调用Yuan2-2B-July-hf模型,并进行有效的测试。在实际应用中,建议结合具体任务需求,对生成参数进行微调,以获得最佳效果。
四、测试效果
此次发布的Yuan2-2B-July-hf 模型经过了一系列测试验证,证明其在多个关键能力上展现了卓越的性能。通过对新模型的强化,我们发现它在英文生成与推理、多编程语言支持、文档翻译等任务中都取得了显著提升。
在英文生成与推理能力方面,我们提出了一个涉及多步推理的数学问题。新模型不仅能准确理解问题,还能生成完整的解题过程,最终正确得出David拥有34颗糖果的结论。这个结果不仅体现了新模型在复杂数学推理中的优越性,更证明了其自然语言处理能力的增强。
在文档翻译任务中,新模型成功将一段包含专业术语的中文技术文档翻译为英文。翻译结果精准流畅,逻辑清晰,展现了源2.0在应对复杂文档翻译任务时的显著进步。
新模型的多编程语言支持能力也得到了全面验证。我们要求模型将Python代码转换为C、Java和C++语言的等价代码。新模型顺利完成了这一任务,生成的代码正确无误,证明了其在多编程语言支持上的出色表现。
此外,在代码生成能力测试中,模型解决了一个经典的编程问题,成功生成了符合要求的Python代码,并且得到了正确的结果。这一测试进一步展示了新模型在代码生成与算法实现中的高效性和准确性。
这些测试结果充分证明了Yuan2-2B-July-hf模型在处理复杂任务时的出色表现,进一步验证了其在实际应用中的广泛潜力和价值。
五、总结
Yuan2-2B-July-hf 版本的发布为开发者和研究人员提供了更加强大和全面的语言处理能力。新版模型不仅在文本生成和推理能力上取得了显著进步,还扩展了编程语言支持和任务处理能力,满足了更广泛的应用需求。该模型未来在各个领域的广泛应用和创新发展值得期待。
更多信息,请访问以下页面:
Yuan 2.0 Github 项目主页:https://github.com/IEIT-Yuan/Yuan-2.0
Yuan 2.0 系列模型Hugging Face主页:https://huggingface.co/IEITYuan
Yuan 2.0 系列模型Modelscope主页:https://modelscope.cn/profile/YuanLLM