模型概述
模型特點
模型能力
使用案例
🚀 Marin 8B模型介紹
Marin 8B是一個基於Transformer架構的自迴歸語言模型,由斯坦福大學CRFM的Marin團隊開發。該模型旨在提供高質量的文本生成能力,可應用於多種自然語言處理任務。
🚀 快速開始
Marin 8B採用了Llama架構,因此可以與Hugging Face Transformers庫以及任何支持Llama架構的庫直接配合使用。
我們使用了Llama 3分詞器的一個變體:stanford-crfm/marin-tokenizer。
推理示例
你可以使用標準的HuggingFace Transformers庫來使用Marin模型:
from transformers import AutoModelForCausalLM, AutoTokenizer
marin = AutoModelForCausalLM.from_pretrained("marin-community/marin-8b-base")
tokenizer = AutoTokenizer.from_pretrained("marin-community/marin-8b-base")
message = ["The Marin wind is"]
inputs = tokenizer(message, return_tensors='pt', return_token_type_ids=False)
response = marin.generate(**inputs, max_new_tokens=100, do_sample=True, top_k=50, top_p=0.95)
print(tokenizer.batch_decode(response, skip_special_tokens=True)[0])
我們發佈了該模型的多個檢查點。要加載特定的檢查點,只需添加revision
參數:
marin = AutoModelForCausalLM.from_pretrained("marin-community/marin-8b-base", revision="deeper-starling")
✨ 主要特性
- 多數據集訓練:Marin 8B在多種數據集上進行訓練,包括代碼、數學、推理等領域的數據集,使其具有更廣泛的知識和更強的推理能力。
- 高性能表現:在多個基準測試中,Marin 8B Base在平均得分和多個單項任務上表現出色,超過了Llama 3.1 Base、OLMo 2 Base和MAP NEO 7B等模型。
- 模型兼容性:支持使用
revision
參數加載特定的檢查點,並且團隊會維護模型的兼容性。
📦 安裝指南
Marin 8B使用Llama架構,因此可以直接與Hugging Face Transformers庫以及任何支持Llama架構的庫配合使用。
我們使用了Llama 3分詞器的一個變體:stanford-crfm/marin-tokenizer。
💻 使用示例
基礎用法
from transformers import AutoModelForCausalLM, AutoTokenizer
marin = AutoModelForCausalLM.from_pretrained("marin-community/marin-8b-base")
tokenizer = AutoTokenizer.from_pretrained("marin-community/marin-8b-base")
message = ["The Marin wind is"]
inputs = tokenizer(message, return_tensors='pt', return_token_type_ids=False)
response = marin.generate(**inputs, max_new_tokens=100, do_sample=True, top_k=50, top_p=0.95)
print(tokenizer.batch_decode(response, skip_special_tokens=True)[0])
高級用法
marin = AutoModelForCausalLM.from_pretrained("marin-community/marin-8b-base", revision="deeper-starling")
📚 詳細文檔
數據集
Marin 8B Base使用的數據集
Marin 8B Base在多種數據集上進行了訓練:
- Nemotron-CC
- DCLM Baseline
- Starcoder Data
- Proofpile 2
- FineMath 3+
- Dolma,包括其版本的:
- Dolmino-Mix-1124,包括其版本的:
- FLAN
- CodeSearchNet(使用OWM過濾器)
- GSM8K
- MetaMath
- MathCoder2 Synthetic
以及一些新的數據集:
- Marin Markdownified StackExchange
- Marin Markdownified Wikipedia
- Marin Markdownified Ar5iv
- Marin Datashop Science QA
(我們仍在上傳這些數據集。前三個數據集將根據其原始許可證進行許可。第四個數據集基於重新表述的網絡內容,將根據CC-BY-SA 4.0進行許可。)
完整報告可在我們的ReadTheDocs網站上獲取。
Marin 8B Instruct使用的數據集
Marin 8B Instruct目前是一個僅進行監督微調(SFT)的模型。它在以下數據集上進行了訓練:
- TIGER-Lab/AceCode-89K
- bespokelabs/Bespoke-Stratos-17k
- cognitivecomputations/dolphin-r1(包括非推理和推理子集)
- tuenguyen/dolphin_r1_reasoning
- facebook/natural_reasoning
- open-r1/OpenThoughts-114k-math
- HuggingFaceTB/smoltalk
- allenai/tulu-3-sft-mixture
- PrimeIntellect/verifiable-math-problems
未來我們很可能會發布該模型的改進版本。
檢查點
我們發佈了多個訓練檢查點。其他檢查點可根據需求提供。
基礎模型檢查點
主頁:marin-community/marin-8b-base
(更多檢查點正在上傳中。)
名稱 | 訓練令牌數 | 鏈接 |
---|---|---|
deeper-starling |
13.7T | marin-community/marin-8b-base |
main
目前指的是deeper-starling
。未來可能會發生變化,但我們會維護模型的兼容性。如果您需要特定的檢查點,請使用revision
參數。
指令模型檢查點
主頁:marin-community/marin-8b-instruct
名稱 | 訓練令牌數 | 鏈接 |
---|---|---|
deeper-starling-05-15 |
5.3B | marin-community/marin-8b-instruct |
main
目前指的是deeper-starling-05-15
。未來可能會發生變化,但我們會維護模型的兼容性。如果您需要特定的檢查點,請使用revision
參數。
模型描述
屬性 | 詳情 |
---|---|
開發團隊 | 斯坦福大學CRFM的Marin團隊 |
模型類型 | Transformer風格的自迴歸語言模型 |
知識截止日期 | ~2024年7月 |
語言 | 英語 |
許可證 | 代碼和模型根據Apache 2.0許可證發佈 |
聯繫方式 | dlwh at stanford.edu |
模型來源
- 項目頁面:https://marin.community
- 代碼倉庫:
- 核心倉庫(數據和實驗管理):https://github.com/marin-community/marin
- 訓練代碼:https://github.com/stanford-crfm/levanter
- 回顧報告:https://marin.readthedocs.io/en/latest/reports/marin-8b-retro.html
- W&B日誌:Marin 8B
評估
基礎模型結果
我們運行了一系列標準基準測試,將我們的模型與Llama 3.1 8B、開源的7 - 8B模型Olmo 2 7B和MAP NEO 7B進行了比較。
對於所有基準測試,我們使用了LM Eval Harness,並採用了每個任務的默認設置。(由於設置的差異,這些數字可能與報告的結果不同。LM Eval Harness通常比其他測試框架更為嚴格。)
平均得分 | AGI Eval LSAT - AR | ARC Easy | ARC Challenge | BBH | BoolQ | CommonSense QA | COPA | GPQA | HellaSwag 0 - shot | HellaSwag 10 - shot | lambada_openai | MMLU 5 - shot | MMLU 0 - shot | MMLU Pro | OpenBookQA | PIQA | WinoGrande | WSC | |
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
Marin 8B Base (Starling) | 68.3 | 20.9 | 86.5 | 63.1 | 50.6 | 85.9 | 79.1 | 92.0 | 30.3 | 82.3 | 83.6 | 74.7 | 67.6 | 65.9 | 36.5 | 44.2 | 84.4 | 74.5 | 82.1 |
Llama 3.1 Base | 67.0 | 20.4 | 85.8 | 58.9 | 46.4 | 84.2 | 75.2 | 92.0 | 32.3 | 79.4 | 81.9 | 74.7 | 66.4 | 65.5 | 33.3 | 45.8 | 82.9 | 74.4 | 83.5 |
OLMo 2 Base | 66.7 | 17.4 | 85.0 | 60.7 | 44.4 | 85.5 | 75.4 | 89.0 | 26.8 | 80.5 | 81.7 | 73.1 | 63.9 | 61.9 | 30.6 | 46.2 | 82.5 | 74.3 | 86.1 |
MAP NEO 7B | 62.2 | 23.0 | 81.1 | 52.0 | 42.4 | 84.7 | 81.7 | 82.0 | 27.8 | 72.5 | 73.3 | 64.6 | 58.2 | 56.4 | TODO | 39.4 | 79.0 | 66.1 | 73.3 |
Marin 8B Base在大多數任務中表現出色。
🔧 技術細節
架構細節
- 架構:Llama 3 8B
- 隱藏層大小:4096
- 前饋層大小:14336
- 層數:32
- 注意力頭數:32
- 鍵值頭數:8
分詞器細節
Marin 8B使用了Llama 3分詞器的一個變體:stanford-crfm/marin-tokenizer。它具有相同的詞彙表,但為了方便起見,將聊天模板捆綁到了基礎分詞器中。
訓練階段
預訓練階段
- Kestrel(DCLM WSD - S階段):使用WSD - S,結合DCLM + StarCoder + Proofpile2進行訓練(0 -> 2.7T令牌)。
- Ocelot(DCLM WSD階段):增加批量大小,使用WSD進行訓練(2.7T -> 3.78T令牌)。
- Jellyfish(第一次冷卻階段):使用更高質量的數據(~Dolmino + Fine Math)進行訓練(3.78T -> 4.78T令牌)。
- Phoenix(重新加熱階段):快速重新加熱,結合Nemotron - CC(以及Starcoder)進行訓練(4.78T -> 11.1T令牌)。
- Starling(第二次冷卻階段):再次進行冷卻階段。我們採用了與第一次冷卻階段類似的過程,但添加了一些新的數據集(11.1T -> 12.75T令牌)。
- Deeper Starling:進行了更多的預訓練(12.75T -> 13.7T令牌)。
除了Kestrel之外,所有發佈的預訓練檢查點都使用了模型權重的指數移動平均值。
監督微調(SFT)階段
SFT相對簡單,僅包含一個階段,訓練了5.3B令牌。
📄 許可證
代碼和模型根據Apache 2.0許可證發佈。
⚠️ 重要提示
⚠️ 重要提示
與任何沒有安全過濾的基礎語言模型或微調模型一樣,這些模型很容易被用戶誘導生成有害和敏感內容。此類內容也可能會無意中產生,特別是在涉及偏差的情況下,因此我們建議用戶在應用這項技術時考慮風險。此外,Marin或任何大語言模型的許多陳述往往不準確,因此應驗證其響應。
Marin 8B尚未進行任何安全調整或評估。我們強烈建議用戶謹慎使用此模型,並在應用這項技術時考慮風險。特別是,此模型不適合完全自主使用。
💡 使用建議
如果您需要特定的檢查點,請使用revision
參數加載。同時,在使用模型進行推理時,建議根據具體任務調整max_new_tokens
、top_k
和top_p
等參數,以獲得更好的結果。
模型卡片聯繫方式
如果此模型卡片存在錯誤,請在此倉庫中提出問題。如有技術諮詢,請聯繫dlwh at stanford.edu
。
致謝
該模型的計算資源由谷歌的TPU Research Cloud慷慨提供。
(本模型卡片基於Olmo 2的模型卡片編寫。)



