成為頂尖 0.1% AI 研究者的 1 項技能

1 SKILL To Become Top 0.1% AI Researcher

影片詳細介紹:1 SKILL To Become Top 0.1% AI Researcher – EP.7 – Making LLMs Take Bytes As Input

這是系列影片的第 7 集,聚焦於 AI 研究中的前沿技術:讓大型語言模型(LLMs)直接以位元組(bytes)作為輸入,繞過傳統的標記化(tokenization)限制。

影片的目標是引導觀眾一步步進行 AI 研究,探討如何在開放源碼社區中領先於像 OpenAI 或 xAI 這樣的巨頭。Vuk Rosić 強調,這項技術能讓模型更快、更高效,因為數位世界本質上就是由位元組組成。他分享自己的研究過程,包括想法構思、代碼解釋、實驗設計,並鼓勵觀眾 fork GitHub 儲存庫參與。影片中提到,Elon Musk 最近表示 xAI 將取代 tokenizer,這讓這項研究更具時效性。

以下是影片內容的詳細結構與重點介紹,我會依時間軸分段說明,讓讀者更容易理解。影片以第一人稱敘述,Vuk Rosić 邊解說邊展示代碼、提示詞(prompts)和 AI 工具的使用(如 Claude Opus 4.1、Groq 4 等),並穿插他的個人想法和研究挑戰。

0:00 – 目標:基於位元組的 LLMs

  • 核心概念:傳統 LLMs 使用 tokenizer 將文字轉換成 token,這會造成效率問題(如處理多語言或非文字資料時的限制)。Vuk 提出直接輸入位元組(raw bytes),讓模型學習處理原始資料。這能節省計算資源,並適用於任何數位資料(文字、圖像等)。
  • 為何重要:開放源碼社區能領先商業公司,提供免費研究成果,讓大家受益。他提到 tokenizer 目前最佳但有缺陷,人們正尋求替代方案。
  • 資源分享:GitHub 儲存庫(https://github.com/vukrosic/bitstream-foundation-models-research),包含代碼和研究筆記。另外推薦 Novita AI 的 GPU 服務(使用他的推薦連結可支持他獲取更多計算資源),以及另一個開放源碼 AI 專案(https://github.com/vukrosic/open-source-ai-2026)。

1:31 – 研究規劃

  • Vuk 使用 AI 工具(如 ChatGPT)作為「導師」來規劃研究。他設計一個提示詞,讓 AI 幫助他思考研究問題、模板和步驟。
  • 重點:強調人類優勢在於直覺思考,而 AI 用於特定任務。研究不是盲目寫代碼,而是先深入理解問題。
  • 他使用 Notion 頁面組織研究,標題為「Replacing Tokens with Bytes in LLMs Foundation Models」。

2:27 – 我的「Byte Latent Transformer」想法

  • 創新點:靈感來自 Meta 的論文,提出「Byte Latent Transformer」:使用小型神經網路預測下一個位元組,當預測變得困惑(perplexity 高)時,將位元組群組(patch)編碼成潛在向量(latent vector),類似 token。
  • 優勢:對簡單位元組使用較少計算,對複雜位元組使用更多計算。這樣能動態分配資源,提高效率。
  • Vuk 比較多個 AI 模型的回應(如 Claude Opus 4.1、GPT-5 High、Groq 4),認為 Opus 解釋最簡潔有結構。他強調跟隨好奇心研究,而非完全複製 Meta 的方法。

4:50 – 理解代碼

  • 文字轉位元組:示範將文字(如 “hello”)轉成 UTF-8 位元組序列(e.g., [72, 101, 108, 108, 111])。
  • 處理多位元組字符:模型會自動學習處理 2-4 位元組的字符(如非 ASCII 符號),無需額外處理。
  • Vuk 比較 AI 模型的代碼解釋,讚揚 Opus 4.1 的清晰度。

5:26 – 如何將文字轉成位元組

  • 詳細解釋 ASCII 值(0-255)和 UTF-8 編碼。強調位元組輸入能處理任何資料類型。

7:02 – 將位元組群組成 Patch

  • 固定 vs. 動態 patch:避免固定大小(如 8 位元組),改用基於 perplexity 的動態群組。簡單序列用大 patch,複雜序列用小 patch。
  • 填充(Padding):使用 pad token 填充不滿的 patch,並討論是否合併 end-of-sequence 和 pad token 以節省空間。

9:12 – Byte Encoder & Embeddings

  • 編碼器:小型 transformer(2 層)將 patch 轉成 embedding。詞彙大小為 258(256 位元組 + 2 額外 token)。
  • 自注意(Self-Attention):每個位元組注意 patch 內的其他位元組。
  • Vuk 質疑 embedding 大小(192 維度)是否合適,位元組比 token 更模糊,可能需要更大 embedding。

11:45 – Mean Pooling 的問題

  • Mean Pooling:平均 patch 內所有 embedding 成單一向量,但會丟失位置資訊。
  • 潛在改進:討論其他方法,但強調簡單性優先。投影層將 192 維轉成模型的 384 維。

14:48 – 生成位元組(Decoding)

  • 解碼器:從 patch embedding 生成位元組序列,使用 teacher forcing(訓練時提供正確答案,避免錯誤累積)。
  • 自回歸生成:逐步預測下一個位元組,基於先前輸出。

16:11 – 設定 GPU

  • 示範使用 Novita AI 的 RTX 5090/4090 GPU(spot 定價 50% 折扣,0.18 USD/小時)。解釋 SSH 連線設定,鼓勵使用他的推薦連結支持研究。

16:53 – 設計第一個實驗

  • 使用 Claude Opus 建議實驗:調整 entropy 閾值(threshold)來決定 patch 大小。
  • Entropy 解釋:測量預測不確定性。低 entropy(易預測)繼續加到 patch,高 entropy 開始新 patch。
  • 範例:如 “hello world”,entropy 在空格或意外詞時升高。

17:22 – 什麼是基於 Entropy 的 Patching?

  • 詳細公式:使用小型 byte-level LM 計算 entropy(logits 轉概率,計算 -sum(p * log p))。
  • 分裂邏輯:高 entropy 時分裂,最大 patch 16 位元組。
  • 範例:重複位元組低 entropy,隨機位元組高 entropy。

23:24 – 實驗:測試 Entropy 閾值

  • 計劃訓練 4 個模型,閾值 1.5、2、2.5、3。追蹤損失(loss)、梯度範數、記憶體使用等。
  • 統計:平均 patch 大小、變異等。

24:46 – 研究問題

  • 最佳粒度?patch 大小如何影響學習速度?哪個閾值平衡語義一致性和細粒度?
  • 假設:中等閾值(2-2.5)最佳。
  • Vuk 提到限制(如單 GPU),但強調從小規模開始。未來需學習多 GPU 分散訓練。

26:08 – 待續…

  • 影片因 Vuk 疲勞而結束,承諾續集(連結在描述中)。他強調理解單一方法就能洞察整個問題,鼓勵觀眾參與研究。

整體評價與啟發

這部影片不僅是技術教程,更是 AI 研究入門指南,適合對 LLMs 感興趣的初學者和研究者。Vuk 的風格親切、步驟明確,強調開放源碼和好奇心驅動的研究。他批評 AI 提示詞有時不理想(如影片標題提到的 AI prompt 結果不佳),但展示如何迭代改進。缺點是研究尚在早期,需多月和更多人參與;優點是提供完整代碼和工具,讓觀眾能立即實驗。

如果您想深入,可直接 fork GitHub 儲存庫,或觀看系列前集學習從頭訓練 LLMs。如果有特定部分(如代碼或 entropy 計算)

Categories: 編程, 教學