基于MindSpore NLP的PEFT微调

创建notebook

登录控制台

创建notebook

如果出现提示按如下操作

回到列表页面创建notebook参数如下:

配置mindnlp环境

打开GitHub - mindspore-lab/mindnlp: Easy-to-use and high-performance NLP and LLM framework based on MindSpore, compatible with models and datasets of 🤗Huggingface.链接进入主页看到简介

Install from Pypi
You can install the official version of MindNLP which is uploaded to pypi.

pip install mindnlp
Daily build
You can download MindNLP daily wheel from here.

Install from source
To install MindNLP from source, please run:

pip install git+https://github.com/mindspore-lab/mindnlp.git
# or
git clone https://github.com/mindspore-lab/mindnlp.git
cd mindnlp
bash scripts/build_and_reinstall.sh

执行pip install mindnlp 会看到下面会有些版本冲突,不用理会

执行mindnlp脚本

pip install git+https://github.com/mindspore-lab/mindnlp.git
# or
git clone https://github.com/mindspore-lab/mindnlp.git
cd mindnlp
bash scripts/build_and_reinstall.sh

如果你现在去页面打开notebook脚本你就会发现会提示Mindformers冲突

执行pip uninstall mindformers命令,删除依赖包,OK基础环境处理好了。

执行notebook开始训练

首先需要训练脚本,训练脚本可以参考mindnlp/llm/peft at master · mindspore-lab/mindnlp · GitHub目录下的脚本,下载到本地

跟着文档执行会发现如下提示选y继续执行

问题1

如果出现如下异常多重试几次

问题2

这是因为获取不到huggingface库导致的

解决

到huggingface官网下载数据集

数据集目录:https://huggingface.co/datasets/takala/financial_phrasebank

下载数据集,在终端目录/home/ma-user/work目录下执行代码git clone https://huggingface.co/datasets/takala/financial_phrasebank获取数据集。

开始训练模型

跟着脚本一路往下,会看到首先创建模型,然后加载数据集,加载token,最后训练,输入精度结果,报存模型加载模型。

使用ia3算法微调模型

使用GLUE-MRPC数据集

选取ia3数据集mindnlp/llm/peft/ia3/seq_2_seq/peft_ia3_mindnlp.ipynb at master · mindspore-lab/mindnlp · GitHub

在终端目录/home/ma-user/work目录下执行代码git clone https://huggingface.co/datasets/nyu-mll/glue获取数据集。

改变脚本参数

在之前lora_seq2seq.ipynb脚本的基础上改配置

修改配置

注意:注释掉之前lora的配置改成ia3的。

改变导入包

# from mindnlp.peft import get_peft_model, LoraConfig, TaskType
from mindnlp.peft import get_peft_config, get_peft_model, get_peft_model_state_dict, LoraConfig, TaskType,IA3Config

改变配置


# creating model
# peft_config = LoraConfig(task_type=TaskType.SEQ_2_SEQ_LM, inference_mode=False, r=8, lora_alpha=32, lora_dropout=0.1)
peft_config = IA3Config(task_type=TaskType.SEQ_2_SEQ_LM, inference_mode=False)

改变数据集

# loading dataset
# dataset = load_dataset("financial_phrasebank", "sentences_allagree",cache_dir='/home/ma-user/work/financial_phrasebank/')

dataset = load_dataset("financial_phrasebank", "sentences_allagree",cache_dir='/home/ma-user/work/glue/mrpc')

开始训练

训练的结果差一点哪位大佬提供下思路看看如何调整

发布到昇思大模型平台

配置参数

总结

开始上手大模型,要求不高跑起来就好,关注我后续持续优化深度探讨模型。

最后

点赞关注评论一键三连,每周分享技术干货、开源项目、实战经验、国外优质文章翻译等,您的关注将是我的更新动力

引用

GitHub - mindspore-lab/mindnlp: Easy-to-use and high-performance NLP and LLM framework based on MindSpore, compatible with models and datasets of 🤗Huggingface.

昇思大模型平台

【第二课】昇腾+MindSpore+MindSpore NLP:极简风的大模型微调实战_哔哩哔哩_bilibili

### 解决 `ValueError: task or pipeline_name is required` 错误 当遇到此错误时,通常是因为在调用某些框架(如 Hugging Face Transformers 或 MindSpore)中的函数或类时未提供必要的参数。具体来说,在创建 Pipeline 对象或其他依赖于任务类型的组件时,必须显式指定 `task` 或 `pipeline_name` 参数。 以下是解决问题的方法: #### 1. 明确指定 `task` 或 `pipeline_name` 如果正在使用 Hugging Face 的 `Pipeline` 类,则需要确保传递了有效的 `task` 字符串作为参数。例如: ```python from transformers import pipeline nlp = pipeline(task="text-classification", model="distilbert-base-uncased-finetuned-sst-2-english") ``` 上述代码片段中指定了 `task="text-classification"`[^1]。如果没有设置该参数,将会触发类似的 `ValueError`。 对于其他库或者自定义实现的情况,请确认是否有类似的功能入口点,并按照文档说明配置好对应的选项。 #### 2. 验证输入数据结构的一致性 有时即使提供了正确的任务名称,但如果传入的数据维度不符合预期也可能引发异常。比如矩阵乘法操作要求两个张量具有匹配的形状大小。因此要仔细核对所有参与运算的对象是否满足条件限制。 另外需要注意的是,在构建复杂的机器学习流水线过程中,可能会涉及到多个阶段之间的衔接工作。此时应当特别留意各部分之间传递的信息格式是否统一兼容[^2]。 #### 3. 修改PEFT加载逻辑适应特定需求场景 如果是涉及微调预训练大语言模型(LLMs),并且采用了参数高效迁移技术(PEFT)的话,则可能还需要额外调整一些细节来适配具体的业务流程。例如: - 把原始配置文件重命名为adapter_config.json; - 确认存在pytorch_model.bin这个二进制权重文件; - 更改目录命名使其包含关键字"peft"; - 更新model_config.py里的llm字典项加入新的映射关系; - 设置环境变量启用共享基座权重功能等等[^3]. 这些改动有助于正确导入经过优化后的子网络模块并顺利完成推理计算过程. 最后附上一段简单的异步任务提交演示代码供参考: ```python # Example of submitting asynchronous tasks using Celery framework. from tasks import add if __name__ == "__main__": result = add.delay(4, 6) print(f'Task result: {result.get(timeout=10)}') ``` 这里展示了如何利用Celery这样的工具来进行分布式系统的初步规划与实践[^4].
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

查拉图斯特拉talk

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值