大家好我是小羽,本来想要直接把代码文件直接放进来的,但是限制了,只能贴代码了。我的视频中会有更加详细的讲解。
模型微调前后对比
| 微调前
| 微调后
一、处理数据
1.1环境
1.2代码
二、模型微调
我这里也提供了处理好后的数据,把book.json文件放到同级目录的data文件夹下即可。
注意:微调7B的模型会使用47G的显存,我这里使用的是PEFT框架的PEFT-LoRA PyTorch模式进行微调的。
1.5B的模型微调大概是24G左右
nvidia-smi查看显存占用
在微调之前需要确保准备好的数据是否存放在了data这个文件夹下
执行下述代码创建目录,然后将准备好的数据books.js文件(books.js文件是通过执行上面的处理数据得到的)放到data文件夹下。
import os
os.makedirs('data', exist_ok=True)os.makedirs('output', exist_ok=True)os.makedirs('dataset', exist_ok=True)
微调模型如果显存不够的话看这里,修改下面模型微调代码中的TrainingArguments的值
import osos.environ['PYTORCH_CUDA_ALLOC_CONF'] = 'expandable_segments:True'
args = TrainingArguments( per_device_train_batch_size=1, # 减少批量大小 gradient_accumulation_steps=8, # 梯度积累增加 fp16=True # 实现混合精确训练)
模型微调启动后可以使用tensorboard 来可视化查看loss损失函数的状态在命令行中执行下述命令
三、部署模型
使用vllm加速部署模型
准备环境
新开一个命令行,启动模型
四、执行推理
五、测试
使用GPT4来测试输出的文本信息的好坏。
根据以下生成小说的prompt和生成的小说文本,对小说进行测评。请从以下六个方面进行评分,并提供详细的评分理由:
1. **文本重复度**(0-5分): - 0分:重复部分占全文比例大于40%。 - 1分:重复部分占全文比例在31%-40%。 - 2分:重复部分占全文比例在21%-30%。 - 3分:重复部分占全文比例在11%-20%。 - 4分:重复部分占全文比例在2%-10%。 - 5分:重复部分占全文比例在1%及以下。
2. **语义通顺度**(0-5分): - 根据是否存在语句不通顺、语义模糊不清的情况进行评分,类似错误情况越少,得分越高。
3. **赛题切合度**(0-5分): - 根据给定的赛题,判断故事的文字内容是否符合赛题的要求与意义,是否存在时空错位等情况,类似错误情况越少,得分越高。
4. **故事复杂度**(0-5分): - 5分:人物数量、人物关系变化次数、事件数量的总和大于17。 - 4分:总和大于13且小于等于17。 - 3分:总和大于9且小于等于13。 - 2分:总和大于5且小于等于9。 - 1分:总和大于1且小于等于4。 - 0分:故事中没有人物关系变化或情节。
5. **故事创新性**(0-5分): - 根据你阅读过的所有小说、新闻、剧本等内容,判断故事的新颖性和是否不落俗套,越新颖,得分越高。
6. **文本完整度**(1-2分): - 1分:故事没有写完。 - 2分:故事写完,结尾完整。
生成小说的prompt:
{prompt}生成的小说:
{story}请对上述小说文本进行详细的评估,并分别对每个标准进行打分(0-5分),你要输出每一个维度的具体打分分数与给分原因,并将所有项目得分相加,得出这段文本的总分数。
领取专属 10元无门槛券
私享最新 技术干货