1 Star 3 Fork 3

Hauk Zero/Transformer Demo

加入 Gitee
与超过 1200万 开发者一起发现、参与优秀开源项目,私有仓库也完全免费 :)
免费加入
该仓库未声明开源许可证文件(LICENSE),使用请关注具体项目描述及其代码上游依赖。
克隆/下载
贡献代码
同步代码
取消
提示: 由于 Git 不支持空文件夾,创建文件夹后会生成空的 .keep 文件
Loading...
README

Transformer Demo

跟着原论文 "Attention Is All You Need" 的主要框架走,一步一步用 pytorch 搭建一个简单的 Transformer 示例。

本项目主要借鉴了 nlp-tutorial/5-1.Transformer ,并在其基础上进行模块文件拆分及重要代码注释,使其结构更加清晰。

  • 2024.7.27 更新 :
    • 输入序列无需手动填充空位,更新utils/sen2vec()函数,自动将输入序列用填充字符填充至max_len大小
    • 更新utils/vec2sen()函数,自动去除末尾多余占位符,遇到第一个结束符后直接停止
    • 更新模型的greedy_decoder(),自动解码直到遇到全结束符或全占位符或长度超限
    • 使用 kv-cache 加快解码
  • 2024.9.10 更新 :
    • 分支 moe中使用手写 MoE 模块代替原来的MLP

How to Start

python main.py

项目结构

  • model:
    • config.json: 包含模型构建中需要用到的参数
    • vocab.json: 示例词表
  • utils.py: 杂项函数
  • pe.py: 位置编码模块
  • mha.py: 多头注意力机制模块
  • ffn.py: 前馈神经网络模块
  • enc.py: 编码模块
  • dec.py: 解码模块
  • trm.py: Transformer 模型
  • main.py: 主函数文件

原论文中关于模型搭建的重要图片

  • 主要框架

arch

  • 位置编码

pe

  • 注意力机制

ai af mha

  • 前馈神经网络

ffn

空文件

简介

跟着原论文主要框架走,像搭积木一样一步一步构建出一个基础的Transformer模型 展开 收起
取消

发行版

暂无发行版

贡献者

全部

近期动态

不能加载更多了
马建仓 AI 助手
尝试更多
代码解读
代码找茬
代码优化
1
https://gitee.com/haukzero/transformer-demo.git
git@gitee.com:haukzero/transformer-demo.git
haukzero
transformer-demo
Transformer Demo
moe

搜索帮助

371d5123 14472233 46e8bd33 14472233