news 2026/10/31 11:18:56

AI 学习 30 课目录:第 0 课先把环境自检跑通

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
AI 学习 30 课目录:第 0 课先把环境自检跑通

学 AI 的人大多数不是倒在模型原理上,是倒在第 0 步:装环境。而你搜到的教程大概率已经过期——PyTorch 官方在 2026 年 10 月 28 日发布 2.15 GA,这是第一个不再提供 Python 3.10 wheel 的版本,最低支持提到了 3.11;Hugging Face 的 transformers 也在 10 月 26 日推到 v5.21.0,v5 这一代直接砍掉了 TensorFlow 和 Flax 后端,还把torch_dtype改成了dtype。照着两年前的教程敲pip install,装完就是一堆 ImportError。

这个系列计划一天一课,从入门到精通共 30 课。今天是第 0 课:不碰模型,只做两件事——把目录定下来,把你的机器体检一遍。

课程目录:30 课从入门到精通

阶段课次主题学完能做什么
入门第 1-4 课Python 数值计算、numpy 张量操作、梯度手推不用框架手写一个线性回归
入门第 5-8 课数据清洗、特征工程、评估指标跑通一个完整的表格数据建模流程
进阶第 9-12 课PyTorch 张量、autograd、Dataset/DataLoader用 torch 训练图像分类
进阶第 13-16 课CNN / RNN / Transformer 结构逐层实现手写一个迷你 Transformer
实战第 17-20 课分词器、注意力可视化、temperature 与采样把 sampling 参数调明白
实战第 21-24 课微调(LoRA)、向量库、RAG、Agent 工具调用搭一个能查自己文档的问答服务
精通第 25-27 课量化、torch.compile、推理引擎对比把推理延迟压下来
精通第 28-30 课评测体系、训练监控、上线部署与成本交付一个可运维的 AI 服务

目录不是死的,每课结尾会写明下一课要装什么、验证什么。你跟着目录走,不会出现"学完第 5 课不知道第 6 课在哪"的情况。

第 0 课动手:一份能直接跑的环境自检脚本

先按当前(2026-10-30)官方推荐的方式装基础依赖,Windows / Linux / macOS 通用:

# CPU 版,先跑通流程再考虑 GPU python -m pip install --index-url https://download.pytorch.org/whl/cpu torch torchvision python -m pip install transformers datasets accelerate numpy

如果你的机器有 NVIDIA 显卡,去 pytorch.org 的 Get Started 选 CUDA 13.2(2.15 的默认 wheel)或 13.4 对应的命令,别自己拼 CUDA 版本号。装完用下面这个脚本体检,它只依赖 Python 标准库加 numpy,有 torch 就多报一行:

# ai_env_check.py 第 0 课:AI 学习环境自检 # 运行:python ai_env_check.py import importlib.util as u import platform import sys import numpy as np MIN_PY = (3, 11) # PyTorch 2.15 起最低 3.11,3.10 已无官方 wheel def pkg(name): spec = u.find_spec(name) if spec is None: return "MISSING" try: return __import__(name).__version__ except Exception as exc: # 装了但导不进来,通常是 ABI 或依赖版本不匹配 return f"BROKEN: {type(exc).__name__}" def softmax(logits, temperature=1.0): z = logits / temperature z = z - z.max() # 减去最大值再 exp,防溢出,这行不能省 e = np.exp(z) return e / e.sum() def main(): print("== 环境 ==") print("Python :", sys.version.split()[0]) print("系统 :", platform.platform()) print("numpy :", np.__version__) print("满足 PyTorch 2.15 最低要求(>=3.11):", sys.version_info[:2] >= MIN_PY) print("\n== 依赖 ==") for name in ("torch", "transformers", "datasets", "accelerate", "onnxruntime"): print(f"{name:14s}", pkg(name)) print("\n== 采样温度 ==") logits = np.array([2.0, 1.0, 0.1, -1.0]) words = ["北京", "上海", "广州", "深圳"] rng = np.random.default_rng(42) for t in (0.5, 1.0, 2.0): p = softmax(logits, t) draw = rng.choice(len(words), size=20000, p=p) freq = np.bincount(draw, minlength=4) / 20000 print(f"t={t:<4}", np.round(p, 4), "实测频率", np.round(freq, 4)) print("\n== 老代码检查 ==") try: np.float_ except AttributeError as e: print("[FAIL] np.float_ :", e) if __name__ == "__main__": main()

本机实测输出与怎么读

我在一台 Windows 10(build 19045)、Python 3.13.14、numpy 2.5.1 的机器上跑了这个脚本,真实输出如下(这台机器没装 torch,所以显示 MISSING):

== 环境 == Python : 3.13.14 系统 : Windows-10-10.0.19045-SP0 numpy : 2.5.1 满足 PyTorch 2.15 最低要求(>=3.11): True == 依赖 == torch MISSING transformers MISSING datasets MISSING accelerate MISSING onnxruntime 1.28.0 == 采样温度 == t=0.5 [0.8619 0.1166 0.0193 0.0021] 实测频率 [0.8629 0.1154 0.0192 0.0025] t=1.0 [0.6381 0.2347 0.0954 0.0318] 实测频率 [0.6342 0.2384 0.0958 0.0316] t=2.0 [0.4512 0.2737 0.1745 0.1007] 实测频率 [0.4522 0.272 0.1748 0.101 ] == 老代码检查 == [FAIL] np.float_ : `np.float_` was removed in the NumPy 2.0 release. Use `np.float64` instead.

三段数字要看懂:满足 PyTorch 2.15 最低要求为 False 的话,说明你还在 3.10 或更早,先升 Python,别去硬装 2.15;MISSING表示该装,BROKEN比MISSING更麻烦,通常是装了但底层库版本打架。

采样温度那三行是第 17-20 课的预告,现在先记一个直觉:temperature 越小,概率越往第一名集中。logits 完全没变,t 从 2.0 降到 0.5,"北京"的实测频率从 0.4522 涨到 0.8629。所谓"调模型说得准还是说得发散",底层就是这一个除法。

踩坑记录:三个真实报错

np.float_那条不是我编的,是 numpy 2.x 的真实移除项。2024 年之前的教程里满地都是np.float_、np.int0,今天跑就是 AttributeError,原文:np.float_was removed in the NumPy 2.0 release. Usenp.float64instead. 批量替换成np.float64即可。

第二个坑藏在 softmax 里。把那行减最大值的操作去掉,直接对大模型 logits 取 exp,会先溢出再变 nan:

>>> import numpy as np >>> x = np.array([1000.0, 999.0, 998.0]) >>> e = np.exp(x) RuntimeWarning: overflow encountered in exp >>> e / e.sum() RuntimeWarning: invalid value encountered in divide array([nan, nan, nan])

输出 nan 之后模型不会崩,只会一直生成垃圾,排查起来非常费时间。这就是为什么所有框架的 softmax 实现里都有那句减最大值——它是数学等价的,因为分子分母同时除以同一个常数。

第三个坑是 transformers v5 的参数改名。torch_dtype=torch.float16在新版里要写dtype=torch.float16,use_auth_token=True要写token=True,缓存环境变量TRANSFORMERS_CACHE换成了HF_HOME。你从旧仓库复制代码时,这几个不会报"参数已废弃",而是直接 TypeError 或静默失效,所以第 0 课先把版本锁死记下来是有必要的。

下一步安排

第 1 课从 numpy 张量操作讲起,装好 torch 的同学可以直接跟着跑。没装 torch 也不影响前 8 课,入门阶段全部用 numpy 手推,不引入框架。建议每课结束运行一次ai_env_check.py,把输出存下来——环境变迁是 AI 学习里最隐蔽的时间黑洞,留一份记录能省掉大量重复排查。

小结

这一课只做了两件事:定下 30 课的目录,用一个 60 行脚本把机器体检一遍。别急着跑模型,先确认你的 Python 版本站在 PyTorch 2.15 划的线上(≥3.11),再确认 numpy 已经是 2.x 生态。第 1 课见。

版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/10/31 11:18:22

Oracle汉字转拼音实战:PL/SQL包安装、调用与避坑指南

简介&#xff1a;这份资源是一套面向Oracle数据库开发与运维人员的PL/SQL工具包&#xff0c;用于在UTF8编码环境下将汉字转换为拼音&#xff0c;可服务于数据分析、索引优化与文本检索等场景。压缩包共1个文件&#xff0c;为sql脚本&#xff0c;整体约156KB&#xff0c;导入后即…

作者头像 李华
网站建设 2026/10/31 11:18:07

PHP微信支付V3完整实战:证书加载、签名验签与AES-GCM解密

简介&#xff1a;本资源是面向PHP后端开发者与微信支付接入初学者的V3版完整实践方案&#xff0c;聚焦最新微信支付接口集成中的证书管理、API签名、统一下单、异步回调及沙箱测试等核心环节&#xff0c;解决从零搭建安全合规支付功能的典型痛点。压缩包共16个文件&#xff0c;…

作者头像 李华
网站建设 2026/10/31 11:17:36

TCN长序列预测实战:因果卷积、膨胀卷积与感受野避坑

简介&#xff1a;面向初级及以上数据科学家与机器学习爱好者的时间序列预测项目实例&#xff0c;聚焦用 Python 与 TensorFlow 搭建时间卷积神经网络&#xff08;TCN&#xff09;&#xff0c;并以外汇行情为示范场景&#xff0c;说明如何从数据准备、归一化与滑动窗口构造&…

作者头像 李华
网站建设 2026/10/31 11:17:27

Spark电影推荐系统:冷启动、协同过滤与实时推荐架构

简介&#xff1a;该资源是一套面向大数据与推荐系统方向学习者、毕业设计学生及算法入门者的电影推荐系统完整资料&#xff0c;围绕 Spark 技术栈展开&#xff0c;帮助读者理解从需求分析到系统测试的完整开发链路。包内仅有 1 个 docx 文件&#xff0c;压缩包约 7.46MB&#x…

作者头像 李华
网站建设 2026/10/31 11:16:07

Hadoop伪分布式环境搭建:解决DataNode缺失与Livenode=0问题

简介&#xff1a;本资源是面向大数据初学者的入门级实验指导文档&#xff0c;适用于高校计算机、数据科学相关专业学生及转行学习者&#xff0c;旨在解决Linux环境搭建与Hadoop基础操作能力缺失的问题。文档系统覆盖三大核心环节&#xff1a;Linux虚拟机&#xff08;Ubuntu 16.…

作者头像 李华
网站建设 2026/10/31 11:16:07

Hadoop伪分布式LiveNodes为0的ClusterID不一致故障解析

简介&#xff1a;本资源是面向大数据初学者的入门级实验指导文档&#xff0c;适用于高校计算机、数据科学相关专业学生及转行学习者&#xff0c;旨在解决Linux环境搭建与Hadoop基础操作能力缺失的问题。文档系统覆盖三大核心环节&#xff1a;Linux虚拟机&#xff08;Ubuntu 16.…

作者头像 李华