素材匹配网站儿童手工制作

张小明 2026/1/10 1:35:23
素材匹配网站,儿童手工制作,磁力,肇庆网站优化建设本文详解Transformer两大核心组件Encoder和Decoder#xff0c;重点讲解位置编码Positional Encoding的三角函数实现与掩码Mask操作(padding mask和casual mask)的作用。通过PyTorch代码示例展示具体实现方法#xff0c;并以英文翻译任务为例展示Transformer模型的训练与推理过…本文详解Transformer两大核心组件Encoder和Decoder重点讲解位置编码Positional Encoding的三角函数实现与掩码Mask操作(padding mask和casual mask)的作用。通过PyTorch代码示例展示具体实现方法并以英文翻译任务为例展示Transformer模型的训练与推理过程帮助读者深入理解Transformer架构细节与应用实践。一、Encoder和Decoder首先看一下“Attention is all you need”原文给出的Transformer模型整体结构图左半部分是编码器Encoder右半部分是解码器DecoderEncoder负责将句子的可见部分编码为key和valueDecoder部分负责往后接着生成新的句子内容。从细节来看Encoder和Decoder都包含了位置编码Positional Encoding子模块Decoder还额外包含了掩码Mask操作下面将一一分析它们的作用。1. 位置编码Positional Encoding上一篇我们讲述注意力分数计算时使用了一个长度为四个分词的句子如下图所示可见第一个分词a1和离它最近的a2、最远的a4都是相同的计算方式完全忽略了分词之间的相对位置解决办法是对每个分词的位置进行编码然后加到词嵌入向量上。一种常用的位置编码是三角函数编码其中pos是分词在句子中的位置编号d 是词嵌入向量的长度i 是词嵌入向量的第 i 维偶数维度用正弦编码奇数维度用余弦编码同一位置不同维度差90°的相位不同位置相同维度周期性变化维度越低周期性变化越快。要想两个位置pos1和pos2的位置编码完全相同需要满足左边是整数、右边是无理数这个条件是不可能成立的所以三角函数位置编码兼具高低频变化成分以及唯一性。词嵌入维度512、句子长度1024的位置编码矩阵三角函数位置编码实现import torch from torch import nn class PositionEncoding(nn.Module): def __init__(self, d_model512, max_seq_len1024): super().__init__() # shape [max_seq_len, 1] pos torch.arange(0, max_seq_len).unsqueeze(1) item 1 / 10000 ** (torch.arange(0, d_model) / d_model) tmp_pos pos * item pe torch.zeros(max_seq_len, d_model) pe[:, 0::2] torch.sin(tmp_pos[:, 0::2]) pe[:, 1::2] torch.cos(tmp_pos[:, 1::2]) pe pe.unsqueeze(0) self.register_buffer(pe, pe, False) def forward(self, x): batch, seq_len, _ x.shape pe self.pe return x pe[:, :seq_len, :]2. 掩码Mask操作掩码操作就是按某种条件强制地屏蔽矩阵中的某些位置的值Transformer中的掩码操作可以分为padding mask和casual mask它们分别应对两个问题为了对不同长短的句子进行批量训练推理需要将较短的句子使用一个特殊的pad token补齐到固定长度另外要生成的句子也是作为一个矩阵预先填充pad token。pad token只是作为一个占位符我们并不想让它参与注意力所以在计算出注意力分数矩阵后会将pad token参与计算的那些数值屏蔽掉比如置为一个很小的数值1e-9)在训练时我们会将问题句子前半部分和答案句子后半部分全部给到模型而推理时模型只能看到问题不能看后面的答案这导致了训练和推理过程的不一致。为了解决这个问题在训练时可以用一个上三角矩阵来遮挡句子后半部分让模型一次只能看到一个分词。def generate_mask(self, query, key, triuFalse): # query shape: [batch, seq_q] device query.device batch, seq_q query.shape _, seq_k key.shape # key shape: [batch, seq_k] mask (key self.pad_idx).unsqueeze(1).unsqueeze(2) # mask shape: [batch, 1, 1, seq_k] mask mask.expand(batch, 1, seq_q, seq_k).to(device) # mask shape: [batch, 1, seq_q, seq_k] if triu: dst_triu_mask torch.triu( torch.ones(seq_q, seq_k, dtypetorch.bool), diagonal1 ) dst_triu_mask ( dst_triu_mask.unsqueeze(0) .unsqueeze(1) .expand(batch, 1, seq_q, seq_k) .to(device) ) mask mask | dst_triu_mask return mask def forward(self, src, dst): # src_mask用于屏蔽padding的影响这些padding是为了让句子对齐 src_mask self.generate_mask(src, src) # dst_mask用于同时屏蔽padding和未见部分后者需要上三角mask dst_mask self.generate_mask(dst, dst, True) # src_dst_mask仅用于屏蔽key的padding不需要上三角 src_dst_mask self.generate_mask(dst, src)明白了位置编码和掩码操作后Encoder和Decoder的实现就比较容易了就剩下一些layer堆叠和residual的常规操作可以参看资料[4]的详细实现。二、训练和推理过程这里使用一个英文翻译的seq2seq任务来验证Transformer模型效果使用的数据集部分如下包含了29909条中英文句子对经过T5 tokenizer后最长的句子包括39个分词再在每一个句子开头加上一个BOS。原始数据集经过划分80%做训练、20%做测试核心训练代码如下with tqdm.tqdm(totalepochs) as t: for epoch in range(1, epochs 1): model.train() for index, (en_in, de_in, de_label) in enumerate(train_loader): en_in, de_in, de_label (en_in.to(device),de_in.to(device),de_label.to(device)) outputs model(en_in, de_in) # outputs shape: [batch, seq_len, dst_vocab_size] outputs_ outputs.reshape(-1, outputs.shape[-1]) # outputs_ shape: [batch * seq_len, dst_vocab_size] # de_label shape: [batch, seq_len] de_label_ de_label.reshape(-1) # de_label_ shape: [batch * seq_len] train_loss loss_fun(outputs_, de_label_) preds torch.argmax(outputs_, -1) label_mask de_label_ ! pad_idx correct preds de_label_ acc torch.sum(label_mask * correct) / torch.sum(label_mask) optimizer.zero_grad() train_loss.backward() torch.nn.utils.clip_grad_norm_(model.parameters(), 1) optimizer.step()训练日志部分推理测试代码略去了模型初始化和权重加载input_ [My mother is cooking, I won!] en_in tokenizer(input_, paddingmax_length,max_lengthmax_seq_len,truncationTrue,return_tensorspt,)[input_ids].to(device) de_in torch.ones(batch_size, max_seq_len, dtypetorch.long).to(device) * pad_idx de_in[:,0] tokenizer.bos_token_id model.eval() with torch.no_grad(): for i in range(1, de_in.shape[1]): pred_ model(en_in, de_in) for j in range(batch_size): de_in[j, i] torch.argmax(pred_[j, i - 1]) for i in range(de_in.shape[0]): in_ input_[i] out [] for token_id in de_in[i]: if token_id tokenizer.eos_token_id: break out.append(tokenizer.decode(token_id)) print(in_, -, out)推理结果如何学习大模型 AI 由于新岗位的生产效率要优于被取代岗位的生产效率所以实际上整个社会的生产效率是提升的。但是具体到个人只能说是“最先掌握AI的人将会比较晚掌握AI的人有竞争优势”。这句话放在计算机、互联网、移动互联网的开局时期都是一样的道理。我在一线科技企业深耕十二载见证过太多因技术卡位而跃迁的案例。那些率先拥抱 AI 的同事早已在效率与薪资上形成代际优势我意识到有很多经验和知识值得分享给大家也可以通过我们的能力和经验解答大家在大模型的学习中的很多困惑。我们整理出这套AI 大模型突围资料包✅ 从零到一的 AI 学习路径图✅ 大模型调优实战手册附医疗/金融等大厂真实案例✅ 百度/阿里专家闭门录播课✅ 大模型当下最新行业报告✅ 真实大厂面试真题✅ 2025 最新岗位需求图谱所有资料 ⚡️ 朋友们如果有需要《AI大模型入门进阶学习资源包》下方扫码获取~① 全套AI大模型应用开发视频教程包含提示工程、RAG、LangChain、Agent、模型微调与部署、DeepSeek等技术点② 大模型系统化学习路线作为学习AI大模型技术的新手方向至关重要。 正确的学习路线可以为你节省时间少走弯路方向不对努力白费。这里我给大家准备了一份最科学最系统的学习成长路线图和学习规划带你从零基础入门到精通③ 大模型学习书籍文档学习AI大模型离不开书籍文档我精选了一系列大模型技术的书籍和学习文档电子版它们由领域内的顶尖专家撰写内容全面、深入、详尽为你学习大模型提供坚实的理论基础。④ AI大模型最新行业报告2025最新行业报告针对不同行业的现状、趋势、问题、机会等进行系统地调研和评估以了解哪些行业更适合引入大模型的技术和应用以及在哪些方面可以发挥大模型的优势。⑤ 大模型项目实战配套源码学以致用在项目实战中检验和巩固你所学到的知识同时为你找工作就业和职业发展打下坚实的基础。⑥ 大模型大厂面试真题面试不仅是技术的较量更需要充分的准备。在你已经掌握了大模型技术之后就需要开始准备面试我精心整理了一份大模型面试题库涵盖当前面试中可能遇到的各种技术问题让你在面试中游刃有余。以上资料如何领取为什么大家都在学大模型最近科技巨头英特尔宣布裁员2万人传统岗位不断缩减但AI相关技术岗疯狂扩招有3-5年经验大厂薪资就能给到50K*20薪不出1年“有AI项目经验”将成为投递简历的门槛。风口之下与其像“温水煮青蛙”一样坐等被行业淘汰不如先人一步掌握AI大模型原理应用技术项目实操经验“顺风”翻盘这些资料真的有用吗这份资料由我和鲁为民博士(北京清华大学学士和美国加州理工学院博士)共同整理现任上海殷泊信息科技CEO其创立的MoPaaS云平台获Forrester全球’强劲表现者’认证服务航天科工、国家电网等1000企业以第一作者在IEEE Transactions发表论文50篇获NASA JPL火星探测系统强化学习专利等35项中美专利。本套AI大模型课程由清华大学-加州理工双料博士、吴文俊人工智能奖得主鲁为民教授领衔研发。资料内容涵盖了从入门到进阶的各类视频教程和实战项目无论你是小白还是有些技术基础的技术人员这份资料都绝对能帮助你提升薪资待遇转行大模型岗位。以上全套大模型资料如何领取
版权声明:本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!

临沂网站制作价格网页搜索公众号文章

MDCX容器化部署实战:从零构建高效应用运行环境 【免费下载链接】mdcx-docker 在Docker容器中运行 MDCX,并通过Web界面或远程桌面进行控制。Run MDCX in a Docker container, accessible and controllable via a web interface or remote desktop. 项目…

张小明 2026/1/7 4:02:36 网站建设

企业怎样建立自己的网站开平网站建设

晶体结构预测:基于TensorFlow的密度泛函理论加速 在材料科学的前沿探索中,一个看似简单却极具挑战的问题始终萦绕在研究者心头:如何从近乎无限的原子排列组合中,快速锁定那些具备优异性能的晶体结构?传统方法依赖密度…

张小明 2026/1/7 19:49:16 网站建设

专业app网站建设自主软件开发平台

使用Miniconda管理多个PyTorch版本进行对比实验 在深度学习研究中,你有没有遇到过这样的情况:复现一篇论文时代码跑不起来,排查半天发现不是模型写错了,而是PyTorch版本对不上?明明torch.nn.functional里的一个函数在文…

张小明 2026/1/7 14:53:28 网站建设

品牌网站建设有哪两种模式景区网站建设

还在为网易云音乐功能单一而困扰?BetterNCM安装器为你打开插件世界的大门,让你的音乐播放器从基础工具升级为全能娱乐中心。这款专为网易云音乐设计的插件管理器,通过丰富的扩展生态彻底改变你的使用体验。 【免费下载链接】BetterNCM-Instal…

张小明 2026/1/7 15:24:36 网站建设

自助建站空间怎么用网站提交收录入口链接

Chromedriver Selenium 自动化操作 VoxCPM-1.5-TTS-WEB-UI 网页界面 在语音合成技术快速演进的今天,大模型驱动的 TTS(Text-to-Speech)系统已不再是实验室里的“黑科技”,而是逐步进入智能客服、有声内容生产、个性化语音助手等…

张小明 2026/1/7 19:49:10 网站建设

酒店网站建设方案ppthtml工具软件

👉 这是一个或许对你有用的社群🐱 一对一交流/面试小册/简历优化/求职解惑,欢迎加入「芋道快速开发平台」知识星球。下面是星球提供的部分资料: 《项目实战(视频)》:从书中学,往事中…

张小明 2026/1/9 3:38:38 网站建设