模型简介
模型特点
模型能力
使用案例
🚀 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的模型卡片编写。)



