昇思学习营第七期·昇腾开发板 学习打卡_02

昇思学习营第七期·昇腾开发板 学习打卡_第二次

LoRA模型的微调:

粗看一遍感觉到:原来适配大模型不一定要"伤筋动骨"全盘调整,加个轻量补丁就能高效解决问题,省时省力且满足需求

代码示例

方框一:

  1. 从云端下载一个现成的 1.5B 参数大模型(类似 ChatGPT 的“大脑”)。
  2. 设置模型用 半精度(FP16) 运行,节省显存。
  3. 配置生成文本时的参数,比如用 eos_token(结束符)作为填充符。

方框二:

  1. 告诉 LoRA 要改哪些部分(这里是注意力机制相关的 7 个关键模块)。
  2. 设定微调强度:
  • r=8:用 8 维的小矩阵做调整(原模型可能是 4096 维的)。
  • alpha=32:调整幅度是基础值的 32 倍。
  1. dropout=0.1:训练时随机忽略 10% 的数据,避免死记硬背。

好比:给电脑外接一个 轻量级显卡(LoRA),只升级玩游戏需要的部分,而不是换整个主板。

方框三:

  1. 把 LoRA 模块和原模型组合,新模型既能用原能力,又能学新任务。
  2. 结果显示 只有 0.5% 的参数需要训练(1.5B 参数中约 750 万可调)。

好比:电脑接上外接显卡后,系统自动识别,现在你只需要更新显卡驱动(LoRA参数),不用重装整个系统。

接下来,老师以甄嬛传为例子,讲了一个训练学甄嬛说话的模型。

教了我们如何定义步长,数据集的加载方法,tokenizer的实例化,然后还讲解了代码的逻辑处理。

针对性的讲解了map函数的使用![image-20250731023721074](file://C:/Users/huchao/AppData/Roaming/Typora/typora-user-images/image-20250731023721074.png?lastModify=1754230171)

最后进入实操环节!

首先先删除原来的第一个和第三个方框

然后修改第二个方框内容为

print(“# ------------------------ mindspore ---------------------------- #”) !pip show mindspore print(“# ------------------------ mindnlp ---------------------------- #”) !pip show mindnlp

接着在第九个方框下面加一个单元格,输入以下代码

from datetime import datetime import pytz

设置时区为北京时区

beijing_tz = pytz.timezone(‘Asia/Shanghai’)

获取当前时间,并转为北京时间

current_beijing_time = datetime.now(beijing_tz)

格式化时间输出

formatted_time = current_beijing_time.strftime(‘%Y-%m-%d %H:%M:%S’)

my_name_id = “tttest”

print(“当前北京时间:”, formatted_time, " 我的昇思用户名id:", my_name_id)

最后得到如图结果

实操结束,感谢组长带着我们走一遍实操流程