跳转至

快速开始

欢迎使用 Genesis 深度学习框架!本指南将帮助您在几分钟内开始使用 Genesis。

🎯 概述

Genesis 是一个专为学习和研究设计的轻量级深度学习框架,它提供了:

  • 简洁直观的API设计
  • 高性能GPU加速计算
  • 完整的神经网络训练功能
  • 与PyTorch生态良好的兼容性
  • 混合精度训练支持(FP16/BF16)
  • 内置LLM模型如Qwen

⚡ 5分钟快速体验

1. 安装 Genesis

Bash
# 安装核心依赖
pip install torch triton numpy cuda-python

# 克隆代码仓库
git clone https://github.com/phonism/genesis.git
cd genesis

# 安装 Genesis
pip install -e .

2. 第一个神经网络

Python
import genesis
import genesis.nn as nn

# 定义一个简单的多层感知机
class MLP(nn.Module):
    def __init__(self, input_dim, hidden_dim, output_dim):
        super().__init__()
        self.layer1 = nn.Linear(input_dim, hidden_dim)
        self.layer2 = nn.Linear(hidden_dim, output_dim)
        self.relu = nn.ReLU()

    def forward(self, x):
        x = self.relu(self.layer1(x))
        return self.layer2(x)

# 创建模型和数据
model = MLP(784, 128, 10)
x = genesis.randn(32, 784)  # 批次大小32,输入维度784

# 前向传播
output = model(x)
print(f"输出形状: {output.shape}")  # torch.Size([32, 10])

3. 训练循环

Python
import genesis.optim as optim

# 创建优化器和损失函数
optimizer = optim.Adam(model.parameters(), lr=0.001)
criterion = nn.CrossEntropyLoss()

# 模拟训练数据
targets = genesis.randint(0, 10, (32,))

# 训练一个批次
optimizer.zero_grad()        # 清零梯度
output = model(x)           # 前向传播
loss = criterion(output, targets)  # 计算损失
loss.backward()             # 反向传播
optimizer.step()            # 更新参数

print(f"损失: {loss.item():.4f}")

📚 核心概念

张量 (Tensor)

Genesis中的基础数据结构,支持自动微分:

Python
import genesis

# 创建张量
x = genesis.tensor([1.0, 2.0, 3.0], requires_grad=True)
y = genesis.tensor([4.0, 5.0, 6.0], requires_grad=True)

# 执行运算
z = x * y + x.sum()
z.backward(genesis.ones_like(z))

print(f"x的梯度: {x.grad}")  # [5., 6., 7.]
print(f"y的梯度: {y.grad}")  # [1., 2., 3.]

模块 (Module)

神经网络组件的基类:

Python
import genesis.nn as nn

class CustomLayer(nn.Module):
    def __init__(self, in_features, out_features):
        super().__init__()
        self.weight = genesis.randn(out_features, in_features, requires_grad=True)
        self.bias = genesis.zeros(out_features, requires_grad=True)

    def forward(self, x):
        return genesis.functional.linear(x, self.weight, self.bias)

# 使用自定义层
layer = CustomLayer(10, 5)
input_tensor = genesis.randn(3, 10)
output = layer(input_tensor)

优化器 (Optimizer)

参数更新算法:

Python
import genesis.optim as optim

# 不同的优化器选择
sgd_optimizer = optim.SGD(model.parameters(), lr=0.01, momentum=0.9)
adam_optimizer = optim.Adam(model.parameters(), lr=0.001)
adamw_optimizer = optim.AdamW(model.parameters(), lr=0.001, weight_decay=0.01)

🛠️ 环境配置

硬件要求

  • CPU: 现代多核处理器
  • 内存: 最少8GB RAM,推荐16GB+
  • GPU: NVIDIA GPU with CUDA支持 (推荐)
  • 存储: 至少2GB可用空间

软件依赖

Bash
# Python环境
Python >= 3.8

# 核心依赖
torch >= 2.0.0
triton >= 2.0.0
numpy >= 1.21.0
cuda-python >= 11.8.0  # GPU支持

# 可选依赖
matplotlib >= 3.5.0  # 用于可视化
tqdm >= 4.64.0      # 进度条
wandb >= 0.13.0     # 实验跟踪

📖 下一步

现在你已经了解了Genesis的基础用法,可以继续探索:

🎓 深入学习

🔍 架构理解

🚀 高级特性

❓ 常见问题

Q: Genesis与PyTorch有什么区别?

A: Genesis是教育导向的框架,代码更简洁易懂,适合学习深度学习的内部实现。PyTorch更适合生产环境使用。

Q: 可以在生产环境中使用Genesis吗?

A: Genesis主要用于教育和研究,虽然功能完整,但建议生产环境使用更成熟的框架如PyTorch。

Q: 如何获得帮助?

A: 可以通过GitHub Issues、Discussions或查看详细文档获得帮助。


🎉 准备好了吗?

让我们开始深入了解Genesis吧!

详细安装指南 完整教程