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

news2024/11/26 11:58:58

目录

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

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

 

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1433396.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

BootStrap学习笔记JS插件(一)--模态弹出框

一、弹出框基础 <div class"modal show"><div class"modal-dialog"><div class"modal-content"><div class"modal-header"><button type"button" class"close" data-dismiss"mo…

惠普公司也要注销了?

关注卢松松&#xff0c;会经常给你分享一些我的经验和观点。 惠普科技(上海)有限公司企业状态由存续变更为注销&#xff0c;这意味着惠普公司也要注销了?这是怎么回事?戴尔公司也准备注销了呢?这家美国科技巨头为什么放弃了世界最大的消费市场呢? 之前就有消息称惠普中国…

BFS——双向广搜+A—star

有时候从一个点能扩展出来的情况很多&#xff0c;这样几层之后搜索空间就很大了&#xff0c;我们采用从两端同时进行搜索的策略&#xff0c;压缩搜索空间。 190. 字串变换(190. 字串变换 - AcWing题库) 思路&#xff1a;这题因为变化规则很多&#xff0c;所以我们一层一层往外…

新开发板-正点原子的rk3568

有好长一段时间没有更新博客了&#xff0c;上次更新还是在上次...哈哈开个玩笑&#xff0c;上次stm32f407的定时器还没写完&#xff0c;就备战期末去了&#xff08;电信学院&#xff0c;你懂的&#xff09;&#xff0c;一直没更新&#xff0c;原因是我实习去了&#xff0c;在忙…

Java项目管理01-Maven基础

一、Maven的常用命令和生命周期 1.Maven的常用命令使用方式 complie&#xff1a;编译&#xff0c;将java文件编译为class字节码文件 clean&#xff1a;清理&#xff0c;删除字节码文件 test&#xff1a;测试&#xff0c;运行项目中的test类 package&#xff1a;打包&#x…

IDEA新建文件夹后右击不能创建class类排错方法

目录 1 查看自身文件名是否为关键词 2 查看是否被“蓝色文件夹”给包含了 3 检查设置那边的class模板 4 报错解决 1 查看自身文件名是否为关键词 如下使用了 Java中的关键词"class"所以才无法创建包 ---------------------------------------------------------…

51单片机之LED灯模块篇

御风以翔 破浪以飏 &#x1f3a5;个人主页 &#x1f525;个人专栏 目录 点亮一盏LED灯 LED的组成原理 LED的硬件模型 点亮一盏LED灯的程序设计 LED灯闪烁 LED流水灯 独立按键控制LED灯亮灭 独立按键的组成原理 独立按键的硬件模型 独立按键控制LED灯状态 按键的抖动 独立按键…

KubeMQ简介

如今&#xff0c;企业组织之间的竞争是残酷的。每个组织都希望在其系统之间即时、实时或近乎实时地交换信息&#xff0c;以便做出更好、更快的决策。为了使此类信息持续流动&#xff0c;应用程序组件之间的集成需要无缝。为了充分利用云计算的所有优势&#xff0c;如今构建的应…

双非本科准备秋招(16.1)—— 力扣二叉树

1、101. 对称二叉树 检查是否对称&#xff0c;其实就是检查左节点等不等于右节点&#xff0c;我们可以用递归来做。 如果左右节点都为null&#xff0c;说明肯定对称呀&#xff0c;返回true。 如果一个为null一个不为null&#xff0c;或者左右的值不相等&#xff0c;则为false。…

k8s-深入理解Service(为Pod提供负载均衡和发现)

一、Service存在的意义 二、Service的定义和创建 Pod与Service的关系 Service的定义和创建 三、Service使用NodePort对外暴露应用 四种类型&#xff0c;常用的三种&#xff1a; 指定Service的NodePort端口 在实际生产中&#xff0c;k8s的集群不会直接暴露在公网中&#xff0c…

free5GC+UERANSIM

使用arp、ifconfig、docker inspect及网桥brctl 相关命令&#xff0c;收集容器IP及Mac地址相关信息&#xff0c;可以梳理出UERANSIMfree5GC模拟环境组网&#xff0c;如下图所示&#xff1a; 如上图所示&#xff1a;环境基于ubuntu 18.04 VMware虚机部署&#xff0c;5GC网元分别…

【Redis】字符串原理--简单动态字符串SDS

一.SDS定义 free 属性值为0&#xff0c;标识SDS没有分配任何未使用空间。len 属性值为5&#xff0c;标识SDS保存了一个5字节长度的字符串。buf 属性是一个char类型数组&#xff0c;数组的前5个字节保存了&#xff0c;R e d i s 五个字符&#xff0c;最后一个保存空字符串 \0…

uniapp android和微信小程序实现PDF在线预览

在使用uniapp开发移动端时&#xff0c;微信开发者工具里webview能正常打开后端接口返回的pdf文件流。正式发布后&#xff0c;在配置了业务域名和服务器域名的前提下&#xff0c;预览pdf文件却只能看到白屏&#xff0c;因此我猜测微信小程序不能通过webview读取文件流。这个想法…

Leetcode—32. 最长有效括号【困难】(动态规划及ranges::max()使用)

2024每日刷题&#xff08;110&#xff09; Leetcode—32. 最长有效括号 栈实现代码 class Solution { public:int longestValidParentheses(string s) {stack<int> st;st.push(-1);int n s.size();int maxn 0;for(int i 0; i < n; i) {if(s[i] () {st.push(i);}…

vulnhub靶场之Thales

一.环境搭建 1.靶场描述 Description : Open your eyes and change your perspective includes 2 flags:user.txt and root.txt. Telegram: machineboy141 (for any hint) This works better with VIrtualBox rathe than VMware 2.靶场地址 https://www.vulnhub.com/entry/t…

platform tree架构下i2c应用实例(HS3003)

目录 概述 1 探究platform tree下的i2c 1.1 platform tree下的i2c驱动 1.2 查看i2c总线下的设备 1.3 使用命令读写设备寄存器 2 认识HS3003 2.1 HS3003特性 2.2 HS3003寄存器 2.2.1 温湿度数据寄存器 2.2.2 参数寄存器 2.2.3 一个参数配置Demo 2.3 温湿度值转换 2.…

ubuntu22.04 经常死机,鼠标,键盘无响应

一、现象说明 1. 开机一小时后&#xff0c;突然之间网络掉线&#xff0c;鼠标、键盘无反应。 2.强制重启后&#xff0c;恢复正常。 3.多次重复出现该问题。 二、环境说明&#xff1a;内核、显卡 三、异常日志&#xff1a; /var/log/syslog: 四、问题解答&#xff1a; 1.…

Linux 路由配置与使用

概念 路由信息用于指导数据包从源地址查找到目的地址传输路径的信息&#xff1b; 路由分类 根据路由信息的来源分为静态路由和动态路由 静态路由 由管理员手动配置的路由表项信息&#xff0c;根据路由形式的不同&#xff0c;静态路由又可细分为&#xff1a; 直连路由&#xf…

asp.net core 依赖注入 实例化对象实例

在面向对象编程中&#xff0c;推荐使用面向接口编程&#xff0c;这样我们的代码就依赖于服务接口&#xff0c;而不是依赖于实现类&#xff0c;可以实现代码解耦。 名称解释&#xff1a; 我们把负责提供对象的注册和 获取功能的框架叫作“容器”&#xff0c; 注册到容器中的对象…

java设计模式:观察者模式

在平常的开发工作中&#xff0c;经常会使用到设计模式。合理的使用设计模式&#xff0c;可以提高开发效率、提高代码质量、提高代码的可拓展性和维护性。今天来聊聊观察者模式。 观察者模式是一种行为型设计模式&#xff0c;用于对象之间一对多的依赖关系&#xff0c;当被观察对…