【AI大模型面试真题】Llama为何要采用RoPE旋转位置编码?

RoPE(旋转式位置编码) 对q,k进行操作(f())使得他们带上位置m,n的绝对位置信息, 通过内积后,希望结果带上相对位置信息,因此假设存在下列恒等关系 假设f(q,0)=q 和f(k,0)=k 先求出在二维情景下的情况,在推广到高纬度借助复数来求解。在复数中有⟨q,k⟩=Re[qk∗],Re[] 代表复数的实部,所以我们有 简单起见,我们假设存在复数g(q,k,m−n),使得f(q,m)f∗(k,n)=g(q,k,m−n),然后我们用复数的指数形式,设 那么代入方程后就得到方程组... 阅读详情

前言

最近在做 LLM 窗口外推的相关工作,因此刚好也回顾一下目前最流行的位置编码 RoPE。

1、关于RoPE

RoPE(Rotary Position Embedding),是苏剑林大神在 2021 年就提出的一种 Transformer 模型的位置编码。

RoPE 是一种可以以绝对位置编码形式实现的相对位置编码,兼顾了模型性能和效率。

2023 年上半年的时候,大模型位置编码尚有 Alibi 和 RoPE 在相互比拼,而到了 2023 年下半年,及今 2024 年,新开源出来的模型,大部分都是使用 RoPE 了。当然 Alibi 也有其优势,这个在讲 Alibi 的时候来说。

苏神在他的个人网站科学空间中对 RoPE 有相关文章进行了介绍,本篇是在这个基础上,对 RoPE 进行理解(公式和符号上也会沿用苏神的写法)。

2、以绝对位置编码的方式实现相对位置编码

前面提到,RoPE 是一种一绝对位置编码的方式实现的相对位置编码,那么这么做能带来什么收益?

先说原因:

在文本长度不长的情况下(比如 Bert 时代基本都是 256/512 token 的长度),相对位置编码和绝对位置编码在使用效果上可以说没有显著差别。

如果要处理更大长度的输入输出,使用绝对位置编码就需要把训练数据也加长到推理所需长度,否则对于没训练过的长度(训练时没见过的位置编码),效果多少会打些折扣。

而使用相对位置编码则更容易外推,毕竟 token-2 和 token-1 的距离,与 token-10002 和 token-10001 的距离是一样的,也因此可以缓解对巨量长文本数据的需求。

但是传统相对位置编码的实现相对复杂,有些也会有计算效率低的问题。由于修改了 self-attention 的计算方式,也比较难推广到线性注意力计算法模型中。

总结来说,就是绝对位置编码好实现,效率高,适用线性注意力,而相对位置编码易外推,因此就有了对“绝对位置编码的方式实现相对位置编码”的追求,去把二者的优点结合起来。

下面简单回顾一下绝对位置编码和相对位置编码。(对位置编码比较熟悉的朋友可以直接跳到第3节。)

(1)绝对位置编码

先回顾一下带绝对位置编码的 self-attention。

(2)相对位置编码

直观来说,比如词表大小是 1 万,模型训练窗口最大长度是 512,那么对于模型来说,实际上要区分的输入是 1 万×512=512 万个。

看起来虽然不少,但是在海量的数据和训练量下,这也不算什么事儿,模型确实能 handle。

Google 式

为什么要增加一个 clip 操作?因为直观上,一个词对其左右附近的其他词的位置关系理应更加敏感。

比如“我请你吃饭”中,“吃饭”这个词需要以高分辨率明确区分出前面三个词“我”、“请”、“你”的位置,以免理解成了“你请我吃饭”。

而随着距离越来越远,这种高分辨率的需求也就越来越低,十万个 token 之前的内容顺序对于当前 token 来说,影响比较小了,在位置向量上可以一视同仁。

另外这也是方便了位置信息的外推,比如我们可以只训练 256 个相对位置编码信息,而在应用是可以外推到>256 的长度。

本来到这里就可以了,相对位置信息已经加入了,但是 Google 除了在 input 端增加了相对位置信息,在输出端也增加了相对位置信息。

本来输出端的计算是:

XLNET 式

XLNET 也使用了相对位置编码,思路类似 Google,只是具体的操作不同。

在公式(2)的基础上继续展开:

把绝对位置相关的几个参数改成相对位置相关的参数,变成:

此外,XLNET 只对输入端做了处理,输出端则直接把位置相关的计算去掉了,即:

当然,也有简单一点的实现,比如 T5 的方法。

T5 式

(从最早提出,到 XLNET,以及 DeBerta,T5 等,可以看到相对位置编码的实现有一个简化的趋势,而效果也越来越好,正所谓大道至简,有时候有用的东西未必需要很复杂)

(3)对比

看来相对位置编码确实比较复杂,说个大概需要这么多篇幅;并且相对绝对位置编码,也没有那么直接明了,需要对 attention 计算做一些改造。

公式(1)的绝对位置编码中,可以看到在进 softmax 操作前需要做 3 次矩阵加法,3 次矩阵乘法。

从公式(8)可以看到,共有 4 组矩阵计算要做,每组要做 3 次矩阵乘法,相对会比较复杂。

公式(3)也有类似的情况。当然同时也有一些针对相对位置编码的高效计算被提出,这些就需要针对不同的计算方案来优化了。

总之在实现方式上和计算效率上,绝对位置编码具有一些优势。而在输入输出窗口外推方面,相对位置编码有着天然的优势。

另外,绝对位置编码保持 self-attention 的经典形式,使得应用面更广,如可以使用到 linear attention 方案中去,这个以后再展开讲(又挖了个坑)。

4、RoPE的设计思路

(1)保持 attention 计算形式

回顾完经典的绝对位置编码和相对位置编码,回到 RoPE 上来。

先说设计思路:

首先我们想要保持经典 self-attention 的计算方式,即公式(1)中的形式,输入端 = 内积 + softmax,至于输出端则保持完全不变。softmax 我们不去动,那这里留给我们操作的就是内积。

也就说,现在问题是,我们怎么在只做内积的情况下,把内积结果变成只和相对位置有关,而和绝对位置无关的结果。

写成公式就是:

当然理论上这里是存在无数多组答案的,那么 RoPE 怎么找到一组好实现的组合呢?

(2)借用复数寻找组合

这里先回顾一下复数的知识。任意复数都可以表示成复平面的一个 2 维向量。

现在考虑 query 和 key 向量都是 2 维的情况,那么可以代入复数的操作。

(先把 hidden size = 2 的情况推理清楚,后续再推广到更高维的情况)

那么在 2 维复数平面上有什么操作可以满足公式(11)的要求呢?Roformer 论文中提出的是这组:

先证明一下这个组合的正确性,是不是真的满足公式(11)。(也可以先跳过证明,选择先相信这个组合)

回顾一下欧拉公式:

(这里沿用式(1)中,默认向量为行向量的设定,所有有个 transpose,实际上是行向量还是列向量都没关系,只是推算的时候写法问题)

类似地,有:

用了三角函数和差公式:

(3)“旋转”位置编码

发现式(17)可以写成这样:

如果从向量视角来看,则有:

看式(22)和(23),可以看到等号右边都有:

这也是为什么叫做“旋转”位置编码。

(4)从 2 维推广到高维

答案是把高维输入拆分成两个两个一组(这要求输入是偶数维,目前的模型也都是偶数维,所以没问题),则高维的“旋转”矩阵有多个小旋转矩阵组成。

(5)高效率实现

式(25)中的矩阵在高维的情况下很稀疏,直接使用这么个矩阵来计算效率并不高,可以使用一个这样的高效率实现方式。

只需进行两组 element-wise 乘法即可。形式上看起来是类似乘性绝对位置编码的做法。

另外,看 LLAMA 中的实现,可以看到旋转位置编码是在每一个 decoder 层的输入都加了的。每次都强化一次位置信息,也有助于模型更好识别不同距离的内容。

(6)远程衰减的特性

至此,旋转位置编码已经完备,具备了计算高效,实现容易,便于外推,适用于线性注意力的特性。实际上它还具备另一项优点:有远程衰减的特性。

直观看起来远程衰减很符合直觉,毕竟注意力机制随着距离的衰减而降低,这个机制和人类也很像。

4、小结

总之,RoPE 在设计和实现上还是挺巧妙的,性质上也很有很多优势,所以被广泛应用到 transformer 模型中去了。

最后的最后

感谢你们的阅读和喜欢,作为一位在一线互联网行业奋斗多年的老兵,我深知在这个瞬息万变的技术领域中,持续学习和进步的重要性。

为了帮助更多热爱技术、渴望成长的朋友,我特别整理了一份涵盖大模型领域的宝贵资料集。

这些资料不仅是我多年积累的心血结晶,也是我在行业一线实战经验的总结。

这些学习资料不仅深入浅出,而且非常实用,让大家系统而高效地掌握AI大模型的各个知识点。如果你愿意花时间沉下心来学习,相信它们一定能为你提供实质性的帮助。

这份完整版的大模型 AI 学习资料已经上传优快云,朋友们如果需要可以微信扫描下方优快云官方认证二维码免费领取【保证100%免费】

大模型知识脑图

为了成为更好的 AI大模型 开发者,这里为大家提供了总的路线图。它的用处就在于,你可以按照上面的知识点去找对应的学习资源,保证自己学得较为全面。
在这里插入图片描述

经典书籍阅读

阅读AI大模型经典书籍可以帮助读者提高技术水平,开拓视野,掌握核心技术,提高解决问题的能力,同时也可以借鉴他人的经验。对于想要深入学习AI大模型开发的读者来说,阅读经典书籍是非常有必要的。

在这里插入图片描述

实战案例

光学理论是没用的,要学会跟着一起敲,要动手实操,才能将自己的所学运用到实际当中去,这时候可以搞点实战案例来学习。

在这里插入图片描述

面试资料

我们学习AI大模型必然是想找到高薪的工作,下面这些面试题都是总结当前最新、最热、最高频的面试题,并且每道题都有详细的答案,面试前刷完这套面试题资料,小小offer,不在话下

在这里插入图片描述

640套AI大模型报告合集

这套包含640份报告的合集,涵盖了AI大模型的理论研究、技术实现、行业应用等多个方面。无论您是科研人员、工程师,还是对AI大模型感兴趣的爱好者,这套报告合集都将为您提供宝贵的信息和启示。

在这里插入图片描述

这份完整版的大模型 AI 学习资料已经上传优快云,朋友们如果需要可以微信扫描下方优快云官方认证二维码免费领取【保证100%免费】

自然语言处理:第五十七章 RoPE旋转位置编码 本人项目地址大全:Victor94-king/NLP__ManVictor: 优快云 of ManVictor论文地址: RoFormer写在前面: 笔者更新不易,希望走过路过点个关注和赞,笔芯!!!写在前面: 笔者更新不易,希望走过路过点个关注和赞,笔芯!!!写在前面: 笔者更新不易,希望走过路过点个关注和赞,笔芯!!!RoPE(Rotary Position Embedding),是苏剑林大神在 2021 年就提出的一种 Transformer 模型的位置编码。RoPE 是一种可以以绝对位置编码形式实 阅读详情

相关推荐

【LLM】长文本大模型之扩展Context长度(RoPE等方法)

展LLM的Context长度其实已有不少,但多数是通过结合检索或者摘要的方式来缩短样本的长Context,如Unlimiformer。由于不是直接处理长Context,因此通常无法做精细的阅读理解,而且这些方案往往需要在训练阶段就考虑进去,而不是事后即插即用到已有的LLM模型中。 2. PCW方法 以前能够不微调地扩展Context长度的方案是Parallel Context Window(下面简称PCW),出自论文《Parallel Context Windows for Large Language

发现问题,并解决问题,批判性思维 6283

一文通透位置编码:从标准位置编码、复数、欧拉公式到旋转位置编码RoPE(含其推导与代码实现)

关于位置编码和RoPE为彻底解决这个位置编码/RoPE的问题,我把另外两篇文章中关于这部分的内容抽取出来,并不断深入、扩展、深入,最终成为本文。

结构之法 算法之道 8万+

ASPICE标准快速掌握「总目录」

欢迎大家来到雪云飞星的《ASPICE标准快速掌握》,开始前博主先列出本专栏学习的大纲,同时这也可以作为大家学习ASPICE协议知识点的参考。本专栏可以帮助大家快速掌握如何在项目中使用ASPICE,ASPICE的学习通常仅需要半天时间左右,掌握方法后完全就可以结合快查表来指导具体项目的质量提升了。

雪云飞星的博客 3010

大模型都在用的:旋转位置编码

绝对位置编码和相对位置编码都有局限性,比如绝对位置编码不能直接表征token的相对位置关系;相对位置编码过于复杂,影响效率。于是诞生了一种用绝对位置编码的方式实现相对位置编码的编码方式——旋转位置编码(RotaryPositionEmbedding,RoPE),兼顾效率和相对位置关系。 RoPE的核心思想是通过旋转的方式将位置信息编码到每个维度,从而使得模型能够捕捉到序列中元素的相对位置信息。现在已经在很多大模型证明了其有效性,比如ChatGLM、LLaMA等。

xian0710830114的专栏 9815

知识蒸馏⚗️ | YOLOv5知识蒸馏实战篇

YOLOv5知识蒸馏教程

Coding... 9361

【异常】Claude Code 第三方API 400报错(thinking type should be enabled or disabled)解决方案

摘要: Claude Code接入第三方API端点时出现400参数错误,主要因新版默认启用的Adaptive Thinking功能与旧版接口参数格式不兼容(需thinking: {type: "adaptive"},但第三方仅支持布尔值)。解决方案为修改本地settings.json配置文件,添加"CLAUDE_CODE_DISABLE_ADAPTIVE_THINKING": "1"环境变量并重启客户端,即可恢复思考模式功能。Adaptive Th

奶爸的编程之路,也就一周冷个三天 1万+

【AI大模型面试真题】Transformer为什么需要“位置编码”?

对于序列处理模型,他的位置信息需要通过显式或者隐式的方式传入给模型。 transformer 系列模型的位置编码常用包括:包括绝对位置编码(包括静态位置编码和可学习位置编码)、相对位置编码、旋转位置编码,下面详细介绍这种位置编码的原理和优缺点。

嘴巴吃糖了 1465

C语言试题三之计算并输出 s=1+(1+2^(0.5))+(1+2^(0.5)+3^(0.5))+…+(1+2^(0.5)+3^(0.5)+…+n^(0.5))

1 、题目 计算并输出 s=1+(1+2^(0.5))+(1+2^(0.5)+3^(0.5))+…+(1+2^(0.5)+3^(0.5)+…+n^(0.5)) 2、部分函数说明 C 库函数 double pow(double x, double y) 返回 x 的 y 次幂。 3、源代码实现 #include <stdio.h> #include <...

码莎拉蒂 4609

【大模型必学】RoPE旋转位置编码详解:从基础到进阶,一篇搞定位置编码!

旋转位置编码RoPE(Rotary Position Embedding)是一种Transformer模型中的位置编码策略,它广泛应用于LLama,ChatGLM等大模型,本篇先介绍RoPE的实现步骤和源码,再深入讲解RoPE涉及到的数学原理,力求做到从易到难,学习曲线平滑。

2401_85327249的博客 871

智能体异常行为检测-基于行为序列的异常模式识别技术【附代码】

在多智能体系统(Multi-Agent Systems, MAS)中,智能体之间的行为协调与自主决策是系统稳定运行的关键。然而,当某个智能体因策略偏移、环境变化或潜在攻击而出现**异常行为(Abnormal Behavior)**时,整个系统可能陷入混乱或崩溃。

一键难忘的博客 1146

MobileFusion:基于结构重参数化的移动端红外可见光图像融合方法

MobileFusion提出了一种轻量化的红外与可见光图像融合框架,通过结构重参数化技术实现移动端实时部署。该方法包含可重参数多分支卷积(RepMBConv)、轻量化上下文感知注意力(LCAA)和重参数前馈网络(RepFFN)三大模块,在训练时保留多分支结构增强特征学习,推理时合并为单路算子提升效率。实验表明,MobileFusion在MSRS、FMB等数据集上实现了融合质量与推理速度的平衡,参数量仅4000,在边缘设备上也能高效运行,为资源受限场景提供了实用解决方案。代码已开源。

毕竟是Shy哥 137

【大模型面试】一道快手大模型面试题的挑战与反思,揭示AI领域面试的难点与策略!

本文深入解析Transformer和LLaMA的位置编码区别。Transformer采用三角函数绝对位置编码,本质是线性变换;LLaMA使用旋转位置编码(RoPE),将相对位置关系融入Attention计算。关键区别在于:RoPE通过复数变换将位置编码整合到self-attention中,实现了用绝对编码方式表达相对位置信息。文章还分析了两种编码的数学联系,指出RoPE实际上是三角函数编码的巧妙改进。最后分享了系统学习大模型AI的四个阶段路径,包含提示工程、RAG系统、模型训练等核心内容。

2401_85390073的博客 751

深入理解 SAP HANA 上的查询处理机制:从 CDS 分层建模到执行计划落地

本文探讨了S/4HANA系统中CDS视图性能问题的本质及其优化策略。文章指出,性能问题往往源于数据模型、查询编译和执行计划的综合影响,尤其在多层CDS视图叠加时表现更为明显。通过分析SAP HANA查询处理链路的四个关键阶段(SQL Plan Cache、SQL Front End、SQL Optimizer和Execution Plan),揭示了CDS视图性能波动的根本原因。文章强调,优化CDS性能需要关注数据规模、谓词选择性和执行计划稳定性,建议使用参数化查询、合理分层视图结构,并利用PlanViz等工

2007 年 ~ 2025 年,深耕 SAP 技术 18 年 4819

【面试实录】快手大模型面试题,差点没通过……

最后总结一下,所谓 RoPE,就是在 Attention 模块让模型感知到相对位置,但是它不改变 Attention 的结构,反而像绝对位置编码一样,在输入层做文章,对输入向量做改造。改造后 Attention 模块能够重新感知到相对位置,同样能把位置信息弥补回来,因此 RoPE 可以说是使用绝对位置编码的方式实现了相对位置编码,是两者的融合。

2401_84204413的博客 734

破盾实录|Vueling航空阿卡迈防护逆向:从503挑战到Cookie生成的全流程拆解

摘要:文章分享了作者在爬取西班牙伏林航空(Vueling)机票数据时,遭遇阿卡迈(Akamai)防护系统的实战经历。起初简单的请求被拦截返回503错误,分析发现阿卡迈通过混淆JS代码实施"挑战-验证"机制,需模拟真实浏览器环境才能获取有效Cookie。作者详细拆解了逆向过程:从抓包分析JS挑战流程,到破解代码混淆和控制流平坦化,最终用Python+Pyppeteer成功模拟浏览器特征,突破防护获取数据。整个过程涉及JS反混淆、环境检测绕过和Cookie生成验证等关键技术点,为类似防护系统

专注于Python爬虫开发,分享爬虫技巧、项目实战与反爬经验,使用Scrapy、BeautifulSoup等工具,解决数据抓取难题。 1643

深度学习工具包 DeepLearningToolbox

深度学习工具包Deprecation notice.-----This toolbox is outdated and no longer maintained.There are much better tools available for deep learning than this toolbox, e.g. [Theano](http://deeplearning.net/software/theano/), [torch](http://torch.ch/) or [tensorflow](http://www.tensorflow.org/)I would suggest you use one of the tools mentioned above rather than use this toolbox.Best, Rasmus.DeepLearnToolbox================A Matlab toolbox for Deep Learning.Deep Learning is a new subfield of machine learning that focuses on learning deep hierarchical models of data.It is inspired by the human brain's apparent deep (layered, hierarchical) architecture.A good overview of the theory of Deep Learning theory is[Learning Deep Architectures for AI](http://www.iro.umontreal.ca/~bengioy/papers/ftml_book.pdf)For a more informal introduction, see the following videos by Geoffrey Hinton and Andrew Ng.* [The Next Generation of Neural Networks](http://www.youtube.com/watch?v=AyzOUbkUf3M) (Hinton, 2007)* [Recent Developments in Deep Learning](http://www.youtube.com/watch?v=VdIURAu1-aU) (Hinton, 2010)* [Unsupervised Feature Learning and Deep Learning](http://www.youtube.com/watch?v=ZmNOAtZIgIk) (Ng, 2011)If you use this toolbox in your research please cite [Prediction as a candidate for learning deep hierarchical models of data](http://www2.imm.dtu.dk/pubdb/views/publication_details.php?id=6284)```@MASTERSTHESIS\{IMM2012-06284, author = "R. B. Palm", title = "Prediction as a candidate for learning deep hierarchical models of data", year = "2012",}```Contact: rasmusbergpalm at gmail dot comDirectories included in the toolbox-----------------------------------`NN/` - A library for Feedforward Backpropagation Neural Networks`CNN/` - A library for Convolutional Neural Networks`DBN/` - A library for Deep Belief Networks`SAE/` - A library for Stacked Auto-Encoders`CAE/` - A library for Convolutional Auto-Encoders`util/` - Utility functions used by the libraries`data/` - Data used by the examples`tests/` - unit tests to verify toolbox is workingFor references on each library check REFS.mdSetup-----1. Download.2. addpath(genpath('DeepLearnToolbox'));Example: Deep Belief Network---------------------```matlabfunction test_example_DBNload mnist_uint8;train_x = double(train_x) / 255;test_x = double(test_x) / 255;train_y = double(train_y);test_y = double(test_y);%% ex1 train a 100 hidden unit RBM and visualize its weightsrand('state',0)dbn.sizes = [100];opts.numepochs = 1;opts.batchsize = 100;opts.momentum = 0;opts.alpha = 1;dbn = dbnsetup(dbn, train_x, opts);dbn = dbntrain(dbn, train_x, opts);figure; visualize(dbn.rbm{1}.W'); % Visualize the RBM weights%% ex2 train a 100-100 hidden unit DBN and use its weights to initialize a NNrand('state',0)%train dbndbn.sizes = [100 100];opts.numepochs = 1;opts.batchsize = 100;opts.momentum = 0;opts.alpha = 1;dbn = dbnsetup(dbn, train_x, opts);dbn = dbntrain(dbn, train_x, opts);%unfold dbn to nnnn = dbnunfoldtonn(dbn, 10);nn.activation_function = 'sigm';%train nnopts.numepochs = 1;opts.batchsize = 100;nn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.10, 'Too big error');```Example: Stacked Auto-Encoders---------------------```matlabfunction test_example_SAEload mnist_uint8;train_x = double(train_x)/255;test_x = double(test_x)/255;train_y = double(train_y);test_y = double(test_y);%% ex1 train a 100 hidden unit SDAE and use it to initialize a FFNN% Setup and train a stacked denoising autoencoder (SDAE)rand('state',0)sae = saesetup([784 100]);sae.ae{1}.activation_function = 'sigm';sae.ae{1}.learningRate = 1;sae.ae{1}.inputZeroMaskedFraction = 0.5;opts.numepochs = 1;opts.batchsize = 100;sae = saetrain(sae, train_x, opts);visualize(sae.ae{1}.W{1}(:,2:end)')% Use the SDAE to initialize a FFNNnn = nnsetup([784 100 10]);nn.activation_function = 'sigm';nn.learningRate = 1;nn.W{1} = sae.ae{1}.W{1};% Train the FFNNopts.numepochs = 1;opts.batchsize = 100;nn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.16, 'Too big error');```Example: Convolutional Neural Nets---------------------```matlabfunction test_example_CNNload mnist_uint8;train_x = double(reshape(train_x',28,28,60000))/255;test_x = double(reshape(test_x',28,28,10000))/255;train_y = double(train_y');test_y = double(test_y');%% ex1 Train a 6c-2s-12c-2s Convolutional neural network %will run 1 epoch in about 200 second and get around 11% error. %With 100 epochs you'll get around 1.2% errorrand('state',0)cnn.layers = { struct('type', 'i') %input layer struct('type', 'c', 'outputmaps', 6, 'kernelsize', 5) %convolution layer struct('type', 's', 'scale', 2) %sub sampling layer struct('type', 'c', 'outputmaps', 12, 'kernelsize', 5) %convolution layer struct('type', 's', 'scale', 2) %subsampling layer};cnn = cnnsetup(cnn, train_x, train_y);opts.alpha = 1;opts.batchsize = 50;opts.numepochs = 1;cnn = cnntrain(cnn, train_x, train_y, opts);[er, bad] = cnntest(cnn, test_x, test_y);%plot mean squared errorfigure; plot(cnn.rL);assert(er<0.12, 'Too big error');```Example: Neural Networks---------------------```matlabfunction test_example_NNload mnist_uint8;train_x = double(train_x) / 255;test_x = double(test_x) / 255;train_y = double(train_y);test_y = double(test_y);% normalize[train_x, mu, sigma] = zscore(train_x);test_x = normalize(test_x, mu, sigma);%% ex1 vanilla neural netrand('state',0)nn = nnsetup([784 100 10]);opts.numepochs = 1; % Number of full sweeps through dataopts.batchsize = 100; % Take a mean gradient step over this many samples[nn, L] = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.08, 'Too big error');%% ex2 neural net with L2 weight decayrand('state',0)nn = nnsetup([784 100 10]);nn.weightPenaltyL2 = 1e-4; % L2 weight decayopts.numepochs = 1; % Number of full sweeps through dataopts.batchsize = 100; % Take a mean gradient step over this many samplesnn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');%% ex3 neural net with dropoutrand('state',0)nn = nnsetup([784 100 10]);nn.dropoutFraction = 0.5; % Dropout fraction opts.numepochs = 1; % Number of full sweeps through dataopts.batchsize = 100; % Take a mean gradient step over this many samplesnn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');%% ex4 neural net with sigmoid activation functionrand('state',0)nn = nnsetup([784 100 10]);nn.activation_function = 'sigm'; % Sigmoid activation functionnn.learningRate = 1; % Sigm require a lower learning rateopts.numepochs = 1; % Number of full sweeps through dataopts.batchsize = 100; % Take a mean gradient step over this many samplesnn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');%% ex5 plotting functionalityrand('state',0)nn = nnsetup([784 20 10]);opts.numepochs = 5; % Number of full sweeps through datann.output = 'softmax'; % use softmax outputopts.batchsize = 1000; % Take a mean gradient step over this many samplesopts.plot = 1; % enable plottingnn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');%% ex6 neural net with sigmoid activation and plotting of validation and training error% split training data into training and validation datavx = train_x(1:10000,:);tx = train_x(10001:end,:);vy = train_y(1:10000,:);ty = train_y(10001:end,:);rand('state',0)nn = nnsetup([784 20 10]); nn.output = 'softmax'; % use softmax outputopts.numepochs = 5; % Number of full sweeps through dataopts.batchsize = 1000; % Take a mean gradient step over this many samplesopts.plot = 1; % enable plottingnn = nntrain(nn, tx, ty, opts, vx, vy); % nntrain takes validation set as last two arguments (optionally)[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');```[![Bitdeli Badge](https://d2weczhvl823v0.cloudfront.net/rasmusbergpalm/deeplearntoolbox/trend.png)](https://bitdeli.com/free "Bitdeli Badge")

一道快手的大模型面试题,差点挂掉...

最后总结一下,所谓 RoPE,就是在 Attention 模块让模型感知到相对位置,但是它不改变 Attention 的结构,反而像绝对位置编码一样,在输入层做文章,对输入向量做改造。改造后 Attention 模块能够重新感知到相对位置,同样能把位置信息弥补回来,因此 RoPE 可以说是使用绝对位置编码的方式实现了相对位置编码,是两者的融合。

2401_85375298的博客 841

VB摄像头监控

该VB模块可对摄像头捕获的画面进行录像等,可在创建的窗口进行控制

小白学大模型:从零搭建LLaMA,大模型入门到精通,收藏这篇就足够了!

LLaMA 的开发基于一个核心理念:在给定计算预算下,通过增加训练数据量而非单纯增加模型参数,可以达到更好的性能。

2301_81888214的博客 751

STM32F407中文手册

STM32f407中文手册 本参考手册面向应用开发人员,提供有关使用 STM32F405xx/07xx、STM32F415xx/17xx、 STM32F42xxx 和 STM32F43xxx 微控制器存储器与外设的完整信息。STM32F405xx/07xx、STM32F415xx/17xx、STM32F42xxx 和 STM32F43xxx 构成一个微 控制器系列,各产品具有不同的存储器大小、封装和外设。有关订购信息以及器件的机械与电气特性,请参见数据手册。有关 ARM Cortex™-M4F 内核的信息,请参见《Cortex™-M4F 技术参考手册》。

蓝牙模块HM-10手册

蓝牙模块HM-10手册,该手册对蓝牙模块HM-10进行了详细的介绍和使用方法以及一些AT指令。

美团面试遭拷打:LLaMA是怎么优化注意力机制的?

训练营学员继拿下腾讯美团字节sp后,百度经过加面,也给了sp offer,且签字费给到了其他大厂的两倍。今天我们来看一道美团的大模型面试真题:LLaMA 是怎么优化注意力机制计算的?这张图来自牛客,是某位面完美团的牛友写的面经,可以看到,针对这道题目,这位同学还专门标注了:“我真的不知道”我们还是老规矩,从面试官的视角出发,来分析一下这道题目。看一下到底应该如何作答,才能让面试官眼前一亮,从众多候选人中脱颖而出。

h1453586413的博客 1122

小白学大模型:从零搭建LLaMA

LLaMA-13B 在大多数基准测试中表现优于拥有 175B 参数的 GPT-3,尽管其模型规模小了十倍。这使得 LLaMA-13B 可以在单个 GPU 上运行,从而“民主化”了大型语言模型的研究和使用。

2301_81888214的博客 788

25道大模型算法面试真题,秋招必刷~

软目标说明:教师模型输出 [0.7, 0.2, 0.1],表示类别 A 的概率为 0.7,类别 B 的概率为 0.2,类别 C 的概率为 0.1,如果是硬目标就直接选择类别 A,但如果是软目标,学生模型输出的概率分布为 [0.6, 0.3, 0.1],KL 散度会计算这两个概率分布之间的差异。当模型过大无法在单个设备(如 GPU)内存中完整训练时,它将模型的不同部分分布在多个设备上进行训练,相比于数据并行,模型并行的核心思想是将模型的不同部分拆分并分布到不同的设备上进行计算,而不是切分数据。

2401_84033492的博客 1156

大模型面试通关秘籍:25道大模型算法面试真题,建议马上收藏!

本文详细解析了大模型算法岗面试高频考点,涵盖Transformer架构原理、位置编码优化、大模型核心技术(如Prompt工程、RAG、微调等)、模型压缩技术及分布式训练策略。内容从基础理论到实践应用,全面覆盖了大模型开发与面试所需知识体系,是算法岗求职者必备的面试宝典。

AI大模型的博客 927

2024年最全AI大模型面试题合集,AI大模型面试从入门到精通!

如果你对这些面试题的答案感兴趣的话,记得添加下方,我会在后台将完整的PDF答案分享给你。你了解ReAct吗,它有什么优点?解释一下langchain Agent的概念langchain 有哪些替代方案?langchain token计数有什么问题?如何解决?LLM预训练阶段有哪几个关键步骤?RLHF模型为什么会表现比SFT更好?参数高效的微调(PEFT)有哪些方法?LORA微调相比于微调适配器或前缀微调有什么优势?你了解过什么是稀疏微调吗?

h1453586413的博客 1248

2025大模型算法工程师面试题来了(附答案)大模型入门到精通,收藏这篇就足够了!

最近大模型相关的招聘也非常多,小编整理了一些大模型面试常见问题,供大家参考。希望在找相关机会的同学能有好的收获。

2301_81888214的博客 1193
上一篇: 【AI大模型】万字长文讲透 RAG 在实际落地场景中的优化
下一篇: 保姆级教程!6个步骤讲清楚用DeepSeek搭建本地知识库
Agent学习路线
博客等级 码龄6年 1万+粉丝 1904原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值