在人工智能的浪潮中,深度学习开发套件 openMind Library,以其强大的功能和易用性,逐步成为AI开发者们的强力助手。本文将通过魔乐社区近期关注挺高的大模型平台魔乐社区,深入了解openMind Library。
openMind Library是什么?
openMind Library 是一个深度学习开发套件,它通过简单易用的API接口,支持模型预训练、微调、推理、部署等流程。同时,它兼容PyTorch和MindSpore等主流框架,原生支持昇腾NPU处理器,为AI开发提供强大的支持。
功能亮点
- 多框架兼容 为满足开发者对于技术选择的多样性需求,openMind Library原生支持PyTorch和MindSpore主流框架,开发者都可以根据自己的项目需求,灵活选择最合适的框架进行开发。
- 大模型训练支持 为了应对大模型分布式训练的挑战,openMind Library提供了预训练接口,支持MindSpeed、Accelerate等加速库,帮助开发者顺畅快速地训练大模型。具体可参考模型预训练。
- 丰富的接口封装 openMind Library提供了对Transformers和MindFormers AutoClass、Pipeline、Trainer等接口的封装,并进行了功能增强,提供从魔乐社区自动下载和加载模型的能力,同时扩展新增了昇腾NPU亲和的特性,有效提升在昇腾NPU上进行模型训练推理的性能,具体可参考模型微调和模型推理。
- 简单的命令行接口 针对本地快速运行大模型的场景,openMind Library提供了简明易用的命令行接口,低代码迅速执行模型上传下载、推理、对话、部署等操作。具体可参考命令行接口。
- 丰富的模型案例 openMind Library提供了丰富的模型开发案例,从预训练到微调,再到推理,每一步都有详细的指导和脚本支持。无论是新手还是资深开发者,都能在这里找到适合自己的资源,快速实现模型的开发和部署。具体可参考openMind Library内置模型案例表格。
教程_快速入门openMind Library
1 快速安装
开始之前,请确认已经按照指引安装openMind Library。若未安装,可参考以下安装指引快速安装。
# 基于PyTorch的openMind Library快速安装
conda create -n your_venv_name python=3.8
conda activate your_venv_name
# 基于PyTorch和NPU安装openMind Library
pip install openmind[pt]
# 基于MindSpore的openMind Library快速安装
conda create -n your_venv_name python=3.8
conda activate your_venv_name
# 基于MindSpore和NPU安装openMind Library
pip install openmind[ms]
2 选择框架
根据您的项目需求,选择Python 或 MindSpore作为您的开发框架。openMind Library提供了对这两个框架的原生支持。
# MindSpore框架
## 方法一:直接在设备环境中指定使用MindSpore框架。
### Linux环境
export OPENMIND_FRAMEWORK="ms"
## 方法二:在代码中指定使用MindSpore框架。
import os
os.environ["OPENMIND_FRAMEWORK"] = "ms"
# 使用PyTorch框架
## 方法一:直接在设备环境中指定使用PyTorch框架。
# Linux环境
export OPENMIND_FRAMEWORK="pt"
## 方法二:在代码中指定使用PyTorch框架。
import os
os.environ["OPENMIND_FRAMEWORK"] = "pt"
3 模型推理
在openMind Library中,开发者可以使用Pipeline进行推理。pipeline()
提供了使用预训练模型进行推理的全流程,使用pipeline()
可以轻松实现对文本、图像、音频等多种模态数据的多种任务,如文本情感分析、图像分割等。笔者以对文本的情感分析任务为例,展示如何使用pipeline()
执行一个指定的任务(初级任务)。更多细节可以参考资料:使用Pipeline进行推理
- Pipeline指定任务(初级任务)
首先,实例化一个
pipeline对象
并指定任务类型,本示例中指定为sentiment-analysis
(所有支持的任务类型详见 pipeline当前支持的推理任务与默认模型)。此方法未指定模型,pipeline使用任务对应的预定义默认模型进行推理。
from openmind import pipeline
# 当环境中只有一种框架,若不指定framework参数,将默认基于当前框架进行推理
classifier = pipeline("sentiment-analysis")
# 当环境中有多种框架,若指定framework参数为"ms"时,将基于MindSpore框架进行推理
classifier = pipeline("sentiment-analysis", framework="ms")
在仅指定任务类型时,pipeline()
会自动下载预定义默认预训练模型及分词器,本示例中的预训练模型和分词器用于情感分析,随后使用classifier
对输入文本进行分析。
classifier("Welcome to the openMind library!")
'''
输出:
[{'label': 'POSITIVE', 'score': 0.999705970287323}]
'''
当输入文本不止一条时,可以把所有输入放入到列表中,一次性传给pipeline()
,classifier
也将所有结果存储在一个字典列表内并返回:
results = classifier(["Welcome to the openMind library!", "Have a great experience using it!"])
for result in results:
print(f"label: {result['label']}, with score: {round(result['score'], 4)}")
'''
输出:
label: POSITIVE, with score: 0.9997
label: POSITIVE, with score: 0.9998
'''
4 模型训练
openMind Library提供了一个Trainer类来实现训练模型所需功能。开发者可根据特定任务需求,将模型、框架、数据集等作为参数对象传递给Trainer进行训练,流程如下图所示:
结语
魔乐社区致力于打造一个开放、共享的人工智能生态社区,鼓励每一位开发者分享自己的经验和成果。随着AI技术的不断进步,openMind Library也在不断地更新和完善,以适应不断变化的技术需求。我们期待与全球的AI开发者一起,共同探索AI的无限可能,共创美好的智能未来。
相关链接: https://modelers.cn/docs/zh/openmind-library/overview.html