大模型实践笔记(2)——基本概念

21 篇文章 1 订阅
5 篇文章 0 订阅

目录

"benchmark"和"baseline"的定义和区别

R@1 score概念

LoRA微调概念

huggingface下载模型权重&数据集


"benchmark"和"baseline"的定义和区别

在计算机视觉领域的论文中,"benchmark"和"baseline"这两个术语经常被使用,但它们代表着不同的概念和作用。

  1. Benchmark(基准测试):

    • 定义:Benchmark通常指的是一套标准的测试流程,用来评估和比较不同算法或模型的性能。这些测试流程可能包括标准的数据集、评估指标、测试协议等。
    • 作用:Benchmark提供了一个共同的平台,让研究人员可以在相同的条件下比较他们的方法与其他方法的效果。例如,在计算机视觉领域,常见的benchmark数据集包括ImageNet(用于图像分类)、COCO(用于目标检测和分割)等。
    • 重要性:Benchmark的设置对于科学研究的公正性和透明度至关重要,它确保了不同研究者的工作可以在相同的基础上进行比较和评价。
  2. Baseline(基线模型):

    • 定义:Baseline通常指的是一种简单的模型或方法,它用作比较的起点,以此来衡量新提出的方法是否有显著的改进。
    • 作用:Baseline模型通常选择实现简单、之前广泛被接受的方法。通过与Baseline的比较,研究人员可以展示他们的新方法在性能上的提升,并且有助于说明新方法的有效性。
    • 重要性:在科学研究中,Baseline模型有助于确立研究领域的最低期望。如果一个新方法不能显著超过Baseline,那么它的有效性可能会受到质疑。

R@1 score概念

R@1得分(Recall at 1)是一种在信息检索和机器学习领域常用的评估指标,用来衡量模型在检索任务中的性能。在检索任务中,模型的目标是从一个大的数据集中找出与查询最相关的项目。R@1得分特别关注于模型是否能够在其提供的最顶端的一个检索结果(即排名第一的结果)中准确地找到相关项目。

R@1得分计算如下:

  1. 对于每个查询,检查模型返回的排名最高的一个项目是否是相关的。
  2. 如果排名最高的项目是相关的,则记为一个成功的检索。
  3. 然后,计算所有查询的成功检索的比例。

数学表示:

R@1得分的值范围从0到1,值越高表示模型的性能越好。R@1得分强调模型在第一位的准确性,这在某些应用中非常重要,比如在用户使用搜索引擎时,他们往往最关注搜索结果的第一位。

R@1是更广泛的Recall@K指标的一个特例,其中K可以是任何正整数。Recall@K测量模型是否能够在前K个最高排名的项目中找到相关项目。当K=1时,Recall@K就是R@1。随着K的增加,Recall@K提供了对模型能否在前几位中找到相关项目的更宽容的评估。

LoRA微调概念

LoRA(低秩自适应)微调是一种用于调整大型预训练语言模型的技术。这种方法旨在通过对模型的权重进行最小的修改来微调模型,从而节省计算资源并保持模型性能。

在传统的微调方法中,我们通常会对整个预训练模型的所有参数进行更新,这在大型模型如GPT-3或BERT等的情况下,会涉及数十亿个参数,需要大量的计算资源和存储空间。相比之下,LoRA微调只对模型的一小部分权重进行更新,这些权重被认为是最能影响模型性能的关键部分。

具体来说,LoRA微调通过以下步骤实现:

  1. 选择关键层: LoRA通常选择模型中的特定层(例如,注意力层)进行微调。
  2. 引入低秩矩阵: 在所选层中,LoRA引入额外的可训练参数,这些参数构成低秩(即,相对于原始权重矩阵维度较小的)矩阵。这些低秩矩阵被用来修改原始的权重矩阵。
  3. 训练低秩矩阵: 在微调阶段,只有这些低秩矩阵的参数会被更新,而原始模型的其余部分保持不变。这意味着需要更新的参数数量大大减少,从而节省计算资源和时间。
  4. 保持性能: 尽管只有一小部分参数被更新,但LoRA设计得很巧妙,能够在不牺牲太多性能的前提下,有效地调整模型以适应特定任务。

LoRA微调的优势在于其高效性和经济性,它允许研究者和开发者在资源有限的情况下,对大型语言模型进行定制和优化,而不需要像传统微调那样对整个模型进行重大修改。这使得LoRA成为一种非常受欢迎和实用的模型调整技术。

以LLaMA 为例,参数大小为7B(即70亿个参数),其参数矩阵用W 表示(实际上,模型参数当然分布在许多层的不同矩阵中,但为了简单起见,我们在这里指的是单个权重矩阵。对于其他层,分析方法完全一样)在反向传播过程中,我们學習一个 AW 矩阵(每个参数的更新),那么权重更新如下:
更新后的W=原始W+△W
如果权重矩阵W包含7B个参数,则权重更新矩阵AW也包含7B个参数,每次要存储2份7B的参数,另外还要每个数都要加一次,计算量和显存要求都十分巨大,于是就有了LoRA,其实它的思想非常简单,我们用两个较小的 矩阵 A 和 B 来表示大矩阵△W。如果 A 具有与AW 相同的行数,B具有与△W相同的列数,我们可以写成分解为 △W =AB(AB是矩阵A和B之间的矩阵乘法结果)
另外A是随机初始化,B初始化为0。这样开始微调时AB=0,这可以跟原始模型保持是一致的。节省的内存取决于A的列数,也就是秩r。简单分析下。例如,若AW有1万行2万列,则它存储了2亿 个参数。 如果我们选择r=8的A和B,那么A有1万行和8列,B 有8行和2万列,即1万x8+8x2万=24万个参数,大约比2亿少830倍,只需要额外存储和计算这0.12%的参数,这一操作,内存占用和计算量是不是就指数下降了。当然,你要问,A和 B能完全替代△W的所有信息吗?答案是不一定。如果你的数据量足够大,比如TB级别,并且预算充足,那全参数微调是你的首选如果你的数据量比较小,或者是经费有限的researcher,那LoRA微调一定是你的首选。

huggingface下载模型权重&数据集

下载模型:

huggingface-cli download --resume-download Qwen/Qwen1.5-1.8B --local-dir ./scripts/checkpoints/Qwen1.5-1.8B

下载数据集

huggingface-cli download --resume-download --repo-type dataset liuhaotian/LLaVA-Instruct-150K  --local-dir ./scripts/checkpoints/LLaVA-Instruct-150K

 

  • 3
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值