TrenTorch/TrenTorch
Learn PyTorch by building your own. (inspired from Harvard's TinyTorch)
Tren⚡Torch – 從零開始學習的機器學習框架
是什麼 – TrenTorch 是一個完全基於 NumPy 的開源教育型深度學習庫。它重現了經典的 TinyTorch 課程(哈佛 CS249r),並擴展了更多模組,從基礎張量一路到完整的 Transformer 模型、效能分析、量化與基準測試。程式碼庫不包含任何外部深度學習相依性(無 PyTorch、TensorFlow、JAX 等);所有運算、自動微分引擎、優化器與層皆手寫完成。
為何存在 – 創作者希望學習者能真正「擁有」現代 ML 堆疊的每一部分。透過自行建構框架,他們能清楚理解 loss.backward() 如何運作、記憶體如何配置,以及生產級最佳化如何應用。此專案定位為一個進階式課程:從張量開始,逐步加入卷積、注意力機制,最終達成 LLM 操作。
核心功能(如 README 所述)
| 領域 | 你將獲得 |
|---|---|
| 基礎(模組 01–08) | 張量類別、激活函數、線性層、損失函數、資料載入器、自動微分、優化器(SGD、Adam、AdamW、Lion、Muon)、訓練迴圈。 |
| 視覺(模組 09) | Conv2d、MaxPool2d、可在標準影像基準上執行的完整 CNN 流程。 |
| 語言(模組 10–13) | 分詞器、嵌入層、多頭注意力、GPT 風格語言模型用的完整 Transformer 模組。 |
| 優化(模組 14–20) | 性能分析工具、量化、剪枝與蒸餾、硬體特定加速輔助、KV 快取記憶化、基準測試套件,以及整合所有內容的畢業專案。 |
CLI(tren) |
一個命令列介面,可架構模組工作流程、執行里程碑、匯出模型並啟動 Jupyter 筆記本。 |
| 歷史里程碑 | 腳本可讓你使用剛建構的框架重現標誌性成就(感知機、XOR、反向傳播、CNN、Transformer、MLPerf 風格基準測試)。 |
快速安裝
# 克隆並設定虛擬環境
git clone https://github.com/TrenTorch/TrenTorch.git
cd TrenTorch
python3 -m venv .venv
source .venv/bin/activate # Windows 上使用 .venv\Scripts\Activate.ps1
pip install -r requirements.txt
pip install -e . # 以可編輯模式安裝套件
tren setup # 將 `tren` 命令加入 PATH
tren # 啟動 CLI
README 指出,在執行 tren setup 後,你可在任何終端中無需再次激活虛擬環境直接執行 tren。
目標受眾與使用情境
- 希望深入、實作理解現代深度學習框架如何建構的 學生與自學者。
- 尋找從底層張量運算到生產級 LLM 流程的進階式課程的 教育者。
- 對在極簡程式碼中進行效能分析、量化等技巧感興趣的 工程師。
- 希望使用輕量、僅依賴 NumPy 的堆疊進行實驗,避免安裝重型套件的 黑客。
專案狀態
- 所有 20 個模組均已實作,並配有單元測試與整合測試。
- CLI、文件與里程碑腳本皆正常運作。
- 持續工作集中在文件潤飾、邊界情況強化與效能調校。
- 未來路線圖包含社群排行榜、更多里程碑練習與更廣泛的基準測試。
授權與社群
- 採用 MIT 授權(寬鬆,允許商業使用)。
- 歡迎貢獻;行為準則由 Contributor Covenant 管理。
Team Engineers區段列出當前維護者,並顯示即時生成的貢獻者徽章。
總結
TrenTorch 是一個真實、持續維護的開源專案,提供一個完整的、僅依賴 NumPy 的深度學習框架,適用於學習與實驗。它文件完整、測試覆蓋率高,並組織為逐步推進的課程,最終目標是建構與優化現代模型,如 Transformer 與 LLM。
相關
- 專案
- 專案
- 專案
- 專案