marin-community/marin

Open-source framework for the research and development of foundation models.

Marin – 用於建立基礎模型的開源平台

是什麼

  • 專注於大語言模型全生命週期(資料整理、分詞、預訓練、後訓練、評估)的研究級軟體堆疊(及社群)。
  • 設計為 開放開發:每個實驗、設定甚至失敗的執行都會被記錄並公開。

核心功能

領域 Marin 提供的內容
實驗定義 類似 Makefile 的宣告式、步驟式流程,描述資料準備、訓練與評估。步驟為惰性產生,可相互依賴。
擴展套件 – Delphi 將計算預算映射至模型大小的配方,在 Google TPU Research Cloud 上執行的擴展定律實驗,以及重現混合專家(MoE)流程的程式碼。檢查點與可繪圖資料托管於 Hugging Face。
混合專家支援 用於決定性混合公開資料集(Nemotron-CC、StarCoderData、ProofPile 2)與 MoE 負載平衡(分位數平衡)的工具。
最佳化與訓練工具 可設定的 Adam 變體(CompletedAdamHParams)、資源規格(ResourceConfig),以及現成的模型定義(例如 llama_nano)。
可擴展的代理技能 可載入的「技能」(例如 add_scaling_heuristicadd-dataset),用於自動化常見工作流程步驟。
文件與教學 ReadTheDocs 上的完整文件,訓練小型模型的快速入門指南,以及更大規模的範例(1B 參數 DCLM、8B 與 32B 模型)。

典型工作流程(小型模型範例)

# 1️⃣ 慣性分詞資料集
 tinystories = tokenized(
     name="tokenized/tinystories",
     source="roneneldan/TinyStories",
     tokenizer=marin_tokenizer,
     sample_count=1_000,
 )

# 2️⃣ 定義依賴於分詞資料的訓練步驟
 nano_model = train_lm(
     name="checkpoints/marin-nano-tinystories",
     version="v1",
     model=llama_nano,
     optimizer=AdamConfig(learning_rate=6e-4, weight_decay=0.1),
     datasets={tinystories: 1.0},
     batch_size=4,
     seq_len=2048,
     num_train_steps=100,
     resources=ResourceConfig.with_cpu(),
 )

# 3️⃣ 執行流程
 StepRunner().run([lower(nano_model)])

相同模式可擴展至多 GPU/TPU 群集及多種資料集混合。

快速上手

  1. 閱讀安裝指南:docs/tutorials/installation.md
  2. 執行小型模型教學(docs/tutorials/first-experiment.md)。
  3. 跟隨大規模訓練指南(docs/tutorials/train-an-lm.md)。
  4. 浏覽實驗目錄(docs/reports/index.md)。
  5. 加入 Discord 社群以取得支援與協作。

社群與支援

  • 核心貢獻者來自史丹福 CRFM 與 Open Athena。
  • 受 Google TPU Research Cloud、Jen-Hsun & Lori Huang 基金會、Siegel Family Endowment 與 Schmidt Sciences 支援。

為何重要 Marin 致力於使前沿規模的 LLM 研究具備可重現性與透明性。透過開源完整的訓練堆疊——包含資料流程、擴展定律與 MoE 平衡——研究人員無需重新發明底層基礎設施,即可建構、比較與擴展大型模型。


連結

相關

  • 專案
  • 專案
  • 專案
  • 專案
  • 專案