首页 > 其他分享 >使用LLM的问题

使用LLM的问题

时间:2023-04-11 17:44:06浏览次数:35  
标签:tuning 训练 Fine 模型 微调 问题 LLM 使用 lora

当前大模型的低成本实现方案:

语言模型 + 指令微调数据 + 微调加速
llama + alpaca_data(Fine-tuning) + lora

语言模型:

...

指令微调数据:

在一组通过指示描述的数据集上对语言模型微调,大大提高了在未见过任务上的 Zero-Shot 能力。
通过对多种任务的糅合学习 Zero-Shot 能力。

当前开源大模型的Fine-tuning(Instruction Tuning)都是针对此处进行训练。

微调加速:

解决低资源下的训练问题

在完整微调过程中,模型使用预训练好的权重来初始化模型,然后通过最大化条件语言模型来更新参数。缺点是:对于每个下游任务都需要学习不同的参数更新,如果预训练模型很大,则参数更新的成本很高。

lora:
对于预训练权重矩阵:
\(W_{0}\)∈\(R^{d × k}\),
低秩分解为:
\(W_{0}+\Delta W=W_{0}+BA ,B∈R^{d×r},A∈R^{r×k}\),并且秩\(r\ll min(d,k)\)
在训练过程中,\(W_{0}\)被冻结不接受梯度更新,A和B是可训练的参数。当需要转换至另一个下游任务时,可以通过减去BA来恢复\(W_{0}\),然后添加不同的\(B^{'}A^{'}\)

问题

当前开源大模型的Fine-tuning都是针对指令微调数据进行训练,并且训练成本也不低(使用lora技术能在单卡训练,7B的模型3090需要10小时左右)。

此训练只是把含有{instruction,input,output}的数据丢入训练,没有模型或技术上改变。

大模型没有之前(pre-train + fine-tuning)中fine-tuning的说法,所以如果需要技术上的改变,则需要修改语言模型,但这样需要的显存是不可计量的

标签:tuning,训练,Fine,模型,微调,问题,LLM,使用,lora
From: https://www.cnblogs.com/charon52HZ/p/17306927.html

相关文章

  • Android - AXMLPrinter2.jar的使用方法
    我们需要查看打出的apk包中AndroidManifest.xml文件,但是打开之后发现是一大堆的乱码这是就需要反编译工具,AXMLPrinter2.jarAXMLPrinter2.jar官方介绍:AXMLPrinter2.jarapk分析APK文件,取得APK文件中的包名、版本号及图标,很强大的工具,再一次感受到了批处理的牛逼。可以将android......
  • UIScrollView SnapKit使用
    直接上代码,看ViewDidLoad方法中的注释。一共10个约束,UIScrollView上下左右4个,其子试图contentView上下左右宽高6个。注意点:(以要求可以上下滚动为例,可以先看完代码再回头理解注意事项)1、contentView的宽高根据需求设置优先级,哪边需要滚动,优先级就必须低,因此这里设置高度优先......
  • AIGC教程:如何使用Stable Diffusion生成风格化游戏物品和图标
    GameLook报道/随着生成型AI的能力提升,越来越多的开发者开始尝试用StableDiffusion提升自己的研发效率。在RPG游戏的制作当中,数量庞大的游戏内物品是非常耗时且费力的部分,装备、道具、药剂等物品可能数以千计,从概念设计到最终放到游戏里的资源,可能耗费很长时间和......
  • 关于OJ中的输入格式的问题
    输入:12345678910如上的输入,并未告诉我们终止条件,这种无上限输入的格式可以用以下格式读入intmain(){intS[100];inti=0;while(scanf("%d",S+i)){i++;}}其中scanf改成cin也是一样的,原理就是OJ上的输入结束后scanf会返......
  • Docker容器使用Flannel通信
    Docker使用Flannel跨主机通信通信的方式路由虚拟包头flannel网络概念Flannel是Docker提供的一种网络解决方案,它旨在为容器提供简单的IP地址管理和跨主机通信。Flannel使用了一些现有的技术,比如Linux内核的TUN/TAP接口和ETCD分布式键值存储,来实现容器之......
  • vue3使用elmentui-plus中的图标
    按照官网这样直接引入使用,不知道为啥行不通:import{Document,MenuasIconMenu,Location,Setting,}from'@element-plus/icons-vue'使用时,需要<script>import{UserFilled}from'@element-plus/icons-vue'//使用的时候需要单独引入这个图标从......
  • 如何使用Alpaca-LoRA来微调ChatGPT这样的模型?
    原文标题:HowtouseAlpaca-LoRAtofine-tuneamodellikeChatGPT原文地址:https://replicate.com/blog/fine-tune-alpaca-with-lora?continueFlag=4ecae39885197a5c008faabbefb5c824如何使用Alpaca-LoRA来微调ChatGPT这样的模型?低秩自适应(LoRA)是一种微调模型的技术,它比以......
  • flask-sqlalchemy使用,flask-migrate使用
    flask-sqlalchemy使用,flask-migrate使用flask-sqlalchemy使用集成到flask中,我们可以用sqlalchemy来做,就是比较的繁琐现在有一个第三方的flask-sqlalchemy,可以快速的集成到flask中#使用flask-sqlalchemy集成1.下载flask-sqlalchemy#pipinstallflask-sqlalchemy2.导......
  • C# Kafka重置到最新的偏移量,即从指定的Partition订阅消息使用Assign方法
    在使用Kafka的过程中,消费者断掉之后,再次开始消费时,消费者会从断掉时的位置重新开始消费。场景再现:比如昨天消费者晚上断掉了,今天上午我们会发现kafka消费的数据不是最新的,而是昨天晚上的数据,由于数据量比较多,也不会及时的消费到今天上午的数据,这个时候就需要我们对偏移量进行重置......
  • 洛谷P2415 集合求和(数学问题,使用集合子集求和公式)
    可以知道对于一个有n个数据的集合,其子集个数有2^n个至于证明可以这样理解,对于n个数据,其子集就是对数据进行组和,而对于每个位置上的数据,组合时仅有两种状态即有此数据或无此数据,也就是有两种可能,而对于n个数据,就有2^n种可能不妨设其中一个非空数据X,对于X,依据X可以将子集划分为两......