Skip to content

131AIClub/SimpleLLM

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

6 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

SimpleLLM

简体中文 | English

主要使用PyTorch和尽量少的依赖,从零开始实现LLM的结构与训练方法。 其中许多代码来源于我的这个仓库

项目简介

这是一个以个人学习大模型结构与训练过程为目的建立的项目,主要用于学习与分享。项目坚持从零手搓的理念,除了PyTorch外尽可能地减少对其他库的依赖,同时避免对已有开源llm代码的复制粘贴,通过纯手工实现来深入理解大语言模型的核心机制。

目标

  • 🧠 思路清晰:代码注释详细,便于学习理解
  • 🔧 手工实现:核心组件均为手动实现,不依赖高级封装
  • 📚 结构清晰:模块化设计,逐步构建完整的LLM
  • 💡 实践性强:可运行的完整实现,不仅仅是理论

项目结构

SimpleLLM/
├── model/             # 模型结构定义
│   ├── module.py      # 基础模块 (MHA, FeedForward, etc.)
│   └── model.py 	   # 模型定义
├── train/             # 训练相关脚本
├── utils/             # 工具函数
│   └── mask.py        # mask生成相关
├── outputs/           # 训练输出文件夹
├── cli.py             # 命令行接口
├── README.md          # 项目说明
└── README-en.md       # 英语版项目说明

已实现功能

核心模块

  • Multi-Head Attention - 多头注意力机制
  • Multi-Query Attention - 多查询注意力 (MQA)
  • Group-Query Attention - 分组查询注意力 (GQA)
  • RoPE - 旋转位置编码
  • Feed Forward - 前馈网络
  • Layer Normalization - 层归一化
  • RMS Normalization - RMS归一化

模型架构

  • TinyLlama3 - 缩小规模的llama3模型

训练组件

...

快速开始

环境要求

...

安装依赖

...

使用示例

...

许可证

本项目采用 MIT License 开源协议。

联系方式

  • GitHub: @GlowLED
  • 如有问题欢迎提Issue讨论

⭐ 如果这个项目对您的学习有帮助,欢迎给个Star!

About

Implement and train a Tiny LLM from scratch!

Resources

License

Stars

Watchers

Forks

Contributors

Languages