Skip to content
所有標籤

#python

45 篇文章

教學文章裡的程式碼要寫到什麼程度:步驟標籤、追蹤、Parsons 題與跑不跑得起來

替程式例題標上「這一步要達成什麼」,在一門入門課的準實驗裡,有標籤的班剛學完的小考較好,之後的考試沒有顯著差別;現場寫程式、用 Parsons 題代替寫程式,都沒有測到學習上的差別。GitHub 上的公開 notebook 照存下來的順序重跑,跑完沒有錯誤的約四分之一;程式跑不起來對讀者學習的影響,沒有研究量過。

ML/LLM 系統設計與 Coding 面試:四題架構、三題 Python 與 STAR 骨架

面試常被問到的四題系統設計(企業 RAG、推論服務、客服 Agent、線上 A/B 與資料飛輪)、三題 Python(動態批次、取樣、退避重試加 token bucket)與 STAR 行為骨架,每題附可講出口的回答與核對清單,程式碼都實際執行通過。

跨週整理(二):十二個專案各用到哪一段講課|Harvard CS50 AI 主題單元

把十二個專案放在一起看:每個專案要寫哪些函式、用到哪一節講課、規格頁給了什麼可以對答案的例子;哪些專案用的是同一種做法(列舉、搜尋、馬可夫鏈、從資料學)、哪些專案要用的東西講課沒有教。附三個算到底的例子與五題自我檢查。官方沒有標難度與時數,本文也不給。

Knowledge——命題邏輯、模型檢查、推理規則與知識表示|Harvard CS50 AI 第 1 週

第 1 週講怎麼讓程式依已知事實推出新事實:用命題符號與五個連結詞把知識寫成句子;model checking 列舉全部 2 的 n 次方種真假組合來判斷知識庫是否蘊涵某個查詢;推論規則與 resolution 改成直接操作句子,先轉成 CNF,再用反證法推出空子句;一階邏輯用常數、述詞與量詞減少符號數量。附逐段時間連結,以及 Knights、Minesweeper 兩個專案的解題思路、易錯處與檢查方式(參考實作摺疊)。

Uncertainty——機率、貝氏網路、馬可夫模型與遺傳推斷|Harvard CS50 AI 第 2 週

第 2 週講機率:條件機率與貝氏法則把證據換算成機率;貝氏網路用箭頭把聯合機率拆成每個節點的條件機率表,列舉推論算得精確但慢,拒絕取樣與概似加權用樣本近似;馬可夫鏈用轉移模型描述隨時間變化的狀態,隱藏式馬可夫模型再加上感測模型,從觀察反推看不到的狀態。附逐段時間連結,以及 Heredity、PageRank 兩個專案的解題思路與檢查方式。

Optimization——局部搜尋、模擬退火、約束滿足問題與填字遊戲|Harvard CS50 AI 第 3 週

第 3 週講最佳化的三種寫法:局部搜尋只記一個 state,hill climbing 往更好的鄰居走、會卡在局部極值,模擬退火用 e^(ΔE/T) 的機率接受變差的一步;線性規劃把問題寫成線性成本函數加線性限制,交給現成的求解器;約束滿足問題用 node consistency、arc consistency(AC-3)縮小 domain,再用回溯搜尋配合 MRV、degree、least-constraining value 三個 heuristic 找解。附逐段時間連結,以及 Crossword 專案的解題思路、虛擬碼、易錯處與檢查方式(參考實作摺疊在最後)。

Learning——監督式學習、k-NN、SVM、強化學習 Q-learning 與 Nim|Harvard CS50 AI 第 4 週

第 4 週講機器學習的三種形式。監督式學習從有標籤的資料學出 hypothesis function:分類可以看最近的 k 個鄰居,或用一組權重畫出決策邊界(perceptron learning rule、logistic regression、support vector machine),再用損失函數、regularization 與 cross-validation 對付 overfitting。強化學習用 Q-learning 依 reward 更新每個 state 與 action 的估計值,ε-greedy 留一點機率隨機探索。非監督式學習以 k-means 分群。附逐段時間連結,以及 Shopping、Nim 兩個專案的解題思路與檢查方式。

Neural Networks——反向傳播、TensorFlow/Keras、CNN 與交通號誌辨識|Harvard CS50 AI 第 5 週

第 5 週講神經網路:一個 unit 把輸入乘上權重、加 bias、再過 activation function;梯度下降一小步一小步調權重,隱藏層靠 backpropagation 把誤差往回分;影像先做卷積與 pooling 再接一般網路,就是 CNN;序列資料用 RNN 把輸出餵回自己。附逐段時間連結,以及 Traffic 專案的解題思路、易錯處與檢查方式。

Language——N-gram、Parser、Attention 與 Transformer|Harvard CS50 AI 第 6 週

第 6 週講電腦怎麼處理自然語言:先用 context-free grammar 手寫規則剖析句子,再改用統計,從 n-gram、Markov chain 生成文字到用 Naive Bayes 判斷評論的正負;接著用 word2vec 把詞變成向量,用 RNN 的 encoder–decoder 處理整個序列,最後是 attention 與 Transformer。附逐段時間連結,以及 Parser、Attention 兩個專案的解題思路、容易出錯的地方與檢查方式。

課程回顧與後續路線:七週教了什麼、沒教什麼、接著讀哪裡|Harvard CS50 AI 主題單元

系列最後一篇:用一張表回顧七週各教了什麼、做了哪些專案;課程在 2023 年把第 6 週換成講到 attention 與 Transformer 的新版,其餘六週仍是 2020 年的錄影;講課沒有教怎麼使用今天的語言模型。後半依你想往哪裡走,連到站上九門後續課程的總覽。附三題回顧自我檢查。

Looplane 架構地圖:一次 coding-agent 任務如何穿過 workspace、runtime、tools 與 events

Looplane 把 coding-agent 任務拆成可追蹤的邊界:native runtime 的副作用經過 Looplane tools、permission 與 sandbox;external runtime 保留自己的 loop 與工具,再把 patch 交回 Looplane 稽核。這篇是規劃中 20 篇系列的入口地圖。

Looplane 的 provider-neutral native loop:一次 model turn 如何走到驗證終態

Looplane 的 native lane 由 AgentRunner 掌握狀態轉移:準備 workspace、送出 model request、執行 tool calls、寫回 observations,模型沒有再呼叫工具時才進入 verification。step、wall time、重複動作、token 與取消條件都能先於模型宣告終止 run;provider adapter 的協定翻譯留給下一篇。

Looplane 的工具隔離:path allowlist、argv 嚴格化、process group 與 credential-free subprocess

這篇只拆 Looplane 的 tool executor 如何把一次呼叫安全落地:`SafePathPolicy` 限制 path 並阻擋 symlink escape,`VerificationCommand` 固定 argv 且使用 `shell=False`,subprocess 只拿清理過的 env,寫入走 read-version hash 與 atomic replace,timeout 會終止整個 process group。權限決策、OS sandbox 與 tool program 各留給後續專篇。

開學前先做這 4 題,卡哪題就先補哪裡|Harvard CS181 作業 0

HW0 用四題檢查 CS181 的先修:矩陣 y=Xw 的可解條件、目標函數的微分與優化、機率推理,以及用 Python 實作 OLS。做不順的地方就是開學後要優先補的缺口。

冰芯溫度迴歸 — kNN、核迴歸、基底函數與正則化四題導讀|Harvard CS181 作業 1

HW1 用 80 萬年冰芯溫度資料串起四題:kNN 與核迴歸、最小平方法的幾何證明、基底函數迴歸、以及從機率觀點推出 ridge/LASSO 正則化,最後用 coordinate descent 實作 LASSO。

Search——從 DFS、BFS、A* 到 Minimax 與 Alpha-Beta 剪枝|Harvard CS50 AI 第 0 週

第 0 週講搜尋:DFS 與 BFS 只差在 frontier 用 stack 還是 queue;A* 把已走步數加上啟發式估計,啟發式不高估時能保證最短路;Minimax 讓雙方輪流取最大與最小值,Alpha-Beta 剪掉不會影響結果的分支。附逐段時間連結,以及 Degrees、Tic-Tac-Toe 兩個專案的解題思路、易錯處與檢查方式;參考實作摺疊在各專案最後。

人工智慧入門:七週從搜尋、邏輯、機率走到神經網路與語言|Harvard CS50 AI 課程總覽

CS50 AI 用七週、十二個 Python 專案走過人工智慧的入門內容:搜尋、邏輯推論、機率、最佳化、機器學習、神經網路與語言。前四週的方法靠人把問題寫清楚,後三週讓電腦從資料裡學。講課、筆記、專案與自動評分都對校外免費開放。這篇是本系列的入口:七週各教什麼機制、一個可以跟著算的例子、先備檢查與閱讀路線。

為什麼 Python:寫 coding agent 的語言選擇代價與補償

五個成熟 coding agent 沒有一家用 Python——pi/opencode/claude-code 用 TypeScript,codex 從 TS 重寫成 Rust,omp 把熱路徑補上 8 萬行 Rust native crate。looplane 仍選 Python,代價是啟動效能與打包,補償手段是 lazy import、uv 和 Cloudflare Sandbox。

techdeep-dive

台股研究 Agent 實戰系列(篇 2):LangGraph 並行架構——五個分析師同時開工

五個 analyst 在同一個 superstep 並行 fan-out,延遲是 max 不是 sum;回測與 reflection 擋在 synthesis 前面,讓 LLM 只能解釋已存在的證據。

aideep-dive

AG2:以對話、GroupChat 與 speaker selection 組織多 Agent 協作

AG2 延續 AutoGen 的 ConversableAgent 心智模型:agent 透過訊息協作,GroupChatManager 再用 round-robin、manual、random 或 LLM 決定下一位發言者。

aideep-dive

Python coding agent 實戰 M11:為什麼 exec 迴圈做不出 Claude Code 的對話體驗

要做出 Claude Code 或 Codex 的 TUI,關鍵不是滿版配色,而是長生命期 session、typed transcript 與 tool-boundary approval。

aideep-dive

DSPy:用 Signature、Metric 與 Optimizer 編譯 AI 程式

DSPy 不把 prompt 當手寫字串,而以 Signature 宣告任務、Module 決定執行策略,再用資料集與 metric 讓 Optimizer 編譯出較好的提示與示例。

aideep-dive

Haystack 深入介紹:用 Component 與 Pipeline 組出可測試的 RAG

Haystack 把 indexing、retrieval、generation 與 evaluation 都做成可替換的 Component,再用 directed multigraph Pipeline 串接;適合要把 RAG 流程當成程式資產測試、版本化與部署的 Python 團隊。

aideep-dive

LangChain v1 Agents:create_agent、middleware 與 LangGraph runtime

LangChain v1 用 create_agent 提供高階 agent loop,底層由 LangGraph 執行;工具、structured output 與 middleware 是正式擴充邊界。

aideep-dive

Pydantic AI:用型別、Dependency Injection 與驗證建立 Python Agent

Pydantic AI 把 Agent 寫成 Agent[Deps, Output]:依賴、工具輸入與最終輸出都有型別,模型結果必須通過 Pydantic 驗證。

先用數學與 Python 找出機器學習地基缺口|CMU 10-301 作業 1

HW1 是 written+programming 作業:用機率、微積分、線代與 CS 題組檢查地基,再實作 majority-vote classifier。

Django:ORM、Admin、Auth 與長期演進的 Python Web Framework

Django 的價值是把資料模型、migration、auth、admin、forms 與安全預設組成一致系統;代價是要理解 QuerySet、middleware、async 邊界與 production settings。

techdeep-dive

Scrapy 深入介紹:從 Engine 到 Pipeline 的自架爬蟲架構

Scrapy 把抓取流程拆成 Engine、Scheduler、Downloader、Spider、Item Pipeline 與 Middleware;適合大量、規則明確的 HTTP 頁面,也能自行控制排程、節流、重試與資料落地。

techdeep-dive

Selenium 深入介紹:從 WebDriver session 到 Grid 的瀏覽器自動化

Selenium 透過標準化 WebDriver session 操作真實瀏覽器,適合跨瀏覽器流程、既有測試資產與遠端 Grid;它能執行 JavaScript 頁面,卻不保證繞過 CAPTCHA 或其他反自動化機制。

aiguide

Apify 完整介紹:Actor、Task、排程與資料集怎麼組成爬取平台

Apify 不是單一 crawler,而是把爬取程式包成 Actor,再用 Task 固定設定、Schedule 觸發執行、Dataset 交付結果的平台。適合不想自己維護佇列、排程與執行環境的團隊,但 Actor 費用、運算、proxy、儲存與傳輸會共同消耗預付額度。

aiguide

Browser Use 完整介紹:讓 AI Agent 操作瀏覽器的任務迴圈

Browser Use 把瀏覽器狀態、模型決策與 click/type/extract 等動作組成可重複迴圈;開放原始碼版本適合自訂工具與執行策略,Cloud 則代管瀏覽器、profile、proxy 與並行工作。

CrewAI:用角色扮演組織多 Agent 協作的框架

CrewAI(GitHub 57.4k star,MIT,PyPI 週下載 1,164 萬)用角色(role)、目標(goal)、背景故事(backstory)定義 agent,再把一組 agent 編成 crew 來協作。跟 LangGraph 的圖優先和 MAF 的工作流優先不同,CrewAI 是團隊優先——你不畫節點和邊,你描述一個團隊裡每個人負責什麼。2024 年底完成 LangChain 依賴的全面移除,現在是獨立框架。商業端分開源套件與 AMP 託管平台,AMP 加的是視覺化建構、部署、追蹤與合規。

aiguide

Firecrawl 完整介紹:Scrape、Crawl、Map 與結構化抽取怎麼選

Firecrawl 把單頁抓取、網站探索、整站爬取與 JSON 抽取包成同一套 API;雲端版省下瀏覽器、proxy 與 worker 維運,自架版則換得基礎設施控制,但預設能力不等同雲端。

LlamaIndex:它已經不是 RAG 框架了,而你可能還在照舊教學選它

LlamaIndex(GitHub 51,775 star,MIT,2026-08-21 實查)的重心已經從索引搬到 Workflows:獨立套件 llama-index-workflows 的 PyPI 週下載 281 萬,比傘狀套件 llama-index 的 197 萬還高。這篇拆核心抽象、跟自己刻 pipeline 的取捨,並實測它在繁中語料上的預設值——同樣的 chunk_size=1024,英文裝得下 4,645 字元,繁中只有 1,332。另附一個選型前必看的事實:TypeScript 版已封存停更。

aiguide

Scrapling 完整介紹:從 adaptive selector 到並行 Spider

Scrapling 把 HTTP、Playwright 瀏覽器、CSS/XPath 抽取與 Spider 放進同一套 Python API;adaptive selector 會保存元素特徵,版面改動後再用相似度重新定位,但仍需要驗證輸出。

Temporal:把流程寫成程式碼,崩了也能接著走完

Temporal 是 durable execution 平台(Server 1.31.2、Python SDK temporalio 1.31.0,MIT,2026-08 實查)。它跟 BullMQ / Celery 那種任務佇列的差別不是規模,是保證的東西不同:佇列保證訊息被消費,Temporal 保證一段橫跨多次外部呼叫的流程走完。代價是工作流程碼必須決定性——而 LLM 呼叫天生非決定性,這篇講這個張力怎麼解、什麼時候不划算。

Coding 面試攻略:ML-flavored 程式題的準備策略

AI Engineer 的 coding 面試和 SWE 不完全一樣——除了 LeetCode medium,還會出 ML-flavored 的題(實作 tokenizer、寫 batch inference pipeline、處理稀疏矩陣)。準備策略:LeetCode medium 練到 70% 通過率就夠,剩下的時間花在 numpy/pandas 操作、資料處理 pipeline、以及 ML 相關的程式題。

確定性抽取層:不用任何模型,先解決八成的 PDF

數位原生 PDF 的文字是讀得到的,缺的只是結構。PyMuPDF、pdfplumber、pypdf、Tika 這一層用啟發式規則就能還原段落與表格,零 GPU、零推論成本。最大的選型陷阱不是準確度,是 PyMuPDF 的 AGPL-3.0 授權。

techdebug

LLM agent 的 tool description 決定它怎麼選 tool:三個踩坑修法

把 tool description 從軟建議改成硬規則(白名單 + 後果說明),LLM 亂選 tool 的問題消失了;另外加 skip_signal=True 修掉 vector store 雙重 indexing。

MarkItDown:把任何檔案餵給 LLM 之前,先讓它變成 Markdown

Microsoft 開源的輕量工具,把 PDF、Office、圖片、音訊等格式統一轉成 Markdown,專門為 LLM pipeline 設計。

aiguide

notebooklm-py:用 Python 操控 Google NotebookLM 的非官方 API

notebooklm-py 透過逆向工程 Google 的 batchexecute RPC 協議,讓你用 Python / CLI / AI Agent 程式化操作 NotebookLM,包含音訊、影片、投影片、測驗等生成功能。

techguide

Celery:Python 生態裡分散式任務佇列的標準解法

Celery 是 Python 最主流的分散式任務佇列,用 Redis 或 RabbitMQ 當 broker,讓耗時工作跑在背景。島島的 AI 服務用它處理 LLM 回饋生成等非同步任務。

techguide

FastAPI:Python AI 服務的標準答案

FastAPI 是基於 Python type hint 的現代 Web framework,自動生成 OpenAPI 文件、原生 async 支援、效能接近 Node.js。AI/ML 服務的首選,也是 Python 後端裡最值得學的框架。

techguide

把爬蟲腳本做成 MCP Server,讓 Claude 直接用

用 FastMCP 把本地 Python 腳本包成 MCP Server,讓 Claude Code 可以直接呼叫,不再需要手動跑 pipeline。

techdebug

MCP Tool 回傳 1M 字元:search_local_jobs 的 token 爆炸問題

MCP tool 回傳 description 欄位導致 1033 筆職缺超過 token 上限,改成預設不回傳 description 並加上分頁就解決了。