OLMoE-1B-7B 是 2024 年 9 月(0924 年)发布的专家混合 LLM,有 1B 活动参数和 7B 总参数。 在成本(1B)相近的模型中,它的性能是最先进的,与 Llama2-13B 等更大的模型相比也具有竞争力。 OLMoE 100%开源。
功能
OLMoE-1B-7B-0924 模型能够生成连贯的上下文文本续篇、回答问题以及执行其他自然语言理解和生成任务。 例如,在提示 "比特币是 "的情况下,模型可以生成相关的续句文本,如 "比特币是一种数字货币,以电子方式创建和持有。 没有人控制它。 比特币并不像美元或欧元那样是印刷出来的,而是由世界各地运行计算机的人们和企业利用解决数学问题的软件生产出来的。
Github: https://github.com/allenai/OLMoE
论文:https://arxiv.org/abs/2409.02060
LLM Name | OLMoE 1B 7B 0924 |
Repository 🤗 | https://huggingface.co/allenai/OLMoE-1B-7B-0924 |
Model Size | 1b |
Required VRAM | 13.8 GB |
Updated | 2024-09-11 |
Maintainer | allenai |
Model Type | olmoe |
Supported Languages | en |
Model Architecture | OlmoeForCausalLM |
License | apache-2.0 |
Context Length | 4096 |
Model Max Length | 4096 |
Transformers Version | 4.43.0.dev0 |
Tokenizer Class | GPTNeoXTokenizer |
Padding Token | <|padding|> |
Vocabulary Size | 50304 |
Torch Data Type | bfloat16 |
使用
from transformers import OlmoeForCausalLM, AutoTokenizer
import torch
DEVICE = "cuda" if torch.cuda.is_available() else "cpu"
# Load different ckpts via passing e.g. `revision=step10000-tokens41B`
model = OlmoeForCausalLM.from_pretrained("allenai/OLMoE-1B-7B-0924").to(DEVICE)
tokenizer = AutoTokenizer.from_pretrained("allenai/OLMoE-1B-7B-0924")
inputs = tokenizer("Bitcoin is", return_tensors="pt")
inputs = {k: v.to(DEVICE) for k, v in inputs.items()}
out = model.generate(**inputs, max_length=64)
print(tokenizer.decode(out[0]))
# > # Bitcoin is a digital currency that is created and held electronically. No one controls it. Bitcoins aren’t printed, like dollars or euros – they’re produced by people and businesses running computers all around the world, using software that solves mathematical
你可以通过安装 huggingface-hub 并运行来列出所有版本/分支:
from huggingface_hub import list_repo_refs
out = list_repo_refs("OLMoE/OLMoE-1B-7B-0924")
branches = [b.name for b in out.branches]
重要分支:
step1200000-tokens5033B
:用于退火的预训练检查点。 之后还有几个检查点,但我们没有使用:main
: 从step1200000-tokens5033B
开始退火的检查点,额外增加了 100B 标记(23842 步)。 我们使用该检查点进行适配(https://huggingface.co/allenai/OLMoE-1B-7B-0924-SFT & https://huggingface.co/allenai/OLMoE-1B-7B-0924-Instruct)。fp32
:main
的 FP32 版本。 模型权重在训练过程中存储在 FP32 中,但我们没有观察到训练后将权重转换到 BF16 会导致性能下降,因此我们将所有权重上传到 BF16 中。 如果您想使用原始的 FP32 检查点作为主检查点,可以使用此检查点。 你会发现它产生的结果略有不同,但在基准测试中的表现应该差不多。
评估快照
Model | Active Params | Open Data | MMLU | HellaSwag | ARC-Chall. | ARC-Easy | PIQA | WinoGrande |
---|---|---|---|---|---|---|---|---|
LMs with ~1B active parameters | ||||||||
OLMoE-1B-7B | 1.3B | ✅ | 54.1 | 80.0 | 62.1 | 84.2 | 79.8 | 70.2 |
DCLM-1B | 1.4B | ✅ | 48.5 | 75.1 | 57.6 | 79.5 | 76.6 | 68.1 |
TinyLlama-1B | 1.1B | ✅ | 33.6 | 60.8 | 38.1 | 69.5 | 71.7 | 60.1 |
OLMo-1B (0724) | 1.3B | ✅ | 32.1 | 67.5 | 36.4 | 53.5 | 74.0 | 62.9 |
Pythia-1B | 1.1B | ✅ | 31.1 | 48.0 | 31.4 | 63.4 | 68.9 | 52.7 |
LMs with ~2-3B active parameters | ||||||||
Qwen1.5-3B-14B | 2.7B | ❌ | 62.4 | 80.0 | 77.4 | 91.6 | 81.0 | 72.3 |
Gemma2-3B | 2.6B | ❌ | 53.3 | 74.6 | 67.5 | 84.3 | 78.5 | 71.8 |
JetMoE-2B-9B | 2.2B | ❌ | 49.1 | 81.7 | 61.4 | 81.9 | 80.3 | 70.7 |
DeepSeek-3B-16B | 2.9B | ❌ | 45.5 | 80.4 | 53.4 | 82.7 | 80.1 | 73.2 |
StableLM-2B | 1.6B | ❌ | 40.4 | 70.3 | 50.6 | 75.3 | 75.6 | 65.8 |
OpenMoE-3B-9B | 2.9B | ✅ | 27.4 | 44.4 | 29.3 | 50.6 | 63.3 | 51.9 |
LMs with ~7-9B active parameters | ||||||||
Gemma2-9B | 9.2B | ❌ | 70.6 | 87.3 | 89.5 | 95.5 | 86.1 | 78.8 |
Llama3.1-8B | 8.0B | ❌ | 66.9 | 81.6 | 79.5 | 91.7 | 81.1 | 76.6 |
DCLM-7B | 6.9B | ✅ | 64.4 | 82.3 | 79.8 | 92.3 | 80.1 | 77.3 |
Mistral-7B | 7.3B | ❌ | 64.0 | 83.0 | 78.6 | 90.8 | 82.8 | 77.9 |
OLMo-7B (0724) | 6.9B | ✅ | 54.9 | 80.5 | 68.0 | 85.7 | 79.3 | 73.2 |
Llama2-7B | 6.7B | ❌ | 46.2 | 78.9 | 54.2 | 84.0 | 77.5 | 71.7 |
它有哪些用途?
OLMoE-1B-7B-0924 模型可用于各种自然语言处理应用,如文本生成、对话系统、摘要和基于知识的问题解答。 对于公司来说,该模型可以进行微调并部署到客户服务聊天机器人、内容创建工具或智能搜索和推荐系统中。 研究人员也可以使用该模型作为起点,进一步微调和研究语言模型的能力和行为。
值得尝试的东西
OLMoE-1B-7B-0924 模型的一个有趣之处在于其专家混合架构。 这使得该模型可以利用专门的 "专家 "来完成不同类型的语言任务,从而提高性能和通用性。 开发人员可以尝试针对特定能力(如数学推理或常识推理)的提示,以了解模型中不同专家的反应。 此外,该模型的开放源代码特性还有利于对语言模型架构和训练技术进行定制和进一步研究。
感谢大家花时间阅读我的文章,你们的支持是我不断前进的动力。期望未来能为大家带来更多有价值的内容,请多多关注我的动态!