AI 基础知识:从机器学习到大语言模型
人工智能(AI)正在改变世界,但很多人对 AI 的理解还停留在表面。本文将系统地介绍 AI 的核心概念,帮助你建立完整的知识体系。
AI 技术栈概览
┌─────────────────────────────────────────┐
│ Artificial Intelligence │ 最广泛的概念
│ ┌───────────────────────────────────┐ │
│ │ Machine Learning (ML) │ │ 从数据中学习
│ │ ┌─────────────────────────────┐ │ │
│ │ │ Deep Learning (DL) │ │ │ 神经网络
│ │ │ ┌───────────────────────┐ │ │ │
│ │ │ │ Large Language │ │ │ │ 大语言模型
│ │ │ │ Models (LLM) │ │ │ │
│ │ │ └───────────────────────┘ │ │ │
│ │ └─────────────────────────────┘ │ │
│ └───────────────────────────────────┘ │
└─────────────────────────────────────────┘机器学习基础
什么是机器学习?
机器学习是让计算机从数据中学习规律,而不是显式编程。
传统编程 vs 机器学习:
传统编程:
输入 + 规则 → 输出
机器学习:
输入 + 输出 → 规则(模型)机器学习的类型
1. 监督学习(Supervised Learning)
从标注数据中学习:
# 示例:房价预测
训练数据 = [
(面积=100㎡, 位置=市中心, 价格=500万),
(面积=80㎡, 位置=郊区, 价格=300万),
...
]
# 训练模型
model.fit(训练数据)
# 预测
新房子 = (面积=90㎡, 位置=市中心)
预测价格 = model.predict(新房子) # 450万常见算法:
- 线性回归
- 逻辑回归
- 决策树
- 随机森林
- 支持向量机(SVM)
- 神经网络
2. 无监督学习(Unsupervised Learning)
从未标注数据中发现模式:
# 示例:客户分群
客户数据 = [
(年龄, 收入, 消费习惯),
...
]
# 聚类
clusters = kmeans.fit(客户数据)
# 结果:自动发现 3 个客户群体
# - 高收入高消费
# - 中等收入理性消费
# - 低收入节俭消费常见算法:
- K-means 聚类
- 层次聚类
- PCA(主成分分析)
- 自编码器
3. 强化学习(Reinforcement Learning)
通过试错学习最优策略:
# 示例:游戏 AI
while not game_over:
# 1. 观察当前状态
state = game.get_state()
# 2. 选择动作
action = agent.choose_action(state)
# 3. 执行动作
next_state, reward = game.step(action)
# 4. 学习
agent.learn(state, action, reward, next_state)应用场景:
- 游戏 AI(AlphaGo)
- 机器人控制
- 自动驾驶
- 推荐系统
深度学习
神经网络基础
神经网络模拟人脑的神经元结构:
输入层 → 隐藏层 → 输出层
[x1] [h1] [y1]
[x2] → [h2] → [y2]
[x3] [h3] [y3]前向传播:
# 简单的神经网络
class NeuralNetwork:
def forward(self, x):
# 第一层
h = relu(W1 @ x + b1)
# 第二层
y = softmax(W2 @ h + b2)
return y反向传播:
通过梯度下降优化权重:
# 训练循环
for epoch in range(num_epochs):
for x, y_true in training_data:
# 前向传播
y_pred = model.forward(x)
# 计算损失
loss = cross_entropy(y_pred, y_true)
# 反向传播
gradients = model.backward(loss)
# 更新权重
model.update_weights(gradients, learning_rate)常见网络架构
1. CNN(卷积神经网络)
用于图像处理:
# CNN 架构
model = Sequential([
Conv2D(32, (3, 3), activation='relu'), # 卷积层
MaxPooling2D((2, 2)), # 池化层
Conv2D(64, (3, 3), activation='relu'),
MaxPooling2D((2, 2)),
Flatten(), # 展平
Dense(128, activation='relu'), # 全连接层
Dense(10, activation='softmax') # 输出层
])应用:
- 图像分类
- 目标检测
- 人脸识别
- 医学影像分析
2. RNN(循环神经网络)
用于序列数据:
# RNN 处理序列
class RNN:
def forward(self, sequence):
hidden = zeros(hidden_size)
for x in sequence:
# 当前输入 + 上一时刻的隐藏状态
hidden = tanh(W_x @ x + W_h @ hidden + b)
return hidden应用:
- 文本生成
- 机器翻译
- 语音识别
- 时间序列预测
3. Transformer
现代 NLP 的基础:
# Transformer 架构
class Transformer:
def forward(self, x):
# 自注意力机制
attention = self_attention(x)
# 前馈网络
output = feed_forward(attention)
return output
def self_attention(x):
# Query, Key, Value
Q = W_q @ x
K = W_k @ x
V = W_v @ x
# 注意力分数
scores = softmax(Q @ K.T / sqrt(d_k))
# 加权求和
output = scores @ V
return output优势:
- 并行计算
- 长距离依赖
- 可解释性
大语言模型(LLM)
什么是 LLM?
LLM 是在海量文本数据上训练的大规模 Transformer 模型。
规模对比:
| 模型 | 参数量 | 训练数据 |
|---|---|---|
| GPT-2 | 1.5B | 40GB |
| GPT-3 | 175B | 570GB |
| GPT-4 | ~1.7T | 未公开 |
| Claude 3 | 未公开 | 未公开 |
LLM 的能力
1. 文本生成
prompt = "写一首关于春天的诗:"
response = llm.generate(prompt)
# 输出:春风拂面暖人心,万物复苏展新颜...2. 问答
question = "什么是机器学习?"
answer = llm.answer(question)
# 输出:机器学习是一种让计算机从数据中学习的技术...3. 代码生成
prompt = "用 Python 实现快速排序"
code = llm.generate_code(prompt)
# 输出:
# def quicksort(arr):
# if len(arr) <= 1:
# return arr
# ...4. 推理
problem = """
如果所有的猫都怕水,
而 Tom 是一只猫,
那么 Tom 怕水吗?
"""
answer = llm.reason(problem)
# 输出:是的,Tom 怕水。LLM 的训练过程
1. 预训练(Pre-training)
在大规模文本上学习语言模式:
# 目标:预测下一个词
输入:The cat sat on the
目标:mat
# 训练
for text in massive_corpus:
tokens = tokenize(text)
for i in range(len(tokens) - 1):
input_tokens = tokens[:i+1]
target_token = tokens[i+1]
prediction = model(input_tokens)
loss = cross_entropy(prediction, target_token)
model.update(loss)2. 微调(Fine-tuning)
在特定任务上优化:
# 任务:情感分析
training_data = [
("这部电影太棒了!", "正面"),
("浪费时间", "负面"),
...
]
for text, label in training_data:
prediction = model(text)
loss = cross_entropy(prediction, label)
model.update(loss)3. RLHF(人类反馈强化学习)
通过人类反馈优化:
# 1. 生成多个回答
responses = [model.generate(prompt) for _ in range(4)]
# 2. 人类排序
rankings = human_rank(responses)
# 3. 训练奖励模型
reward_model.train(responses, rankings)
# 4. 强化学习优化
for prompt in prompts:
response = model.generate(prompt)
reward = reward_model(response)
model.update_with_reward(reward)Prompt Engineering
如何与 LLM 有效交互:
1. 零样本(Zero-shot)
直接提问,不提供示例:
问:将以下文本翻译成英文:你好,世界!
答:Hello, World!2. 少样本(Few-shot)
提供示例:
问:情感分析
示例1:这部电影很棒 → 正面
示例2:太无聊了 → 负面
问题:我很喜欢这个产品 → ?
答:正面3. 思维链(Chain-of-Thought)
让模型展示推理过程:
问:Roger 有 5 个网球。他又买了 2 罐网球。
每罐有 3 个球。他现在有多少个网球?
让我们一步步思考:
1. Roger 最初有 5 个球
2. 他买了 2 罐,每罐 3 个球
3. 2 罐 × 3 个/罐 = 6 个球
4. 总共:5 + 6 = 11 个球
答:11 个网球4. 角色扮演
你是一位资深的 Python 开发者。
请帮我审查以下代码,指出潜在问题:
[代码]
作为资深开发者,我发现以下问题:
1. 缺少错误处理
2. 变量命名不规范
3. 可以使用列表推导式优化
...实战应用
1. 文本分类
from transformers import pipeline
# 加载模型
classifier = pipeline('sentiment-analysis')
# 分类
result = classifier('这个产品质量很好!')
# {'label': 'POSITIVE', 'score': 0.9998}2. 命名实体识别
ner = pipeline('ner')
text = "苹果公司的 CEO 蒂姆·库克在加州发表演讲"
entities = ner(text)
# [
# {'entity': 'ORG', 'word': '苹果公司'},
# {'entity': 'PER', 'word': '蒂姆·库克'},
# {'entity': 'LOC', 'word': '加州'}
# ]3. 文本生成
generator = pipeline('text-generation', model='gpt2')
prompt = "人工智能的未来是"
result = generator(prompt, max_length=100)4. 问答系统
qa = pipeline('question-answering')
context = """
机器学习是人工智能的一个分支,
它让计算机能够从数据中学习,
而不需要显式编程。
"""
question = "什么是机器学习?"
answer = qa(question=question, context=context)
# {'answer': '人工智能的一个分支', 'score': 0.95}评估指标
分类任务
# 准确率(Accuracy)
accuracy = (TP + TN) / (TP + TN + FP + FN)
# 精确率(Precision)
precision = TP / (TP + FP)
# 召回率(Recall)
recall = TP / (TP + FN)
# F1 分数
f1 = 2 * (precision * recall) / (precision + recall)生成任务
# BLEU(机器翻译)
bleu_score = calculate_bleu(reference, hypothesis)
# ROUGE(文本摘要)
rouge_score = calculate_rouge(reference, summary)
# Perplexity(语言模型)
perplexity = exp(cross_entropy_loss)常见挑战
1. 过拟合
模型在训练数据上表现好,但泛化能力差。
解决方案:
- 增加训练数据
- 数据增强
- 正则化
- Dropout
- Early stopping
2. 数据不平衡
某些类别的样本远多于其他类别。
解决方案:
- 重采样
- 类别权重
- 合成数据(SMOTE)
3. 计算资源
训练大模型需要大量 GPU。
解决方案:
- 使用预训练模型
- 模型压缩
- 量化
- 知识蒸馏
学习路径
初学者
数学基础
- 线性代数
- 概率统计
- 微积分
编程基础
- Python
- NumPy, Pandas
- Matplotlib
机器学习入门
- Scikit-learn
- 经典算法
- 实战项目
进阶
深度学习
- TensorFlow / PyTorch
- CNN, RNN
- 计算机视觉 / NLP
大语言模型
- Transformer
- Hugging Face
- Prompt Engineering
实战项目
- Kaggle 竞赛
- 开源贡献
- 个人项目
工具和资源
框架
- TensorFlow:Google 开发
- PyTorch:Facebook 开发
- JAX:Google 开发
- Hugging Face:NLP 生态
数据集
- ImageNet:图像分类
- COCO:目标检测
- SQuAD:问答
- GLUE:NLP 基准
学习资源
课程:
- Andrew Ng 的机器学习课程
- Fast.ai
- DeepLearning.AI
书籍:
- 《深度学习》(花书)
- 《动手学深度学习》
- 《Python 机器学习》
论文:
- Attention Is All You Need
- BERT
- GPT 系列
总结
AI 技术正在快速发展:
- ✅ 机器学习是基础
- ✅ 深度学习是核心
- ✅ LLM 是前沿
- ✅ 实践是关键
开始你的 AI 学习之旅,掌握未来的核心技能!
参考资源
AI 的未来由你创造!
