【Datawhale AI夏令营第四期】大模型应用开发-模型微调&AI编程助手第三弹

0. 碎碎念环节

托实验室老师的福,寒假弄过llama2-7B的微调,本来想趁着这个时间再深入学习,但是因为时间关系,模型微调深入研究只能留着开学后再弄了。当前还是一个人捣鼓着Hoshino的雏形,哎,慢慢来吧。

1. LLM微调原理

1.1 大致流程

模型微调,是一个很关键的步骤(废话)。依照我自己的想法,给它总结了以下几步:

  1. 评估加载: 选择一个好模型至关重要(最近我有点对某C9国产Gxxx模型走火入魔了)
  2. 数据处理:收集目标相关的数据集,再进行预处理(清洗、改格式标准化)等工序。
  3. 微调设参:批处理大小、训练轮次等等参数要根据目标模型来设定。
  4. 微调训练:Training
  5. 评估调优:测试,根据反馈结果或再进行进一步微调。

下面我直接调一些重点。

1.2 数据处理

这里直接定义了一种函数process_funcprocess_func函数通过处理输入和输出文本,将它们转换为适合Transformer模型处理的格式,并考虑了中文分词的特性以及模型对输入长度的限制。

def process_func(example):
    MAX_LENGTH = 384    
    instruction = tokenizer(f"{example['input']}<sep>")
    response = tokenizer(f"{example['output']}<eod>")
    input_ids = instruction["input_ids"] + response["input_ids"]
    attention_mask = [1] * len(input_ids) 
    labels = [-100] * len(instruction["input_ids"]) + response["input_ids"] # instruction 不计算loss

    if len(input_ids) > MAX_LENGTH:  # 做一个截断
        input_ids = input_ids[:MAX_LENGTH]
        attention_mask = attention_mask[:MAX_LENGTH]
        labels = labels[:MAX_LENGTH]

    return {
        "input_ids": input_ids,
        "attention_mask": attention_mask,
        "labels": labels
    }

2. Hoshino编程助手环节

AI跑云端,用的python。本地拿electron-vue简单搭建了下。
Github:https://github.com/Xiaoqiuu/hoshino
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值