# 5-days GenAI course by Google Gemini team & Kaggle team : AI 筆記整理 Day1 : 11/11/2024 # 課程概覽: • Kaggle 舉辦的 Generative AI 密集課程為期 5 天(11/11/2024-11/15/2024),透過虛擬方式進行,涵蓋生成式 AI 及應用。 • 每日有作業,包括白皮書和播客來解釋生成模型及工具,例如向量資料庫(vector databases)與 AI agents。 • 提供 Colab 筆記本來教學如何應用這些工具,並設有 Discord 頻道供學員討論和進行 Q&A。 • 課程主題安排: • 第一天主題為基礎模型(Foundational Models)及 Prompt Engineering,之後課程會涵蓋嵌入(Embeddings)、向量資料庫、AI agents、領域特定模型、MLOps 等。 • 每天包含現場 Q&A,讓學員可以進一步了解技術概念。 # 主講人與嘉賓: • 多位來自 Google 的生成 AI 團隊專家參與,包括產品負責人、技術總監和 AI 模型開發人員等,專長領域涵蓋強化學習(Reinforcement Learning)、模型推論(Model Inference)和效能優化。 # 重點技術介紹: • Google Search Grounding:使用 Google 搜尋作為 LLM 的基礎,以減少生成模型的錯誤答案(hallucinations),提升回應準確性。 • OpenAI API 相容性:Gemini 模型現已相容 OpenAI SDK,開發者僅需更改幾行程式碼即可轉換使用,有助於比較兩者的性能。 ## :tropical_fish:Flash 模型系列: • Gemini 1.5 Flash 系列:推出小型的 8B 參數模型(Flash AP),具備低成本且高效能的特點。適合需要快速推論且成本敏感的應用情境。 ## :tropical_fish:開發者成本問題的解決: • Flash AP 目標是降低開發者在建立 AI 應用時的成本,使其專注於創新,而不必擔心運算成本問題。 ## :tropical_fish:與 Reinforcement Learning with Human Feedback(RLHF) 的結合: • 提到使用 RLHF 進行模型微調(tuning),以提升模型在真實情境下的表現。 • 多模態生成式 AI 的應用現況: - 討論了 DeepMind 的多模態模型(如 Imagine 用於影像生成、Veo 用於影片生成、Lia(?) 用於音樂生成)的應用,尤其是當這些模型與 Gemini 模型結合使用時,可能帶來更多創新應用。 • 生成式 AI 在實務應用中的挑戰與潛力: - 目前多數開發者仍以文字生成為主要模式,例如聊天應用或數據處理。其他多模態應用尚未有廣泛的進一步發展空間。 - 舉例說明 Notebook LM 的應用,即將文本資料轉化為聲音或影像,可增強使用體驗。這些模型將來可能協助將龐大的文字內容以視覺化或多模態方式呈現。 • 文本與多媒體的轉化潛力: - 未來可能將文本資料轉化為影片或音頻,以增強學習及內容呈現,例如將書籍或 GitHub 程式碼庫轉化為短片介紹或影像說明。 - 生成書籍預告片(trailor)的應用:自動分割 PDF 書籍內容並生成影片介紹是目前一項令人興奮的應用案例,該技術可用於推廣書籍。 ## :tropical_fish:增強生成式 AI 回應的 Reinforcement Learning with Human Feedback (RLHF) 機制: • 對 LLM 的 fine-tuning 採用兩步驟,包括 SFT(Supervised Fine-Tuning)和 RLHF(使用人類回饋的強化學習)。 • SFT:透過高品質的示範數據來微調模型,數據通常由專家提供。 • RLHF:使用獎勵模型(Reward Model)來強化模型對人類偏好的對齊度,提升模型在安全性、幫助性和事實正確性方面的表現。此回饋數據可來自專家或直接來自用戶,例如在 Gemini chatbot 使用者界面的按讚或按倒讚功能,這些回饋會被用於優化模型的回應品質。 • 用戶回饋的影響:用戶的正面或負面回饋(如按讚或按倒讚)有助於模型改善其表現,使其更符合人類偏好並提升使用者滿意度。 ## :tropical_fish:大型語言模型(LLM)的能力: • LLM 不僅僅是根據訓練數據內插,它們可以透過搜尋與推理來探索新的發現,尤其是在 NP 難度問題等複雜領域中展現了可能性。 • 例如,在 DeepMind 的 "font search" 工作中,LLM 被用來生成 Python 程式碼解決特定問題,並透過評估器及演算法迭代,找到從未被人類發現的新解法。 • 搜尋能力的應用與發展: - 透過測試時的搜尋和推理過程,LLM 能夠在推理層面進行自我增強並探索多種可能性,這被稱為 “測試時計算” 或 “inference scaling”。 • 搜尋技術的應用正在快速增長,可能會進一步擴展 LLM 的推理能力,特別是在複雜任務上實現突破。 • 蒸餾(Distillation)技術: - 可以將大型模型的知識蒸餾到較小的模型中,這種技術被稱為蒸餾(Distillation),是常見的推理優化技術。 • 蒸餾的方式包括「數據蒸餾」(data distillation),使用大型模型生成大量合成訓練數據;「知識蒸餾」(knowledge distillation),將大型模型的知識轉移到小模型上;以及「策略內蒸餾」(on-policy distillation),利用大型模型的分數評估小模型的輸出進行訓練。 • LLM 的評估方式: - 傳統的評估方法如 BLEU 和 ROUGE 分數,適合有明確標準答案的任務;然而,對於一些多樣化表達的任務(例如摘要),傳統評估方式可能不夠全面。 - 自動評估(Auto-evaluation)提供了另一種方法,LLM 可被用來自我評估生成的回應,這可以透過 Vertex AI 等服務或開源工具如 prompt Fu 來實現。 ### 未來展望: • 演講者們認為 LLM 仍處於早期發展階段,隨著計算能力的提升和搜尋技術的擴展,未來的 LLM 將在推理和探索新知識方面展現更大的潛力。 • Chain of Thought(CoT)提示技術: - CoT 是一種讓大型語言模型(LLM)生成中間推理步驟的提示技術。這可以透過提供範例來實現,幫助模型逐步解題,而非直接提供答案。 - 在這場活動中,參與者需要先輸入未使用 CoT 提示的範例,接著再輸入使用 CoT 提示的範例來比較其不同效果。 - 現代的 LLM 精度較高,有時候即使未使用 CoT 提示,模型也會顯示出步驟。若想再現這些模型的缺陷,可調整參數如 top K、top P、或溫度,或使用較舊版本的模型來更清楚地看到差異。 ## :tropical_fish:Enum 模式的應用: • 當需要 LLM 輸出特定的枚舉值(enum values)時,可以透過調整數據集結構來實現。具體做法是將問題或任務作為輸入,模型輸出則是對應的枚舉值。 • 有時候,LLM 在零樣本(zero-shot)情境下即可有效地處理枚舉選項,透過指示模型「選擇最適合的枚舉值」即可。 • Notebook LM 的開發技術: - Notebook LM 並未使用特別調整的 Gemini 模型,而是採用了 Gemini 1.5 Pro 和 flash 模型,並且加入了一些特別的檢索技術和精心設計的提示系統,使其能夠生成更精確的輸出。 • 日後優化建議: - 在展示 Chain of Thought 或其他提示技術的效果時,建議嘗試不同的模型版本或調整參數,以更好地觀察模型在不同提示下的回應差異。 - 演講者建議參與者可以通過 LinkedIn 與演講嘉賓聯繫,了解他們的研究或追蹤他們的論文,進一步探索 CoT 技術在 LLM 中的應用。 ## :tropical_fish:CoLab 示範與第一天課程重點: • 隨後的 CoLab 示範將引導學員操作實際範例,並概述第一天課程重點,包括 LLM 基礎模型的結構、Transformer 架構及其如何催生 LLM 革命、以及調整 LLM 的微調技術。 ## :tropical_fish:LLMs和Prompt Engineering參數介紹: 介紹了LLMs(大型語言模型)中重要的參數,特別是解碼參數(如temperature、top P、K等)。 這些參數影響模型如何生成回應,並在之後的合作中進一步探討。 ### :question: :grey_question: :question: ## 測驗問題: - 問題一:Gemini 配置中,哪個設定控制隨機性及下一個預測詞的選擇? 正確答案:Temperature。 - 問題二:哪一項不是加速大型語言模型推理的技術? 正確答案:Fine-Tuning。 - 問題三:Gemini 模型家族的獨特特性是什麼? 正確答案:2 百萬字元的上下文窗口(適用於 Gemini 1.5 Pro)。 - 問題四:人類回饋的強化學習(Reinforcement Learning from Human Feedback, RLHF)如何改善大型語言模型? 正確答案:透過獎勵模型來激勵生成符合人類偏好的回應。 - 問題五:哪種技術增強了語言模型的推理能力,使其產生中間推理步驟以提供更準確的答案? 正確答案:Chain of Thought Prompting。 - 問題六:使用標準浮點精度推理一個 30 億參數模型時,最低的 GPU 記憶體需求為多少? 正確答案:12 GB。 # 參考書籍 & 資源分享: • [Prompt engineering whitepaper](https://notifications.googleapis.com/email/redirect?t=AFG8qyUmPVboYjAqD4UXj0Zj8cawRRn9YA8Qa4C0e432_M1GvXzB2hstKOoQ3AJRecBCtYt_GbZin4Y48RZOHplC0jqc0S3b3yfaRUpLJQYF8ue_T7venypz7s8HoxJXFcFXWuBQV8DQzS7Q69PDV8VNgLX3ZkWF7NlRBlvW3CHhpJnZk5orgMn47d22_GXE60ZhB8c3ZS-MOxtVNW-fx9oRHHM_unAantevHa8sVKahE3oWXg6ZzFio6fKGl4oQ4KzXpMo&r=eJwFwUEKwCAMBMAXae79jZQlBmtc0kC-78zM5P-IVFVfQ_VDf8-WmpbgIKIxzmY2uJoDYa4XDAUUJg&s=ALHZ2r78c6sMmQyU1GvYZB9nY7e5) • [Foundational Large Language Models & Text Generation” whitepaper.](https://notifications.googleapis.com/email/redirect?t=AFG8qyV9Z5xPG71ZOGPW8KPqL7ZAabxpAlgERMbJ9LOGs9kc9nmzLuXCiwVeBYag4lwxey7oCUdeZD5kpDqQkJuUP4K-DgB5xrALsHEpAWcah5UV61pZSqdF0Evx8hpO3R0HSUCb29Pvybz9x4t-u5-Eq-dgW6jVgV9PKe4KgQ2j77n2-NyhxUzpM9rHjTdBeJjNxH4HFo9Q9HRkqGd5WJnF-pZzGF5bkeEN01Syh08NQbHmV936PeUsvhXJr6xg_GUO6As&r=eJwdyVEOgCAIANATof_dhiWiC4EZjY7f1vt9I8Lvo9bMLBcyC5XTVs0xgxydNnR7tGFMUxQQWYDaIOgNYFLa_3yx_hrt&s=ALHZ2r63_Jjab2aNXteRsKw-E6aW) • [Podcast episode for this unit 11/11/2024 (created by NotebookLM).](https://notifications.googleapis.com/email/redirect?t=AFG8qyW0-rI5vysN462pI6EBSBcgNf9izF-P-Nvhk2CEIGFJKKfJgbxBs5-HmQxnPryqafSvqGa09X-iCy2Iv_1dcbURWmzxIl1t0GZdKio532LIsAMJJOh_o7LhAwdT12CyJ3pmSkOKre28RdiLL04JHrm-o4zEhrDzcBPHwwC3l0AhSjzAdtx_h6DR6ghM_42QKXNfWcvOL8RjKLtr8ySLRDnMQPyiIGE_56E9fQRIr3U8hpzQvCJa_ni7-QMc-co6IYY&r=eJzLKCkpKLbS16_MLy0p1UtK1c8NdMlxjooq9q_MBwCWDwpF&s=ALHZ2r4iET_NqNSwkMzO8G-1QwV8) ---