华为开发者空间-赋能昇腾 AI 进行大模型评估
大模型评估是指对大规模预训练语言模型的能力、性能、局限性等进行系统性测量和分析的过程。
它是确保大模型在实际应用中可靠、有效且符合预期的关键环节。
一、评估目的
性能验证:确认模型在各类任务上的处理能力,如文本生成、问答、翻译等。
发现缺陷:识别模型在逻辑推理、常识理解、偏见等方面的不足。
优化方向:为模型迭代提供数据支持(如调整训练策略、增强特定能力)。
应用适配:判断模型是否适合特定场景(如医疗、金融等领域的垂直应用)。
二、评估维度与常见任务
1. 基础能力评估
维度 |
典型任务示例 |
评估重点 |
语言理解 |
文本分类、命名实体识别、语义角色标注 |
对语义、语法结构的理解准确性 |
语言生成 |
文本续写、摘要生成、对话系统 |
内容连贯性、逻辑性、多样性 |
知识推理 |
常识问答(如 “冬天为什么会下雪?”)、逻辑谜题 |
对世界知识的掌握及推理能力 |
跨语言能力 |
机器翻译(如中译英)、跨语言问答 |
多语言理解与生成的一致性 |
2. 复杂能力评估
上下文理解:在长文本或多轮对话中保持语义一致性(如回答依赖前文的问题)。
多模态融合:结合图像、音频等信息进行处理(如根据图片生成描述)。
工具使用:调用外部工具(如计算器、知识库)解决问题的能力。
3. 伦理与安全性评估
偏见与公平性:检查模型输出是否存在性别、种族、地域等偏见(如 “医生都是男性” 的错误关联)。
有害内容生成:测试模型是否会输出仇恨言论、虚假信息或恶意指令。
隐私保护:评估模型是否会泄露训练数据中的敏感信息(如个人隐私)。
4. 效率与实用性评估
计算资源消耗:模型推理的速度、内存占用、能耗等(影响实际部署成本)。
小样本 / 零样本学习:在少量或无标注数据下的学习能力(如仅通过示例完成新任务)。
1、实验介绍
1.1、实验平台介绍
本实验描述了如何在华为开发者空间 AI NoteBook 上进行大模型评估。
1.1.1、华为开发者空间简介
华为开发者空间官网地址:https://developer.huaweicloud.com/space
在华为开发者空间,每位注册的开发者都将享有年度内数百小时的云主机使用权,配备5GB云存储容量和定制化的场景模拟沙箱,辅以丰富详实的技术培训课程和专业认证资料,确保开发者能够无缝接入并持续拓展自己的技能树。该空间特别设计了以华为云CodeArts IDE为中心的全方位开发工具生态,整合了鲲鹏、昇腾、鸿蒙等核心生态的开发资源,提供广泛的开源软件库、实用开发插件,全面覆盖从代码托管到应用运维的各个阶段,极大地提升了开发效率和应用构建的便捷性。
加入华为开发者空间,开发者将额外收获如下关键支持:
应用全周期管理:一站式服务涵盖应用构建、存档、验证、配置等环节,助力开发者高效完成云端应用搭建。
沃土云创计划:多维度激励方案,鼓励开发者探索新技术边界,推动创新应用的孵化与发展。
生态共建激励:设立开源贡献、市场线索共享等奖励机制,激发开发者参与生态建设的热情,共享成长成果。
个性化技术支持:通过多种渠道如工单系统、云声反馈、问题跟踪等,为开发者提供及时的技术指导和解决方案,确保项目顺利推进。
1.1.2、华为开发者空间 AI NoteBook 简介
华为开发者空间 AI NoteBook 是基于华为云 ModelArts 的 JupyterLab 的 NoteBook 虚拟环境。
ModelArts是面向开发者的一站式AI开发平台,为机器学习与深度学习提供海量数据预处理及半自动化标注、大规模分布式Training、自动化模型生成,及端-边-云模型按需部署能力,帮助用户快速创建和部署模型,管理全周期AI工作流。
华为开发者空间 AI NoteBook 地址:
https://developer.huaweicloud.com/space/devportal/notebook-tool
AI NoteBook 支持通过 JupyterLab 工具在线打开 Notebook ,开发基于昇腾的Ascend C算子。
具体操作流程如下图所示:
AI NoteBook 给用户提供了两组预置镜像,用户可以直接使用预置镜像创建 Notebook 实例,在实例中进行依赖安装与配置后,保存为自定义镜像,可直接用于Ascend C算子开发。
AI NoteBook 平台中预置的基础镜像:
引擎类型 |
版本名称 |
Ascend-Powered-Engine NPU basic 1 * NPU 910B 8v CPU 24GB |
euler2.9-py310-torch2.1.0-cann8.0-openmind0.9.1 |
euler2.9-py3.8-torch2.1.0-cann8.0-openmind0.9.0 |
例如:我们选择 euler2.9-py310-torch2.1.0-cann8.0-openmind0.9.1 然后,点击立即启动,
稍等片刻后环境启动完成。
点击查看 NoteBook 即可进入刚刚创建好的环境中。
2、软件介绍
2.1.1 软件版本介绍
本实验所使用的系统和软件版本如下表,对于操作界面差异不大的版本没有列出。
环境信息:
类别 |
版本 |
说明 |
Python |
Python3.10 |
面向对象编程语言 |
CANN |
8.1.RC1.beta1 |
昇腾异构计算架构 |
系统镜像 |
euleros_2.9 |
服务器操作系统 |
CPU架构 |
aarch64 |
CPU架构 |
大模型微调套件 |
OpenMind |
openMind是一个大模型微调套件 通过命令行接口或SDK原生支持在昇腾NPU上进行微调、推理、评估和部署。 |
训练环境系统/软件版本
2.1.2 OpenMind 简介
官方源代码地址:https://gitee.com/ascend/openmind
openMind Library是一个大模型微调套件,通过命令行接口或SDK原生支持在昇腾NPU上进行微调、推理、评估和部署。通过简化使用流程,充分利用NPU的独特优势,为大模型应用提供高效、可扩展的解决方案。
为什么使用 openMind Library?
基于Transformers框架,openMind Library实现了高效的微调流程。它集成了PyTorch生态中常用的工具库功能,提供数据预处理、权重加载、低参微调、量化适配以及训练跟踪等全流程的一键式解决方案。此外,库内融合了针对昇腾NPU的优化算子,可大幅提升模型训练效率。
openMind Library提供了统一的Pipeline SDK,提供更快速、更高效的推理体验。
模型部署方面,openMind Library基于LMDeploy和MindIE,提供多后端部署支持,极大地简化了部署流程,使得模型部署更加便捷。
openMind Library目前支持的特性如下:
· 模型类型:支持Qwen2、Qwen2.5、Qwen1.5、Internlm2、Internlm3、Llama3.1、Glm4、Skywork等系列模型
· 微调训练:SFT训练
· 混合精度训练: BF16、FP16
· 高效微调:LoRA微调、DoRA微调、PiSSA微调、4bit QLoRA微调
· 分布式训练:native DDP、DeepSpeed
· 微调加速:npu_fusion_attention融合算子、npu_rms_norm融合算子、RoPE融合算子、SwiGLU融合算子
· 训练监控:SwanLab
· 多轮对话:Transformers/Mindformers多backend
· 推理:Transformers/Diffusers多backend、text-generation/text-to-image多任务
· 部署:LMDeploy、MindIE
· 评估:lm_eval
2、体验在NPU上使用OpenCompass进行模型评估
可参考官方仓库地址
https://gitee.com/ascend/openmind/blob/master/docs/zh/best_practice/opencompass.md
OpenCompass是一个LLM评估平台,它提供全面的大模型评测功能,包括广泛的模型支持、高效的评测速度、主观的评测能力、数据污染检查和丰富的长文本评测能力。本教程介绍如何使用OpenCompass第三方套件在npu上对本地模型完成评测。
3.1.1 环境准备
本实验所使用的模型和OpenCompass版本可能会有更新,最新请以官方仓库 README 为准。
git clone https://github.com/open-compass/opencompass.git cd opencompass git checkout -b v0.4.2 tags/0.4.2 pip install -e .
接下来,将基于qwen-2.5-7b-instruct模型和gsm8k数据集进行演示。
3.1.2 模型准备
可通过带lfs的git 从魔乐社区进行模型下载。
git clone https://modelers.cn/AI-Research/Qwen2.5-7B-Instruct.git
由于模型路径后续会使用到,这里假设下载后模型的位置在 /model/Qwen2.5-7B-Instruct/。
3.1.3 数据集准备
大部分数据集会随着评测的启动自动下载,部分数据集需要手动下载。
可通过/opt/huawei/edu-apaas/src/init/opencompass/opencompass/utils/datasets_info.py
文件查看数据集下载链接,下载后将文件存在/root/.cache/opencompass/data/。
本示例使用的gsm8k数据集会由OpenCompass自动下载。
可通过以下命令查看或过滤当前可用的模型和数据集配置。
python tools/list_configs.py llama mmlu
目前已验证的数据集配置包括aime2024_gen_6e39a4、gpqa_gen_4baadb、math_500_gen、mmlu_gen_a484b3、gsm8k_gen。其他数据集配置以用户使用为准。
3.1.4 数据集准备
可通过以下命令启动评测,时间会比较长,完整评估大约需要 1 个半小时。
cd opencompass pip install mmengine pip install prettytable pip install jieba pip install rouge_chinese pip install rank_bm25 pip install tree_sitter pip install tree_sitter_languages pip install openai pip install fuzzywuzzy pip install timeout_decorator pip install h5py python run.py \ --datasets gsm8k_gen \ --hf-type chat \ --hf-path /model/Qwen2.5-7B-Instruct/ \ --tokenizer-kwargs padding_side="left" truncation="left" trust_remote_code="True" \ --model-kwargs device_map="auto" \ --max-seq-len 1024 \ --max-out-len 2048 \ --min-out-len 16 \ --batch-size 32 \ --max-num-workers 2
datasets中可以传入多个数据集,从而一次评估多个数据集。
若有需要,可通过添加generation-kwargs参数,使得模型输出具有一定的随机性。
--generation-kwargs do_sample="True" temperature=0.7 top_k=50 top_p=0.8
评估完成后,评估结果表格将打印如下:
dataset version metric mode _hf
-------- -------- -------- ------ -----
gsm8k 1d7fe4 accuracy gen 80.52
恭喜!至此您成功完成了大模型的评估实验!
- 点赞
- 收藏
- 关注作者
评论(0)