器學(xué)習(xí)課程:七大AI核心知識(shí)點(diǎn)系統(tǒng)拆解)
2026 年了想系統(tǒng)入門(mén)人工智能大部分人第一反應(yīng)不是買書(shū)而是找一套能從頭跟到腳下來(lái)的視頻課程。李宏毅老師的機(jī)器學(xué)習(xí)課程應(yīng)該是這個(gè)清單里被提到的頻率最高的名字之一。這門(mén)課最大的特點(diǎn)是不把數(shù)學(xué)當(dāng)門(mén)檻也不把代碼當(dāng)演示。它從機(jī)器學(xué)習(xí)的回歸、分類講起一路帶到深度學(xué)習(xí)、神經(jīng)網(wǎng)絡(luò)、強(qiáng)化學(xué)習(xí)、計(jì)算機(jī)視覺(jué)、自然語(yǔ)言處理最后覆蓋大模型。也就是說(shuō)標(biāo)題里那七個(gè)人工智能核心知識(shí)點(diǎn)確實(shí)是一套課講完的。這篇文章不打算替你把視頻刷完而是按課程主線把這七個(gè)知識(shí)點(diǎn)拆開(kāi)講清楚每一塊的學(xué)習(xí)重點(diǎn)、需要掌握的公式和概念、配套的動(dòng)手實(shí)驗(yàn)以及最容易卡住的地方。同時(shí)給出本地學(xué)習(xí)環(huán)境的搭建方式以及一套能復(fù)用的驗(yàn)證思路。如果你剛好準(zhǔn)備入門(mén)人工智能或者想把手頭零散的知識(shí)串成體系這篇可以收藏備用。1. 課程核心能力速覽先把這門(mén)課的整體規(guī)格放在前面方便你快速判斷。能力項(xiàng)說(shuō)明課程形式視頻公開(kāi)課中文授課為主配套講義和作業(yè)主講背景臺(tái)灣大學(xué)電機(jī)工程學(xué)系教授研究方向?yàn)闄C(jī)器學(xué)習(xí)與語(yǔ)音處理覆蓋知識(shí)點(diǎn)機(jī)器學(xué)習(xí)、深度學(xué)習(xí)、神經(jīng)網(wǎng)絡(luò)、強(qiáng)化學(xué)習(xí)、計(jì)算機(jī)視覺(jué)、自然語(yǔ)言處理、大模型共七大模塊學(xué)習(xí)門(mén)檻需要 Python 基礎(chǔ)數(shù)學(xué)要求不高但線性代數(shù)和概率統(tǒng)計(jì)能提高理解上限編程環(huán)境Python PyTorch Jupyter NotebookCPU 即可完成大部分入門(mén)實(shí)驗(yàn)硬件要求入門(mén)階段 CPU 足夠進(jìn)階和大模型微調(diào)實(shí)驗(yàn)建議準(zhǔn)備獨(dú)立顯卡顯存越大越好適合人群剛?cè)腴T(mén) AI 的學(xué)生、轉(zhuǎn)行開(kāi)發(fā)者、想系統(tǒng)補(bǔ)齊理論盲區(qū)的工程師不當(dāng)用途不適合零編程基礎(chǔ)直接上來(lái)就學(xué)不適合想只看實(shí)戰(zhàn)不看理論的人速成從這里能直接判斷這門(mén)課不是“三天速成班”而是一條可以走完從基礎(chǔ)到大模型的完整路徑。后面七個(gè)模塊每一塊單獨(dú)拿出來(lái)都能撐起一門(mén)專業(yè)課但這門(mén)課的價(jià)值在于它把七塊串在一起而且每一塊都保留了足夠清楚的推導(dǎo)過(guò)程。2. 七個(gè)人工智能核心知識(shí)點(diǎn)整體拆解在正式開(kāi)始前先把七大部分之間的關(guān)系畫(huà)清楚。模塊核心問(wèn)題核心工具 / 概念和下一個(gè)模塊的關(guān)系機(jī)器學(xué)習(xí)如何讓程序從數(shù)據(jù)中學(xué)規(guī)律回歸、分類、梯度下降、偏差方差、正則化是深度學(xué)習(xí)的基礎(chǔ)語(yǔ)言深度學(xué)習(xí)如何用多層網(wǎng)絡(luò)擬合復(fù)雜函數(shù)反向傳播、激活函數(shù)、優(yōu)化器、Dropout讓 MLP 真正能處理大尺度數(shù)據(jù)神經(jīng)網(wǎng)絡(luò)算法如何設(shè)計(jì)更高效的網(wǎng)絡(luò)結(jié)構(gòu)CNN、注意力機(jī)制、TransformerCNN 打底 CV注意力打底大模型強(qiáng)化學(xué)習(xí)如何在沒(méi)有標(biāo)簽的情況下學(xué)決策獎(jiǎng)勵(lì)信號(hào)、Q-Learning、策略梯度、PPO和深度學(xué)習(xí)結(jié)合后能處理連續(xù)狀態(tài)計(jì)算機(jī)視覺(jué)如何讓機(jī)器理解圖像圖像分類、目標(biāo)檢測(cè)、分割、數(shù)據(jù)增強(qiáng)是 CNN 知識(shí)的直接應(yīng)用出口自然語(yǔ)言處理如何讓機(jī)器理解文本詞向量、Seq2Seq、Attention、BERTTransformer 從這里走向大模型大模型如何把預(yù)訓(xùn)練模型用到真實(shí)場(chǎng)景預(yù)訓(xùn)練、微調(diào)、RLHF、提示工程、量化部署是前六個(gè)模塊匯合后的高階形態(tài)注意這個(gè)鏈條機(jī)器學(xué)習(xí)是底座深度學(xué)習(xí)是方法神經(jīng)網(wǎng)絡(luò)是結(jié)構(gòu)強(qiáng)化學(xué)習(xí)是另一條分支CV 和 NLP 是兩條應(yīng)用主線大模型則是現(xiàn)有技術(shù)路線的綜合形態(tài)。這也是為什么很多人學(xué)完基礎(chǔ)之后會(huì)覺(jué)得整個(gè) AI 知識(shí)體系很清晰因?yàn)檫@套課程的安排本身就把依賴關(guān)系理清了。3. 機(jī)器學(xué)習(xí)基礎(chǔ)回歸、分類與梯度下降機(jī)器學(xué)習(xí)這部分最核心的問(wèn)題只有一個(gè)給定一堆數(shù)據(jù)如何讓程序自動(dòng)找出輸入和輸出之間的關(guān)系。3.1 回歸與分類回歸任務(wù)的目標(biāo)是預(yù)測(cè)連續(xù)數(shù)值常見(jiàn)的例子包括房?jī)r(jià)預(yù)測(cè)、PM2.5 預(yù)測(cè)、點(diǎn)擊率預(yù)估。分類任務(wù)則是預(yù)測(cè)離散標(biāo)簽比如判斷一張圖片是貓還是狗、一封郵件是否為垃圾郵件。這兩個(gè)概念看似簡(jiǎn)單但它們決定了后面所有模型的設(shè)計(jì)思路。模型的本質(zhì)就是函數(shù)擬合定義一個(gè)帶參數(shù)的函數(shù)輸入樣本輸出預(yù)測(cè)結(jié)果然后根據(jù)預(yù)測(cè)和真實(shí)值的差距調(diào)整參數(shù)。3.2 梯度下降與學(xué)習(xí)率機(jī)器學(xué)習(xí)最重要的數(shù)學(xué)工具就是梯度下降。給定一個(gè)損失函數(shù)參數(shù)更新的基本方式是新參數(shù) 舊參數(shù) - 學(xué)習(xí)率 × 梯度李宏毅課程在講這個(gè)部分時(shí)會(huì)特別強(qiáng)調(diào)學(xué)習(xí)率的影響學(xué)習(xí)率太大參數(shù)來(lái)回震蕩學(xué)習(xí)率太小收斂速度慢。實(shí)際工程里學(xué)習(xí)率調(diào)度策略往往比模型結(jié)構(gòu)改動(dòng)能帶來(lái)更直接的收益。這里建議自己動(dòng)手做一次小實(shí)驗(yàn)生成一組線性數(shù)據(jù)用梯度下降手動(dòng)更新參數(shù)并畫(huà)損失下降曲線。把這件事做一遍對(duì)后續(xù)理解 Adam、SGD 這些優(yōu)化器非常有幫助。3.3 偏差方差與正則化模型表現(xiàn)不好通常就兩類原因欠擬合和過(guò)擬合。欠擬合對(duì)應(yīng)訓(xùn)練誤差高意味著模型容量不夠。過(guò)擬合對(duì)應(yīng)訓(xùn)練誤差低但測(cè)試誤差高意味著模型把訓(xùn)練數(shù)據(jù)的噪聲也記下來(lái)了。解決過(guò)擬合的常規(guī)手段包括增加數(shù)據(jù)量、降低模型復(fù)雜度、加正則化、早停、Dropout。這部分不需要背公式重要的是理解偏差和方差之間的權(quán)衡關(guān)系你為了降低模型對(duì)訓(xùn)練數(shù)據(jù)的依賴會(huì)增加方差為了讓模型更平滑又會(huì)犧牲偏差。后面深度學(xué)習(xí)里所有調(diào)參決策本質(zhì)上都在處理同一個(gè)權(quán)衡。4. 深度學(xué)習(xí)反向傳播與神經(jīng)網(wǎng)絡(luò)的訓(xùn)練深度學(xué)習(xí)部分是整門(mén)課的承上啟下段落。機(jī)器學(xué)習(xí)的套路還是靠人工設(shè)計(jì)特征深度學(xué)習(xí)把特征提取這個(gè)環(huán)節(jié)也交給模型自己完成。4.1 從感知機(jī)到多層網(wǎng)絡(luò)單個(gè)神經(jīng)元只能擬合線性決策邊界這在實(shí)際任務(wù)中遠(yuǎn)遠(yuǎn)不夠。把多個(gè)神經(jīng)元堆疊成隱藏層再通過(guò)非線性激活函數(shù)就能擬合任意復(fù)雜函數(shù)。這個(gè)結(jié)論是深度學(xué)習(xí)的理論基礎(chǔ)。常見(jiàn)激活函數(shù)的用途值得逐一手寫(xiě)驗(yàn)證一遍激活函數(shù)特點(diǎn)常見(jiàn)使用位置ReLU計(jì)算快緩解梯度消失但會(huì)“死神經(jīng)元”隱藏層默認(rèn)選項(xiàng)Sigmoid輸出限制在 0 到 1適合概率輸出二分類輸出層Tanh輸出限制在 -1 到 1均值接近 0RNN 結(jié)構(gòu)Softmax多分類歸一化概率多分類輸出層4.2 反向傳播反向傳播是整個(gè)神經(jīng)網(wǎng)絡(luò)的訓(xùn)練核心。前向傳播計(jì)算預(yù)測(cè)值反向傳播利用鏈?zhǔn)椒▌t逐層計(jì)算梯度。如果你第一次看反向傳播的推導(dǎo)建議用筆在草稿紙上推一個(gè)最簡(jiǎn)單的 2 層網(wǎng)絡(luò)而不是直接看代碼。在實(shí)際編碼中PyTorch 這種框架通過(guò)自動(dòng)求導(dǎo)把反向傳播封裝好了但底層原理不清遇到 loss 不降、梯度爆炸時(shí)排查會(huì)比較吃力。4.3 最小可運(yùn)行示例MNIST 手寫(xiě)數(shù)字分類MNIST 是深度學(xué)習(xí)里的 Hello World。下面這個(gè)示例在 CPU 上就能跑通建議作為第一個(gè)完整訓(xùn)練流程。import torch import torch.nn as nn import torch.optim as optim from torchvision import datasets, transforms from torch.utils.data import DataLoader transform transforms.Compose([ transforms.ToTensor(), transforms.Normalize((0.1307,), (0.3081,)) ]) train_data datasets.MNIST(root./data, trainTrue, downloadTrue, transformtransform) train_loader DataLoader(train_data, batch_size64, shuffleTrue) class MLP(nn.Module): def __init__(self): super().__init__() self.net nn.Sequential( nn.Flatten(), nn.Linear(28 * 28, 128), nn.ReLU(), nn.Linear(128, 10) ) def forward(self, x): return self.net(x) model MLP() optimizer optim.Adam(model.parameters(), lr0.001) criterion nn.CrossEntropyLoss() for epoch in range(3): total_loss 0 for images, labels in train_loader: optimizer.zero_grad() outputs model(images) loss criterion(outputs, labels) loss.backward() optimizer.step() total_loss loss.item() print(fepoch {epoch 1}, loss: {total_loss / len(train_loader):.4f})關(guān)注三個(gè)觀察點(diǎn)損失是否穩(wěn)定下降、訓(xùn)練耗時(shí)多少、最終準(zhǔn)確率。正常跑完 3 個(gè) epoch在 CPU 上也就一兩分鐘。如果損失不降優(yōu)先檢查學(xué)習(xí)率和數(shù)據(jù)預(yù)處理。5. 神經(jīng)網(wǎng)絡(luò)算法進(jìn)階CNN 與注意力機(jī)制神經(jīng)網(wǎng)絡(luò)不是一個(gè)固定結(jié)構(gòu)它的發(fā)展主線就是把“手工設(shè)計(jì)特征”逐步替換成“自動(dòng)學(xué)特征”。第 5 節(jié)重點(diǎn)講兩個(gè)影響最深的結(jié)構(gòu)CNN 和注意力機(jī)制。5.1 卷積神經(jīng)網(wǎng)絡(luò)的組成CNN 的出現(xiàn)解決了全連接網(wǎng)絡(luò)在圖像上的參數(shù)爆炸問(wèn)題。卷積層通過(guò)共享權(quán)重提取局部特征池化層降低分辨率最后用全連接層做分類。理解 CNN 有三個(gè)關(guān)鍵詞關(guān)鍵詞含義局部感受野卷積核只關(guān)注相鄰區(qū)域符合圖像的空間局部性權(quán)值共享同一個(gè)卷積核掃過(guò)整張圖大幅減少參數(shù)量層次化特征淺層學(xué)到邊緣紋理深層學(xué)到語(yǔ)義部件有意思的是CNN 提取的特征在淺層和深層之間有明確分工淺層關(guān)注邊緣、顏色、紋理深層關(guān)注臉、物體部件。這個(gè)觀察后來(lái)直接影響了目標(biāo)檢測(cè)和圖像生成的發(fā)展。5.2 注意力機(jī)制為什么重要注意力機(jī)制最早用于機(jī)器翻譯但它真正改變行業(yè)是因?yàn)榻鉀Q了長(zhǎng)距離依賴的問(wèn)題。RNN 處理長(zhǎng)序列時(shí)會(huì)遇到梯度消失注意力機(jī)制允許模型直接關(guān)注輸入序列中的任意位置。自注意力的計(jì)算過(guò)程是每個(gè) token 生成 Query、Key、Value 三個(gè)向量然后計(jì)算 Query 與所有 Key 的相似度用相似度加權(quán)求和 Value。這套邏輯完全取代了 RNN 的遞歸結(jié)構(gòu)并且可以并行計(jì)算。它就是 Transformer 的核心也是后來(lái) BERT、GPT 等大模型的底層結(jié)構(gòu)。學(xué)到注意力機(jī)制時(shí)建議對(duì)照 PyTorch 官方 Transformer 代碼理解一遍不要只看公式。6. 強(qiáng)化學(xué)習(xí)獎(jiǎng)勵(lì)驅(qū)動(dòng)下的決策優(yōu)化強(qiáng)化學(xué)習(xí)是七個(gè)知識(shí)點(diǎn)中思路差異最大的一塊。監(jiān)督學(xué)習(xí)依賴帶標(biāo)簽數(shù)據(jù)強(qiáng)化學(xué)習(xí)沒(méi)有標(biāo)簽只有獎(jiǎng)勵(lì)信號(hào)。Agent 通過(guò)和環(huán)境交互不斷試錯(cuò)目標(biāo)是最大化長(zhǎng)期累計(jì)獎(jiǎng)勵(lì)。6.1 強(qiáng)化學(xué)習(xí)基本框架五個(gè)核心概念必須搞清楚Agent做決策的智能體EnvironmentAgent 交互的對(duì)象State當(dāng)前環(huán)境狀態(tài)ActionAgent 采取的動(dòng)作Reward環(huán)境返回的即時(shí)獎(jiǎng)勵(lì)舉例說(shuō)明訓(xùn)練一個(gè)玩迷宮游戲的智能體狀態(tài)是當(dāng)前位置動(dòng)作是上下左右移動(dòng)獎(jiǎng)勵(lì)是到達(dá)終點(diǎn)得 1 分撞墻扣 0.1 分。Agent 的任務(wù)就是學(xué)會(huì)一套策略在每一步選擇讓未來(lái)累計(jì)獎(jiǎng)勵(lì)最大的動(dòng)作。6.2 從 Q-Learning 到 PPO課程中通常會(huì)從表格型的 Q-Learning 講起用一張 Q 表記錄每個(gè)狀態(tài)下的動(dòng)作價(jià)值再逐步演化為 DQN深度 Q 網(wǎng)絡(luò)用神經(jīng)網(wǎng)絡(luò)替代 Q 表。策略梯度方法則是直接學(xué)習(xí)策略函數(shù)。Actor-Critic 結(jié)構(gòu)把兩者結(jié)合Actor 負(fù)責(zé)選動(dòng)作Critic 負(fù)責(zé)評(píng)估動(dòng)作的價(jià)值。PPO 在 Actor-Critic 基礎(chǔ)上加了穩(wěn)定性約束是目前工業(yè)界最常用的強(qiáng)化學(xué)習(xí)算法之一也是大模型 RLHF 里面的關(guān)鍵組件。6.3 強(qiáng)化學(xué)習(xí)入門(mén)的常見(jiàn)誤區(qū)初學(xué)者最容易犯的錯(cuò)誤是只跑現(xiàn)成環(huán)境不做狀態(tài)和獎(jiǎng)勵(lì)設(shè)計(jì)。強(qiáng)化學(xué)習(xí)的效果高度依賴獎(jiǎng)勵(lì)函數(shù)設(shè)計(jì)獎(jiǎng)勵(lì)稀疏、獎(jiǎng)勵(lì)過(guò)密、獎(jiǎng)勵(lì)欺騙都會(huì)導(dǎo)致學(xué)不到有效策略。建議第一個(gè)實(shí)驗(yàn)從一個(gè)小型網(wǎng)格世界開(kāi)始自己定義狀態(tài)、動(dòng)作、獎(jiǎng)勵(lì)用 Q-Learning 跑通整條流程再換到更復(fù)雜的連續(xù)控制環(huán)境。一步到位直接上 PPO遇到問(wèn)題很難定位是網(wǎng)絡(luò)問(wèn)題還是獎(jiǎng)勵(lì)問(wèn)題。7. 計(jì)算機(jī)視覺(jué)圖像理解任務(wù)全解析計(jì)算機(jī)視覺(jué)是神經(jīng)網(wǎng)絡(luò)最成熟的應(yīng)用方向之一。七個(gè)知識(shí)點(diǎn)里CV 對(duì)應(yīng)的是從 CNN 結(jié)構(gòu)到實(shí)際任務(wù)之間的橋梁。7.1 視覺(jué)任務(wù)圖譜任務(wù)類型目標(biāo)典型輸出圖像分類判斷整圖屬于哪個(gè)類別類別標(biāo)簽?zāi)繕?biāo)檢測(cè)找出圖中物體位置和類別邊界框 類別語(yǔ)義分割對(duì)每個(gè)像素分類像素級(jí)標(biāo)簽圖實(shí)例分割區(qū)分同一類的不同個(gè)體掩碼 類別學(xué)習(xí)時(shí)建議按照這個(gè)順序推進(jìn)先做分類再理解檢測(cè)最后理解分割。每個(gè)任務(wù)背后都有對(duì)應(yīng)的網(wǎng)絡(luò)結(jié)構(gòu)變化分類是骨干網(wǎng)絡(luò)檢測(cè)在骨干上加了區(qū)域提議分割變成了像素級(jí)的密集預(yù)測(cè)。7.2 數(shù)據(jù)增強(qiáng)的重要程度很多剛?cè)腴T(mén)的人低估了數(shù)據(jù)增強(qiáng)的作用。圖像分類模型對(duì)平移、旋轉(zhuǎn)、縮放、亮度變化的魯棒性大部分來(lái)自訓(xùn)練時(shí)的數(shù)據(jù)增強(qiáng)。在課程中這部分也會(huì)涉及實(shí)際工程中它的優(yōu)先級(jí)甚至高于模型結(jié)構(gòu)更換。7.3 本地跑一個(gè)小實(shí)驗(yàn)如果只想驗(yàn)證 CNN 在圖像上的效果不用直接上 ImageNet。用上一節(jié) MNIST 的代碼把網(wǎng)絡(luò)改成一個(gè)小型 CNN對(duì)比它和 MLP 的準(zhǔn)確率差異就能直觀感受到卷積結(jié)構(gòu)的優(yōu)勢(shì)。import torch.nn as nn class SimpleCNN(nn.Module): def __init__(self): super().__init__() self.features nn.Sequential( nn.Conv2d(1, 32, kernel_size3, padding1), nn.ReLU(), nn.MaxPool2d(2), nn.Conv2d(32, 64, kernel_size3, padding1), nn.ReLU(), nn.MaxPool2d(2) ) self.classifier nn.Sequential( nn.Flatten(), nn.Linear(64 * 7 * 7, 10) ) def forward(self, x): return self.classifier(self.features(x))這份代碼可以直接替換上一節(jié) MLP 的模型定義訓(xùn)練流程不用改。對(duì)比二者在測(cè)試集上的準(zhǔn)確率是理解 CNN 最直觀的方式。8. 自然語(yǔ)言處理從詞向量到 Transformer自然語(yǔ)言處理和計(jì)算機(jī)視覺(jué)是 AI 應(yīng)用的左右手。NLP 的特殊性在于數(shù)據(jù)是序列形式長(zhǎng)度不固定語(yǔ)義高度依賴上下文。8.1 核心建模思路演變NLP 建模經(jīng)歷過(guò)幾個(gè)明顯階段階段代表方法核心問(wèn)題獨(dú)熱編碼One-Hot無(wú)法表達(dá)語(yǔ)義相似度靜態(tài)詞向量Word2Vec, GloVe一詞多義問(wèn)題上下文編碼ELMo, BERT解決一詞多義生成式預(yù)訓(xùn)練GPT統(tǒng)一理解與生成理解從詞向量到上下文編碼的演變是重點(diǎn)。Word2Vec 給每個(gè)詞一個(gè)固定向量但“蘋(píng)果”在“蘋(píng)果公司”和“吃的蘋(píng)果”里應(yīng)該是不同的語(yǔ)義。BERT 這類模型通過(guò)學(xué)習(xí)上下文讓詞的表示隨語(yǔ)境動(dòng)態(tài)變化。8.2 Transformer 結(jié)構(gòu)Transformer 是 NLP 部分的高峰也是大模型的起點(diǎn)。它的核心組件包括多頭自注意力、位置編碼、前饋網(wǎng)絡(luò)、殘差連接和層歸一化。這里有一個(gè)非常值得注意的細(xì)節(jié)自注意力本身不帶位置信息。語(yǔ)言是有順序的“我愛(ài)你”和“你愛(ài)我”的 token 集合完全一樣但含義相反。位置編碼的作用就是給模型注入順序信息。8.3 動(dòng)手驗(yàn)證思路入門(mén)階段不建議直接訓(xùn)練 BERT建議先跑文本分類的遷移學(xué)習(xí)流程加載一個(gè)中文預(yù)訓(xùn)練模型在自定義數(shù)據(jù)集上做微調(diào)。這樣可以理解預(yù)訓(xùn)練和微調(diào)的真實(shí)流程同時(shí)為后面大模型部分做鋪墊。9. 大模型部分從預(yù)訓(xùn)練到量化部署大模型部分是七個(gè)模塊里和產(chǎn)業(yè)結(jié)合最近的一段。2026 年來(lái)看大模型已經(jīng)不只是研究熱點(diǎn)而是開(kāi)發(fā)者的日常工具。課程中這部分的價(jià)值是把大模型背后的技術(shù)鏈條理清楚預(yù)訓(xùn)練、微調(diào)、對(duì)齊、部署、推理。9.1 大模型的技術(shù)鏈條階段解決什么問(wèn)題核心技術(shù)預(yù)訓(xùn)練大量無(wú)標(biāo)注文本上學(xué)語(yǔ)言規(guī)律Transformer、大規(guī)模分布式訓(xùn)練指令微調(diào)讓模型理解任務(wù)指令有監(jiān)督微調(diào)、LoRA 等參數(shù)高效微調(diào)對(duì)齊讓模型回答更符合人類偏好RLHF、DPO推理部署降低顯存和延遲模型量化、蒸餾、批處理學(xué)習(xí)這一塊的時(shí)候最好把注意力放在“大模型和之前的神經(jīng)網(wǎng)絡(luò)有什么進(jìn)步”這個(gè)問(wèn)題上。之前的深度學(xué)習(xí)模型多為單一任務(wù)訓(xùn)練大模型通過(guò)大規(guī)模預(yù)訓(xùn)練獲得了通用能力再通過(guò)微調(diào)和提示工程適配到具體任務(wù)這是范式層面的變化。9.2 本地部署與顯存觀察大模型部署經(jīng)常會(huì)碰到顯存問(wèn)題。常見(jiàn)的并行思路是FP32 模型參數(shù)權(quán)重最大FP16 和 BF16 能把顯存占用降到接近一半INT8 量化還能再降一截。但精度和效果需要在本地做驗(yàn)證不同模型、不同量化工具的結(jié)果差異很大。在本地跑大模型實(shí)驗(yàn)時(shí)建議用下面這套流程觀察資源占用# 通過(guò) nvidia-smi 觀察顯存變化 nvidia-smiimport os import torch # 觀察當(dāng)前進(jìn)程占用的顯存單位 MB if torch.cuda.is_available(): print(torch.cuda.memory_allocated() / 1024 / 1024) print(torch.cuda.memory_reserved() / 1024 / 1024)注意顯存占用不是一個(gè)固定值它會(huì)隨模型版本、輸入長(zhǎng)度、批處理大小變化。更穩(wěn)妥的做法是在本地做一組對(duì)照測(cè)試記錄不同 batch size 和輸入長(zhǎng)度下的顯存變化而不是依賴網(wǎng)上的數(shù)字。9.3 大模型 API 調(diào)用與批量任務(wù)實(shí)際應(yīng)用大模型當(dāng)前主流是基于 HTTP 接口調(diào)用。這里給一個(gè)通用調(diào)用示例模板實(shí)際使用時(shí)需要按具體模型服務(wù)的接口文檔調(diào)整地址和參數(shù)。import requests import json # 以 OpenAI 兼容接口為例實(shí)際 base_url 和 api_key 請(qǐng)按服務(wù)方文檔填寫(xiě) url http://127.0.0.1:8000/v1/chat/completions payload { model: your-model-name, messages: [ {role: user, content: 請(qǐng)用一句話解釋什么是梯度下降} ], temperature: 0.3, max_tokens: 200 } response requests.post(url, jsonpayload, timeout60) print(response.json()[choices][0][message][content])批量任務(wù)的核心思路是把調(diào)用過(guò)程拆成讀取輸入列表、逐條調(diào)用模型、寫(xiě)入輸出文件、記錄失敗日志。不要一次性提交幾萬(wàn)條請(qǐng)求先從幾十條開(kāi)始觀察接口的響應(yīng)時(shí)間和限流情況再?zèng)Q定是否加大并發(fā)。所有測(cè)試數(shù)據(jù)都要在合規(guī)范圍內(nèi)使用不要用未經(jīng)授權(quán)的隱私數(shù)據(jù)或版權(quán)素材。10. 學(xué)習(xí)環(huán)境搭建Python PyTorch Jupyter不管學(xué)哪一部分第一步都是把本地環(huán)境搭起來(lái)。這里給一個(gè)通用方案在 Windows、macOS、Linux 上都能用。10.1 安裝 Anaconda 與創(chuàng)建虛擬環(huán)境# 創(chuàng)建 Python 3.10 的獨(dú)立環(huán)境 conda create -n ml_course python3.10 -y # 激活環(huán)境 conda activate ml_course # 安裝基礎(chǔ)庫(kù) pip install numpy pandas matplotlib scikit-learn jupyter10.2 安裝 PyTorchPyTorch 的安裝命令取決于你的 CUDA 版本。最簡(jiǎn)單的做法是先裝 CPU 版本跑通代碼再根據(jù)顯卡驅(qū)動(dòng)選擇對(duì)應(yīng)的 CUDA 版本。# CPU 版適合入門(mén)實(shí)驗(yàn) pip install torch torchvision # 如果有 NVIDIA 顯卡先在終端執(zhí)行 nvidia-smi 查看驅(qū)動(dòng)支持的 CUDA 版本 # 再前往 PyTorch 官網(wǎng)選擇對(duì)應(yīng)安裝命令例如 pip install torch torchvision --index-url https://download.pytorch.org/whl/cu12110.3 驗(yàn)證環(huán)境import torch import sklearn import numpy as np print(PyTorch:, torch.__version__) print(scikit-learn:, sklearn.__version__) print(CUDA available:, torch.cuda.is_available()) if torch.cuda.is_available(): print(GPU:, torch.cuda.get_device_name(0))如果 CUDA available 是 False并不影響入門(mén)階段的學(xué)習(xí)MNIST 這種實(shí)驗(yàn)在 CPU 上完全能跑。等到做更大規(guī)模訓(xùn)練或大模型微調(diào)時(shí)再解決顯卡環(huán)境問(wèn)題。11. 學(xué)習(xí)路線規(guī)劃與時(shí)間安排視頻課程和書(shū)籍不同很容易出現(xiàn)“收藏了等于學(xué)會(huì)了”的情況。建議按照下面這個(gè)節(jié)奏安排學(xué)習(xí)。11.1 三階段推進(jìn)階段內(nèi)容范圍前置基礎(chǔ)核心輸出第一階段機(jī)器學(xué)習(xí)基礎(chǔ) 深度學(xué)習(xí)基礎(chǔ)Python 基礎(chǔ)理解回歸、分類、梯度下降、反向傳播第二階段CNN 強(qiáng)化學(xué)習(xí) CV/NLP 入門(mén)第一階段跑通 MNIST、文本分類實(shí)驗(yàn)第三階段Transformer 大模型 部署第二階段完成一個(gè)微調(diào)或 API 調(diào)用項(xiàng)目11.2 每階段做的事第一階段不用寫(xiě)太多代碼更重要的是推導(dǎo)公式和畫(huà)圖理解。每節(jié)課后回答三個(gè)問(wèn)題這個(gè)模型解決什么問(wèn)題、它的損失函數(shù)怎么設(shè)計(jì)、參數(shù)更新過(guò)程是什么樣的。第二階段開(kāi)始動(dòng)手。每個(gè)知識(shí)點(diǎn)對(duì)應(yīng)一個(gè)小項(xiàng)目CNN 對(duì)應(yīng)圖像分類RNN/Transformer 對(duì)應(yīng)文本分類強(qiáng)化學(xué)習(xí)對(duì)應(yīng)一個(gè)簡(jiǎn)單游戲環(huán)境。項(xiàng)目不需要復(fù)雜重要的是把訓(xùn)練、評(píng)估、調(diào)參的流程完整走一遍。第三階段聚焦大模型。建議從調(diào)用現(xiàn)有 API 開(kāi)始理解上下文長(zhǎng)度、temperature、max tokens 這些參數(shù)的作用再逐步嘗試本地部署和微調(diào)。這個(gè)階段的產(chǎn)出應(yīng)該是一個(gè)能夠向別人講解的完整項(xiàng)目。11.3 建議的練習(xí)強(qiáng)度不建議一天看十幾個(gè)小時(shí)視頻。更合理的方式是每天 1 到 2 小時(shí)其中一半時(shí)間看視頻一半時(shí)間寫(xiě)代碼。遇到看不明白的內(nèi)容可以往回跳過(guò)但要在后續(xù)補(bǔ)回來(lái)。12. 常見(jiàn)問(wèn)題與排查方法學(xué)習(xí)過(guò)程中大概率會(huì)遇到下面這些情況這里給一份可以對(duì)照的排查表。問(wèn)題現(xiàn)象可能原因排查方式解決方案視頻看得懂但代碼寫(xiě)不出來(lái)只看不練缺乏編碼手感記錄每個(gè)算法偽代碼每個(gè)知識(shí)點(diǎn)配一個(gè)小項(xiàng)目數(shù)學(xué)公式推導(dǎo)看不懂線性代數(shù)和概率基礎(chǔ)不足先跳過(guò)推導(dǎo)理解結(jié)論的應(yīng)用惡補(bǔ)矩陣運(yùn)算和貝葉斯基本概念loss 不下降學(xué)習(xí)率太大或太小數(shù)據(jù)預(yù)處理有誤打印 loss畫(huà)曲線調(diào)整學(xué)習(xí)率檢查數(shù)據(jù)歸一化代碼報(bào)錯(cuò)缺少依賴環(huán)境沖突查看完整報(bào)錯(cuò)棧新建 conda 環(huán)境重裝依賴CPU 跑大模型太慢模型規(guī)模超出硬件能力觀察內(nèi)存、CPU 占用用量化模型或改用 API 調(diào)用顯存不足batch size 過(guò)大或模型過(guò)大nvidia-smi 觀察顯存降低 batch size啟用梯度累積微調(diào)效果變差學(xué)習(xí)率過(guò)大、數(shù)據(jù)量不足對(duì)比微調(diào)前效果降低學(xué)習(xí)率增加數(shù)據(jù)量強(qiáng)化學(xué)習(xí)訓(xùn)練不穩(wěn)定獎(jiǎng)勵(lì)函數(shù)設(shè)計(jì)不合理打印累計(jì)獎(jiǎng)勵(lì)曲線調(diào)整獎(jiǎng)勵(lì)密度和范圍13. 最佳實(shí)踐與學(xué)習(xí)建議13.1 用項(xiàng)目驅(qū)動(dòng)而不是用課程驅(qū)動(dòng)課程是知識(shí)輸入的載體但不是終點(diǎn)。每學(xué)完一個(gè)模塊至少完成一個(gè)能運(yùn)行的項(xiàng)目并把結(jié)果記錄下來(lái)。代碼倉(cāng)庫(kù)就是最好的學(xué)習(xí)筆記比文檔筆記更能反映真實(shí)掌握程度。13.2 保留一套最小可運(yùn)行配置在你的代碼目錄里建一套固定結(jié)構(gòu)ml_course/ ├── data/ # 數(shù)據(jù)集 ├── models/ # 模型權(quán)重 ├── notebooks/ # Jupyter 實(shí)驗(yàn) ├── scripts/ # 訓(xùn)練腳本 └── outputs/ # 輸出結(jié)果這樣每次實(shí)驗(yàn)的輸入、輸出、權(quán)重都分得清楚方便復(fù)現(xiàn)和排查。13.3 注意數(shù)據(jù)、模型與版權(quán)合規(guī)使用公開(kāi)數(shù)據(jù)集、預(yù)訓(xùn)練模型時(shí)先看許可證。涉及人臉圖像、語(yǔ)音、隱私數(shù)據(jù)、版權(quán)素材時(shí)必須確認(rèn)是否有合法授權(quán)發(fā)布或商用前要做效果復(fù)核。大模型 API 調(diào)用時(shí)不要在未經(jīng)評(píng)估的情況下向外部服務(wù)發(fā)送敏感數(shù)據(jù)。13.4 先小后大先通后優(yōu)無(wú)論訓(xùn)練還是微調(diào)第一次跑通永遠(yuǎn)比追求效果重要。先用小參數(shù)驗(yàn)證整個(gè)鏈路能跑通再逐步加大模型、數(shù)據(jù)量和訓(xùn)練時(shí)長(zhǎng)。這條規(guī)則適用于所有深度學(xué)習(xí)項(xiàng)目。14. 總結(jié)與下一步李宏毅這套課程的最大價(jià)值不是讓你記住某一個(gè)算法而是把七個(gè)核心知識(shí)點(diǎn)串成一條完整的技術(shù)脈絡(luò)。如果你能按順序?qū)W完并動(dòng)手完成每個(gè)模塊的練習(xí)你得到的就不是零散的知識(shí)點(diǎn)而是一套可以繼續(xù)深入 AI 方向的基礎(chǔ)框架。最先應(yīng)該驗(yàn)證的地方是回歸和分類是否理解、梯度下降是否能手動(dòng)推、PyTorch 是否跑通 MNIST。這三個(gè)點(diǎn)過(guò)了學(xué)習(xí)曲線后續(xù)會(huì)很順。最容易踩的坑反而是節(jié)奏問(wèn)題不要貪快不要跳著看不要只收藏不練。下一步的擴(kuò)展方向很明確完成基礎(chǔ)部分后可以根據(jù)自己的方向選擇分支想做應(yīng)用就去理解大模型 API 和提示工程想做視覺(jué)就深入目標(biāo)檢測(cè)和圖像生成想做算法就進(jìn)入模型訓(xùn)練和優(yōu)化。知識(shí)主線不變分支由你的實(shí)際項(xiàng)目決定。把環(huán)境搭好從第一個(gè)回歸實(shí)驗(yàn)開(kāi)始跑比囤十套課程都有用。