LitGPT

我更推荐 LitGPT(Lightning-AI/litgpt):它把 预训练(from scratch / continued pretrain)→ 微调(LoRA/QLoRA/全量)→ 推理(chat/serve) 做成了一套统一的 workflow,而且强调"from scratch implementations / no abstractions / beginner friendly",很适合边跑边读代码学原理。

项目地址(GitHub):

https://github.com/Lightning-AI/litgpt

为什么它适合你这个"展示 + 学原理"的目标

• 一套 CLI 覆盖全流程:litgpt pretrain / finetune / chat / serve / evaluate,从训练到部署推理都能跑通。

• 可视化/实验追踪方便:配置里支持 logger_name: wandb / tensorboard / csv,很容易把 loss、吞吐、显存等曲线拉起来。

• 多卡扩展友好:配置项里直接有 devices、num_nodes,并且 README 里也明确覆盖 FSDP、可扩展到多 GPU 规模。

• Jupyter 友好:Lightning 系生态在 notebook 里跑多 GPU 是常规用法;LitGPT 也有"在 notebook 或终端运行微调"的示例路径。

在 Jupyter 里从 0 跑通(训练→微调→推理→可视化)的最小路径

下面命令都可以直接在 notebook 用 ! 运行。

  1. 安装

!pip install 'litgpt[extra]'

  1. 预训练/继续预训练(从你自己的文本文件夹开始)

LitGPT README 给了一个非常清晰的例子:用 Pythia-160M + TextFiles 数据源,把你放在 custom_texts/ 的文本喂进去训练,然后直接 chat 测试。

!mkdir -p custom_texts

你可以把自己的语料 .txt 放进 custom_texts/

这里用古登堡做个演示(可删)

!curl -L https://www.gutenberg.org/cache/epub/24440/pg24440.txt -o custom_texts/book1.txt

!curl -L https://www.gutenberg.org/cache/epub/26393/pg26393.txt -o custom_texts/book2.txt

1) 只下载 tokenizer

!litgpt download EleutherAI/pythia-160m --tokenizer_only True

2) 预训练(或"继续预训练"也用 pretrain,只是多传 initial_checkpoint_dir)

!litgpt pretrain EleutherAI/pythia-160m \

--tokenizer_dir EleutherAI/pythia-160m \

--data TextFiles \

--data.train_data_path "custom_texts/" \

--train.max_tokens 10000000 \

--out_dir out/custom-pretrain

  1. 微调(用 JSON 数据集快速看懂 SFT 流程)

README 也给了一个 litgpt finetune microsoft/phi-2 --data JSON ... 的最小例子:下载一个 JSON 数据集→微调→chat 测试→serve 部署。

!curl -L https://huggingface.co/datasets/ksaw008/finance_alpaca/resolve/main/finance_alpaca.json -o my_custom_dataset.json

!litgpt finetune microsoft/phi-2 \

--data JSON \

--data.json_path my_custom_dataset.json \

--data.val_split_fraction 0.1 \

--out_dir out/custom-finetune

!litgpt chat out/custom-finetune/final

!litgpt serve out/custom-finetune/final

  1. 用 8 张卡(5090×8)怎么接入

LitGPT 的配置里就有 devices / num_nodes,你可以直接用 YAML 配置把 devices: 8 打开(以及把 logger 切到 tensorboard/wandb)。

最简单做法:从它的 config hub 选一个配置(README 里展示了 --config ...lora.yaml 的用法),然后覆盖关键参数。

(你也可以自己写一个很小的 config,只保留 devices / logger_name / precision 等关键项。)

  1. 可视化(TensorBoard / W&B)

• Lightning 默认就支持 TensorBoard logger,并会把日志写到目录里;LitGPT 配置也能选 logger_name: tensorboard。

• 在 notebook 环境里跑训练/多 GPU 也是 Lightning 的常见用法。

备选(如果你更偏"工程化大规模训练/基准/部署全家桶")

• MosaicML LLM Foundry:更偏"训练/微调/评测/推理基准"一体化工程代码库,适合做更接近生产的 pipeline。

• nanoGPT:极简、从零实现最适合读代码学 Transformer 训练本质,但"微调/部署/可视化一体化"不如 LitGPT 开箱即用。

如果你的目标是 在 Jupyter 里用 8 卡把"预训练→微调→推理→可视化"完整演示一遍,并且还能顺手读源码学原理,LitGPT 基本是目前最省心的一站式选择。

相关推荐
做cv的小昊1 小时前
大语言模型系统:【CMU 11-868】课程学习笔记02——GPU编程基础1(GPU Programming Basics 1)
人工智能·笔记·学习·语言模型·llm·transformer·agent
炽烈小老头6 小时前
【每天学习一点算法 2026/03/08】相交链表
学习·算法·链表
red_redemption8 小时前
自由学习记录(130)
学习·soa·aos·ecs已成核心包·shading!=ps
双叶8368 小时前
(Python)Python爬虫入门教程:从零开始学习网页抓取(爬虫教学)(Python教学)
后端·爬虫·python·学习
天外来鹿9 小时前
Map/Set/WeakMap/WeakSet学习笔记
前端·javascript·笔记·学习
峥嵘life9 小时前
Android16 【GTS】 GtsDevicePolicyTestCases 测试存在Failed项
android·linux·学习
leixj02510 小时前
SVN学习笔记
笔记·学习·svn
毕设源码_廖学姐10 小时前
计算机毕业设计springboot古诗词学习App 基于SpringBoot的中华经典诗文数字化研习平台 SpringBoot框架下的传统诗词文化移动学习系统
spring boot·学习·课程设计
盐焗西兰花11 小时前
鸿蒙学习实战之路-Share Kit系列(7/17)-自定义分享面板操作区
linux·学习·harmonyos
香水5只用六神12 小时前
【RTOS快速入门】07_同步互斥与通信概述
单片机·嵌入式硬件·学习·操作系统·freertos·rtos·嵌入式软件