当前位置: 首页 > news >正文

深度学习周报(11.3~11.9)

目录

摘要

Abstract

1 文献阅读

1.1 背景

1.2 方法论与创新点

1.3 实验结果分析

2 shor算法

2.1 RSA算法

2.2 shor算法

3 总结


摘要

本周首先阅读了《Language Models are Unsupervised Multitask Learners》,了解了其背景、方法、创新点与实验结果;其次,了解了 RSA 算法的大致流程,并基于此学习了shor算法的步骤,还拓展了解了量子黑盒、连分数等概念。

Abstract

This week, I first read "Language Models are Unsupervised Multitask Learners," learning about its background, methodology, innovations, and experimental results. Secondly, I gained a general understanding of the RSA algorithm process and, based on this, studied the steps of Shor's algorithm. Additionally, I expanded my knowledge to include concepts such as quantum black boxes and continued fractions.

1 文献阅读

本周研读了《Language Models are Unsupervised Multitask Learners》这篇由 OpenAI 团队提出的论文,首次系统性地展示了大规模语言模型在无需明确监督的情况下,通过预训练即可具备执行多种自然语言处理任务的能力。

1.1 背景

在当时,传统机器学习系统通常依赖于针对特定任务的大规模标注数据集进行监督学习,且在其特定任务上取得了显著成果,但这些系统对于数据分布与任务规范的细微变化非常敏感,泛化能力也十分有限。为了解决这个问题,当时主要有两种方法,一种是多任务学习,它可以有效提升模型通用能力,但其发展受稀缺的高质量多任务数据集的限制;另一种是前面了解的预训练加微调的范式,但这种方法仍然需要监督学习的参与。本文则在这两种方法的基础上探索了一条更具通用性的路径。

1.2 方法论与创新点

本文方法的核心在于将语言模型本身视为一个通用的、无需监督的多任务学习器,而不是一个仅仅用于预测下一个词的工具,这也是本文最根本的创新所在。

从概率的角度看,有监督学习的目标是估计 P(output|input),而在多任务设置中,则需要加入对于任务类型的判断,即估计 P(output|input, task),有监督目标与无监督的语言建模目标在数学上是同构的,区别仅在于计算概率时序列中被条件化的部分。在此之前,有研究表明,若将任务描述、输入和输出均表示为符号序列(如翻译任务被表示为序列(translate to french, english text, french text)),就可以通过训练一个简单的模型来执行不同任务。这也代表,这种统一的格式就是连接语言建模与多任务学习的关键桥梁。因此,一个在足够多样化的序列集合上训练的语言模型,其最优解也同时是这些有监督任务的最优解。

为了在实践中实现这一目标,模型必须在一个足够多样化的序列集合(数据集)上进行训练,由此在数据层面进行了创新。论文构建了 WebText 数据集,它与以往主要在单一领域(如新闻、维基百科)上训练的语言模型不同,包含大约800万份从 Reddit 高赞外链中提取的文档,覆盖广泛领域和语境,旨在最大限度地实现内容的多样性和质量,以确保模型接触到多样化的任务演示,是实现无监督多任务学习的基础。

在模型层面,论文基于 Transformer 的架构,对其前身 GPT 进行了一系列重要的改进以提升训练稳定性和表现力,包括将层归一化移动到每个子块的输入处(类似于预激活残差网络),在最终的自注意力块后添加额外的层归一化,以及采用了考虑了残差路径累积的初始化改进方法。模型规模被显著扩大,最大的 GPT-2 模型拥有15.42亿参数,是 GPT 的近一个数量级增长。上下文长度也从512扩展到1024个 token,使模型能够捕捉更长的依赖关系。

在输入表示方面,论文在字节对编码(BPE)的基础上进行了关键创新。标准的BPE在Unicode码点上操作,导致基础词汇表过大。而纯字节级的 BPE 虽然词汇表小,但会因贪婪合并而产生次优的分词。本文提出的方法是对字节序列应用 BPE,但禁止在跨字符类别(如字母、数字)的字节序列之间进行合并(空格除外)。这实现了在词汇表大小、计算效率与建模能力之间的一个理想平衡,同时保留了纯字节级方法的通用性,使得模型能够为任何Unicode字符串分配概率,无需依赖特定的预处理或分词器。

在零样本任务评估中,通过自然语言提示来条件化模型,而不进行任何参数更新。模型会根据任务类型,接收一个由任务描述、示例和当前问题组成的上下文,然后通过自回归生成的方式产生输出。这种评估方式严格测试了模型从预训练中内化任务概念的能力,证明了语言建模目标本身确实能够驱动多任务学习。

此外,论文通过系统的实验论证了一个此前未被充分证实的假设,即在零样本设置下,模型性能与模型容量之间存在强烈的依赖关系,并且这种提升是连续且可预测的。它表明,当模型参数从1.17亿扩展到15.42亿时,其在从语言建模到阅读理解、常识推理等一系列任务上的表现会稳步提升。这一发现本身就是一个重要的创新,因为它为规模扩展作为实现更通用人工智能的一条可行路径提供了坚实的经验证据,同时暗示着,许多任务上的瓶颈并非源于模型架构的根本缺陷,而是因为我们没能提供足够大的模型以及足够多的数据来充分捕捉其背后的复杂性。

1.3 实验结果分析

在实验设计上,本文训练了四个不同规模的模型,参数量从1.17亿至15.42亿不等,并在八大语言模型基准上评估其零样本性能。评估过程严格避免使用任务特定训练数据,仅通过设计合适的提示语来引导模型生成答案。例如,在翻译任务中,模型接收若干示例后,对新的英语句子补全其法语翻译。

实验结果表明,GPT-2在七项语言建模数据集上取得了零样本状态下的最佳性能,尤其在CBT、LAMBADA等需要依赖长上下文推理的任务上提升显著。在阅读理解任务CoQA中,GPT-2达到了55 F1值,媲美部分监督基线系统;在翻译任务中,尽管训练数据中法语内容极少,GPT-2仍能实现基本的跨语言生成,显示出其强大的泛化能力。然而,在摘要和部分问答任务中,GPT-2的表现则远低于监督系统,这表明它面对这些任务时有所欠缺。

论文还对模型是否“记忆”而非“泛化”进行了深入分析。通过布隆过滤器检测 n-gram 重叠,发现多数测试集与WebText训练集的重叠率在1%至6%之间,与常规训练-测试划分的重叠率相当。在剔除重叠样本后,模型性能仅轻微下降,表明其成功主要源于泛化能力而非简单的数据记忆。

2 shor算法

shor算法是由数学家彼得·肖尔在1994年提出的一种著名的量子算法。它之所以具有革命性意义,是因为它能够在理论上高效地破解目前被广泛使用的RSA、ECC等公钥密码体系。

最初的加密算法,主要是出于军事和政治上的保密需求就像通过移位来进行的凯撒加密。这种方式下,加密和解密双方通常使用同一个共享的密钥,因此也被称为对称加密,或者私钥加密,只要知道私钥,就能从密文得到想要传递的信息,其最大的挑战就是如何安全地将这个私钥分发给对方,而不被外人知晓。

与之相对应的另一种方式就是非对称加密,也就是公钥加密。它使用一对数学上关联的密钥:公钥和私钥,前者可以公开给任何人,后者则必须严格保密。最著名、最广泛使用的非对称加密算法就是RSA加密算法,主要用于密钥交换和数字签名。

p.s. 合数是指在大于1的整数中,除了1和它本身之外,至少还有一个其他因数的数,。简而言之,一个大于1的整数,如果不是质数,那它就是合数。

2.1 RSA算法

RSA的安全性基于一个数学上的单向陷门函数,即将两个大质数相乘很容易,但将它们的乘积(一个合数)分解回原来的两个质数却极其困难。

p.s. 单向,即正向计算很容易;陷门,即没有特殊信息(私钥)时,逆向计算极其困难,但有了特殊信息,逆向计算就变得很容易。

它主要包括三个过程,密钥生成、加密和解密。

第一步是密钥生成,由接收方(Bob)完成,这也是最复杂的一步。首先,随机选择两个非常大且长度相近的质数 p 和 q,并计算其乘积 n;然后,计算其欧拉函数值 \phi (n) ,得到在小于 n 的正整数中,与 n 互质的数的个数,对于由两个质数相乘得到的 n,通常有 \phi (n)=(p-1)(q-1) ;

p.s. 互质是指两个数的最大公因数为 1。

其次选择公钥指数 e,e 的取值范围为 \left ( 1,\phi (n) \right ) ,且与 \phi (n) 互质,然后计算 e 关于模 \phi (n) 的模逆元 d ,这就是私钥指数;最后生成密钥对,公钥为(e,n),私钥为(d,n),前者可以共享给任何人,后者则必须严格保密。

p.s.  e 关于模 \phi (n) 的模逆元 d 是指 e\times d 的结果对 \phi (n) 取模的结果为1。

第二步是加密。假设发送方(比如Alice)想要用 Bob 的公钥加密一条消息 M 并发送给 Bob,那么 M 必须是一个小于 n 的整数,若消息是文本,则需要先通过编码转换为数字;然后,使用 Bob 共享的公钥对来计算密文,公式如下:

C = M^{e}\; mod\; n

并将计算得到的密文 C 发送给 Bob。

第三步就是解密,即接收方(Bob)使用自己的私钥计算得到原始信息(或者编码,再转换回初始信息),计算公式为:

M= C^{d}\; mod\; n

攻击者能够获取公钥以及密文的信息,但为了解密,还需要知道私钥信息。但要计算出 d ,必须计算出 \phi (n) ,这又要求先将 n 先分解为 p 和 q 。由于经典计算机分解一个大数所需的时间随其位数呈指数级增长,所以只要 n 足够大(2048位及以上),就无法在合理的时间内被分解,RSA的安全性也就有所保障。

2.2 shor算法

shor 算法就是将上面这个大数分解的问题转化为寻找函数周期的问题,然后利用量子计算机的并行性和量子干涉特性来高效地找到这个周期。

显而易见的,它主要包括两个步骤,第一个步骤就是问题转化;第二个步骤就是在量子计算机上通过前面学习的量子傅里叶变化来寻找周期。具体如下:

步骤一。首先,它会随机选择一个与 n 互质的整数 a ,然后定义以下函数:

f(x)=a^{x}\; mod\; n

由于是取模运算,函数值会在一定间隔后重复,这个间隔就是函数的周期 r ,那么就会有:

f(x)=f(x+r)

即:

a^{x}\; mod\; n=a^{x+r}\; mod\; n

故:

a^{r}\; mod\; n=1

如果找到的周期 r 为偶数就可以有以下操作:

a^{r}-1=0\left (mod\; n \right )

即:

(a^{r/2}-1 )(a^{r/2}+ 1)=0\left (mod\; n \right )

上式就意味着其两个因子相乘一定是 n 的整数倍,只要这两个因子都不是 n 的倍数,就能通过计算 n 与它们的最大公约数得到最初相乘的质数 p 和 q 。

若找到的周期 r 为单数,则不能进行上述分解,则需要重新对 a 进行选择,并重复上述步骤。

步骤二。由于经典计算机寻找周期很慢,所以步骤二实际上就是利用量子的相关特性对步骤一中寻找周期进行加速。首先,初始化两个量子寄存器,其中第一个拥有足够多的量子比特(m个),用于表示 x 的值,并对所有的量子比特应用 H 门以制备成叠加态,第二个寄存器用于储存函数 f(x) 的值,然后通过应用模幂黑盒计算出对应的函数值,存入第二个量子寄存器,此后,所有可能的 x 和 f(x) 都同时存在于叠加态中,整个系统的状态变为:

\frac{1}{\sqrt{2^{m}}}\sum_{x=0}^{2^{m}-1}|x\rangle|f(x)\rangle

p.s.  在量子计算中,量子黑盒通常指的是一个抽象的,只知其功能、不知其内部具体实现细节的量子电路,主要是为了使设计者与学习者能够专注于算法的高级逻辑和核心优势,而不必被底层实现的复杂性所困扰,由于在此进行的是模幂运算,所以称为模幂黑盒。

其次,对第二个寄存器进行测量,会得到一个特定的值 C ,同时第一个寄存器会坍缩为那些所有使得 f(x)=C 的 x 的叠加态,这些 x 值会构成一个等差数列,系统的状态会变为:

\frac{1}{\sqrt{M}}\sum_{k=0}^{M-1}|x_{0}+kr\rangle\otimes |C\rangle

其中 M 是满足 x_{0}+kr< 2^{m} 的 k 的个数;

随后,对第一个量子寄存器应用量子傅里叶变换,会得到:

\frac{1}{\sqrt{M}}\sum_{k=0}^{M-1}(\frac{1}{\sqrt{N}}\sum_{y=0}^{N-1}e^{2\pi i(x_{0}+kr)y/N }|y\rangle)

即:

\frac{1}{\sqrt{MN}}\sum_{y=0}^{N-1}(e^{2\pi ix_{0}y/N }\sum_{k=0}^{M-1}e^{2\pi i kry/N }|y\rangle)

当 e^{2\pi i ry/N }=1(即 y = c\, \cdot \frac{N}{r})时,会发生完全的相长干涉,此时量子振幅叠加增强,概率辐达到最大。对第一个寄存器进行测量,会以很高的概率得到一个与 r 相关的值(y),通过一些经典的后续处理(如连分数展开),我们就可以从中精确地提取出周期 r 。

p.s. 连分数是将实数表示为嵌套分数形式,从而构造一系列有理数近似(渐近分数),渐近分数具有最佳逼近性质,可以最大限度地接近所需的数值。

最后,按照步骤一后面描述的方法,检查 r 是否为偶数,是则通过计算得到 p 和 q ,否则换一个随机数 a 重新开始。

shor 算法在理论上动摇了现代公钥密码学的根基。目前,由于量子比特数量有限、噪声大、纠错能力不足等原因,我们只能用量子计算机分解很小的数。如果有一天大规模、容错的量子计算机成为现实,目前保护我们互联网通信安全的RSA、ECC等算法将不再安全。也正因为它的威胁,全球密码学界正在积极研究和标准化能够抵抗量子计算机攻击的后量子密码学算法。

3 总结

本周首先阅读了GPT-2的文献,对其背景、方法论与创新点等有了一个大概的了解,下周打算就gpt这两篇论文中不太了解的地方进行总结与回顾,比较两篇文章的不同与改进;量子部分主要学习了shor算法,对于其后面量子傅里叶变换的应用、测量以及后续处理过程还是有些不清晰的地方,下周可以继续学习。

http://www.dtcms.com/a/589980.html

相关文章:

  • 【MySQL】数据库基本知识
  • 连云港网站关键字优化如何网络营销环境分析包括哪些内容
  • 网站建设语言都有什么广东外贸网站推广
  • 临沂建网站公司网站切图是指什么
  • 不用写代码做网站软件飞狐小说网站建设
  • wdcp拒绝访问网站企业网站本身应该就是企业( )的一部分
  • 子数组|状态机dp
  • 家居网站建设如何自己公司网站维护
  • Spring Boot 3+Spring AI 打造旅游智能体!集成阿里云通义千问,多轮对话 + 搜索 + PDF 生成撑全流程
  • 西安网站设计制作一般多少钱新媒体营销的发展趋势
  • 手机T0智能算法交易个人开通指南
  • 卢沟桥网站建设互联网舆情报告
  • 4.2 Boost 库工具类 ignore_unused 的使用
  • 智能驾驶域控(ADCU)方案介绍
  • 关于我们的python日记本
  • 电子商城网站开发购物车网站联盟怎么做
  • 10、webgl 基本概念 + 坐标系统 + 立方体
  • 网站建设 类东莞网站建设方案外包
  • 小孩子和大人做的网站公司网站域名com好还是cn好
  • PostgreSQL 分区表实战:亿级订单表按时间拆分,查询提速 100 倍
  • 数字孪生如何落地
  • 4.1.8【2014统考真题】
  • 查询域名网站淮安淮阴网站建设
  • 智慧校园综合管理平台源码
  • 用Python识别图片中的文字(Tesseract OCR)
  • nvidia驱动安装(openEuler上安装T4驱动)
  • 网站开发 自学网上商城系统
  • 网站设计公司 中山搜狐三季度营收多少
  • 编程范式综论:从思维哲学到程序形态简论
  • 将C++对象暴露给QML两种的方法:注册为QML类型和设置为根上下文属性