HandsOnLLM/Hands-On-Large-Language-Models · 上手攻略

  • 仓库:HandsOnLLM/Hands-On-Large-Language-Models
  • 链接:https://github.com/HandsOnLLM/Hands-On-Large-Language-Models
  • 分类:ai
  • 作者:Tom
  • 更新:2026-07-12

这是什么

Hands-On Large Language Models(O'Reilly,2024)是 Jay Alammar(《The Illustrated GPT-2》作者)和 Maarten Grootendorst(Hugging Face 社区明星博主)合著的技术书籍,其官方配套代码仓库。仓库以 Jupyter Notebook 形式覆盖了从语言模型基础、Token 与 Embedding、Transformer 内部机制,到 Prompt 工程、语义搜索、RAG、多模态、Embedding 模型微调、LLM 微调的完整学习路径,配有近 300 张自定义插图,被称为"图文并茂的 LLM 书"。

这不是一个工具库,而是一个系统化学习 LLM 的教科书+实验场。每章都有可运行的 Notebook,读者可以直接在 Google Colab(免费 T4 GPU)中执行所有示例。


解决什么问题

  • LLM 知识碎片化:网上教程要么太浅(API 调用),要么太深(论文推导),缺少从概念到代码的完整路径。
  • 缺乏可运行的实践代码:书籍或博客讲完原理后没有配套代码,读者看完还是不知道怎么做。
  • 多模态、Embedding、RAG 等新兴话题缺少系统整理:这些方向在 2024 年发展很快,官方文档零散,本书做了体系化梳理。
  • Embedding 模型微调资料稀缺:大多数资料只讲预训练模型怎么用,不讲 Embedding 模型怎么自己训练,书中第 10-11 章专门填补这个空白。

快速安装

方式一:Google Colab(推荐,最省心)

所有章节 Notebook 均可在 Google Colab 中直接打开,Colab 提供免费 T4 GPU(16GB VRAM)。这是作者推荐的运行方式,兼容性最好。

直接访问各章 Colab 链接即可,例如第 1 章:

https://colab.research.google.com/github/HandsOnLLM/Hands-On-Large-Language-Models/blob/main/chapter01/Chapter%201%20-%20Introduction%20to%20Language%20Models.ipynb

方式二:本地 conda 环境

# 克隆仓库
git clone https://github.com/HandsOnLLM/Hands-On-Large-Language-Models.git
cd Hands-On-Large-Language-Models

# 查看 .setup 文件夹中的完整安装指南
# 推荐使用 conda + PyTorch(CUDA 版本根据你的 GPU 选择)

# 基本依赖(典型配置)
conda create -n hands-on-llm python=3.10
conda activate hands-on-llm
conda install pytorch torchvision torchaudio pytorch-cuda=11.8 -c pytorch -c nvidia
pip install transformers datasets accelerate sentence-transformers langchain openai anthropic google-search-results faiss-cpu chromadb pillow librosa

⚠️ 依赖版本敏感性问题:Python 版本、PyTorch 版本、CUDA 版本不匹配可能导致 GPU 不可用。作者在 .setup 文件夹中提供了具体版本建议,建议严格按 .setup/conda 目录下的指引操作。不同 OS 和 Python 版本下结果可能有细微差异,但整体趋势一致。


核心用法

章节目录与内容速览

章节 主题 关键代码/概念
Ch1 语言模型入门 N-gram、统计语言模型、神经语言模型、LLM 定义
Ch2 Token 与 Embedding BPE tokenizer、WordPiece、Embedding 原理、向量空间
Ch3 深入 Transformer Attention、位置编码、残差网络、GPT/LLaMA 架构
Ch4 文本分类 BERT 微调、特征提取、分类头设计
Ch5 文本聚类与主题建模 UMAP、HDBSCAN、sentence-transformers
Ch6 Prompt 工程 Zero-shot、Few-shot、Chain-of-Thought、Prompt 调优
Ch7 高级文本生成 采样策略(temperature、top-p)、束搜索、n-gram 惩罚
Ch8 语义搜索与 RAG 向量数据库(FAISS、ChromaDB)、RAG 架构
Ch9 多模态 LLM 图文匹配、BLIP、LLaVA、GPT-4V 调用
Ch10 创建 Text Embedding 模型 对比学习、m出e5、Instructor
Ch11 微调 BERT 类模型 全参数微调 + LoRA、PEFT
Ch12 微调生成模型 LLaMA 微调、RLHF(简化版)、DPO

典型实验流程

以第 8 章 RAG 为例,核心代码结构:

# 1. 加载文档
from langchain.document_loaders import TextLoader
loader = TextLoader("document.txt")
documents = loader.load()

# 2. 分块
from langchain.text_splitter import RecursiveCharacterTextSplitter
splitter = RecursiveCharacterTextSplitter(chunk_size=500, chunk_overlap=50)
chunks = splitter.split_documents(documents)

# 3. 向量化并存入向量数据库
from langchain.embeddings import OpenAIEmbeddings
from langchain.vectorstores import FAISS
import os
os.environ["OPENAI_API_KEY"] = "your-key"

vectorstore = FAISS.from_documents(chunks, OpenAIEmbeddings())

# 4. 构建 RAG chain
from langchain.chat_models import ChatOpenAI
from langchain.chains import RetrievalQA

llm = ChatOpenAI(model="gpt-4", temperature=0)
qa_chain = RetrievalQA.from_chain_type(llm=llm, retriever=vectorstore.as_retriever())
result = qa_chain.run("你的问题")

多模态示例(第 9 章)

from transformers import BlipProcessor, BlipForConditionalGeneration
from PIL import Image

processor = BlipProcessor.from_pretrained("Salesforce/blip-image-captioning-base")
model = BlipForConditionalGeneration.from_pretrained("Salesforce/blip-image-captioning-base")

image = Image.open("example.jpg")
inputs = processor(image, return_tensors="pt")
out = model.generate(**inputs)
caption = processor.decode(out[0], skip_special_tokens=True)
print(caption)

典型适用场景

场景一:系统学习 LLM 全栈知识 从 Ch1 走到 Ch12,配合 Colab 免费 GPU,两周内可以完成从"知道 LLM 名字"到"能微调 Embedding 模型、搭 RAG pipeline"的能力跨越。

场景二:快速验证 RAG 方案 第 8 章的 Notebook 覆盖了 FAISS / ChromaDB 两种向量库,可以直接改自己的文档路径和 API Key,快速对比不同 RAG 配置的效果。

场景三:做多模态原型 第 9 章提供了 BLIP 图像描述、LLaVA 视觉问答等可直接运行的 Notebook,非 CV 背景也能快速搭出多模态 LLM 应用 Demo。

场景四:学习 LoRA 微调 第 11 章的 PEFT/LoRA 部分代码可直接迁移到自己的 BERT 类模型微调任务,大幅降低实验门槛。


坑与注意

  1. Colab T4 GPU 有时间限制:长时间运行会被断连,大型 Embedding 模型训练(第 10-11 章)建议本地有 GPU 或租用云 GPU机器。
  2. API Key 需要自备:第 8-9 章部分示例使用 OpenAI API,需要自己的 key;本地模型替代方案(HuggingFace inference)速度较慢但可免费使用。
  3. 依赖冲突常见:transformers、torch、accelerate 版本要匹配,安装时建议用 .setup 文件夹中的 spec 而非最新版本。
  4. 最后一章 RLHF 是简化版:第 12 章的 RLHF/DPO 是教学演示,与生产级 RLHF 系统(如 TRRLX、veRL)有较大差距,不适合直接用于生产训练。
  5. 书籍版本可能落后于最新模型:2024 年出版,当前(2026 年)部分章节内容(如具体模型名称、API 调用方式)可能因 LLM 生态快速迭代而有所偏差,建议以 Notebook 代码为准。
  6. 第 5 章 HDBSCAN 依赖较难装:HDBSCAN 在某些 Python 版本下安装困难(需要编译),Colab 环境通常已经预装。

与同类对比

资源 类型 深度 代码量 特色
Hands-On LLM(本书) O'Reilly 书籍 + Notebook ⭐⭐⭐⭐ 12 章完整代码 近 300 张插图,RAG/Embedding 讲得最系统
FastAI Practical Deep Learning 在线课程 + Notebook ⭐⭐⭐ 课程配套 视觉优先,LLM 部分薄弱
Sebastian Raschka 书籍 技术书籍 ⭐⭐⭐⭐⭐ 部分代码 理论深但代码少
Hugging Face 文档 官方文档 ⭐⭐⭐ 分散 模型调用全覆盖,但缺乏系统学习路径
Lil'Log(Jay Alammar 博客) 技术博客 ⭐⭐⭐⭐ 少量 图文质量极高,但没有配套可运行代码

核心差异:Hands-On LLM 是目前插图最丰富、代码最完整、覆盖 LLM 全链路(从 Embedding 到微调到 RAG 到多模态)最适合自学者的资源,没有之一。


一句话推荐结论

无论你是 NLP 初学者想系统入门 LLM,还是工程师想补齐 RAG、Embedding 微调、多模态等工程实践短板,这本"图文并茂的 LLM 书"配合 Colab 都是目前门槛最低、体系最完整的起点;唯一需要注意的是免费 Colab GPU 有限,大模型训练需自备算力。