GitHub:Datawhale/llm-universe · ⭐ 18K+ · Python/Jupyter · Apache 2.0
LLM Universe是Datawhale社区开源的大模型全栈学习教程,覆盖从Prompt工程到RAG、Agent、模型微调的完整链路。以Jupyter Notebook形式提供可运行代码,适合零基础开发者循序渐进学习大模型应用开发。
| 章节 | 内容 | 难度 |
|---|---|---|
| 第一章 Prompt工程 | 提示词设计原则、Few-shot、CoT思维链 | ⭐ 入门 |
| 第二章 LLM接入 | OpenAI API调用、LangChain基础、流式输出 | ⭐ 入门 |
| 第三章 RAG | 文档加载→分块→嵌入→向量检索→生成 | ⭐⭐ 进阶 |
| 第四章 Agent | ReAct框架、Tool Calling、多Agent协作 | ⭐⭐⭐ 中级 |
| 第五章 微调 | LoRA/QLoRA微调、数据集构建、训练配置 | ⭐⭐⭐⭐ 高级 |
| 第六章 部署 | vLLM/Ollama部署、Gradio界面、Docker化 | ⭐⭐⭐ 中级 |
# 克隆仓库
git clone https://github.com/datawhalechina/llm-universe.git
cd llm-universe
# 安装依赖
pip install -r requirements.txt
# 配置API Key
export OPENAI_API_KEY="sk-your-key"
# 或使用国内模型
export DASHSCOPE_API_KEY="sk-your-key" # 通义千问
# 启动Jupyter
jupyter notebook
# 按顺序运行Notebook
from langchain.document_loaders import PyPDFLoader
from langchain.text_splitter import RecursiveCharacterTextSplitter
from langchain.embeddings import OpenAIEmbeddings
from langchain.vectorstores import Chroma
from langchain.chat_models import ChatOpenAI
from langchain.chains import RetrievalQA
# 1. 加载文档
loader = PyPDFLoader("report.pdf")
docs = loader.load()
# 2. 分块
splitter = RecursiveCharacterTextSplitter(
chunk_size=500, chunk_overlap=50
)
chunks = splitter.split_documents(docs)
# 3. 向量化 + 存储
embeddings = OpenAIEmbeddings()
db = Chroma.from_documents(chunks, embeddings)
# 4. 构建QA链
qa = RetrievalQA.from_chain_type(
llm=ChatOpenAI(model="gpt-4o-mini"),
retriever=db.as_retriever(search_kwargs={"k": 3})
)
# 5. 提问
answer = qa.run("这份报告的核心结论是什么?")
print(answer)
LLM Universe的优势是理论与实践结合,每个概念都有完整可运行的Notebook。适合搭配 Ollama本地部署教程 一起学习,用本地模型练习零成本。
GitHub:Datawhale/llm-universe · ⭐ 18K+ · Python/Jupyter · Apache 2.0