Loading [MathJax]/jax/output/CommonHTML/config.js
前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >专栏 >速度超快!字节跳动开源序列推理引擎LightSeq

速度超快!字节跳动开源序列推理引擎LightSeq

作者头像
机器之心
发布于 2023-03-29 11:15:28
发布于 2023-03-29 11:15:28
92400
代码可运行
举报
文章被收录于专栏:机器之心机器之心
运行总次数:0
代码可运行

机器之心发布

机器之心编辑部

这应该是业界第一款完整支持 Transformer、GPT 等多种模型高速推理的开源引擎。

2017 年 Google 提出了 Transformer [1] 模型,之后在它基础上诞生了许多优秀的预训练语言模型和机器翻译模型,如 BERT [2] 、GPT 系列[13]等,不断刷新着众多自然语言处理任务的能力水平。与此同时,这些模型的参数量也在呈现近乎指数增长(如下图所示)。例如最近引发热烈讨论的 GPT-3 [3],拥有 1750 亿参数,再次刷新了参数量的记录。

如此巨大的参数量,也为模型推理部署带来了挑战。以机器翻译为例,目前 WMT[4]比赛中 SOTA 模型已经达到了 50 层以上。主流深度学习框架下,翻译一句话需要好几秒。这带来了两个问题:一是翻译时间太长,影响产品用户体验;二是单卡 QPS (每秒查询率)太低,导致服务成本过高。

因此,今天给大家安利一款速度非常快,同时支持非常多特性的高性能序列推理引擎——LightSeq。它对以 Transformer 为基础的序列特征提取器(Encoder)和自回归的序列解码器(Decoder)做了深度优化,早在 2019 年 12 月就已经开源,应用在了包括火山翻译等众多业务和场景。据了解,这应该是业界第一款完整支持 Transformer、GPT 等多种模型高速推理的开源引擎。

LightSeq 可以应用于机器翻译、自动问答、智能写作、对话回复生成等众多文本生成场景,大大提高线上模型推理速度,改善用户的使用体验,降低企业的运营服务成本。

相比于目前其他开源序列推理引擎,LightSeq具有如下几点优势:

1. 高性能

LightSeq推理速度非常快。例如在翻译任务上,LightSeq相比于Tensorflow实现最多可以达到14倍的加速。同时领先目前其他开源序列推理引擎,例如最多可比Faster Transformer快1.4倍。

2. 支持模型功能多

LightSeq支持BERT、GPT、Transformer、VAE 等众多模型,同时支持beam search、diverse beam search[5]、sampling等多种解码方式。下表详细列举了Faster Transformer[7]、Turbo Transformers[6]和LightSeq三种推理引擎在文本生成场景的功能差异:

3. 简单易用,无缝衔接Tensorflow、PyTorch等深度学习框架

LightSeq通过定义模型协议,支持各种深度学习框架训练好的模型灵活导入。同时包含了开箱即用的端到端模型服务,即在不需要写一行代码的情况下部署高速模型推理,同时也灵活支持多层次复用。

使用方法

利用 LightSeq 部署线上服务比较简便。LightSeq 支持了 Triton Inference Server[8],这是 Nvidia 开源的一款 GPU 推理 server ,包含众多实用的服务中间件。LightSeq 支持了该 server 的自定义推理引擎 API 。因此只要将训练好的模型导出到 LightSeq 定义的模型协议[9]中,就可以在不写代码的情况下,一键启动端到端的高效模型服务。更改模型配置(例如层数和 embedding 大小)都可以方便支持。具体过程如下:

首先准备好模型仓库,下面是目录结构示例,其中 transformer.pb 是按模型协议导出的模型权重,libtransformer.so 是 LightSeq 的编译产物。

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
 - model_zoo/   - model_repo/     - config.pbtxt     - transformer.pb     - 1/       - libtransformer.so

然后就可以启动Triton Inference Server[8],搭建起模型服务。

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
1. trtserver --model-store=${model_zoo}

性能测试

在 NVIDIA Tesla P4 和 NVIDIA Tesla T4 显卡上,笔者测试了 LightSeq 的性能,选择了深度学习框架 Tensorflow v1.13 和解码场景支持较为丰富的 Faster Transformer v2.1 实现作为对比。Turbo Transformers 解码方法比较单一(只支持 Beam Search ,不支持文本生成中常用的采样解码),尚未满足实际应用需求,因此未作对比。

机器翻译性能

在机器翻译场景下,笔者测试了 Transformer base 模型(6层 encoder、6层 decoder 、隐层维度 512 )采用 beam search 解码的性能,实验结果如下:

可以发现,在小 batch 场景下,Faster Transformer 和 LightSeq 对比 Tensorflow 都达到了 10 倍左右的加速。而随着 batch 的增大,由于矩阵乘法运算占比越来越高,两者对 Tensorflow 的加速比都呈衰减趋势。LightSeq 衰减相对平缓,特别是在大 batch 场景下更加具有优势,最多能比 Faster Transformer 快 1.4 倍。这也对未来的一些推理优化工作提供了指导:小 batch 场景下,只要做好非计算密集型算子融合,就可以取得很高的加速收益;而大 batch 场景下则需要继续优化计算密集型算子,例如矩阵乘法等。

最后在 WMT14 标准的法英翻译任务上,笔者测试了 Transformer big 模型的性能。LightSeq 在 Tesla P4 显卡上平均每句翻译延迟为 167ms ,Tesla T4 上减小到了 82ms。而作为对比, TensorFlow 延迟均为 1071ms,LightSeq 分别达到了 6.41 和 13.06 倍加速。另外,笔者尝试了其他多种模型配置,得到了比较一致的加速效率。例如更深层的模型结构上(encoder加深至 16 层),LightSeq 得到的加速比,分别是 6.97 和 13.85 倍。

文本生成性能

上述机器翻译通常采用 Beam Search 方法来解码, 而在文本生成场景,经常需要使用采样( Sampling )来提升生成结果的多样性。下图展示了 Transformer base 模型采用 top-k/top-p sampling 的性能测试对比:

可以发现,在需要使用采样解码的任务中,LightSeq 在大部分配置下领先于 Faster Transformer,最多也能达到 1.4 倍的额外加速。此外,相比于 TensorFlow 实现,LightSeq 对 GPT 和 VAE 等生成模型也达到了 5 倍以上的加速效果。

服务压力测试

在云服务上,笔者测试了在实际应用中 GPT 场景下,模型服务从 Tensorflow 切换到LightSeq 的延迟变化情况(服务显卡使用 NVIDIA Tesla P4)。可以观察到,pct99 延迟降低了 3 到 5 倍,峰值从 360 毫秒左右下降到 80 毫秒左右,详细结果如下图所示:

更多的对比实验结果可以在 LightSeq 性能评测报告 [10] 中查看到。

技术原理

以 Transformer 为例,一个机器翻译/文本生成模型推理过程包括两部分:序列编码模块特征计算和自回归的解码算法。其中特征计算部分以自注意力机制及特征变换为核心(矩阵乘法,计算密集型),并伴随大量 Elementwise(如 Reshape)和 Reduce(如Layer Normalization)等 IO 密集型运算;解码算法部分包含了词表 Softmax、beam 筛选、缓存刷新等过程,运算琐碎,并引入了更复杂的动态 shape。这为模型推理带来了众多挑战:

1.  IO 密集型计算的细粒度核函数调用带来大量冗余显存读写,成为特征计算性能瓶颈。

2. 复杂动态 shape 为计算图优化带来挑战,导致模型推理期间大量显存动态申请,耗时较高。

3. 解码生成每一步字符过程逻辑复杂,难以并行化计算从而发挥硬件优势。

LightSeq 取得这么好的推理加速效果,对这些挑战做了哪些针对性的优化呢?笔者分析发现,核心技术包括这几项:融合了多个运算操作来减少 IO 开销、复用显存来避免动态申请、解码算法进行层级式改写来提升推理速度。下面详细介绍下各部分的优化挑战和 LightSeq 的解决方法。

算子多运算融合

近年来,由于其高效的特征提取能力,Transformer encoder/decoder 结构被广泛应用于各种 NLP 任务中,例如海量无标注文本的预训练。而多数深度学习框架(例如 Tensorflow、Pytorch 等)通常都是调用基础运算库中的核函数(kernel function)来实现 encoder/decoder 计算过程。这些核函数往往粒度较细,通常一个组件需要调用多个核函数来实现。

以层归一化(Layer Normalization)为例,Tensorflow 是这样实现的:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
mean = tf.reduce_mean(x, axis=[-1], keepdims=True)variance = tf.reduce_mean(tf.square(x - mean), axis=[-1], keepdims=True)result = (x - mean) * tf.rsqrt(variance + epsilon) * scale + bias

可以发现,即使基于编译优化技术(自动融合广播(Broadcast)操作和按元素(Elementwise)运算),也依然需要进行三次核函数调用(两次 reduce_mean,一次计算最终结果)和两次中间结果的显存读写(mean 和 variance)。而基于 CUDA,我们可以定制化一个层归一化专用的核函数,将两次中间结果的写入寄存器。从而实现一次核函数调用,同时没有中间结果显存读写,因此大大节省了计算开销。有兴趣的同学可以在文末参考链接中进一步查看具体实现[11]。

基于这个思路,LightSeq 利用 CUDA 矩阵运算库 cuBLAS[12]提供的矩阵乘法和自定义核函数实现了 Transformer,具体结构如下图所示:

蓝色部分是自定义核函数,黄色部分是矩阵乘法。可以发现,矩阵乘法之间的运算全部都用一个定制化核函数实现了,因此大大减少了核函数调用和显存读写,最终提升了运算速度。

动态显存复用

为了避免计算过程中的显存申请释放并节省显存占用,LightSeq 首先对模型中所有动态的 shape 都定义了最大值(例如最大序列长度),将所有动态shape转换为静态。接着在服务启动的时候,为计算过程中的每个中间计算结果按最大值分配显存,并对没有依赖的中间结果共用显存。这样对每个请求,模型推理时不再申请显存,做到了:不同请求的相同 Tensor 复用显存;同请求的不同 Tensor 按 shape 及依赖关系复用显存。

通过该显存复用策略,在一张 T4 显卡上,LightSeq 可以同时部署多达 8 个 Transformer big 模型(batch_size=8,最大序列长度=8,beam_size=4,vocab_size=3万)。从而在低频或错峰等场景下,大大提升显卡利用率。

层级式解码计算

在自回归序列生成场景中,最复杂且耗时的部分就是解码。LightSeq 目前已经支持了 beam search、diversity beam search、top-k/top-p sampling 等多种解码方法,并且可以配合 Transformer、GPT使用,达到数倍加速。这里我们以应用最多的 beam search 为例,介绍一下 LightSeq 对解码过程的优化。

首先来看下在深度学习框架中传统是如何进行一步解码计算的:

# 1.计算以每个token为结尾的序列的log probability

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
log_token_prob = tf.nn.log_softmax(logit) # [batch_size, beam_size, vocab_size]log_seq_prob += log_token_prob # [batch_size, beam_size, vocab_size]log_seq_prob = tf.reshape(log_seq_prob, [-1, beam_size * vocab_size])

# 2. 为每个序列(batch element)找出排名topk的token

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
topk_log_probs, topk_indices = tf.nn.top_k(log_seq_prob, k=K)

# 3. 根据beam id,刷新decoder中的self attention模块中的key和value的缓存

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
refresh_cache(cache, topk_indices)

可以发现,为了挑选概率 top-k 的 token ,必须在 [batch_size, beam_size, vocab_size]大小的 logit 矩阵上进行 softmax 计算及显存读写,然后进行 batch_size 次排序。通常 vocab_size 都是在几万规模,因此计算量非常庞大,而且这仅仅只是一步解码的计算消耗。因此实践中也可以发现,解码模块在自回归序列生成任务中,累计延迟占比很高(超过 30%)。

LightSeq 的创新点在于结合 GPU 计算特性,借鉴搜索推荐中常用的粗选-精排的两段式策略,将解码计算改写成层级式,设计了一个 logit 粗选核函数,成功避免了 softmax 的计算及对十几万元素的排序。该粗选核函数遍历 logit 矩阵两次:

• 第一次遍历,对每个 beam,将其 logit 值随机分成k组,每组求最大值,然后对这k个最大值求一个最小值,作为一个近似的top-k值(一定小于等于真实top-k值),记为R-top-k。在遍历过程中,同时可以计算该beam中logit的log_sum_exp值。

• 第二次遍历,对每个 beam,找出所有大于等于 R-top-k  的 logit 值,将(logit - log_sum_exp + batch_id * offset, beam_id * vocab_size + vocab_id)写入候选队列,其中 offset 是 logit 的下界。

在第一次遍历中,logit 值通常服从正态分布,因此算出的R-top-k值非常接近真实top-k值。同时因为这一步只涉及到寄存器的读写,且算法复杂度低,因此可以快速执行完成(十几个指令周期)。实际观察发现,在top-4设置下,根据R-top-k只会从几万token中粗选出十几个候选,因此非常高效。第二次遍历中,根据R-top-k粗选出候选,同时对 logit 值按 batch_id 做了值偏移,多线程并发写入显存中的候选队列。

粗选完成后,在候选队列中进行一次排序,就能得到整个batch中每个序列的准确top-k值,然后更新缓存,一步解码过程就快速执行完成了。

下面是k=2,词表大小=8的情况下一个具体的示例(列代表第几个字符输出,行代表每个位置的候选)。可以看出,原来需要对 16 个元素进行排序,而采用层级解码之后,最后只需要对 5 个元素排序即可,大大降低了排序的复杂度。

可视化分析计算延迟

为了验证上面几种优化技术的实际效果,笔者用 GPU profile 工具,对 LightSeq 的一次推理过程进行了延迟分析。下图展示了 32 位浮点数和 16 位浮点数精度下,各计算模块的延迟占比:

可以发现,在两种计算精度下:

1. 经过优化后,cuBLAS  中的矩阵乘法计算延迟分别占比 82% 和 88% ,成为推理加速新的主要瓶颈。而作为对比,我们测试了 Tensorflow 模型,矩阵乘法计算延迟只占了 25% 。这说明 LightSeq 的 beam search 优化已经将延迟降到了非常低的水平。

2. 缓存刷新分别占比 10% 和 6% ,比重也较高,但很难继续优化。今后可以尝试减少缓存量(如降低 decoder 层数,降低缓存精度等)来继续降低延迟。

3. 其他运算总计占比 8% 和 6% ,包括了 Layer Normalization、beam search 和中间结果的显存读写等。

可视化结果说明了 LightSeq 已经做到了极致优化,大大提升了推理速度。

传送门:

GitHub项目地址:

https://github.com/bytedance/lightseq

[1] Vaswani, Ashish, et al. "Attention is all you need." Advances in neural information processing systems. 2017.

[2] Devlin, Jacob, et al. "Bert: Pre-training of deep bidirectional transformers for language understanding." arXiv preprint arXiv:1810.04805 (2018).

[3] Brown, Tom B., et al. "Language models are few-shot learners." arXiv preprint arXiv:2005.14165 (2020).

[4] WMT2020, http://www.statmt.org/wmt20/

[5] Li, Jiwei, Will Monroe, and Dan Jurafsky. "A simple, fast diverse decoding algorithm for neural generation." arXiv preprint arXiv:1611.08562 (2016).

[6] TurboTransformers, https://github.com/Tencent/TurboTransformers

[7] FasterTransformer, https://github.com/NVIDIA/DeepLearningExamples/tree/master/FasterTransformer

[8] NVIDIA Triton Inference Server, https://github.com/triton-inference-server/server

[9] LightSeq proto, https://github.com/bytedance/lightseq/tree/master/proto

[10] LightSeq性能评测报告, https://github.com/bytedance/lightseq/blob/master/docs/performance.md

[11] LightSeq Layer Normalization, https://github.com/bytedance/lightseq/blob/master/kernels/transformerKernels.cu.cc#L269

[12] cuBLAS, https://docs.nvidia.com/cuda/cublas/index.html

[13] GPT2,"Language Models are Unsupervised Multitask Learners"

近日,华为推出了MindSpore深度学习实战营,帮助小白更快的上手高性能深度学习框架。

扫描下图二维码,添加小助手微信:mindspore0328,备注21,完成报名。

© THE END 

转载请联系本公众号获得授权

投稿或寻求报道:content@jiqizhixin.com

本文参与 腾讯云自媒体同步曝光计划,分享自微信公众号。
原始发表:2020-10-24,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 机器之心 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
暂无评论
推荐阅读
编辑精选文章
换一批
支持Transformer全流程训练加速,最高加速3倍!字节跳动LightSeq上新
机器之心专栏 机器之心编辑部 Transformer 已经成为众多 NLP 任务以及部分 CV 任务的主流模型,但由于硬件资源匮乏,很多高校实验室或者公司都无法训练很大的模型,而降低批处理大小等措施又会导致训练时间成倍增加。针对这一痛点,字节跳动推出了 LightSeq 训练加速引擎,对 Transformer 训练的整个计算过程进行了优化,最多可以实现 3 倍以上的加速。 如今,NLP 和 CV 领域的大部分任务都将 Transformer 作为基础模型。而早在 2019 年 12 月,字节跳动就开源过
机器之心
2023/03/29
1.1K0
支持Transformer全流程训练加速,最高加速3倍!字节跳动LightSeq上新
最高加速9倍!字节跳动开源8比特混合精度Transformer引擎
如何继续提升速度?降低计算精度是比较直接的方法。2017 年以来,fp16 混合精度技术 [2] 获得了广泛应用。在对模型效果无损的前提下,将模型训练和推理的速度提升了 50% 以上。而为了维持模型效果,更低精度的方法(例如 int8)通常需要使用如下传统方案:
机器之心
2022/12/15
1K0
最高加速9倍!字节跳动开源8比特混合精度Transformer引擎
LightSeq: Transformer高性能加速库
Transformer,Bert模型在NLP领域取得巨大成功,得到广泛应用。而Transformer系列模型大小通常很大,在应用层提供相应服务是一个巨大的挑战。
BBuf
2021/08/19
1.2K0
Transformers中的Beam Search高效实现
在执行解码时,我们有几种选词方案,第一种则是穷举所有可能序列,这种成本过大无法承受。如果每一步都选择概率最大的词,这种解码方式叫做贪心搜索。然而,这种解码算法不一定能找到全局最优的序列,因为如果第一次解码时选择的并不是最大概率的,有可能第二次解码的条件概率却是特别大的。
linhw
2020/08/07
5.5K0
想要千行代码搞定Transformer?这份高效的PaddlePaddle官方实现请收下
目前,无论是从性能、结构还是业界应用上,Transformer 都有很多无可比拟的优势。本文将介绍 PaddlePaddle 的 Transformer 项目,我们从项目使用到源码解析带你玩一玩 NMT。只需千行模型代码,Transformer 实现带回家。
机器之心
2019/04/29
7630
想要千行代码搞定Transformer?这份高效的PaddlePaddle官方实现请收下
什么是大语言模型的 inference(推理) 阶段
大语言模型(Large Language Model, LLM)的推理(Inference)阶段,是指模型在完成训练后,基于输入数据生成预测结果的过程。这一阶段是模型实际应用的核心环节,直接决定了其在对话生成、文本摘要、翻译、问答等任务中的表现。与训练阶段不同,推理阶段不再更新模型参数,而是专注于如何高效、准确地利用已有参数进行预测。以下从多个维度详细解析LLM的推理阶段。
编程小妖女
2025/03/29
1980
什么是大语言模型的 inference(推理) 阶段
使用Seq2Seq+attention实现简单的Chatbot
本文代码的github连接:https://github.com/princewen/tensorflow_practice/tree/master/chat_bot_seq2seq_attention 1、attention model原理介绍 1.1 attention model 为什么要有attention机制 原本的Seq2seq模型只有一个encoder和一个decoder,通常的做法是将一个输入的句子编码成一个固定大小的state,然后作为decoder的初始状态(当然也可以作为每一时刻的输入
石晓文
2018/04/11
5.8K3
使用Seq2Seq+attention实现简单的Chatbot
深度学习对话系统实战篇 -- 简单 chatbot 代码实现
本文的代码都可以到我的 github 中下载:https://github.com/lc222/seq2seq_chatbot 前面几篇文章我们已经介绍了 seq2seq 模型的理论知识,并且从 tensorflow 源码层面解析了其实现原理,本篇文章我们会聚焦于如何调用 tf 提供的 seq2seq 的 API,实现一个简单的 chatbot 对话系统。这里先给出几个参考的博客和代码: tensorflow 官网 API 指导(http://t.cn/R8MiZcR ) Chatbots with Se
AI研习社
2018/03/16
2.2K0
深度学习对话系统实战篇 -- 简单 chatbot 代码实现
鹅厂专家讲透AI文本生成解码策略与代码实现
本文以 huggingface-transformers 的文本生成解码代码为例,对文本生成常用的五种解码策略 greedy search、beam search、sample、sample and rank & beam sample、group beam search 进行逐行解读。每一小节首先会介绍对应解码策略的原理,接着给出供大家快速上手的代码示例,并逐层介绍调用过程,最后给出所使用到的所有类之间调用的时序图。由简到繁再到简,帮助大家建立起一个整体的认识,并且能够快速应用。干货较多,欢迎阅读并进行实践尝试。
腾讯云开发者
2023/06/13
1.8K0
鹅厂专家讲透AI文本生成解码策略与代码实现
如何让Transformer在GPU上跑得更快?快手:需要GPU底层优化
从 Google 在 2017 年发表著名的「Attention is all you need」文章开始,Transformer 架构就开始攻占 AI 的多个领域:不仅成为自然语言处理(NLP)和语音等很多 AI 应用的默认核心架构,同时也成功跨界到计算机视觉方向,在超分辨率、图像识别和物体检测中取得 state-of-the-art 的性能。
机器之心
2021/02/23
1.7K0
如何让Transformer在GPU上跑得更快?快手:需要GPU底层优化
有钱任性:英伟达训练80亿参数量GPT-2,1475块V100 53分钟训练BERT
2)将 BERT 的推理时间缩短到了 2.2 毫秒(10 毫秒已经是业界公认的高水平);
机器之心
2019/08/20
1.9K0
【序列到序列学习】无注意力机制的神经机器翻译
生成古诗词 序列到序列学习实现两个甚至是多个不定长模型之间的映射,有着广泛的应用,包括:机器翻译、智能对话与问答、广告创意语料生成、自动编码(如金融画像编码)、判断多个文本串之间的语义相关性等。 在序列到序列学习任务中,我们首先以机器翻译任务为例,提供了多种改进模型供大家学习和使用。包括:不带注意力机制的序列到序列映射模型,这一模型是所有序列到序列学习模型的基础;使用Scheduled Sampling改善RNN模型在生成任务中的错误累积问题;带外部记忆机制的神经机器翻译,通过增强神经网络的记忆能力,来完
用户1386409
2018/04/02
9530
【序列到序列学习】无注意力机制的神经机器翻译
用了这个技术,我让模型训练和推理快了好几倍
Transformer系列模型都在用吧? Hugging Face都在用吧? Fairseq都在用吧?
godweiyang
2022/11/14
7880
用了这个技术,我让模型训练和推理快了好几倍
大语言模型的幕后:如何构建一个全球级AI语言系统
在过去的几年里,大型语言模型(LLMs)如OpenAI的GPT系列、Google的BERT及其衍生版本等,已经成为人工智能领域的前沿技术。这些模型不仅在自然语言处理(NLP)任务中取得了显著成果,而且正在重塑从聊天机器人到自动化创作的多个领域。尽管这些技术的应用已经非常广泛,但很多人对于它们是如何构建的,尤其是如何打造一个全球级AI语言系统,仍然存在很多疑问。
一键难忘
2025/03/25
1390
如何用PaddlePaddle实现机器翻译?
机器翻译(machine translation, MT)是用计算机来实现不同语言之间翻译的技术。需要翻译的语言通常称为源语言(source language),翻译成的结果语言称为目标语言(target language)。机器翻译即实现从源语言到目标语言转换的过程,是自然语言处理的重要研究领域之一。
用户1386409
2019/06/06
1.5K0
如何用PaddlePaddle实现机器翻译?
《机器学习实战:基于Scikit-Learn、Keras和TensorFlow》第16章 使用RNN和注意力机制进行自然语言处理
自然语言处理的常用方法是循环神经网络。所以接下来会从 character RNN 开始(预测句子中出现的下一个角色),继续介绍RNN,这可以让我们生成一些原生文本,在过程中,我们会学习如何在长序列上创建TensorFlow Dataset。先使用的是无状态RNN(每次迭代中学习文本中的随机部分),然后创建一个有状态RNN(保留训练迭代之间的隐藏态,可以从断点继续,用这种方法学习长规律)。然后,我们会搭建一个RNN,来做情感分析(例如,读取影评,提取评价者对电影的感情),这次是将句子当做词的序列来处理。然后会介绍用RNN如何搭建编码器-解码器架构,来做神经网络机器翻译(NMT)。我们会使用TensorFlow Addons项目中的 seq2seq API 。
SeanCheney
2019/12/26
1.9K0
《机器学习实战:基于Scikit-Learn、Keras和TensorFlow》第16章 使用RNN和注意力机制进行自然语言处理
解密Prompt系列8. 无需训练让LLM支持超长输入:知识库 & Unlimiformer & PCW & NBCE
这一章我们聊聊有哪些方案可以不用微调直接让大模型支持超长文本输入,注意这里主要针对无限输入场景。之前在BERT系列中我们就介绍过稀疏注意力和片段递归的一些长文本建模方案长文本建模 BigBird & Longformer & Reformer & Performer,不过以上方案无一例外都需要在训练阶段引入。针对当前大模型微调成本高的问题,更多研究放到如何在模型外部支持长文本输入。先讨论下为啥当前的大模型会在推理时存在输入长度的限制,主要有以下几点原因
风雨中的小七
2023/06/12
5.9K0
解密Prompt系列8. 无需训练让LLM支持超长输入:知识库 & Unlimiformer & PCW & NBCE
BERT 是如何构建模型的
前面我写了一篇文章来讲 BERT 是如何分词的,现在,轮到该说说 BERT 模型是如何定义的了。
Alan Lee
2020/06/24
2.5K0
BERT 是如何构建模型的
腾讯开源了 | 微信也在用的Transformer加速推理工具(附源码链接)
自Attention机制提出后,加入attention的Seq2seq模型在各个任务上都有了提升,所以现在的seq2seq模型指的都是结合rnn和attention的模型,具体原理可以参考传送门的文章。之后google又提出了解决sequence to sequence问题的transformer模型,用全attention的结构代替了lstm,在翻译任务上取得了更好的成绩。本文主要介绍《Attention is all you need》这篇文章,自己在最初阅读的时候还是有些不懂,希望可以在自己的解读下让大家更快地理解这个模型。
计算机视觉研究院
2020/05/04
1.4K0
AI智能体研发之路-模型篇(二):DeepSeek-V2-Chat 训练与推理实战
5月6日私募基金幻方发布DeepSeek-V2,千亿级模型,每百万Tokens仅需1元-2元。5月15日,字节发布白菜价的豆包大模型,5月21日阿里、百度相机大幅下调甚至免费开放自家商用模型接口,大模型价格战正式打响。而被誉为大模型价格屠夫的“DeepSeek-V2”到底是怎么个事儿,是否可以进行训练和推理,今天我们来展开讲一讲。
LDG_AGI
2024/08/13
1.5K0
AI智能体研发之路-模型篇(二):DeepSeek-V2-Chat 训练与推理实战
推荐阅读
相关推荐
支持Transformer全流程训练加速,最高加速3倍!字节跳动LightSeq上新
更多 >
领券
💥开发者 MCP广场重磅上线!
精选全网热门MCP server,让你的AI更好用 🚀
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档
本文部分代码块支持一键运行,欢迎体验
本文部分代码块支持一键运行,欢迎体验