Liger Kernel 使用教程

Liger Kernel 使用教程

Liger-Kernel Efficient Triton Kernels for LLM Training Liger-Kernel 项目地址: https://gitcode.com/gh_mirrors/li/Liger-Kernel

1. 项目介绍

Liger Kernel 是由 LinkedIn 开发的一系列针对语言模型训练的优化 Triton 内核。它通过内核融合、就地替换和分块技术,可以有效地提高多 GPU 训练的吞吐量,增加 20%,同时减少内存使用,降低 60%。Liger Kernel 与 PyTorch FSDP、DeepSpeed 和 DDP 等多 GPU 设置兼容,并且易于使用,只需一行代码即可为 Hugging Face 模型打上补丁。

2. 项目快速启动

首先,确保安装了以下依赖项:

  • CUDA
  • torch (版本 >= 2.1.2)
  • triton (版本 >= 2.3.0)

安装稳定版 Liger Kernel:

pip install liger-kernel

安装夜间版 Liger Kernel:

pip install liger-kernel-nightly

安装从源代码:

git clone https://github.com/linkedin/Liger-Kernel.git
cd Liger-Kernel
pip install -e .

接下来,使用以下代码之一来应用 Liger Kernel:

使用 AutoLigerKernelForCausalLM

这是最简单的方法,不需要导入特定模型的修补 API。

from liger_kernel.transformers import AutoLigerKernelForCausalLM
model = AutoLigerKernelForCausalLM.from_pretrained("path/to/some/model")

应用模型特定修补 API

使用修补 API,可以为 Hugging Face 模型应用优化的 Liger 内核。

import transformers
from liger_kernel.transformers import apply_liger_kernel_to_llama

apply_liger_kernel_to_llama()
model = transformers.AutoModelForCausalLM.from_pretrained("path/to/llama/model")

自定义模型组合

可以选择单独的内核来组合自己的模型。

from liger_kernel.transformers import LigerFusedLinearCrossEntropyLoss
import torch.nn as nn

model = nn.Linear(128, 256).cuda()
loss_fn = LigerFusedLinearCrossEntropyLoss()
input = torch.randn(4, 128)

3. 应用案例和最佳实践

以下是一些使用 Liger Kernel 的案例和最佳实践:

  • Hugging Face Trainer: 在 Alpaca 数据集上使用 4 个 A100 GPU 和 FSDP,训练 LLaMA 3-8B 模型,速度提高约 20%,内存减少超过 40%。
  • Lightning Trainer: 在 MMLU 数据集上使用 8 个 A100 GPU 和 DeepSpeed ZeRO3,训练 LLaMA3-8B 模型,吞吐量增加 15%,内存使用减少 40%。
  • Medusa 多头 LLM(重训练阶段): 使用 8 个 A100 GPU 和 FSDP,内存使用减少 80%,吞吐量提高 40%。

4. 典型生态项目

Liger Kernel 作为一个开源项目,是 Triton 生态系统的一部分,它可以与以下项目配合使用:

  • Flash Attention: 用于高效的注意力机制计算。
  • PyTorch FSDP: Facebook 的分布式训练框架,用于模型并行训练。
  • Microsoft DeepSpeed: 微软的开源库,用于优化和简化深度学习训练。

通过整合这些生态项目,开发者可以进一步优化模型训练过程,提高效率和性能。

Liger-Kernel Efficient Triton Kernels for LLM Training Liger-Kernel 项目地址: https://gitcode.com/gh_mirrors/li/Liger-Kernel

创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

郦嵘贵Just

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值