AB
AiBoss
チュートリアル

魔乐社区

チュートリアル

在魔乐社区检索模型并跑通文本情感分析推理

面向第一次接触魔乐社区的开发者,讲清平台上的模型库、数据集与体验空间分别是什么,如何按任务标签筛选并定位目标模型,如何用 Git 或 openMind Hub Client 下载模型文件,以及怎样在本地装好 Python、PyTorch 与 openMind 工具套件后,用几行代码完成一次多语言 BERT 的情感分析推理。

魔乐社区是一个面向人工智能开发者的开源平台,把模型库、数据集、体验空间和开发工具套件放在同一个入口下。它托管基于 Git 的仓库,仓库里可以放模型、代码和文件,支持个人与组织协作。对刚接触这个平台的人来说,真正需要弄明白的其实只有三件事:怎么在模型库里找到自己要的模型、怎么把模型文件拿到本地、怎么用 openMind 工具套件把模型跑起来。这篇教程就按这三件事的顺序走一遍,最后用一个文本情感分析的完整例子收尾。如果你更习惯先看工具页再动手,可以从 魔乐社区 进入,再回到本文对照操作。

适合阅读这篇教程的读者:手上有一台能装 Python 的机器、想验证某个开源模型效果、但还没在这个平台上走过完整流程的开发者。文中涉及版本号、可用框架、算力资源等易变信息的地方,请以官网当前页面显示为准。

准备工作

先弄清平台上的几个概念

动手之前,把平台里的名词对齐,后面看页面就不会迷路。

  • 仓库:存储模型、代码和文件的 Git 仓库,支持用户和组织协作开发。
  • 模型:托管用于自然语言处理、视觉和音频任务的模型,一个模型就是一个具体的模型实例,包含网络结构和参数。
  • 数据集:托管用于翻译、语音识别、图像分类等任务的数据集,包含生成训练、评估和测试所需的数据。
  • 体验空间:开发者可以一键部署在线推理服务,用户无需下载即可体验模型的推理效果。
  • Task(任务):指一个特定领域的应用,用于完成特定场景的便捷式任务,比如图像分类、文本生成。按任务的输入输出找到合适的任务类型,再筛选模型,是最高效的检索路径。
  • 克隆:从魔乐社区下载仓库内的完整数据,包括仓库内的每一个文件夹和文件。

本地环境要求

如果只是在线体验,不需要准备任何本地环境,直接在体验空间里操作即可。要在本地加载并运行模型,开发环境需要满足以下条件:

  • Python 环境:支持 Python 3.8。
  • 深度学习框架:支持 MindSpore 2.3 与 PyTorch 2.1 两大框架进行模型训练和推理。快速上手样例按 PyTorch 2.1 准备。
  • openMind Hub Client:使用 pip 安装。
  • openMind Library:使用 pip 安装。

两个工具套件的安装命令形式如下,具体包名与版本请以官网安装说明为准:

pip install openmind-hub
pip install openmind

安装完成后,建议先确认 Python 版本与框架版本符合上面的要求,再进入下一步。版本不匹配是本地加载模型失败最常见的原因之一。

操作步骤

第一步:在模型库中定位目标模型

进入模型库后,可以看到平台上所有公开的模型。检索有两条路:一是按模型标签或任务类型筛选,二是在搜索框里输入模型名称的关键词。两条路可以叠加使用。

本文以 PyTorch-NPU/qwen1.5_7b_chat 模型为例走一遍流程。进入模型库后,可以筛选「文本分类」任务,或者在搜索框输入模型名称的关键词,把范围缩小到目标模型上。

第二步:读模型卡片,判断是不是你要的模型

模型卡片上会展示模型的基础信息、任务类型、所使用的 AI 框架等。这几项信息足够做第一轮判断:任务类型对不对、框架和你本地环境是否一致、模型规模是否在你的机器承受范围内。确认无误后再点进详情页,避免在不相干的模型上浪费时间。

第三步:在详情页看介绍与关联体验空间

单击模型卡片进入模型详情页,可以看到模型所有者提供的详细介绍和操作指导。详情页右侧会关联对应的体验空间,点击即可跳转过去,在线体验模型在具体应用程序中的效果。这一步不需要下载任何文件,适合在正式投入本地环境之前先确认模型表现。

第四步:下载模型文件

如果在线体验的结果符合预期,就可以把模型文件下载到本地。当前支持 Git 和 openMind Hub Client 两种方式。选择哪种取决于你的使用习惯:Git 适合需要完整仓库、后续可能提交改动的场景;openMind Hub Client 适合只想把模型拉下来直接加载的场景。具体命令与参数请参考官网的下载模型说明,不同仓库的路径写法会有差异。

第五步:从详情页取用加载命令

想进一步验证模型效果,可以单击模型右上角的「Use in openMind」。在本地环境已经按前面的要求准备好的前提下,页面会给出下载并加载模型的命令示例,直接照着执行即可。这一步省去了自己拼仓库路径的麻烦,也避免了路径写错导致的加载失败。

一个完整示例:文本情感分析推理

下面用 openMind Library 等工具套件完成一次模型推理。选的任务是文本情感分析,用的模型是魔乐社区模型库内情感分析微调的多语言 BERT 模型 distilbert_base_uncased_finetuned_sst_2_english。整个流程只有四步,代码量很小。

步骤一:按「用户名/仓库名」格式指定模型仓库并加载

魔乐社区模型库内的模型用「用户名/仓库名」的格式定位。用 AutoModelForSequenceClassification 和 AutoTokenizer 分别加载该代码仓中的预训练模型和关联的分词器。序列分类任务要用对应的 Auto 类,不要误用成生成式模型的那一套。

步骤二:用 pipeline 组装推理流程

把上一步得到的模型和分词器传给 pipeline(),由它把分词、前向计算、结果后处理串起来。这样就不需要手写张量拼接和 softmax。

步骤三:对输入文本做情感分析

用组装好的 classifier 对输入的文本内容做情感分析。输入可以是一句话,也可以是一批句子,具体取决于你传入的数据结构。

步骤四:查看分析结果

输出里会给出情感倾向的判定结果。核对一下结果是否符合预期,如果明显不对,优先检查模型仓库路径是否写对、分词器是否与模型配套。

把四步合起来,代码骨架大致是这样的结构:

from openmind import AutoModelForSequenceClassification, AutoTokenizer, pipeline

model_name = "用户名/distilbert_base_uncased_finetuned_sst_2_english"
model = AutoModelForSequenceClassification.from_pretrained(model_name)
tokenizer = AutoTokenizer.from_pretrained(model_name)

classifier = pipeline("text-classification", model=model, tokenizer=tokenizer)
result = classifier("要分析的文本内容")
print(result)

上面的仓库路径需要替换成你在模型库中实际看到的「用户名/仓库名」。任务名与参数写法请以官网文档和 openMind Library 的当前接口为准。

注意事项

  • 版本要对齐:本地运行要求 Python 3.8,框架支持 MindSpore 2.3 与 PyTorch 2.1。快速上手样例按 PyTorch 2.1 准备,用其他版本前先确认兼容性。
  • 两个套件都要装:openMind Hub Client 负责与平台侧交互,openMind Library 提供模型加载与推理接口,只装其中一个往往跑不通完整流程。
  • 仓库路径格式固定:模型库内的模型用「用户名/仓库名」定位,写成裸模型名会找不到。
  • 克隆会拉全量数据:克隆是把仓库内每一个文件夹和文件都下载下来,大仓库会占用较多磁盘与带宽。只需要模型权重时,优先考虑按需下载的方式。
  • 先在线后本地:不确定模型效果时,先用关联的体验空间在线试,确认后再投入本地环境,可以省掉大量下载与配置时间。
  • 易变信息以官网为准:平台提供的算力资源、可用框架版本、模型与数据集数量都会变化,本文不给出具体数字,使用前请查看官网当前信息。