上一篇介绍了基于训练加速框架Unsloth,微调训练Llama3的显卡资源占用及训练时间对比。
近期Unsloth新增了Qwen1.5的模型适配,因此本qiang~马不停蹄地又进行了一次实验对比。
对Unsloth的简介,感兴趣的客观可以查阅上一篇《LLM微调加速神器:Unsloth + LLama3》。
本着眼过千遍不如手过一遍的宗旨,本qiang~针对Unsloth做了一个对比实现。
对比的实验环境为: A800,模型为Qwen1.5-32B-Chat。
可以使用如下命令进行更新unsloth。
pip install "unsloth[colab-new] @ git+https://github.com/unslothai/unsloth.git"
维度 |
说明 |
显卡 |
是否支持bf16 |
最大文本长度 |
max_seq_length |
批次大小 |
per_device_train_batch_size |
梯度累加步长 |
gradient_accumulation_steps |
秩 |
LoRA的rank |
dropout |
lora_droput |
源码请见地址,由于Qwen1.5和Llama3的prompt模板不一致,因此源码层面上也稍加了改动。
针对于Qwen1.5-32B-Chat进行unsloth训练,与基于transformers框架训练进行比对,结论如下:
集成unsloth后,显卡占用确实更少,平均减少20%-25%,训练效率确实更快,不管是哪种维度,平均训练时间减少了27%-41%。
使用40G显存的单卡如A40,即可进行微调训练。
一句话足矣~
本文主要是使用unsloth框架针对Qwen1.5的高效微调实验,提供了详细的对比代码以及不同维度的对比分析结果。
之后会研读一遍unsloth的底层源码,具体是如何使用triton语言实现加速的,以及如何手写的前馈网络和反向传播的实现~
1. unsloth: https://github.com/unslothai/unsloth
本文主要是通过Scrapegraph-ai集成gpt3.5实现一个简单的网页爬取并解析的demo应用,其中涉及到gpt3.5免费申请,Scrapegraph-ai底层原理简介,demo应用源码等。
本文主要是针对KBQA方案基于LLM实现存在的问题进行优化,主要涉及到响应时间提升优化以及多轮对话效果优化,提供了具体的优化方案以及相应的prompt。
本文主要是针对KBQA方案基于LLM实现存在的问题进行优化,主要涉及到图谱存储至Es,且支持Es的向量检索,还有解决了一部分基于属性值倒查实体的场景,且效果相对提升。