机器学习复习(8)——基本概念

目录

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

[R@1 score概念](#R@1 score概念)

LoRA微调概念

"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微调一定是你的首选。

相关推荐
HyperAI超神经2 小时前
【TVM 教程】使用 Tensorize 来利用硬件内联函数
人工智能·深度学习·自然语言处理·tvm·计算机技术·编程开发·编译框架
扫地的小何尚3 小时前
NVIDIA RTX 系统上使用 llama.cpp 加速 LLM
人工智能·aigc·llama·gpu·nvidia·cuda·英伟达
埃菲尔铁塔_CV算法6 小时前
深度学习神经网络创新点方向
人工智能·深度学习·神经网络
艾思科蓝-何老师【H8053】6 小时前
【ACM出版】第四届信号处理与通信技术国际学术会议(SPCT 2024)
人工智能·信号处理·论文发表·香港中文大学
秀儿还能再秀7 小时前
机器学习——简单线性回归、逻辑回归
笔记·python·学习·机器学习
weixin_452600697 小时前
《青牛科技 GC6125:驱动芯片中的璀璨之星,点亮 IPcamera 和云台控制(替代 BU24025/ROHM)》
人工智能·科技·单片机·嵌入式硬件·新能源充电桩·智能充电枪
学术搬运工7 小时前
【珠海科技学院主办,暨南大学协办 | IEEE出版 | EI检索稳定 】2024年健康大数据与智能医疗国际会议(ICHIH 2024)
大数据·图像处理·人工智能·科技·机器学习·自然语言处理
右恩7 小时前
AI大模型重塑软件开发:流程革新与未来展望
人工智能
图片转成excel表格7 小时前
WPS Office Excel 转 PDF 后图片丢失的解决方法
人工智能·科技·深度学习
ApiHug8 小时前
ApiSmart x Qwen2.5-Coder 开源旗舰编程模型媲美 GPT-4o, ApiSmart 实测!
人工智能·spring boot·spring·ai编程·apihug