第一部分:入门导学与DeepSeek初体验
摘要:本部分作为课程的起点,旨在为你建立宏观的AI大模型认知,完成必要的开发环境搭建(Anaconda + PyCharm + 远程服务器),并带领你通过实战快速上手国产之光 DeepSeek 模型,实现从“听说”到“动手”的跨越。
第1章
1.1 为什么要学习大模型?
在AI 2.0时代,大语言模型(LLM)已经成为新的“操作系统”。对于开发者而言,掌握大模型技术意味着:
- 技术红利:从传统的NLP任务(分类、实体识别)转向生成式任务,解决通用问题。
- 职业竞争力:大模型微调(Fine-tuning)、RAG(检索增强生成)和Agent开发是当前市场最紧缺的技能。
- DeepSeek的意义:DeepSeek(深度求索)作为国产开源模型的代表,凭借其MoE架构(混合专家模型)和极高的性价比(DeepSeek-V3/R1),打破了国外模型的垄断,非常适合中国开发者学习和私有化部署。
1.2 常用学习资源与模型下载
在中国网络环境下,直接访问 HuggingFace 可能存在困难,推荐以下替代方案:
- 模型下载库:
- ModelScope (魔搭社区):阿里推出,国内下载速度极快,兼容 HuggingFace 生态。
- WiseModel (智星):国内另一个优质的模型托管平台。
- 必读论文:《Attention Is All You Need》(Transformer鼻祖), 《DeepSeek-V3 Technical Report》。
1.3 环境配置实战:Anaconda 与 PyCharm
大模型开发通常在 Linux 环境下进行(如 Ubuntu),利用 Python 进行编程。
A. Anaconda 安装与管理
Anaconda 是最流行的 Python 包管理器,能隔离不同项目的依赖。
安装步骤 (Linux):
# 1. 下载安装脚本 (请根据官网最新版本调整链接)
wget https://repo.anaconda.com/archive/Anaconda3-2024.02-1-Linux-x86_64.sh
# 2. 运行安装
bash Anaconda3-2024.02-1-Linux-x86_64.sh
# 全程输入 yes 接受协议
# 3. 激活环境
source ~/.bashrc
# 4. 创建大模型专用虚拟环境 (Python 3.10 是比较稳定的版本)
conda create -n llm_env python=3.10
conda activate llm_env
B. PyCharm 连接远程服务器
由于大模型训练需要高性能 GPU(如 A100/H800/4090),我们通常在本地写代码,在远程服务器运行。
- 打开 PyCharm Professional (专业版才支持远程开发)。
- Tools -> Deployment -> Configuration。
- 点击 +,选择 SFTP。
- 填写服务器 IP、端口(通常22)、用户名、密码。
- 在 Mappings 选项卡中,将本地项目路径映射到服务器路径 (例如
/home/user/projects/my_llm). - 设置 Python Interpreter:File -> Settings -> Interpreter -> Add Interpreter -> On SSH -> 选择刚才配置的服务器 -> 选择服务器上的 Conda 环境路径 (例如
/root/anaconda3/envs/llm_env/bin/python)。
第2章
2.1 ChatGPT vs DeepSeek
- ChatGPT (OpenAI):闭源、虽然强大但API昂贵,数据隐私不可控。
- DeepSeek (深度求索):
- 开源开放:权重公开(V3, R1等),允许商用。
- 架构创新:采用 MLA(多头潜在注意力)和 DeepSeek-MoE 架构,在保持高性能的同时大幅降低显存占用和推理成本。
- 推理能力:DeepSeek-R1 在逻辑推理和数学代码任务上表现卓越,甚至超越 GPT-4o。
2.2 实战1:基于提示工程搭建翻译机
在大模型时代,“提示词(Prompt)”即代码。我们不训练模型,仅通过设计 Prompt 让 DeepSeek 充当专业翻译。
前置准备:安装依赖
pip install openai # DeepSeek API 兼容 OpenAI SDK
Python 代码实现:
from openai import OpenAI
# 假设你已经申请了 DeepSeek 的 API Key
client = OpenAI(api_key="sk-xxxx", base_url="https://api.deepseek.com")
def deepseek_translator(text, target_lang="英语"):
# System Prompt: 设定模型的人设
system_prompt = f"你是一位精通多国语言的专业翻译家。请将用户输入的文本翻译成{target_lang}。要求信达雅,不要解释,直接输出译文。"
response = client.chat.completions.create(
model="deepseek-chat",
messages=[
{"role": "system", "content": system_prompt},
{"role": "user", "content": text},
],
stream=False
)
return response.choices[0].message.content
# 测试
text = "人工智能大模型正在重塑软件开发的范式。"
print(f"原文: {text}")
print(f"译文: {deepseek_translator(text)}")
2.3 实战2:DeepSeek 蒸馏模型私有化部署
对于个人开发者或显存较小的场景,无法运行 671B 参数的 DeepSeek-V3。我们可以部署 DeepSeek-R1-Distill 系列模型(如 1.5B 或 7B 版本),既保留了推理能力,又能在单张家用显卡甚至 CPU 上运行。
工具选择:这里我们使用 HuggingFace 的 transformers 库配合 modelscope 下载。
步骤 1:安装依赖
pip install modelscope transformers torch accelerate
步骤 2:Python 部署代码 (部署 DeepSeek-R1-Distill-Qwen-1.5B)
import torch
from modelscope import snapshot_download
from transformers import AutoModelForCausalLM, AutoTokenizer
# 1. 下载模型 (自动下载到本地缓存)
# 选择 1.5B 版本,非常轻量,普通 CPU 也能跑
model_dir = snapshot_download('deepseek-ai/DeepSeek-R1-Distill-Qwen-1.5B')
# 2. 加载分词器和模型
tokenizer = AutoTokenizer.from_pretrained(model_dir)
# 如果有显卡,device_map="auto" 会自动使用 GPU;否则使用 CPU
model = AutoModelForCausalLM.from_pretrained(
model_dir,
device_map="auto",
torch_dtype=torch.float16 # 半精度加载,节省显存
)
# 3. 准备输入
input_text = "请简述一下Transformer架构的核心优势。"
messages = [
{"role": "user", "content": input_text}
]
text = tokenizer.apply_chat_template(
messages,
tokenize=False,
add_generation_prompt=True
)
model_inputs = tokenizer([text], return_tensors="pt").to(model.device)
# 4. 模型生成 (Inference)
print("DeepSeek 正在思考...")
generated_ids = model.generate(
model_inputs.input_ids,
max_new_tokens=512,
temperature=0.7 # 控制随机性
)
# 5. 解码输出
generated_ids = [
output_ids[len(input_ids):] for input_ids, output_ids in zip(model_inputs.input_ids, generated_ids)
]
response = tokenizer.batch_decode(generated_ids, skip_special_tokens=True)[0]
print("-" * 20)
print(f"回答:\n{response}")
核心知识点解析:
- Distill (蒸馏):这是将超大模型(Teacher,如R1 671B)的能力“传授”给小模型(Student,如Qwen 1.5B)的过程,使得小模型具备类似大模型的思维模式,但体积缩小百倍。
- snapshot_download:ModelScope 的下载工具,解决了国内 HuggingFace 访问慢的问题。
- AutoModelForCausalLM:HuggingFace 的通用加载类,用于自回归语言模型。
第一部分总结: 通过本部分学习,你已经搭建好了大模型开发的“地基”,理解了 DeepSeek 为什么火爆,并亲手写代码调用了 API 和 本地部署了蒸馏小模型。这为你后续深入理解 Transformer 架构和进行微调训练打下了坚实的信心基础。
下期预告: 下一部分我们将深入“深水区”,剖析大模型的基石——Transformer 架构与词向量技术,我们将从最基础的 Word2Vec 讲起,一直拆解到 BPE 分词算法的实现。敬请期待!