goldfish loss:减少训练数据泄漏,提高大语言模型输出的多样性

LLMs(大型语言模型)能够记忆并重复它们的训练数据,这可能会带来隐私和版权风险。为了减轻记忆现象,论文作者引入了一种名为"goldfish loss"的微妙修改,在训练过程中,随机抽样的一部分标记被排除在损失计算之外。这些被舍弃的标记不会被模型记忆,从而防止模型完整复制训练集中的一整个标记序列。

论文行了广泛的实验,训练了十亿规模的 Llama-2 模型,包括预训练模型和从头开始训练的模型,并展示出在几乎不影响下游基准测试的情况下,可显著减少记忆现象。

goldfish loss

llm通常使用因果语言建模(CLM)目标进行训练,该目标表示令牌的平均对数概率,以所有先前的令牌为条件。对于包含L个训练标记的序列x = {xi},可以写成:

当模型以高置信度正确预测序列{xi}时,该目标最小化,从而使由下一个标记预测训练的模型易于记忆。而goldfish loss仅在令牌的一个子集上计算,因此阻止了模型学习整个令牌序列。选取goldfish mask G∈{0,1}L,定义损失为

当某些段落在不同文档中多次出现时,我们应该每次掩盖相同的标记,因为不一致的掩盖最终会泄露整个段落。

作者首先在序列中每隔 k 个标记丢弃一个标记,称之为静态掩码。这种静态掩码的方式在上面说的重复段落的情况下失败了,因为掩码对齐于预训练序列长度,而不是文本内容。

所以作者提出了新的局部哈希掩码来解决这个问题。对于确定哈希上下文宽度的正整数 h,如果应用于前 h 个标记的哈希函数 f : |V|^h → R 的输出小于 1/k,则掩盖标记 xi。

i) 处理重复段落的稳健性处理与哈希

当某些段落在不同文档中多次出现时,我们应该每次掩盖相同的标记,因为不一致的掩盖最终会泄露整个段落。

静态掩码基线在这里失败,因为掩码对齐于预训练序列长度,而不是文本内容。

作者们提出了新的局部哈希掩码来解决这个问题。对于确定哈希上下文宽度的正整数 h,如果应用于前 h 个标记的哈希函数 f : |V|^h → R 的输出小于 1/k,则掩盖标记 xi。通过这种策略,掩码在每个位置上仅依赖于前 h 个标记。每当相同的 h 个标记序列出现时,第 (h + 1) 个标记都会以相同的方式被掩盖。

验证记忆保留

因为进行了掩码的遮蔽,所以还需要验证LLM是否会丢掉记忆

作者首先将训练集中的每个测试序列切成长度为n个token的前缀和后缀。以前缀为条件,它们渐进式地生成温度为零的文本。使用两个指标将生成的后缀与真实后缀进行比较:

RougeL score: [Lin, 2004],它量化了最长公共(非连续)子序列的长度。得分为1.0表示记忆力很好。

精确匹配率:衡量与真实文本相比,正确预测的标记的百分比。

作者在仅包含 100 篇英文维基百科文章的数据集上,对 LLaMA-2–7B 模型进行了 100 个周期的训练。

上图为哈利·波特的结果显示,标准训练导致了对 84/100 篇文章的逐字记忆,而使用goldfish loss模型(k = 4)则没有记忆任何一篇文章。

RougeL 指标表明,使用goldfish loss损失训练的模型重复的非连续 n-gram 子序列长度大约是从未见过数据的模型的两倍。

针对于训练数据的重复:

作者预先训练了一个包含 1.1B 个参数和 32k 词汇量的语言模型。构建了来自两个来源数据集:RedPajama 2 的一个子集;混合了来自维基百科语料库的 2000 个目标序列,每个序列长度为 1024 到 2048 个标记。

下图绘制了训练后目标文档的 RougeL 记忆化分数分布。

当k = 3和k = 4时,RougeL值的分布与未在目标文档上训练的模型的分布大多重叠。对于较低的k值,可提取的记忆化接近于控制模型,并且标准损失中观察到的精确重复现象得到了有效缓解。

产生分歧的位置:

作者的直觉是,当损失放弃了标记时,模型不会记住这些标记,这会导致模型与基本事实偏离,或者说模型不会产生出与训练数据一模一样的输出

下图显示了 k = 4 的模型在每个序列位置上放弃标记的数量和与事实偏离的标记数量。

下表显示了在放弃标记处发生分歧的可能性。

可以看到大多数序列在第一个放弃的标记之后很快就会发生分歧,即使这些序列已经连续训练了 50 次,并且分歧位置几乎与被掩盖的位置完全重合。

对于静态掩码,观察到最大的对应率为 94.1%,随着损失中 k 的增加,这种对应关系逐渐减弱。而基于哈希的方法遵循类似的趋势,但由于此方法按照概率 1/k 丢弃任何标记,大多数分歧发生在第 k 个标记之前。

对模型性能的影响

对评估基准性能的影响

预训练的模型在整体表现上与使用标准因果语言建模(CLM)目标在相同数据上训练的模型表现类似。

下图显示,标准损失模型以及任何goldfish 模型的整体表现之间似乎没有系统性差异

由于goldfish 模型在某种程度上训练过的标记数量较少,可能会想到它们的原始标记预测能力会落后于看过更多数据的标准模型。

为了量化这种影响,作者跟踪模型在训练过程中的验证损失以及每个模型语义连贯性的能力进行对比

损失曲线

下图显示了在 RedpajamaV2 数据的 1200 万个标记上,模型的验证损失曲线,其中一个是使用标准损失训练的模型,另外两个是使用 4-GL 训练的模型。

所有模型收敛到几乎相同的验证损失值。随着批量大小的增加,损失遵循相同的验证曲线

Mauve分数:

Mauve分数是一个用来评估生成文本质量的指标,通过衡量生成文本与真实文本之间的多样性和自然性相似性来进行评估。

下图显示了使用模型在Slimpajama数据集样本上的Mauve分数。

对于贪婪解码,与使用因果语言建模(CLM)质量几乎没有明显下降。

当使用温度为0.7的多项式采样生成时,随着 k 增加和模型看到更多标记,分数略微有上升的趋势。

另外攻击者可能会尝试通过搜索序列的多种可能解码来提取数据,而最直接的实施方式是使用Beam Search。下图展示了使用30个束进行激进Beam Search的结果。

当k = 3时,goldfish loss仍然可以抵抗这种攻击,但当k值较大时,Beam Search抽样实现的可提取性增加。

总结

goldfish loss由于其简单性、可扩展性以及对模型性能影响相对较小,可以成为工业环境中的有用工具。不仅可以让模型不重复产生训练数据,这样可以规避训练数据泄露的风险,也可以让模型产生更多样的结果,丰富模型的输出。

但是更大的模型会记住更多的训练数据,因此研究goldfish loss对数十亿或数百亿参数规模模型带来的益处如何扩展,是一个有趣的开放问题。

最后金鱼的记忆只有7秒,虽然7秒记忆已经被研究证实是错的了,但是这个名字起的挺好,比哪些凑字的名字强多了,比如:谷歌的那个Lion (EvoLved SIgn MOmeNtum).

https://avoid.overfit.cn/post/d24d133b5c9e4b109f990783a1661c16

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

美国ARC与延锋安全合作,推动汽车安全气囊技术新突破

在汽车安全领域,安全气囊作为关键被动安全配置,对于保障乘客生命安全至关重要。随着汽车工业的快速发展和科技创新的持续推进,安全气囊技术的升级与革新显得尤为重要。2022年10月25日,美国ARC公司与延锋安全携手合作,共…

4大利好因素释放顺风车市场潜力,嘀嗒出行即将登陆港交所

经历了十多年发展,共享出行行业即将迎来第一个上市公司——专注顺风车和智慧出租车的嘀嗒出行。 近日,嘀嗒出行通过了港交所聆讯,根据招股书,嘀嗒出行2023年顺风车搭乘次数和交易额分别为约1.3亿次和86亿元,同比分别增…

CCS条形光源——HLDL3系列,长距离和宽范围照射应用的不二之选

机器视觉系统中,光源起着重要作用,不同类型的光源应用也不同,选择合适的光源成像效果非常明显。今天我们一起来看看CCS光源——工业用条形光源HLDL3系列。 高亮LED光源HLDL3系列 适用于长距离和宽范围照射的条形光源。 适用于各种检测案例&a…

Jenkins+K8s实现持续集成(三)

接上面一篇JenkinsK8s实现持续集成(二),K8s创建秘钥。 看secret kubectl get secret 删除secret kubectl delete secret hello-secret -n train 创建secret kubectl create secret docker-registry hello-secret --docker-server镜像仓库…

安卓怎么传输数据到新苹果手机?2招制胜,玩转新手机

当你手中紧握着最新款的苹果手机,心中充满了对科技新宠的期待与好奇,却发现旧手机里的数据如同搬家时的宝贝,怎么也舍不得丢。安卓怎么传输数据到新苹果手机?今天我们就来解锁安卓到苹果数据传输的秘密,让你轻松实现数…

聊聊redis中的有序集合

写在文章开头 有序集合(sorted set)是redis中比较常见的数据库结构,它不仅支持O(logN)界别的有序的范围查询,同时也支持O(1)级别的单元素查询,基于此问题,本文就将从redis源码的角度分析一下有序集合的设计与实现。 Hi&#xff0…

Vue3【二十二】Vue 路由模式的嵌套路由和用query给组件的RouterLink传参

Vue3【二十二】Vue 路由模式的嵌套路由和用query给组件传参 Vue3【二十二】Vue 路由模式的嵌套路由和用query给组件传参 RouterLink 的两种传参方法 RouterView 案例截图 目录结构 代码 index.ts // 创建一个路由器,并暴漏出去// 第一步:引入createRou…

ATA-4011C高压功率放大器在亥姆霍兹线圈中的作用介绍

高压功率放大器在亥姆霍兹线圈中的作用是为亥姆霍兹线圈提供稳定的高功率电流信号,从而产生强大的磁场。亥姆霍兹线圈是一种用于产生均匀磁场的设备,在物理实验、医学成像和工业领域中得到广泛应用。下面安泰电子官网将从以下几个方面详细介绍高压功率放…

推荐阅读:车载测试新纪元,智能座舱的全面解读

前段时间给自己定了一个计划,决定来学一下车载测试的相关内容,既然车载测试被大家说的这么火,作为一个测试人员,不去了解一下怎么行呢?当然,目前的行业还可以咯,但是给自己适当的投资充电&#…

国际荐酒师携手各国际荐酒师专业委员会深化2024年度合作

国际荐酒师(香港)协会携手广东海上丝绸之路文化促进会及广东省城镇化发展研究会,深化2024年度合作,共同打造品荐与传播大师班培养荐酒师专业人材 近日,国际荐酒师(香港)协会、广东海上丝绸之路…

『Z-Weekly Feed 08』加密资产观 | FHE应用前景 | OPAL协议

一位机构投资者的加密资产观 作者:Hongbo 01 💡TL;DR 在加密投资领域如何找到真正的“价值”:Crypto 作为一种新兴资产,应该找到一种区别于传统公司股票资产的估值方法,本文重点阐述了加密货币作为新的资产类型与传统资…

康谋分享 | 从CAN到CAN FD:ADTF在汽车网络中的应用

随着汽车电子技术的发展,车辆上配备了越来越多的电子装置,这些设备多采用点对点的方式通信,这也导致了车内存在庞大的线束。造成汽车制造和安装的困难并进一步降低汽车的配置空间,汽车总线逐步开始向网络化方向发展。 在此背景下…

FANUC喷涂机器人P-350iA电机过热维修解决方案

发那科喷涂机器人作为自动化喷涂生产线的重要组成部分,其性能稳定性和可靠性对于生产效率和产品质量具有重要影响。然而,在实际使用过程中,FANUC喷涂机器人P-350iA电机过热故障问题往往成为影响其正常运行的主要因素之一。 FANUC机器人M-100…

第一百一十二节 Java面向对象设计 - Java异常处理

Java面向对象设计 - Java异常处理 异常是在没有定义正常执行路径时在Java程序的执行期间可能出现的条件。 Java通过将执行操作的代码与处理错误的代码分离来处理错误。 当发生异常时,Java会创建一个包含有关异常的所有信息的对象,并将其传递给相应的异…

阿里云ECS(CentOS/Alibaba Cloud Linux)安装最新 Docker 方法

最近(6月份)我发现 docker 官方无法正常访问,docker pull 命令也执行失败,用 TZ 也一样😔。 以下步骤适用于 CentOS 7/8或Alibaba Cloud Linux 系统。 1. 更新系统包 首先,确保您的ECS实例系统软件包是最…

Next.js开发中使用useRouter实现点击返回到上一页

在使用Next.js框架做前端页面开发时,如果想返回到上一页,可以利用useRouter钩子提供的back()方法,可以这样做: import {useRouter} from "next/navigation"; import {Space} from "antd"; import {ArrowLeftOutlined} f…

tiaoshixitong

data_interval : 当是ubus 时 重新赋值为 3;当是ws 时 重新赋值为 20; 1. 如何理解data_tik ? 在函数can_packet_check_timer 定时can发送函数里面,data_tik 作为倒计时时间,当倒计时间到,则发送。…

LCB模型引领机器人进入端到端新维度

论文标题: From LLMs to Actions: Latent Codes as Bridges in Hierarchical Robot Control 论文作者: Yide Shentu,Philipp Wu,Aravind Rajeswaran,Pieter Abbeel 项目地址: https://fredshentu.gith…

手把手!从头构建LLaMA3大模型(Python)

1. 前期准备 让我们先来想一想大概需要做什么。 首先是模型架构的选择。原工作用的是 GPT Neo 架构(可以看他们的 config),这个算是很老的模型了,最初是 EleutherAI 用来复现追踪 GPT-3 的工作的,现在用的也比较少了…

JavaScript运行原理和执行过程

参考: https://www.cnblogs.com/hexrui/p/15939592.html 1、执行上下文栈(调用栈) GECGlobal Execution Context(GEC)被放入到ECS(Execution Context Stack,简称ECS)中 GEC开始执…