發表文章

精選文章

[分享] DeepSeek R1 關鍵技術分享

投影片連結:  https://docs.google.com/presentation/d/e/2PACX-1vRE2WCiPHFADoNDcsqOevHAhA0BCTWCTXH7-2OeQZonRqzDV2C4eFjTpU2XKQUt4OQiXWVcfqy7lniQ/pub 摘要筆記 (by GPT-4o)  🎯 一、總覽摘要 DeepSeek 系列聚焦於: 降低推論成本(僅用 37B 參數實現 671B 架構效果) 提升推理能力(SFT + RL 訓練) 技術創新(MoE、MLA、MTP) 🔍 二、技術重點整理 1️⃣ 模型演進路線 DeepSeek-Coder / LLM / V2 / V3 / R1 / R1-Zero 全部模型皆採用 MoE 架構,Context window 最長可至 128K tokens 2️⃣ 效能比較亮點 DeepSeek-V3 (2024.12 發布的版本) 與 LlaMa-3.1 405B 在綜合表現上相當,但資源使用更省,在數學與程式相關測試表現超越 GPT-4o DeepSeek-V3-0324 在數學與程式領域超越 GPT-4.5 DeepSeek-R1 與 OpenAI GPT-o1 在綜合表現上相當,但資源使用更省 3️⃣ 三大技術突破 MoE (DeepSeekMoE) 精細劃分 Experts(類 ensemble 設計) Shared Expert 實現通才+專才搭配 MLA (Multi-Head Latent Attention) 壓縮 KV Cache 減少記憶體使用 MTP (Multi-Token Prediction) 多點預測輸出,強化學習訊號密度與 transition 學習 4️⃣ 訓練策略全景圖 Pretraining :大規模語料建立通識 SFT (Supervised Fine-Tuning) :學習解題方式 RL (Reinforcement Learning) :透過 reward feedback 強化推理 R1-Zero :全 RL 訓練,專精邏輯與數學任務 Distillation :從 R1 輸出中提煉高品質推理邏輯 5️⃣ Test-Time Scaling 延長 Chain of Thought,提高答案正確率 模型在測試時加入更多反思步驟,可...

[筆記] The Illusion of Thinking

圖片
  https://www.arxiv.org/pdf/2506.06941 Apple 在 2025 6月份 發布的 paper 主要探討當前 LLM 當中所謂的 Resaoning Model (像是 claude-3.7-sonnet-thinking 跟 DeepSeek-R1 ) 是否真的具有 思考 (thinking) 能力? 評測方法最直觀的思路就是舉一反三,做泛化能力的測試: 如果 LLM 在解謎遊戲中,會解困難較低的題目,那麼,不改變解謎遊戲規則,只是單純增加難度的話,應該可以依循同樣的思路下去順利解掉,只需要增加運算時間跟運算長度即可。 但如果當遊戲困難度提升後,LLM 卻出現了停止思考,或是完全解不出來的現象,那就可以合理懷疑,LLM 可能不是透過真正的思考過程來解謎,而是基於過往訓練時有看過的解法來解。 以上這是本篇快速的重點 Abstract KEY: 「數據污染(data contamination)是傳統 benchmark 面臨的一大問題,訓練資料可能早已涵蓋考題範例」 使用可控的 Puzzle 問題依照複雜度分類做測試,可以避免受到數據污染的影響: 可控制任務難度可分成低複雜度問題,中複雜度問題,高複雜度問題 現在的 Large Reasoning Model (LRM) 到底有沒有真實的 reasoning (或是所謂的 thinking) 能力還是一個問號 LRM 之所以看起來有 thinking 能力,可能僅是因為透過 reasoning 的 data 訓練做出類似 reasoning 的表現型而不是像人類那樣具有泛化能力! 「模型在面對更高複雜度時,出現推理中斷或完全失敗的現象,就值得懷疑其是否真具備泛化的推理能力」 比較 thinking v.s non-thinking LLM 在數學考試上的表現 上圖比較了 thinking v.s non-thinking 兩種模型 在 MATH-500 (大概是小學數學程度) 以及 AIME24 與 AIME25 (高中奧林匹克) 的表現 所謂的 thinking model 就是訓練模型有 reasoning 能力的 claude-3.7-sonnet-thinking 跟 DeepSeek-R1 non...

使用 pyenv 切換專案資料夾下的 local python 版本

圖片
最近在 macbook 上需要開發一些給舊系統用的 package 必須支援到 python3.6 筆電習慣使用的是 python3.12 問了一下 gpt-4o 他不建議直接透過 brew install 來安裝不同 python 版本 改採用 pyenv 來管控 以下是我的步驟 brew install pyenv # macOS # 或 sudo apt install -y build-essential libssl-dev zlib1g-dev ... # Ubuntu 安裝依賴 pyenv install 3.6.15 pyenv global 3.6.15 然後修改我的 ~/.zshrc vim ~/.zshrc 在檔案最後面加入以下設定 export PYENV_ROOT="$HOME/.pyenv" export PATH="$PYENV_ROOT/bin:$PATH" eval "$(pyenv init --path)" eval "$(pyenv init -)" 設定完 :wq 存檔後 source ~/.zshrc 這樣的設定下,我開新的 terminal 打 python 會出現 3.6.15 這個版本 接著我也要在 pyenv 底下把 python3.12 裝回來 pyenv install 3.12 pyenv global 3.12 我還是希望系統預設的 Python 使用 3.12 版本 所以要 global 一下 裝完測試一下 接著 到我想要使用 python3.6 的專案資料夾下 透過 local 指定指定這個目錄下的 Python 版本 cd 你的專案根目錄 pyenv local 3.6.15 這樣你在專案目錄下使用 python 就會是 3.6.15 出了專案目錄後就會回到 pyhon3.12 版本 完美~~~ :D

[筆記] macro, micro 與 binary 不同版本的 acc., precision, recall, fscore 計算方法

圖片
使用套件:  https://scikit-learn.org/stable/modules/generated/sklearn.metrics.precision_recall_fscore_support.html 這篇舉例說明頗清楚: https://blog.csdn.net/jmh1996/article/details/114935105 我也來舉個例子: Notations gt: ground truth pred: predict result 檢測陽性,正樣本 + : label 為 1 檢測陰性,負樣本 - : label 為 0 看表格解釋

[筆記] 使用 pygsheets 記錄實驗數據到 google sheet

圖片
  設定 Google Drive API 去 google cloud console 上建一個專案 https://console.cloud.google.com/ 接著在專案裡面搜尋 Google Drive API 接著啟用它

[Debug] 使用 Python argparse 遇到 error: unrecognized arguments

圖片
情境說明 我在  main.py  裡面定義了許多 argument 參數例如長這樣 然後我的  cmd.sh  長這樣 python main.py --model GaussianCopula \ --input_path data/train_raw.csv \ --output_dir data/ \ --num_rows 1000 \ --save_output \ --gen_dim 23 45 24 99

[筆記] 使用 ABC Notation 採譜 Machinedrum - Infinite Us

圖片
[採譜] Machinedrum - Infinite Us 前言 日前有一位做電音的DJ朋友傳給我這個 https://www.youtube.com/watch?v=u5BPgKB58Xs&ab_channel=irieficus 問我這個和聲原理是啥 瞬間燃起了我的研究興趣! 看似很複雜的和聲設計,只要使用 “樂理” 這個照妖鏡好好看一下 就可以發現它的規律! 以下把我做的反向工程和聲 source code 攤開給大家瞧瞧 ~~ 和弦分析