從認字開始
詞彙表
每個詞條只回答三件事:這是什麼、你會在第幾步遇到它、以及最容易搞錯的地方。要看深的,詞條底部會送你去看對應的文章。
- 120
- 個詞條
- 8
- 個分組
- 120
- 個附最小範例
- 6
- 個附動態圖
120 個詞條
環境與命令列
20還沒碰到 AI 之前先要認識的東西:你打的字怎麼變成電腦動作。
- Terminal(終端機)一個讓你用打字跟電腦對話的視窗。有範例
- CLI(命令列介面)用打字而不是點滑鼠來指揮電腦。有範例
- Shell(殼層)讀懂你打的指令、然後去執行的那個程式。有範例
- PATH 與路徑路徑是檔案的地址;PATH 是電腦找程式時會去翻的地址清單。有範例
- 環境變數與 .env給程式看的設定值,寫在程式外面,而不是寫死在程式碼裡。有範例
- GUI(圖形介面)用點擊操作的介面:視窗、按鈕、選單、圖示 —— 跟用打字的命令列互為兩面。有範例
- Working Directory(工作目錄)你現在「站在」哪個資料夾:沒寫完整路徑的指令,預設都在這裡作用。有範例
- Config File(設定檔)程式讀取自身設定的檔案:用哪個模型、聽哪個埠、金鑰放哪 —— 寫一次,每次都生效。有範例
- JSON一種用純文字寫成、人和程式都讀得懂的輕量資料格式 —— AI 工具世界的通用語。有範例
- YAML另一種常見設定格式:用縮排表達層級,讀起來像人寫的大綱 —— 也對空白字元遠比 JSON 挑剔。有範例
- Process(處理程序)執行中的程式:有自己的記憶體、自己的編號(PID),活到它自己結束或被你殺掉為止。有範例
- Port(連接埠)接在位址後面的編號,讓同一台機器能同時跑很多個網路服務而不搞混。有範例
- Localhost(本機)「這台機器自己」:localhost 是名字、127.0.0.1 是位址 —— 綁在上面的服務,只有本機連得到。有範例
- stdio(標準輸入輸出)每個處理程序出生就有的三條預設資料管線:stdin 讀輸入、stdout 出正常輸出、stderr 出錯誤 —— 三條是分開的。有範例
- Exit Code(結束代碼)程式結束時交回的一個整數:0=成功、非 0=失敗 —— 程式向外面的世界報告「辦得怎樣」的方式。有範例
- File Permission(檔案權限)附在每個檔案上的規則,寫明誰可以讀它、改它、執行它 —— 你碰檔案時系統檢查的第一道關。有範例
- sudo(管理員權限)以管理員(root)的身分執行「這一條」指令:指令不變,身分變了。有範例
- Homebrew(brew)macOS(和 Linux)上事實標準的套件管理器:一行指令完成工具與應用程式的安裝、更新、移除。有範例
- IDE(整合開發環境)把「寫程式」和它周圍的一切裝進同一個視窗的程式:檔案樹、語法上色、整合式終端機、執行與除錯。有範例
- Dotfile(點檔案)檔名以 . 開頭的檔案:預設不出現在清單裡 —— 因為它們通常是設定,不是給你翻閱的內容。有範例
寫程式的基礎詞
20裝工具、跑範例時會一直撞到的名字。不需要會寫程式,但需要認得。
- Python一種程式語言,同時也是執行那種語言的程式。AI 圈的說明文件、範例程式、錯誤訊息,絕大多數用它寫。有範例
- Node.js讓 JavaScript 能在瀏覽器以外執行的程式。很多 AI 命令列工具是用它安裝、用它啟動的。有範例
- 套件管理員(Package Manager)幫你下載、安裝、更新、移除別人寫好的程式的工具。每個生態系各有一套。有範例
- pip(Python 套件安裝器)Python 自己的套件安裝器:去 PyPI 這個中央倉庫抓套件,裝進你目前使用的那一個 Python。有範例
- 虛擬環境(venv)一個專案專用、跟系統隔開的 Python 套件資料夾。啟動它之後,pip 裝的東西只會進到裡面。有範例有延伸閱讀
- 相依套件(Dependency)你的程式要能動,就必須先有別人寫的程式在。那些「必須先有的」就是相依套件。有範例
- Repository(儲存庫/repo)一個專案資料夾,加上它從第一天到現在每一次修改的紀錄。有範例
- Git(版本控制)記錄一個資料夾隨時間怎麼變的工具:誰改了什麼、什麼時候改,而且隨時可以回去。有範例
- Commit(提交/快照)一次存檔:把專案在那一刻的樣子整包記下來,附一句說明。有範例
- Branch(分支)從主線分出去的一條平行工作線。在上面怎麼改,都不會動到主線。有範例
- Clone 與 Forkclone 是用指令把遠端的 repo 抓到你電腦上;fork 是在網站上把別人的 repo 複製一份到你自己的帳號底下。有範例
- Pull Request(PR/合併請求)「我改好了,請你看看要不要收進去」的正式請求。它是一套人對人的審查流程,不是一個指令。有範例
- Script(腳本)一個檔案,裡面是一串照順序執行的指令 —— 你原本在命令列上打的字,存起來變成可以重跑的東西。有範例
- Function(函式)一段有名字、可以重複使用的程式:你餵它輸入,它還你輸出。有範例有延伸閱讀
- Library 與 Framework(函式庫與框架)函式庫是你去呼叫它;框架是它來呼叫你。有範例有延伸閱讀
- API(應用程式介面)一份公開的約定:你照規定的格式發請求過去,對方照規定的格式回結果。你不需要知道對方內部怎麼做。有範例
- SDK(開發工具包)某家服務官方打包好的工具包:把呼叫它 API 的細節包成幾個好用的函式,讓你不必自己組請求。有範例
- Regex(正規表示式)一套描述「文字長什麼樣子」的記號,用來在大量文字裡找出、或驗出符合那個樣子的片段。有範例
- Debug(除錯)讀懂錯誤訊息、找出真正出問題的那一行,然後只改那裡。有範例有延伸閱讀
- Runtime(執行環境/執行期)兩個意思:一是「執行你程式的那個程式」(Python 直譯器、Node.js、瀏覽器);二是「程式正在跑的那段時間」,跟「程式寫好的那一刻」相對。有範例
連線與遠端
11呼叫 API、連到另一台機器時發生的事。
- API Key一串密碼,讓遠端服務知道「這個請求是你發的,帳單算你的」。有範例
- SSH(安全外殼)加密地連到另一台電腦,在那台電腦的命令列裡操作。有範例
- HTTP(超文本傳輸協定)瀏覽器與伺服器之間「請求—回應」的通用語言,也是所有模型 API 的傳輸方式。有範例
- Request/Response(請求—回應)一次往返:你送出一個請求,伺服器回一個回應,然後連線就可以結束 —— 它不記得你上一次問過什麼。有範例
- Status Code(狀態碼)伺服器在回應第一行給出的三位數字,告訴你這次請求成功了、是你弄錯了、還是它自己出錯了。有範例
- Header(標頭)附在請求或回應上、關於這次傳輸的說明:身分、內容格式、快取、要轉址到哪。真正的資料在內文裡,標頭是信封上的批註。有範例
- Rate Limit(速率限制)服務在一定時間內允許你送多少請求、消耗多少 token 的上限;超過就被擋下來,收到 429。有範例
- WebSocket(雙向長連線)一條建好就一直開著、兩邊都能隨時丟資料的連線;不像 HTTP 那樣問一次、答一次就斷。有範例
- Proxy(代理伺服器)擋在你與目標之間的中轉站:你的請求先給它,它再替你去問,然後把結果轉回來。有範例
- CORS(跨來源資源共享)瀏覽器的一道安全關卡:網頁腳本要向「不同來源」的伺服器要資料時,得對方明確允許,否則瀏覽器直接擋下。有範例
- Private Key(私密金鑰)一對金鑰裡絕不能外流的那一半:它留在你的機器上,用來證明「我就是我」,對應的公鑰則可以公開給別人。有範例
模型與推理
19大模型本身:它吃什麼、吐什麼、為什麼會出錯。
- LLM(大型語言模型)一個被訓練來預測「下一個 token」的神經網路。它只會輸出文字。有動態圖有範例有延伸閱讀
- Token(詞元)模型處理文字的最小單位。不是字,也不是詞。有範例
- Context Window(上下文視窗)模型一次能看到的 token 總量上限 —— 輸入和輸出共用這個額度。有範例
- Hallucination(幻覺)模型輸出一段讀起來完全合理、但事實上錯誤或憑空捏造的內容。有範例
- Tokenization(分詞)把一段文字切成一串 token 的那套規則 —— 每個模型家族有自己的切法。有範例
- Transformer(模型架構)一種以「注意力」為核心的神經網路架構,2017 年問世;現今幾乎所有 LLM 都建立在它上面。有動態圖有範例有延伸閱讀
- Prompt(提示詞)這一次送進模型的完整 token 序列:系統指令、對話歷史、工具定義、檢索到的資料,加上你最後打的那句話 —— 全部。有範例
- System Prompt(系統提示詞)放在整段 prompt 最前面、由開發者(而不是使用者)設定的常設指令,用來框住模型的角色、語氣與邊界。有範例
- Temperature(溫度)控制取樣隨機性的參數:調低,模型越傾向選機率最高的 token;調高,冷門選項越有機會被選中。有範例
- Top-p(核取樣)另一種控制隨機性的方法:把候選 token 按機率由高到低排,只留累積機率達到 p(例如 0.9)的最小集合,尾巴上的選項直接淘汰,再從留下來的裡面抽。有範例
- Inference(推理)把一個已經訓練好的模型拿來跑、產生輸出這件事 —— 和「訓練」相對,是使用模型時實際發生的全部計算。有動態圖有範例
- Prefill 與 Decode(預填充與解碼)一次生成的兩個階段:prefill 一口氣平行讀完整個 prompt(算力瓶頸,決定首字延遲);decode 之後一個 token 一個 token 地生成(記憶體頻寬瓶頸,決定吐字速度)。有範例
- Fine-tune(微調)拿一個現成模型,用你自己的資料繼續訓練,把新的行為或風格寫進權重裡。有範例
- Quantization(量化)把模型權重從高精度數值換成低精度數值,用可接受的品質損失換取大幅縮小的體積和記憶體需求。有範例
- Model Format(模型檔案格式)模型權重在硬碟上的封裝方式:GGUF、safetensors、MLX 等各是一種盒子,而每個執行環境只認得它支援的那幾種。有範例有延伸閱讀
- Multimodal(多模態)模型能處理文字以外的輸入(圖像、音訊、影片)—— 這些內容會被轉成模型能讀的表示,和文字共用同一段上下文。有範例
- Reasoning Model(思考型模型)回答前先生成一大段內部思考過程的模型:用更多的輸出 token,換取在多步問題上更高的正確率。有範例有延伸閱讀
- Frontier Model(前沿模型)某個時間點上能力最頂尖的那一小撮模型 —— 是一個會移動的標籤,不是一個固定的技術規格。有範例
- MoE(混合專家)一種模型架構:內部養很多「專家」子網路,但每個 token 只被交給其中少數幾個處理 —— 總參數量很大,每個 token 的計算量卻小得多。有範例
Agent 與 Harness
15讓模型真的能動手做事的那一層程式。
- AI Agent(代理)LLM + 上下文 + 工具 + 迴圈。讓模型自己決定下一步,並且真的有能力去做。有範例有延伸閱讀
- Tool Call(工具呼叫)模型不做事,它只是**請求**做事:回傳一段結構化文字說「請幫我呼叫這個工具,參數是這些」。有範例有延伸閱讀
- Harness(執行環境/框架)包住模型的那一層程式:組上下文、呼叫模型、解析輸出、執行工具、管權限、把結果餵回去。有動態圖有範例有延伸閱讀
- Agent Loop(代理迴圈)Agent 的心跳:組上下文 → 呼叫模型 → 解析輸出 → 執行動作 → 把結果接回上下文,重複到任務完成或撞上停止條件。有動態圖有範例有延伸閱讀
- ReAct(推理+行動)讓模型在每次動手前先用文字講出想法(Thought),再提出動作(Action),拿到觀察結果(Observation)後進入下一輪。有範例
- Planning(任務規劃)動手之前先讓模型產出一份步驟清單,之後照著執行、邊做邊修。有範例
- Subagent(子代理)主代理把一個子任務交給另一個獨立運行的代理:它有自己乾淨的上下文,做完只把結果交回來。有範例有延伸閱讀
- Orchestrator(編排器)決定「哪個任務交給誰、按什麼順序、結果怎麼收」的那一層;在 lead/worker 模式裡,就是那個只分工、不親自幹活的 lead。有範例
- Agent Memory(代理記憶)存在模型外面(檔案、資料庫)的資訊,需要時被挑出來、重新塞進上下文 —— 模型本身跨呼叫什麼都不記得。有範例有延伸閱讀
- Skill(技能)一份打包好、可重複使用的能力:指示文件(這類任務怎麼做),加上選配的腳本與資源,Agent 需要時才載入。有範例
- Slash Command(斜槓指令)用戶打一行 / 開頭的短指令,展開成一段預先定義好的完整工作流程 —— 由人觸發,不由模型挑選。有範例
- MCP(模型上下文協議)一套開放標準,規定工具(Tool)、資源(Resource)、提示模板(Prompt)怎麼暴露給 AI 客戶端 —— 伺服器寫一次,所有支援 MCP 的客戶端都能用。有範例有延伸閱讀
- Checkpoint(檢查點)把任務進行到一半的狀態存下來,讓工作在中斷後從這裡繼續,而不是從頭再來。有範例
- Human-in-the-Loop(人在迴路)在流程裡刻意插入一個「停下來等人批准」的點:人看過、按了同意,Agent 才准繼續。有範例
- Multi-Agent(多代理系統)好幾個各管一段的代理協作完成一件事:收集歸收集、分析歸分析、報告歸報告,靠訊息和共享狀態接起來。有範例
算力與性能指標
13硬體瓶頸在哪,以及該看哪些數字才不會被規格表騙。
- GPU(顯示卡/圖形處理器)一種擅長「同時做很多簡單運算」的晶片,因此特別適合大模型這類工作量。有範例
- VRAM(顯存/GPU 記憶體)GPU 自己的記憶體。模型權重與 KV cache 都得先放進這裡,放不下就無法運行。有範例
- FLOPS(每秒浮點運算次數)衡量「每秒能做多少次浮點運算」的原始算力數字。它看起來最專業,卻最不能預測你實際感受到的快慢。有範例
- 參數量(模型有多少個數字)模型裡有多少個可調整的數字。它常被當成「模型多大、多聰明」的標籤,但這個標籤比你想的更容易誤導。有範例
- 統一記憶體(CPU 與 GPU 共用一個記憶體池)CPU 和 GPU 共用同一塊記憶體,不必在兩個池子之間複製資料。Apple Silicon 是典型代表。有範例有延伸閱讀
- CPU 推理(不用 GPU 跑模型)只用 CPU、沒有 GPU 來跑模型。對小模型、低用量、離線批次任務它其實堪用;對大模型或互動式使用,它基本無望。有範例
- 本地 vs 雲端(自己跑還是呼叫 API)模型跑在你自己的機器上(本地),還是透過網路呼叫別人的機器(雲端 API)。真正的差異不是「免費 vs 付費」,而是隱私、規模成本、延遲、能力上限與維運負擔這幾條軸。有範例
- TTFT(首字延遲/第一個 token 的時間)從你按下送出,到第一個字出現之間那段「畫面毫無反應」的時間。它主要由提示長度與 prefill 決定,是使用者的確感受為「卡」的那個數字。有動態圖有範例
- Tokens/second(每秒生成 token 數)模型每秒能吐出多少個 token。在 decode 階段它主要由記憶體頻寬決定,而不是算力;廠商標示的數字跟你實測的數字往往差很遠。有範例
- 並發(同時處理多少個請求)系統同一時間能處理多少個請求。一個使用者感受到的速度,跟一台機器能同時服務多少人,是兩個完全不同的問題。有範例
- 批次處理(把多個請求一起算)把多個請求放在一起算,分攤「把權重搬進計算單元」的成本。它提高整台機器的吞吐量,但可能拉長任何單一請求的延遲。有範例有延伸閱讀
- KV Cache(鍵值快取)把每個已處理 token 的 Key 與 Value 存起來,生成下一個 token 時不必重算。代價是這塊記憶體隨序列長度成長,正是「長上下文很吃 RAM」的原因。有範例
- 每 token 成本(API 是怎麼計費的)API 對「輸入 token」與「輸出 token」分開計價,輸出通常更貴,命中快取的輸入常有折扣。而 Agent 的帳單之所以嚇人,是因為它每一輪都把越來越長的上下文重送一次。有範例有延伸閱讀
資料與檢索
11怎麼把外部知識塞給模型,以及塞錯會怎樣。
- RAG(檢索增強生成)先去查資料,把查到的內容連同問題一起給模型,讓它照著資料回答。有範例有延伸閱讀
- Embedding(向量表示)把一段文字變成一串數字,讓「意思相近」變成「數字上距離近」。有範例
- Vector Database(向量資料庫)一種用「意思有多接近」來查的資料庫:你給它一個查詢向量,它回你最相似的幾筆,而不是找字面完全一樣的。有範例
- Chunking(分段/切塊)在做 embedding 之前,先把長文件切成一小段一小段;因為向量是把「一整段的意思」壓成一個點,段落越長,那個點就越模糊。有範例有延伸閱讀
- Rerank(重新排序)檢索的第二關:先用便宜快的方法撈出一批候選,再用一個更聰明也更貴的模型,把「問題」和「每個候選」放一起細看,重新排出真正最相關的順序。有範例有延伸閱讀
- Full-Text Search(全文檢索)按「字面有沒有出現、出現幾次、有多稀有」來排序的傳統關鍵字檢索,代表算法是 BM25。它不懂意思,只數詞。有範例有延伸閱讀
- OCR(光學字元識別)把圖片、掃描件、PDF 裡的「圖像文字」辨認成電腦能處理的真實文字;是紙本文件進入任何資料流程的第一步。有範例有延伸閱讀
- Structured Output(結構化輸出)要求模型不回自由文字,而是回一段符合你指定格式(通常是一個 JSON schema)的資料,讓下游程式能直接解析、不用再猜。有範例
- Semantic vs Keyword(語義檢索 vs 關鍵字檢索)兩種檢索的根本取捨:關鍵字看「字面一不一樣」,語義看「意思近不近」。前者精確但死板,後者靈活但會抓錯重點。有範例
- Data Pipeline(資料流程/資料管線)把資料從來源送到可用狀態的一連串固定步驟:攝取 → 清洗 → 轉換 → 儲存 → 供查詢。AI 應用幾乎都建立在一條這樣的管線上。有範例
- Grounding(接地/有根據)把模型的每一句主張,綁回一個讀者能自己去查證的來源;不是「它說有出處」,而是「出處確實在、且確實支持這句話」。有範例
安全與權限
11能動手的 AI 也會闖禍。這些詞是闖禍與防闖禍的邊界。
- Prompt Injection(提示詞注入)攻擊者把指令藏在 AI 會讀到的內容裡,讓 AI 把「資料」當成「命令」執行。有範例有延伸閱讀
- Sandbox(沙箱)限制 AI 能動到哪些東西的圍欄:哪些目錄可寫、能不能上網、要不要每次都問你。有範例
- Jailbreak(越獄)用話術讓模型繞過它自己的使用規則,輸出開發商不打算讓它輸出的東西。有範例
- Data Classification(資料分級)先按敏感度把資料分類(公開/內部/機密/受限),再決定每一類可以流向哪裡 —— 包括能不能進模型的上下文。有範例
- PII(個人識別資料)能單獨或組合起來認出特定個人的資料:姓名、身分證字號、電話、住址、病歷、精確位置……有範例
- De-identification(去識別化)把資料裡指向個人的部分拿掉或改寫,讓它還能被分析,但(理想上)認不出來是誰。有範例
- Red Team(紅隊測試)故意站在攻擊者的位置打自己的系統,在用戶和真攻擊者之前把失敗找出來。有範例有延伸閱讀
- Supply Chain Risk(供應鏈風險)風險不從你自己的程式碼進來,而從你裝進來的東西進來:依賴套件、插件、第三方技能、MCP server。有範例
- Audit Log(稽核日誌)一份事後改不動的行為紀錄:Agent 何時、被什麼輸入驅動、呼叫了哪些工具、參數是什麼、結果如何 —— 由執行層寫入,不由模型自述。有範例
- Permission Gate(權限閘門)動作執行前的那個決策點:准、問人、還是擋 —— 由 harness 的程式碼強制,不靠模型自願。有範例
- Verification Gate(驗證閘門)結果被接受之前的獨立檢查:由跟產出者不同的檢查者 —— 不同 session、不共享上下文 —— 核對成果是否真的符合要求。有範例有延伸閱讀
不知道從哪開始?
照這個順序認字,大概一小時可以走完第一輪:環境與命令列 → 寫程式的基礎詞 → 模型與推理 → Agent 與 Harness。之後再回頭補算力、檢索與安全。
或直接走完整課程