AIGC Fine-tuning笔记

吴恩达Fine-tuning LLMS课程链接

为什么要finetune

1、什么是fine-tuning?

fine-tuning就是将通用大模型,通过特定数据的训练,将其调试成为具有某项专业功能的大模型,例如GPT-3通过微调之后,成为ChatGPT;GPT-4经过微调之后,成为GitHub Copilot,PCP通用医疗模型,经过微调之后,可以成为心肺专家或者皮肤专家
在这里插入图片描述

2、微调对模型做了什么?

允许您向模型中放入比提示所需数据更多的数据
获取模型以学习数据,而不仅仅是获取对数据的访问权限

3、finetune的优点

将模型导向更一致的输出
减少幻觉
根据特定用例自定义模型
过程与模型早期的训练类似

4、提示工程和微调的对比

提示工程
优点:

  1. 不需要起始数据
  2. 前期投入较少
  3. 不需要技术知识
  4. 通过RAG连接数据

缺点:

  1. 有比较少的数据能吻合
  2. 数据匹配度不够
  3. 生成的答案可能是通过胡编乱造的
  4. RAG并不能很好的起到作用,或者会得到错误的数据

微调
优点:

  1. 几乎无限的数据拟合
  2. 能够学习到新的信息
  3. 纠正错误信息
  4. 如果模型较小,则成本更低
  5. 也用到了RAG

缺点

  1. 需要高质量的数据
  2. 前期投入计算成本较高
  3. 需要一些技术、数据方面的能力
微调自己大语言模型的好处
表现
  1. 减少llm的胡编乱造
  2. 增加一致性
  3. 减少不想要的信息输出
私密性
  1. 本地化部署
  2. 防止泄露
  3. 无违规行为
成本
  1. 每次请求成本降低
  2. 提高透明度
  3. 更好的控制
现实因素
  1. 控制正常运行时间
  2. 更低的延迟
  3. 适度

where finetuning fits in

模型预训练

在这里插入图片描述
What is “data scraped tromthe internet"?
Often not publicized how to pretrain
Open-source pretraining data: “The Pile”
Expensive & time-consuming to train
模型预训练
在这里插入图片描述

微调模型

微调通常是指进一步训练

  1. 可以用自监督没有打标签的数据
  2. 可用自己创建的标签数据
  3. 通常需要的训练数据比预训练的数据少
  4. 工具箱重的工具

生成任务的微调没有明确定义:

  1. 更新全部的模型参数,而非部分
  2. 具有相同的训练目标:预测下一个token
  3. 更高级的方法可以减少更新量

在这里插入图片描述

指令微调

1、什么是指令微调
  • teaches model to behave more like a chatbot
  • better user interface for model interaction 更好的模型交互用户界面
  •  将GPT-3转化为ChatGPT
    
  •  将AI的使用率从数以千计的研究员提升到数百万的普通人
    
指令遵循数据集

现有数据集

  • FAQS:常见问题
  • 客服问题
  • slack信息
LLM 数据生成

大模型数据生成:
如果没有Q&A数据的话,可以通过提示模板或者其他的大语言模型进行生成

指令微调泛化

可以访问模型预先存在的知识

将以下说明推广到其他数据,而不是调整数据集
在这里插入图片描述

数据准备

在这里插入图片描述

what kind of data

better:高质量、多样性、真实、大量
worse:低质量、同一化、生成、少量

steps to prepare your data
  1. 收集“指令-回复”对(数据集)
  2. 连接对(如果适用,添加提示模板)
  3. 标记化:填充、分解
  4. 拆分成训练集、测试集
    在这里插入图片描述
标记数据tokenizing

有多种流行的tokenizers
适用与模型相关的tokenizer
在这里插入图片描述

训练过程

微调训练过程与预训练过程一致

  1. 添加训练数据
  2. 计算损失函数loss
  3. 利用反馈神经网络调参
  4. 更新参数

参数更新

  1. 学习率
  2. 学习率调度器
  3. 优化参数

在这里插入图片描述

评价和迭代evaluation and iteration

评价模型的方法

1、人工评价(图灵测试):人工专家评价是比较值得信任的,但是耗费人工
2、test suites:高质量的测试数据非常重要(高质量、正确性、广义的、)
3、Elo 排名
在这里插入图片描述

通用LLM基准

ARC是一组小学问题

HellaSwag是对常识的考验

MMLU是一个多任务度量,涵盖初等数学史、计算机科学、法律等

TruthfulQA衡量一个模型制造网上常见的虚假信息的倾向在这里插入图片描述

误差分析

在微调之前了解基本模型的行为,是什么导致了模型效果不好

对数据集的错误进行分类:更新数据,在数据层面解决这些问题,如错别字、句子太长、重复语句等
在这里插入图片描述

considerations on getting started now

微调的步骤
  1. 项目目标:弄清楚任务目标

  2. 收集数据集:收集与任务输入/输出相关的数据

    	如果没有足够的数据,则生成数据
    
  3. 微调小型模型(例如400M-1B)

  4. 改变你给模型的数据量

  5. 评估你的LLM,了解进展顺利与否

  6. 收集更多数据以改进

  7. 增加任务复杂性

  8. 增加型号尺寸以提高性能

Tasks to finetune vs. model size

复杂性:更多的token输出更难

提取:reading is easier:关键词、主题词、routing、agents 生成:writing is
harder:聊天、写邮件、写代码

任务组合比单一任务更难
复杂的模型或更通用的模型意味着更大量级的模型

例如,你可能希望agent更为灵活,一次性可以帮忙解决很多问题

在这里插入图片描述

Lora

在大模型的基础上,进行微调。训练Lora是一种低成本的方法
LORA:LLM的低阶自适应

更少的可训练参数:GPT3,少了10000倍

更少的GPU内存:对于GPT3,减少3倍

略低于微调精度

在某些层训练新权重,冻结大部分的权重

新权重:原始权重变化的秩分解矩阵

推理时,与主要权重合并

使用LORA适应新的、不同的任务

在这里插入图片描述

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
VITS(Variational Inference for Text-to-Speech)是一种端到端的文本到语音合成方法,它可以将文本转化为自然流畅的语音。VITS-Fast Fine-Tuning是对VITS模型进行快速微调的方法。 在传统的语音合成任务,需要大量的语音对齐标注数据来训练模型。然而,这个过程非常耗时和昂贵。VITS-Fast Fine-Tuning的目标就是通过少量的标注数据来快速微调已有的VITS模型,以在新的任务上取得更好的性能。 VITS-Fast Fine-Tuning方法的关键在于使用变分推断(variational inference)来构建先验和后验分布。通过这个方法,我们可以使用其他大型语音合成数据集训练好的模型作为先验分布,然后使用少量目标任务的标注数据来估计后验分布。这样一来,我们就能够在新任务上快速微调VITS模型。 具体而言,VITS-Fast Fine-Tuning的过程分为两步。第一步是预训练,它使用大型语音数据集来训练VITS模型,并生成一个先验分布。第二步是微调,它使用目标任务的标注数据来调整VITS模型的参数,以获得更好的性能。由于预训练的先验分布已经包含了一定的知识,微调的过程可以更快速和高效。 总之,VITS-Fast Fine-Tuning是一种用于快速微调VITS模型的方法。它利用变分推断和预训练的先验分布,通过少量目标任务的标注数据来优化模型性能。这个方法可以加快语音合成模型的训练过程,降低训练的时间和成本。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值