大语言模型(LLM, Large Language Model)的爆发,让人工智能应用进入新阶段。从 ChatGPT 到 DeepSeek,这些模型背后都有庞大的数据工程与复杂的训练体系。那么一个大模型是如何一步步构建起来的呢?本文将结合 DeepSeek 的思路,从整体架构、数据预处理、训练范式、推理部署等方面进行梳理,并附带部分 简化代码示例,帮助理解。
大语言模型研发可以分为五大阶段:
目标与架构设计
数据处理
预训练
微调与对齐
推理与部署
DeepSeek 与大多数 LLM 一样,核心是 Transformer。核心在于 自注意力机制(Self-Attention)。
简化的 PyTorch 自注意力代码:
import torch
import torch.nn as nn
class SelfAttention(nn.Module):
def __init__(self, embed_dim):
super().__init__()
self.query = nn.Linear(embed_dim, embed_dim)
self.key = nn.Linear(embed_dim, embed_dim)
self.value = nn.Linear(embed_dim, embed_dim)
self.softmax = nn.Softmax(dim=-1)
def forward(self, x):
Q = self.query(x)
K = self.key(x)
V = self.value(x)
attention = self.softmax(Q @ K.transpose(-2, -1) / (K.size(-1) ** 0.5))
return attention @ V
def clean_text(text):
text = text.strip()
text = text.replace("\n", " ")
return text
raw_corpus = ["Hello!!!", "This is a test.", "<script>bad</script>"]
clean_corpus = [clean_text(t) for t in raw_corpus]
print(clean_corpus)
import torch.optim as optim
model = SelfAttention(embed_dim=128)
optimizer = optim.Adam(model.parameters(), lr=1e-4)
loss_fn = nn.CrossEntropyLoss()
for epoch in range(5):
inputs = torch.randn(32, 10, 128) # batch=32, seq=10
targets = torch.randint(0, 128, (32, 10))
outputs = model(inputs)
logits = outputs.view(-1, outputs.size(-1))
loss = loss_fn(logits, targets.view(-1))
optimizer.zero_grad()
loss.backward()
optimizer.step()
print(f"Epoch {epoch}, Loss {loss.item():.4f}")
在人工标注问答数据上微调:
from transformers import AutoModelForCausalLM, AutoTokenizer, Trainer, TrainingArguments
model = AutoModelForCausalLM.from_pretrained("deepseek-base")
tokenizer = AutoTokenizer.from_pretrained("deepseek-base")
train_data = [{"input_ids": tokenizer("你好", return_tensors="pt")["input_ids"],
"labels": tokenizer("你好!很高兴见到你", return_tensors="pt")["input_ids"]}]
training_args = TrainingArguments(output_dir="./results", num_train_epochs=1)
trainer = Trainer(model=model, args=training_args, train_dataset=train_data)
trainer.train()
from transformers import pipeline
pipe = pipeline("text-generation", model="deepseek-base")
print(pipe("今天天气怎么样?", max_length=50))
DeepSeek 的构建展示了大模型研发的全链路:从架构设计、数据工程,到预训练、对齐和推理优化。未来,大模型将更加高效、多模态,并在科研、教育、产业中发挥更大作用。附带的代码示例虽为简化版,但能帮助我们理解大模型背后的训练逻辑与工程实践。
《DeepSeek 图解:大模型是怎样构建的》

【内容简介】
本书是一本系统讲解DeepSeek开发的技术指南,传授大家开发DeepSeek模型的基础知识。旨在帮助读者深入理解DeepSeek的工作机制,并掌握其在大规模预训练、推理优化及应用开发中的关键技术。
全书共10章,依次介绍文本预处理、特征提取、文本分类与情感分析、语言的生成、机器翻译、DeepSeek的核心Transformer模型、多模态模型的架构和训练、预训练模型的训练与微调、DeepSeek API应用开发实战,以及基于DeepSeek实现的仿Manus Agent系统。