大语言模型---LoRA中损失值的计算

文章目录

    • 概要
    • 损失计算流程
    • 小结

概要

Llama-7B模型的LoRA微调训练中,通过使用Cross-Entropy Loss来度量模型输出的预测分布和真实标签分布之间的距离,来衡量模型的准确性。 本文主要介绍LoRA中损失值的计算流程。
Cross-Entropy Loss作用:是深度学习和机器学习中常用的损失函数之一,主要用于分类任务。

损失计算流程

以下是 LLaMA-7B 模型中损失计算的三个步骤:

  1. 计算logits矩阵(生成分数)
    模型最后一层MLP的输出与模型词表权重进行点乘计算生成一个行数(nvocab)为32,000 ,列数(seq)为4096的 logits 矩阵,每个元素对应词汇表中的一个词,表示生成该词的“分数”。

  2. Softmax 转换(分数变概率)
    将 logits 矩阵经过 Softmax 转换为概率分布矩阵 Y ^ ∈ 𝐹 𝒏 𝒗 𝒐 𝒄 𝒂 𝒃 ∗ 𝒔 𝒆 𝒒 \hat{{Y}}∈𝐹^{𝒏𝒗𝒐𝒄𝒂𝒃∗𝒔𝒆𝒒} Y^Fnvocabseq,使得logits矩阵每个位置上的元素转化为一个概率值 Y ^ 𝒕 , 𝒋 \hat{\mathcal{Y}}_{𝒕,𝒋} Y^t,j ,表示模型在该位置生成词的可能性。

  3. 交叉熵损失
    根据标签计算损失。在每个位置上,交叉熵损失只计算标签对应的词的概率,公式如下:
    在这里插入图片描述
    其中, Y 𝒕 , 𝒋 \mathcal{Y}_{𝒕,𝒋} Yt,j是标签的独热编码矩阵 Y ∈ 𝐹 𝒏 𝒗 𝒐 𝒄 𝒂 𝒃 ∗ 𝒔 𝒆 𝒒 {Y}∈𝐹^{𝒏𝒗𝒐𝒄𝒂𝒃∗𝒔𝒆𝒒} YFnvocabseq的元素,在该矩阵中,正确词的位置为1,其余为0。

小结

关键点

  • logits 表示未归一化分数,用于生成概率。
  • Softmax 将 logits 转为概率分布,确保总和为 1。
  • 交叉熵损失仅计算正确标签的概率对数,以评估预测的准确性。

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

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

相关文章

如何选择服务器

如何选择服务器 选择服务器时应考虑以下几个关键因素: 性能需求。根据网站的预期流量和负载情况,选择合适的处理器、内存和存储容量。考虑网站是否需要处理大量动态内容或高分辨率媒体文件。 可扩展性。选择一个可以轻松扩展的服务器架构,以便…

MySQL原理简介—11.优化案例介绍

大纲 1.禁止或改写SQL避免自动半连接优化 2.指定索引避免按聚簇索引全表扫描大表 3.按聚簇索引扫描小表减少回表次数 4.避免产生长事务长时间执行 1.禁止或改写SQL避免自动半连接优化 (1)业务场景介绍 (2)SQL性能问题分析 (3)SQL性能调优 (1)业务场景介绍 某互联网公司…

[Golang]传递一个切片(slice)和使用变参(...)语法传递多个参数之间的区别

在 Go 中,传递一个切片(slice)和使用变参(…)语法传递多个参数之间有一些关键区别。让我们详细讨论这两种方式之间的区别: 传递切片(Slice) 传递方式: 传递切片时&…

LeetCode 第 425 场周赛 个人题解

Q1. 最小正和子数组 原题链接 Q1. 最小正和子数组 思路分析 签到题,暴力就行 时间复杂度:O(N^2) AC代码 class Solution:def minimumSumSubarray(self, nums: List[int], l: int, r: int) -> int:n len(nums)res -1acc list(accumulate(num…

R虚拟环境中安装ncdf4库包编译库问题

目录 R虚拟环境中安装ncdf4的问题 解决方案 R虚拟环境中安装ncdf4的问题 > install.packages("ncdf4")trying URL https://mirrors.bfsu.edu.cn/CRAN/src/contrib/ncdf4_1.23.tar.gzContent type application/octet-stream length 125897 bytes (122 KB)downloa…

【jvm】为什么java是半编译半解释型语言

目录 1. 编译过程2. 解释过程3. 即时编译(JIT)过程4. 半编译半解释型语言的特点 1. 编译过程 1.Java源代码首先会被编译成字节码(Bytecode),这是一种与具体平台无关的中间代码。2.这一编译过程由Java编译器&#xff0…

关联子串(Java Python JS C++ C )

题目描述 给定两个字符串str1和str2,如果字符串str1中的字符,经过排列组合后的字符串中,只要有一个字符串是str2的子串,则认为str1是str2的关联子串。 若str1是str2的关联子串,请返回子串在str2的起始位置; 若不是关联子串,则返回-1。 输入描述 输入两个字符串,分…

IT资产管理工具-NetBox

IT资产管理工具-NetBox 推荐一款IT资产管理工具 了解推荐阅读官方中文文档 https://docs.wangluohe.com/introduction/ 硬件要求 ​ - 建议4Core 8G以上,100G存储空间 这里我使用的Linux镜像为 CentOS8-Stream 提前关闭Selinux和防火墙 部署NetBox 一&#…

实战 | C#中使用YoloV8和OpenCvSharp实现目标检测 (步骤 + 源码)

导 读 本文主要介绍在C#中使用YoloV8实现目标检测,并给详细步骤和代码。 详细步骤 【1】环境和依赖项。 需先安装VS2022最新版,.NetFramework8.0,然后新建项目,nuget安装 YoloSharp,YoloSharp介绍: https://github.com/dme-compunet/YoloSharp 最新版6.0.1,本文…

46.坑王驾到第十期:vscode 无法使用 tsc 命令

点赞收藏加关注,你也能住大别墅! 一、问题重现 上一篇帖子记录了我昨天在mac上安装typescript及调试的过程。今天打开vscode准备开干的时候,发现tsc命令又无法使用了,然后按照昨天的方法重新安装调试后又能用了,但是关…

【数据结构 | C++】并查操作

现在有一个并查集,你需要完成合并和查询操作。 输入格式: 第一行包含两个整数 N,M ,表示共有 N 个元素和 M 个操作。 接下来 M 行,每行包含三个整数 zi,xi,yi 。 当 zi1 时,将 xi与yi所在的集合合并。 当 zi2 时,输出xi与yi 是否…

HTTP 消息结构

HTTP 消息结构 1. 引言 超文本传输协议(HTTP)是互联网上应用最广泛的协议之一,它定义了客户端和服务器之间交换数据的格式和规则。HTTP消息是客户端和服务器之间通信的基本单位,包括请求消息和响应消息两种类型。本文将详细介绍HTTP消息的结构,包括其组成部分和格式。 …

图片生成视频-右进

右侧进入 ffmpeg -loop 1 -i image.jpg -f lavfi -i colorcblack:s1280x720:d20 -filter_complex "[1:v]formatrgba[bg];[0:v]formatrgba,scale1280:720[img];[bg][img]overlayxif(lt(t,3),W,if(lt(t,8),W-(t-3)*W/5,0)):y(H-h)/2:enablegte(t,3)" -c:v libx264 -t 2…

Java基于Spring Boot框架的房屋租赁系统,附源码

博主介绍:✌Java老徐、7年大厂程序员经历。全网粉丝12w、csdn博客专家、掘金/华为云/阿里云/InfoQ等平台优质作者、专注于Java技术领域和毕业项目实战✌ 🍅文末获取源码联系🍅 👇🏻 精彩专栏推荐订阅👇&…

C语言:深入理解指针

一.内存和地址 我们知道计算机上CPU(中央处理器)在处理数据的时候,需要的数据是在内存中读取的,处理后的数据也会放回内存中,那我们买电脑的时候,电脑上内存是 8GB/16GB/32GB 等,那这些内存空间…

Excel求和如何过滤错误值

一、问题的提出 平时,我们在使用Excel时,最常用的功能就是求和了,一说到求和你可能想到用sum函数,但是如果sum的求和区域有#value #Div等错误值怎么办?如下图,记算C列中工资的总和。 直接用肯定会报错&…

SQL 分页查询详解

在处理大型数据集时,分页查询是一种常见的技术,用于将数据分成多个小块,以便逐步加载和显示。这不仅可以提高应用的性能,还可以提升用户体验,避免一次性加载过多数据导致页面加载缓慢或资源消耗过大。本文将详细介绍 S…

(Keil)MDK-ARM各种优化选项详细说明、实际应用及拓展内容

参考 MDK-ARM各种优化选项详细说明、实际应用及拓展内容 本文围绕MDK-ARM优化选项,以及相关拓展知识(微库、实际应用、调试)进行讲述,希望对你今后开发项目有所帮助。 1 总述 我们所指的优化,主要两方面: 1.代码大小(Size) 2.代码性能(运行时间) 在MDK-ARM中,优…

C++ Qt QTextBrowser使用方法总结

QTextBrowser怎么清空显示 要清空 QTextBrowser 中的显示文本,你可以使用 clear() 方法。调用 clear() 方法将删除 QTextBrowser 中的所有文本内容。 以下是一个示例代码,演示了如何清空 QTextBrowser 中的显示文本: #include <QApplication> #include <QTextBr…

监控报警系统的指标、规则与执行闭环

随笔 从千万粉丝“何同学”抄袭开源项目说起&#xff0c;为何纯技术死路一条&#xff1f; 数据源的统一与拆分 监控报警系统的指标、规则与执行闭环 java 老矣&#xff0c;尚能饭否&#xff1f; 一骑红尘妃子笑&#xff0c;无人知是荔枝来! 有所依 我们如何知道系统交易…