Skip to content

ai-twinkle/LLM-Book-Club

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

62 Commits
 
 
 
 
 
 
 
 

Repository files navigation

Twinkle AI 熬夜書坊 - LLM 讀書會資源庫

TwinkleAI Reading Club Banner

歡迎來到 Twinkle AI 熬夜書坊 (Late-Night Study Session) 的專屬 GitHub Repository!

本專案旨在存放我們線上讀書會的所有開源資源,包含簡報、討論筆記以及可執行的 Jupyter Notebooks。目前我們正在共讀由 Jay Alammar 與 Maarten Grootendorst 共同撰寫的重量級大作——《LLM 語意理解與生成技術 完全開發》 (Hands-On Large Language Models)

無論你是剛踏入 LLM 領域的新手,還是想穩固底層知識、掌握實作細節的開發者,都歡迎跟著石虎的腳步,一起輕鬆交流、共同成長!☕️📚

📖 讀書會時程與大綱

活動固定於 每週日晚間 20:00 於線上進行。以下是各章節的資源與實作進度:

  • Chapter 1: 基礎 (Introduction to Language Models)

    • 日期:2026-04-05
    • 內容:LLM OS 概念、生成式 AI 歷史時間軸、Text input 與 Embeddings 基礎。
    • 實作:使用 Twinkle AI 專屬模型 gemma-3-4B-T1-it 進行 Formosa Vision 專案問答實作。
    • 資源:簡報 | Notebook | TwinkleAI 版 Notebook
  • Chapter 2: Tokens 與 Embeddings (Tokens and Embeddings)

    • 日期:2026-04-12
    • 內容:Tokenization 解析、Vocabulary 與 Special Tokens、Embeddings 向量魔法。
    • 實作:深入拆解 Tokenizer 的編碼與解碼過程,含八種模型 Tokenizer 視覺化比較、Word2Vec 音樂推薦實作。
    • 資源:簡報 | Notebook | TwinkleAI 版 Notebook | NotebookLM 筆記
  • Chapter 3: 看進語言模型的黑盒子 (Looking Inside Large Language Models)

    • 日期:2026-04-19
    • 內容:打開語言模型的黑盒子,透視 Transformer 架構的內部運作機制。
      • 生成機制的秘密:LLM 如何以自迴歸(autoregressive)方式逐 Token 生成,以及 KV Cache 最佳化技術如何大幅加速生成過程。
      • Transformer 內部解密:拆解 Transformer 區塊的兩大核心組件——負責記憶與推論的「前饋神經網路 (Feedforward Neural Network)」,以及整合上下文資訊的「注意力機制 (Attention Layer)」。
      • 注意力機制的進化:深入認識 Queries、Keys、Values (QKV) 投影矩陣的產生與互動計算,以及近年架構改良——Grouped-Query Attention (GQA)、Flash Attention 與旋轉位置編碼 (RoPE)。
    • 實作:(待更新)
    • 資源:簡報
  • Chapter 4: 文本分類的全景圖 (Text Classification)

    • 日期:2026-05-03
    • 內容:從傳統表示型模型到最新生成式模型,全面探索 LLM 如何精準判斷文字背後的意圖與情緒。
      • 表示型模型的分類雙重奏:利用 BERT 家族等 Encoder-only 模型進行分類,涵蓋兩條路徑——針對特定目標微調的「任務特定模型 (Task-specific models)」,以及將文字轉為向量特徵再搭配邏輯迴歸 (Logistic Regression) 的「嵌入模型 (Embedding models)」輕量級方案。
      • 零樣本分類 (Zero-shot Classification):面對標記資料匱乏的實務困境,透過嵌入向量與標記描述之間的餘弦相似度 (Cosine Similarity),在不訓練模型的情況下完成分類。
      • 生成式模型的分類新思維:比較 Sequence-to-sequence 模型(如 Flan-T5)與閉源模型(如 ChatGPT)在分類上的表現,深入提示工程 (Prompt Engineering) 技巧與偏好對齊 (Preference Tuning) 概念。
      • 專業的評估指標:解讀混淆矩陣 (Confusion Matrix),掌握準確率 (Accuracy)、精確率 (Precision)、召回率 (Recall) 與 F1 分數的實務應用。
    • 實作:TwinkleAI 版 Notebook
    • 資源:簡報 | Notebook | TwinkleAI 版 Notebook
  • Chapter 5: 文本分群與主題建模 (Text Clustering and Topic Modeling)

    • 日期:2026-05-10
    • 內容:跳脫需要大量標記資料的框架,運用語言模型在海量且未標記的文本中,自動找出潛藏的結構與主題。
      • 文本分群的經典三部曲:嵌入文件 (Embed documents)、利用 UMAP 進行降維 (Dimensionality Reduction)、以 HDBSCAN 密度分群演算法自動找出語意相似群體並過濾離群值 (Outliers)。
      • BERTopic:主題建模的樂高積木:透過基於類別的 TF-IDF (c-TF-IDF) 萃取代表性關鍵字,並以高度模組化設計自由抽換嵌入模型、降維套件與分群演算法。
      • 重新排序:升級你的主題表示法:以 KeyBERTInspired 利用餘弦相似度提取最具語意代表性的詞彙,並透過最大邊際相關性 (MMR) 消除關鍵字冗餘、確保多樣性。
      • 生成式 AI 神助攻:結合 Flan-T5 或 GPT-3.5 與提示工程,將代表性文件與初始關鍵字餵給 LLM,自動生成精準且高可讀性的主題標籤。
    • 實作:TwinkleAI 版 Notebook
    • 資源:簡報 | Notebook | TwinkleAI 版 Notebook
  • Chapter 6: 提示工程 (Prompt Engineering)

    • 日期:2026-05-17
    • 內容:直擊 LLM 核心,解密提示工程的關鍵技巧,從基礎指令到複雜邏輯推理,全面掌握引導模型產出高品質結果的訣竅。
      • 駕馭隨機與創造力:精準微調 Temperature 與 Top_p 參數,完美平衡模型輸出的穩定性與創意。
      • 模組化 Prompt 框架:靈活運用 Persona、Context、Format 與 Tone 四大元素,打造專業級指令。
      • 喚醒 System 2 邏輯推理:掌握 In-Context Learning 範例引導,並運用 CoT(思維鏈)與 ToT(思維樹)帶領模型攻克複雜難題。
      • 輸出驗證與格式約束:學習引導結構化輸出(JSON)及受限採樣(Constrained Sampling)的底層防呆機制,確保 Production 環境穩定運行。
    • 實作:TwinkleAI 版 Notebook
    • 資源:簡報 | Notebook | TwinkleAI 版 Notebook
  • Chapter 7: 進階文本生成技術與工具 (Advanced Text Generation Techniques and Tools)

    • 日期:2026-05-24
    • 內容:超越提示工程,深入探索 LLM 應用開發的三大核心支柱,學習如何將語言模型整合進複雜的工作流程。
      • 載入與串接 LLM(Chains):掌握如何載入本地或雲端 LLM,並透過 Chain 架構將多個模型或處理步驟串接成自動化流水線,實現 Multiple Chains 的複雜邏輯組合。
      • 對話記憶管理(Memory):比較三種主流記憶策略——完整保留上下文的 ConversationBuffer、以滑動視窗控制記憶長度的 ConversationBufferMemoryWindow,以及以摘要壓縮歷史對話的 ConversationSummary,在效能與成本間取得平衡。
      • 自主行動的 Agent:讓 LLM 自主決策、選用工具、執行多步驟任務,理解 Agent 的運作循環與工具呼叫機制,打造能與外部世界互動的智慧代理。
    • 資源:簡報 | Notebook
  • Chapter 8: 語意搜尋與檢索增強生成 (Semantic Search and Retrieval-Augmented Generation)

    • 日期:2026-05-31
    • 內容:深入探索 LLM 的關鍵能力——搜尋與檢索,學習如何讓語言模型根據外部知識庫生成有據可查的答案。
      • 稠密檢索(Dense Retrieval):將文字區塊轉換為高維向量表示,建立 FAISS 索引,透過餘弦相似度實現超越關鍵字的語意層次匹配。
      • 詞彙搜尋 vs. 語意搜尋:比較基於詞頻的傳統 BM25 稀疏檢索與利用嵌入模型捕捉語意相似性的稠密檢索,分析各自的優劣與適用場景。
      • 重排序(Reranking):以兩階段架構先快速召回候選文件,再以交叉編碼器(Cross-Encoder)精準重排序,並結合混合搜尋(Hybrid Search)取得最佳檢索結果。
      • 檢索增強生成(RAG):掌握 RAG 核心流程——檢索相關文件片段 → 注入提示詞 → 生成有引用依據的回答,並實作結合 LlamaCpp、HuggingFace 嵌入模型與 FAISS 的完全離線本地 RAG 管線。
    • 資源:簡報 | Notebook
  • Chapter 9: 多模態大型語言模型 (Multimodal Large Language Models)

    • 日期:2026-06-07
    • 內容:探索如何為語言模型加入視覺能力,學習多模態嵌入、圖像描述生成與視覺問答等核心技術。
      • CLIP(對比式語言-圖像預訓練):將圖像與文字映射至同一向量空間,實現跨模態的語意相似度比較;透過餘弦相似度衡量圖像與描述之間的關聯程度,支援零樣本圖像分類;並結合 SBERT 強化文字端的語意表示能力。
      • BLIP-2(語言-圖像預訓練 2):涵蓋「圖像描述生成(Image Captioning)」與「視覺問答(Visual Question Answering)」兩大應用情境——前者讓模型依據輸入圖像自動生成自然語言描述,後者則結合圖像與問題文字進行跨模態推理。
      • 多模態前處理:使用處理器將原始圖像轉換為模型可接受的張量格式,並將問題文字 tokenize 後與圖像特徵一同輸入模型。
    • 資源:簡報 | Notebook
  • Chapter 10: 建立文字嵌入模型 (Creating Text Embedding Models)

    • 日期:2026-06-14
    • 內容:深入探索文字嵌入模型的訓練與微調方法,涵蓋多種損失函數策略與無監督學習技術。
      • 建立嵌入模型(Creating an Embedding Model):使用 GLUE MNLI 資料集(含蘊含、中立、矛盾三類標籤),以 bert-base-uncased 作為 SentenceTransformer 基底,並以 STS-B 驗證集評估嵌入品質。
      • 損失函數(Loss Functions):比較三種主流損失函數——多分類導向的 Softmax Loss、以餘弦相似度為目標的 Cosine Similarity Loss,以及適合僅有正例場景的 Multiple Negatives Ranking Loss。
      • MTEB(大規模文字嵌入基準測試):透過 MTEB(Massive Text Embedding Benchmark)在分類、聚類、語意搜尋等多種下游任務上系統性評估嵌入模型表現。
      • 監督式微調(Supervised Fine-tuning):以有標記的 NLI 資料直接微調預訓練嵌入模型,快速適應目標任務。
      • Augmented SBERT:以 Cross-Encoder 擴充訓練資料的五步驟流程——微調 Cross-Encoder、生成候選句子對、產生銀標資料、訓練 Bi-Encoder,最後對比基線評估。
      • 無監督學習(Unsupervised Learning):以 TSDAE(Transformer-based Denoising AutoEncoder)對輸入句子加入雜訊後要求模型重建原句,在無標記資料上學習高品質句子表示。
    • 資源:簡報 | Marimo Notebook | 線上版 Notebook

後續章節將每週持續更新...

🚀 Getting Started (如何開始實作)

如果你想跟著讀書會一起動手跑程式碼,請參考以下步驟:

  1. 環境準備:強烈建議使用具備 GPU 資源的環境(例如 Google Colab 的 T4 GPU)以獲得順暢的推論體驗。或者你也可以使用自己習慣的 Jupyter / marimo 環境。

  2. 安裝套件:確保已安裝最新版的 transformersaccelerate

    pip install transformers>=4.50.0 accelerate>=0.31.0
  3. 模型存取:部分模型可能需要 Hugging Face 帳號授權,請確保你在環境中設定了 HF_TOKEN

🌟 About Twinkle AI

Twinkle AI 是一個以繁體中文為核心的開源 AI 社群,專注於打造在地語言模型與資料集。我們致力於推動可公開使用的模型權重、訓練資料與實務經驗分享,串聯研究者、工程師與創作者,促進台灣在地 AI 生態的交流與共創。

Twinkle AI is a research community founded in late 2024, dedicated to enhancing Traditional Chinese language models with local cultural context. Starting with open-source LLaMA models, we are developing practical technologies tailored to the linguistic nuances of Taiwan. Our mission is to promote knowledge of large language model training through real-world practices. By embracing openness and collaboration, we aim to advance the local ecosystem in the field of generative AI.

🤝 貢獻與參與

這個讀書會與資源庫是社群共創的心血。如果你在閱讀或執行程式碼時發現任何問題,或是想補充更棒的繁體中文/在地化 LLM 範例,非常歡迎發起 Pull Request 或建立 Issue 一起討論!

參考資源

Twinkle AI

書籍相關

本讀書會

About

Official repository for the Twinkle AI Late-Night Study Session. Features hands-on Jupyter notebooks, slides, and code for our book club on "Hands-On Large Language Models"

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors