BASICS · AI · 人工智能通识第一课

读懂 AI:从原理到应用全景

这是全站的第一课。不写一行数学,先把「AI 到底是什么、靠什么工作、能做到哪一步」讲清楚,再带你亲手调用一次大模型。读完你会拥有一张术语地图、一张应用地图和一条明确的学习路线。

python3 — ~/ai-lab
>>> from openai import OpenAI
>>> client = OpenAI() # 自动读环境变量 OPENAI_API_KEY
>>> r = client.chat.completions.create(
... model="gpt-4o-mini",
... messages=[{"role": "user", "content": "用一句话解释什么是 AI"}])
>>> print(r.choices[0].message.content)
AI 是让计算机从数据中学习规律、并据此完成任务的技术。
本页目录

01

AI 是什么:一个从 1956 年用到今天的定义

人工智能不是一个具体的软件,而是一类技术:让计算机完成原本需要人类智能的任务——理解语言、识别图像、下棋、写代码。1950 年,图灵在论文《Computing Machinery and Intelligence》里问出「机器能思考吗」;1956 年夏天的达特茅斯会议上,John McCarthy 等人给这个领域起了正式的名字:Artificial Intelligence。

今天的 AI 主流形态,是基于深度学习训练出来的大模型:用海量数据去调整一个拥有大量参数的神经网络,训练完成后就可以「推理」——根据你给的输入,预测最合理的输出。你手机里的人脸解锁、购物 App 的推荐流、随时待命的对话助手,背后都是这一套东西。

它的本质始终是八个字:从数据学规律,再套规律。这决定了它的长处——见过海量经验、不知疲倦、秒级响应;也决定了它的短板——会一本正经地编造、没有真正的理解、依赖数据质量。第 07 节专门讲这个。

顺带澄清两个常见词:弱 AI(窄 AI)指只擅长一类的智能——人脸识别、翻译、下棋,今天所有产品都属于这一类;强 AI(AGI,通用人工智能)指在任何智力任务上比肩人类的存在,目前仍停留在研究议程上。你在这门课里要学的一切,都属于前者——这反而是好消息:弱 AI 已经足以改变你的工作方式。

名称由来
1956 达特茅斯会议,John McCarthy 提出
思想源头
1950 图灵《Computing Machinery and Intelligence》
学科关系
AI ⊃ 机器学习 ⊃ 深度学习
当前主流范式
深度学习 / 大规模预训练模型
里程碑·棋类
1997 深蓝胜卡斯帕罗夫 · 2016 AlphaGo 胜李世石
里程碑·语言
2022-11 ChatGPT 发布,对话式 AI 出圈
学术认可
2024 诺贝尔物理学奖(神经网络)与化学奖(AlphaFold)
AGI 通用人工智能
尚未实现,进度与定义以研究界共识为准
只需要记住一张图:AI 是最大的圈,机器学习是实现 AI 的主流方法,深度学习是机器学习的一个分支,大语言模型(LLM)是深度学习在文本上的代表作。本站所有教程都挂在这张图上。

02

动手前的准备:三条路,按心情选一条

想真正搞懂 AI,早晚会动手。三条路从轻到重:什么都不装、装个 SDK、或者直接裸调 HTTP。第 03 节的第一次调用会用到后两条。

怎么选:想今天就建立直觉,走 A;想跟本站所有教程同步动手,走 B;想彻底看清「SDK 到底替你包了什么」,走 C。三条路不冲突——多数人的路径是 A 起步、B 为常、C 查缺。

浏览器 · 任意对话助手
# 打开任一网页版助手(ChatGPT / Claude / Gemini / Kimi 等),依次问:
> 用一句话解释什么是机器学习
> 再给一个完全没听过 ML 的人能听懂的比喻
> 你刚才的回答里,哪些说法可能出错?
这条路验证「理解」最快,五分钟就能开始。缺点是看不见 API 与参数——而那是工程师视角的全部。
密钥安全:API Key 等同钱包。只放环境变量(如 $OPENAI_API_KEY),不要写进代码、不要提交进 git、不要贴进截图。一旦泄漏,立刻去平台控制台吊销重建。
本站约定:后续教程默认你已完成 B(Python + SDK)这条路;用到其他工具时,会在当页给出安装命令。

03

第一次调用:十行代码跟大模型说上话

first_ai.py · 你的第一个模型调用
# 保存为 first_ai.py,然后 python3 first_ai.py
from openai import OpenAI

client = OpenAI()   # 自动读环境变量 OPENAI_API_KEY

resp = client.chat.completions.create(
    model="gpt-4o-mini",
    messages=[
        {"role": "system", "content": "你是一个严谨的中文助教。"},
        {"role": "user",   "content": "用一句话解释什么是机器学习"},
    ],
)
print(resp.choices[0].message.content)
# 输出示例:机器学习是让计算机从数据中自动找规律、
#          并用规律对新数据做预测的方法。

请求发出去之后,回来的其实是一大坨 JSON。SDK 帮你把它拆成了对象,但结构值得亲眼 see 一遍——以后排障全靠认它:

返回结构 · 节选示意(字段以实际 API 为准)
{
  "id": "chatcmpl-...",                    // 本次调用的编号
  "model": "gpt-4o-mini-…",                // 实际服务的模型版本
  "choices": [{                             // 回答(可能多条,默认 1 条)
    "finish_reason": "stop",                // stop=自然说完, length=被截断
    "message": {
      "role": "assistant",
      "content": "机器学习是让计算机从数据中自动找规律、并用规律做预测的方法。"
    }
  }],
  "usage": {                                // 计费就按这里的 token 数
    "prompt_tokens": 28,
    "completion_tokens": 41,
    "total_tokens": 69
  }
}

两个最常用的字段:finish_reason 等于 length 说明回答被 max_tokens 截断;usage 里的 token 数乘以单价就是这次调用的成本。

还有一个新手必知的真相:模型是无状态的。所谓「连续对话」,其实是你把历史消息一起重新发回去——「再举个例子」里的「再」能被理解,靠的就是上文。上下文窗口为什么宝贵、token 为什么随轮次涨,根源都在这:

multi_turn.py · 连续对话的真相
# 所谓"多轮对话",就是把完整历史一起发给模型
messages = [
    {"role": "system",    "content": "你是一个严谨的中文助教。"},
    {"role": "user",      "content": "什么是机器学习?"},
    {"role": "assistant", "content": "机器学习是……(上一轮的回答)"},
    {"role": "user",      "content": "再举一个例子"},  # 靠上文才知道"再"
]
  • 01

    拿钥匙

    在平台控制台创建一个 API Key,写进环境变量。它是你的身份+计费凭证,谁拿到谁花钱。

  • 02

    发请求

    messages 是一段对话数组:system 给模型定人设,user 是你说的话。模型只做一件事——接在后面写出最合理的下一段话。

  • 03

    读返回

    choices[0].message.content 是回答正文;resp.usage 里是本次消耗的 token 数。价格与免费额度以各家官方定价页为准。

  • 04

    换着玩

    改 system(让它只说文言文)、改 user(让它解释你正在学的任何概念)。感受同一模型「不同提示、不同行为」,这就是提示工程的开端。

报 401 或 insufficient quota,九成是 Key 没进环境变量、或账户没有可用额度。把报错原文贴进搜索框,或者直接问网页版助手,比闷头猜快得多。
想在终端里看到「打字机效果」,用 SDK 的流式接口(stream=True):服务端每生成一段就推送一段,网页助手的逐字输出就是这么实现的。

04

核心概念:三次浪潮,从「写规则」到「学规律」

AI 七十年不是匀速前进的,而是三次明显的浪潮。看懂每一次浪潮「换了什么思路」,你就看懂了今天所有产品的来路。

第一次浪潮
符号主义 · 1950s–1980s · 规则 + 逻辑推理
第二次浪潮
机器学习 · 1980s–2010s · 从数据拟合规律
第三次浪潮
深度学习 · 2012 起 · 神经网络 + 大数据 + GPU
当下
大模型时代 · 2020 起 · 预训练 + 通用能力

第一次浪潮:符号主义——把知识写给机器(1950s–1980s)

早期主流思路是符号主义:智能 = 符号 + 逻辑推理。人把知识写成一条条规则(IF 发烧 AND 咳嗽 THEN 疑似感冒),代表作有 Logic Theorist 与医疗专家系统 MYCIN。优点是完全可解释,缺点是规则爆炸——世界太复杂,规则永远写不完,二十世纪70与80年代的两次 AI 寒冬都与此有关。

符号主义没有消失:今天知识图谱、规则引擎仍在风控与医疗等领域服役。它输掉的不是战场,而是「规模化获得新知识」——写规则的速度,永远追不上世界变化的速度。

expert.pl · 专家系统的味道(示意)
# 规则全部由人类专家手写,机器只负责推理
IF 症状含"发热" AND 症状含"寒战" THEN 疑似疟疾 (置信度 0.7)
IF 疑似疟疾 AND 近期去过疫区     THEN 建议血检   (置信度 0.9)

第二次浪潮:机器学习——让机器自己找规律(1980s–2010s)

统计机器学习把思路反过来:人不写规则,只准备「输入 → 正确答案」的数据,让算法自己拟合规律。垃圾邮件过滤、搜索排序、广告推荐都是这一代技术的胜利。1997 年深蓝击败国际象棋世界冠军卡斯帕罗夫(主要是暴力搜索+人工知识),常被视作旧时代的余晖;真正的转折在下一浪。

这一代方法里藏着今天所有概念的原型:「训练」「过拟合」「泛化」都在这时定型。你要学的三兄弟(监督/无监督/强化)也在这一浪里各就各位——第 06 节逐个上手。

ml_style.py · 机器学习的味道(示意)
# 人只标数据,规律由算法自己学
数据: [(邮件文本, 是否垃圾邮件), (…), …]
模型: 自己学出 "含'中奖'且含'转账' → 大概率是垃圾邮件"

第三次浪潮:深度学习——神经网络 + 大数据 + 大算力(2012–2020)

神经网络不是新发明,但直到 2012 年 AlexNet 在 ImageNet 图像识别大赛上大幅刷新纪录,「深度学习 + GPU」这条路才被彻底点燃。2016 年 AlphaGo 4:1 战胜李世石(深度学习+强化学习+海量自我对弈);2024 年,神经网络基础研究拿下诺贝尔物理学奖。深度学习的本事是自动学特征:不用人告诉它「猫有尖耳朵」,它自己从百万张图里学出什么是猫。

2012
AlexNet 横扫 ImageNet,深度学习复兴
2016
AlphaGo 4:1 胜李世石,强化学习出圈
2020 前后
AlphaFold 破解蛋白质结构预测难题
2024
诺贝尔物理学奖授予神经网络奠基人

这十年也定型了今天的「标配词汇」:GPU、参数量、数据集、预训练。第 05 节速查表里的硬件与数据词汇,大多从这一浪传来。

大模型时代(2020–至今):一个模型,多种任务

2017 年 Google 发表 Transformer 架构(论文《Attention Is All You Need》),2020 年 GPT-3 把参数推到约 1750 亿。人们发现:够大的语言模型 + 够多的文本,能同时做翻译、摘要、问答、写代码——这种通用能力把过去「一个任务训一个模型」的模式整个掀翻。2022-11 ChatGPT 上线,两个月月活破亿(第三方估计),AI 从实验室走进每个人的浏览器。你接下来在本站要学的 Agent、微调、RAG,全部站在这个地基上。

timeline.txt · 大模型时代关键节点
2017  Transformer 架构发表(《Attention Is All You Need》)
2020  GPT-3:约 1750 亿参数,「大力出奇迹」时代开始
2022  ChatGPT 发布,对话式 AI 走向大众
2024  多模态与 Agent 成为前沿;诺奖两次垂青 AI 基础研究

为什么说这是分水岭?以前的模型「一事一能」——下棋的不会写诗;大模型把语言当成万能接口,一切任务都变成「接话」。于是提示词成了新的编程界面,工具调用让「接话」进一步变成「干活」——本站后面所有教程,都站在这条延长线上。

三次浪潮一句话总结:符号主义把知识写进去,机器学习让规律从数据里长出来,深度学习把特征工程也交给网络,大模型把「换任务」也交给了提示词。每一浪都把更多人的工作交给机器——你要做的是站在浪上用好它。

05

速查表:AI 术语、资源、工具与误区

下面这块表格能搜。术语忘了就搜 token、幻觉,找课就搜 课程,挑工具就搜 本地。

术语一句话解释
人工智能(AI)让计算机完成需要人类智能的任务的技术总称
机器学习(ML)不手写规则,从数据中自动学习规律的方法
深度学习(DL)用多层神经网络自动学习特征的机器学习分支
大语言模型(LLM)在海量文本上预训练的超大神经网络,对话助手的核心
模型(Model)训练的产物:一堆学好的参数 + 使用它们的网络结构
参数(Parameter)模型内部可学习的数字,GPT-3 约有 1750 亿个
训练(Training)用数据反复调整参数、不断降低误差的过程
推理(Inference)训练完成后用模型处理新输入;每次 API 调用都是推理
Token模型读写的最小文本单位,中文字符常在 0.5–2 token 之间,计费与上下文都按它算
上下文窗口模型一次能「看见」的最大 token 数,超出就要截断或压缩
微调(Fine-tuning)在预训练模型上用小数据继续训练,让它更贴合你的任务
RAG 检索增强生成先检索资料、塞进提示词再让模型回答,治「不知道」与部分幻觉
提示词(Prompt)你发给模型的输入文本,写法直接决定输出质量
幻觉(Hallucination)模型一本正经地生成错误内容,是大模型的固有缺陷
智能体(Agent)LLM + 工具 + 循环 + 目标:能自主多步干活的系统,见下一篇教程
生成式 AI(AIGC)直接生成新内容(文本/图像/音频/视频)的 AI 总称
RLHF基于人类反馈的强化学习,让模型回答更合人类口味的对齐技术
对齐(Alignment)让模型行为符合人类意图与价值观的全部训练工作
多模态(Multimodal)同时理解或生成文字、图像、音频等多种形态的模型
基准测试(Benchmark)公开「考卷」,用于横向比较模型能力;也可能被针对性刷分
算力(GPU)训练与推理的燃料;GPU 集群是这一代 AI 的「炼钢炉」
Embedding(向量化)把文本变成一串数字,语义相近则向量相近,检索与聚类的基础
开源权重模型参数公开可下载(Llama、Qwen、DeepSeek 系列),可本地部署
温度(Temperature)控制输出随机性的旋钮:0 近乎确定,越高越发散

06

实战:机器学习三兄弟,一次看全

「监督、无监督、强化」是机器学习的三种学习方式。用一个经典数据集(鸢尾花,150 朵、3 个品种)体验最直观。先在第 02 节的环境里补一句 pip install scikit-learn。

学习方式一眼识别特征
监督学习有标准答案 → 分类、回归
无监督学习没有答案,找结构 → 聚类、降维
强化学习只有奖励信号,试错学策略 → 下棋、控制

三段代码跑完再回看这张表:三种「学习」的区别不在算法花哨程度,而在监督信号从哪来——标准答案、没有答案、还是延迟到账的奖励。

第一步:监督学习——有标准答案的模仿

supervised.py · 监督学习
# 有标签:每朵花都带着"品种"这个标准答案
from sklearn.datasets import load_iris
from sklearn.model_selection import train_test_split
from sklearn.neighbors import KNeighborsClassifier

X, y = load_iris(return_X_y=True)   # 特征 X(花瓣花萼尺寸),标签 y(品种)
X_tr, X_te, y_tr, y_te = train_test_split(X, y, test_size=0.2, random_state=0)

clf = KNeighborsClassifier(n_neighbors=3)
clf.fit(X_tr, y_tr)                 # "学习"= 用 120 朵带答案的花拟合
print("准确率:", clf.score(X_te, y_te))
# 经典数据集上准确率通常在 0.9 以上,随划分略有波动

适用场景:能拿到「输入 + 正确答案」的问题——垃圾邮件识别、房价预测、医学影像筛查。

第二步:无监督学习——没有答案的归类

unsupervised.py · 无监督学习
# 无标签:把品种信息扔掉,只留特征,看模型能不能自己分组
from sklearn.datasets import load_iris
from sklearn.cluster import KMeans

X, _ = load_iris(return_X_y=True)
km = KMeans(n_clusters=3, n_init=10, random_state=0)
labels = km.fit_predict(X)

print(labels[:50])    # 前 50 朵(山鸢尾)几乎全部落进同一个簇
print(labels[50:100]) # 中间 50 朵落进另一个簇 —— 没人告诉它"品种"

适用场景:没有标准答案、但要找结构的任务——用户分群、异常检测、压缩降维。

第三步:强化学习——试错试出来的策略

reinforcement.py · 强化学习(伪代码示意,不可直接运行)
# 核心是"试错 + 奖励":不需要标准答案,只需要一个好坏信号
state = env.reset()
while not done:
    action = agent.choose(state)                 # 试一个动作
    next_state, reward, done = env.step(action)  # 环境给反馈
    agent.learn(state, action, reward, next_state) # 奖励高就加强这条路
    state = next_state
# AlphaGo 打败李世石用的就是这类方法(加上搜索与海量自我对弈);
# ChatGPT 的对齐阶段 RLHF 也源于此

适用场景:有明确「得分」但没人能给标准答案的问题——下棋、机器人控制、推荐系统的长期优化。

举一反三:给中文评论做情感分类(通往 NLP)

监督学习最常见的落点是文本分类。十几行就能跑通一个「好评/差评」分类器——思路与垃圾邮件过滤一模一样:

sentiment.py · 文本分类(玩具语料)
from sklearn.feature_extraction.text import TfidfVectorizer
from sklearn.linear_model import LogisticRegression

docs = ["这个手机太棒了", "客服态度极差", "物流很快",
        "质量差还贵",   "性价比很高",   "再也不来了"]
y    = [1, 0, 1, 0, 1, 0]                    # 1=好评 0=差评

vec = TfidfVectorizer()                      # 文本 → 向量
clf = LogisticRegression().fit(vec.fit_transform(docs), y)

print(clf.predict(vec.transform(["体验一般,不推荐"])))   # [0]

真实业务要几千条带标注数据;但「文本→向量→分类器」的三步曲,从 1990 年代一直用到今天的大模型 Embedding。想深入去本站 nlp.html。

串起来:一个真实可用的批处理脚本

最后把「调用模型」和「写程序」缝在一起:把一份术语表逐条交给模型翻译,每条即写盘、可断点续跑——这是 LLM 在工程里最朴素的用法。

batch.py · 调用模型的批处理
# terms.txt 里一行一个英文术语,翻译结果存进 JSON,断了能续
import json, pathlib
from openai import OpenAI

client = OpenAI()
terms  = pathlib.Path("terms.txt").read_text().splitlines()
out    = pathlib.Path("terms_zh.json")
done   = json.loads(out.read_text()) if out.exists() else {}

for t in terms:
    if t in done:
        continue
    r = client.chat.completions.create(
        model="gpt-4o-mini",
        messages=[{"role": "user",
                   "content": f"把软件术语 {t!r} 翻译成中文,只输出译文"}])
    done[t] = r.choices[0].message.content.strip()
    out.write_text(json.dumps(done, ensure_ascii=False, indent=2))
    print(t, "->", done[t])

# 两个工程要点:每条即写盘(断点续跑)、明确"只输出译文"(约束输出)
注意这两处细节:if t in done: continue 让脚本中断后重跑不重复花钱;提示词写明「只输出译文」避免模型加戏。真实项目还要加限速重试与并发控制。

对号入座:你每天都在用它们

  • 人脸解锁:深度学习的人脸识别,你的脸就是训练样本的一部分(存在本机安全区)。
  • 推荐流:监督学习预测「你会不会点」,加上强化学习优化长期停留。
  • 机器翻译 / 输入法联想:序列模型到 LLM 的一脉相承,详见本站 nlp.html。
  • 代码补全 Copilot:代码 LLM 在你敲字时做实时推理。
  • 智能客服:LLM + 检索(RAG)+ 流程工具,已经是半个 Agent。
  • 相册搜索与人脸聚类:图像 Embedding 把「找照片」变成「搜向量」。
  • 视频自动字幕:语音识别模型听写,再由语言模型断句润色。
  • 地图 ETA 预测、风控反欺诈:梯度提升树与图模型这些「朴素但能打」的经典 ML。
三兄弟不是竞争关系:同一个产品常常三种都用——推荐系统用监督学点击率、用无监督分人群、用强化学长期策略。

07

边界与误区:AI 能做什么,不能做什么

这一节可能是全页最重要的:知道边界,才知道哪些活该交给它、哪些必须留给自己。四个坑,每个都值得你先亲身踩一遍、再回来读对策。

坑一:幻觉——它不知道自己不知道

生成下一个最合理的词,和说真话,是两件事。缺资料时它不会说「不知道」,而是继续生成——编出看似完美的期刊、DOI 与法条。

一次典型的幻觉(示意对话)
> 引用一篇支持"喝咖啡降低左撇子骨折率"的论文
好的!这是一篇 2019 年发表于《Journal of Orthopaedic Health》
的研究(DOI: 10.xxxx/joh.2019.0442)……
# 期刊、DOI、结论 —— 全部是编的,但语气毫无破绽
对策:把「给我可核验的来源」当默认要求;事实类问题改用带检索的产品(RAG / 联网搜索);数字、引文、法条、医嘱,一律人工核实后再用。

坑二:把「流畅」当成「理解」

模型没有意图与信念,它做的是「给定前文,预测下一个 token」。同一个问题换个说法,答案可能翻转;数学题它可能背过答案而不是真算出来。重要结论值得花三次提问去交叉验证:

prompt · 交叉验证话术
> 先列出你得出这个结论的每一步依据,再给结论
> 换成怀疑者视角:上面哪一步最可能站不住脚?
> 用另一种完全不同的方法重推一遍,结果一致吗?

# 三问后仍成立的结论,可靠度远高于一次作答

坑三:让它做结构上做不了的事

实时行情、精确的大数计算、预测下一期彩票——要么给它接工具(计算器、搜索引擎、代码执行),要么承认它不适合。另外,模型知识有训练截止时间,问「最新」之前先想清楚这一点。

tool_use · 做不了就接工具(示意)
> 127 的 23 次方是多少?
思考: 需要精确计算,语言模型心算不可靠,调用 calculator
调用: calculator(expression="127 ** 23")   # 代码执行,不是模型猜
观察: (计算器返回精确结果)
回答: 127 的 23 次方等于……(引用工具结果)
# 模型"点菜"、代码"炒菜" —— 这正是下一篇 Agent 的核心机制

坑四:隐私与密钥的两道红线

Terminal · Key 管理的正误对照
# 错误示范:Key 写进代码并提交进 git
client = OpenAI(api_key="sk-xxxxxxxx")   # 泄漏后,按 token 计费的是你

# 正确做法:环境变量 + .env 不入库(.gitignore 加上 .env)
export OPENAI_API_KEY="sk-xxxxxxxx"

# 已经提交过的补救:移出追踪 + 立刻吊销换新
git rm --cached .env

同理,别把公司内部代码、客户数据原样贴给云端模型——以你所在组织的合规要求与所用平台的隐私政策为准。

08

怎样开始学:一条被验证过的路线图

五段路线(每段都有检验标准)

  • 01

    Python 基础(1–2 周)

    变量、函数、列表字典、读写文件,配合 Python 官方中文教程。检验:能独立写一个处理 CSV 的小脚本。不必成为高手,够用就往下走。

  • 02

    数学补直觉(与上一步并行)

    线性代数(向量/矩阵)、概率(条件概率/分布)、微积分(导数=梯度)。检验:3Blue1Brown 对应三个系列看完不卡壳。

  • 03

    经典机器学习(2–4 周)

    用 scikit-learn 跑通分类/回归/聚类,理解训练集/验证集与过拟合。检验:给第 06 节的鸢尾花实验算一遍混淆矩阵。

  • 04

    深度学习(1–2 个月)

    用 PyTorch 手写一个小网络,理解反向传播。检验:不抄代码重现 MNIST 高准确率。本站 pytorch.html 与 tensorflow.html 等你。

  • 05

    LLM 应用(持续)

    提示工程 → RAG → Agent。检验:读完本站下一篇 ai-agent.html,并亲手跑通里面的最小 Agent。

顺序可以调,方向不能丢:目标是「应用」的人可以把第 3、4 步减量甚至后置,先扎实走第 1、5 步;目标是研究的人则相反。数学不够时随时去本站 ai-math.html 回血。

精选资源(真实链接,按路线顺序)

学完去哪:下一篇 ai-agent.html——把「会回答」的模型变成「会干活」的助手;想打地基先去 ai-math.html;想做语言相关应用去 nlp.html。

09

收尾:照着勾一遍

0 / 5

五个全勾,就放心进入下一篇 ai-agent.html;有没勾的,回对应小节补课——每一个勾都对应一节。
已复制