模型简介
模型特点
模型能力
使用案例
🚀 MobileLLM
MobileLLM是一种专为设备端应用优化的语言模型,它采用了优化的变压器架构,能在资源受限的设备上高效运行,在零样本常识推理任务中表现出色。
🚀 快速开始
我们提供了两种运行模型的方式:
HuggingFace
若要加载预训练模型以进行进一步的微调或评估,可使用以下代码:
from transformers import AutoModelForCausalLM, AutoTokenizer
tokenizer = AutoTokenizer.from_pretrained("facebook/MobileLLM-125M", use_fast=False)
model = AutoModelForCausalLM.from_pretrained("facebook/MobileLLM-125M", trust_remote_code=True)
请注意,默认的分词器不包含特殊标记。例如,你可以使用以下代码添加特殊标记:
tokenizer.add_special_tokens(
{
"eos_token": "</s>",
"bos_token": "<s>",
"unk_token": "<unk>",
}
)
MobileLLM代码库
我们在 https://github.com/facebookresearch/MobileLLM 提供了预训练代码。
> git clone https://github.com/facebookresearch/MobileLLM
> pip install -r requirement.txt
# 数据预处理并在pretrain.sh中指定数据路径
# 运行预训练
> bash pretrain.sh
我们还提供了用于计算维基文本 - 2测试集困惑度的评估脚本:
> bash eval.sh
你可以在GitHub仓库中找到更多详细信息。
✨ 主要特性
- 优化架构:MobileLLM是一种自回归语言模型,采用了优化的变压器架构,专为资源受限的设备端应用而设计。
- 关键技术集成:集成了多种关键技术,包括SwiGLU激活函数、深而窄的架构、嵌入共享和分组查询注意力。
- 出色性能:在零样本常识推理任务中,MobileLLM - 125M/350M比之前的125M/350M最先进模型分别提高了2.7%/4.3%的准确率。在更新版本中,MobileLLM - 600M/1B/1.5B也取得了最先进的结果。
📦 安装指南
HuggingFace方式
from transformers import AutoModelForCausalLM, AutoTokenizer
tokenizer = AutoTokenizer.from_pretrained("facebook/MobileLLM-125M", use_fast=False)
model = AutoModelForCausalLM.from_pretrained("facebook/MobileLLM-125M", trust_remote_code=True)
MobileLLM代码库方式
> git clone https://github.com/facebookresearch/MobileLLM
> pip install -r requirement.txt
💻 使用示例
基础用法
from transformers import AutoModelForCausalLM, AutoTokenizer
tokenizer = AutoTokenizer.from_pretrained("facebook/MobileLLM-125M", use_fast=False)
model = AutoModelForCausalLM.from_pretrained("facebook/MobileLLM-125M", trust_remote_code=True)
高级用法
# 添加特殊标记
tokenizer.add_special_tokens(
{
"eos_token": "</s>",
"bos_token": "<s>",
"unk_token": "<unk>",
}
)
📚 详细文档
模型详情
MobileLLM在论文 "MobileLLM: Optimizing Sub - billion Parameter Language Models for On - Device Use Cases" 中被提出,并于2024年发表在ICML会议上。
模型架构参数
模型 | 层数 | 注意力头数 | KV头数 | 词元维度 | 参数数量 |
---|---|---|---|---|---|
MobileLLM - 125M | 30 | 9 | 3 | 576 | 124.6M |
MobileLLM - 350M | 32 | 15 | 5 | 960 | 345.3M |
MobileLLM - 600M | 40 | 18 | 6 | 1152 | 603.1M |
MobileLLM - 1B | 54 | 20 | 5 | 1280 | 1.01B |
MobileLLM - 1.5B | 54 | 25 | 5 | 1600 | 1.51B |
模型训练与使用相关信息
模型 | 训练数据 | 输入模态 | 输出模态 | 上下文长度 | 分组查询注意力(GQA) | 共享嵌入 | 词元数量 |
---|---|---|---|---|---|---|---|
MobileLLM - 125M | 公开可用的在线数据 | 文本 | 文本 | 2k | 是 | 是 | 1T词元 |
MobileLLM - 350M | 公开可用的在线数据 | 文本 | 文本 | 2k | 是 | 是 | 1T词元 |
MobileLLM - 600M | 公开可用的在线数据 | 文本 | 文本 | 2k | 是 | 是 | 1T词元 |
MobileLLM - 1B | 公开可用的在线数据 | 文本 | 文本 | 2k | 是 | 是 | 1T词元 |
MobileLLM - 1.5B | 公开可用的在线数据 | 文本 | 文本 | 2k | 是 | 是 | 1T词元 |
训练成本
使用32个NVIDIA A100 80G GPU在1T词元上训练MobileLLM所需的天数如下:
125M | 350M | 600M | 1B | 1.5B |
---|---|---|---|---|
~3天 | ~6天 | ~8天 | ~12天 | ~18天 |
评估
我们在零样本常识推理任务上对预训练的MobileLLM模型进行了评估。
MobileLLM - 125M
模型 | arc_easy | arc_challenge | boolq | piqa | siqa | hellaswag | obqa | winogrande | 平均 |
---|---|---|---|---|---|---|---|---|---|
OPT - 125M | 41.3 | 25.2 | 57.5 | 62.0 | 41.9 | 31.1 | 31.2 | 50.8 | 42.6 |
GPT - neo - 125M | 40.7 | 24.8 | 61.3 | 62.5 | 41.9 | 29.7 | 31.6 | 50.7 | 42.9 |
Pythia - 160M | 40.0 | 25.3 | 59.5 | 62.0 | 41.5 | 29.9 | 31.2 | 50.9 | 42.5 |
MobileLLM - 125M | 43.9 | 27.1 | 60.2 | 65.3 | 42.4 | 38.9 | 39.5 | 53.1 | 46.3 |
MobileLLM - LS - 125M | 45.8 | 28.7 | 60.4 | 65.7 | 42.9 | 39.5 | 41.1 | 52.1 | 47.0 |
MobileLLM - 350M
模型 | arc_easy | arc_challenge | boolq | piqa | siqa | hellaswag | obqa | winogrande | 平均 |
---|---|---|---|---|---|---|---|---|---|
OPT - 350M | 41.9 | 25.7 | 54.0 | 64.8 | 42.6 | 36.2 | 33.3 | 52.4 | 43.9 |
Pythia - 410M | 47.1 | 30.3 | 55.3 | 67.2 | 43.1 | 40.1 | 36.2 | 53.4 | 46.6 |
MobileLLM - 350M | 53.8 | 33.5 | 62.4 | 68.6 | 44.7 | 49.6 | 40.0 | 57.6 | 51.3 |
MobileLLM - LS - 350M | 54.4 | 32.5 | 62.8 | 69.8 | 44.1 | 50.6 | 45.8 | 57.2 | 52.1 |
MobileLLM - 600M
模型 | arc_easy | arc_challenge | boolq | piqa | siqa | hellaswag | obqa | winogrande | 平均 |
---|---|---|---|---|---|---|---|---|---|
Qwen1.5 - 500M | 54.7 | 32.1 | 46.9 | 68.9 | 46.0 | 48.8 | 37.7 | 55.0 | 48.8 |
BLOOM - 560M | 43.7 | 27.5 | 53.7 | 65.1 | 42.5 | 36.5 | 32.6 | 52.2 | 44.2 |
MobiLlama - 800M | 52.0 | 31.7 | 54.6 | 73.0 | 43.3 | 52.3 | 42.5 | 56.3 | 50.7 |
MobileLLM - 600M | 58.1 | 35.8 | 61.0 | 72.3 | 44.9 | 55.9 | 47.9 | 58.6 | 54.3 |
MobileLLM - 1B
模型 | arc_easy | arc_challenge | boolq | piqa | siqa | hellaswag | obqa | winogrande | 平均 |
---|---|---|---|---|---|---|---|---|---|
Pythia - 1B | 49.9 | 30.4 | 58.7 | 69.2 | 43.3 | 47.4 | 38.6 | 52.2 | 48.7 |
MobiLlama - 1B | 59.7 | 38.4 | 59.2 | 74.5 | 44.9 | 62.0 | 43.7 | 59.0 | 55.2 |
Falcon - 1B | 59.5 | 38.4 | 63.9 | 74.6 | 44.6 | 62.9 | 45.6 | 60.9 | 56.3 |
BLOOM - 1.1B | 47.6 | 27.3 | 58.6 | 67.0 | 42.4 | 42.2 | 36.6 | 53.8 | 46.9 |
TinyLlama - 1.1B | 59.2 | 37.1 | 58.1 | 72.9 | 43.9 | 59.1 | 44.7 | 58.8 | 54.2 |
MobileLLM - 1B | 63.0 | 39.0 | 66.7 | 74.4 | 45.0 | 61.4 | 46.8 | 62.3 | 57.3 |
MobileLLM - 1.5B
模型 | arc_easy | arc_challenge | boolq | piqa | siqa | hellaswag | obqa | winogrande | 平均 |
---|---|---|---|---|---|---|---|---|---|
GPT - neo - 1.3B | 51.3 | 33.0 | 61.8 | 70.9 | 43.7 | 48.6 | 41.2 | 54.5 | 50.6 |
OPT - 1.3B | 54.4 | 31.7 | 58.4 | 71.5 | 44.7 | 53.7 | 44.6 | 59.1 | 52.3 |
BLOOM - 1.7B | 50.9 | 31.2 | 61.7 | 70.0 | 43.2 | 47.2 | 36.2 | 56.1 | 49.6 |
Qwen1.5 - 1.8B | 61.1 | 36.5 | 68.3 | 74.1 | 47.2 | 60.4 | 42.9 | 61.2 | 56.5 |
GPT - neo - 2.7B | 55.8 | 34.3 | 62.4 | 72.9 | 43.6 | 55.6 | 40.0 | 57.9 | 52.8 |
OPT - 2.7B | 56.6 | 34.6 | 61.8 | 74.5 | 45.6 | 60.2 | 48.2 | 59.6 | 55.1 |
Pythia - 2.8B | 59.4 | 38.9 | 66.1 | 73.8 | 44.5 | 59.6 | 45.0 | 59.4 | 55.8 |
BLOOM - 3B | 55.1 | 33.6 | 62.1 | 70.5 | 43.2 | 53.9 | 41.6 | 58.2 | 52.3 |
MobileLLM - 1.5B | 67.5 | 40.9 | 65.7 | 74.8 | 46.4 | 64.5 | 50.5 | 64.7 | 59.4 |
🔧 技术细节
MobileLLM集成了多种关键技术,包括SwiGLU激活函数、深而窄的架构、嵌入共享和分组查询注意力。这些技术的集成使得模型在资源受限的设备端应用中能够高效运行,并在零样本常识推理任务中取得了出色的性能。
📄 许可证
本模型采用FAIR非商业研究许可证。点击下方的 “我接受” 或使用或分发研究材料的任何部分或元素,即表示您同意受本协议的约束。
许可权利和再分发
- 权利授予:您被授予在研究材料中体现的Meta知识产权或Meta拥有的其他权利下的非排他性、全球性、不可转让和免版税的有限许可,以使用、复制、分发、拷贝、创建衍生作品并对研究材料进行修改。
- 再分发和使用:
- 您不得将研究材料或研究材料的任何输出或结果用于任何商业用途或用于非商业研究用途以外的任何用途。
- 研究材料及其任何衍生作品的分发均受本协议条款的约束。如果您将研究材料或其任何衍生作品提供给第三方,则只能根据本协议的条款进行。您还应向该第三方提供本协议的副本。
- 如果您提交使用研究材料进行的研究结果以供发表,则必须在您的出版物中确认使用了研究材料。
- 您对研究材料的使用必须遵守适用的法律和法规(包括贸易管制法律),并遵守FAIR可接受使用政策,该政策特此通过引用并入本协议。
用户支持
您对研究材料的非商业研究使用由您自行决定;Meta不处理任何信息,也不就此类使用提供任何服务。Meta没有义务为研究材料提供任何支持服务。提供的任何支持均 “按原样”、“带有所有缺陷” 提供,且不提供任何形式的保证。
保修免责声明
除非适用法律要求,否则研究材料及其任何输出和结果均 “按原样” 提供,不提供任何形式的保证,Meta明确否认所有形式的保证,包括但不限于任何所有权、不侵权、适销性或特定用途适用性的保证。您独自负责确定使用或再分发研究材料的适当性,并承担与您使用研究材料及其任何输出和结果相关的任何风险。
责任限制
无论在何种责任理论下,包括但不限于合同、侵权、疏忽、产品责任或其他方面,Meta或其关联公司均不对因本协议引起的任何利润损失或任何直接或间接、特殊、后果性、偶发性、示范性或惩罚性损害承担责任,即使Meta或其关联公司已被告知存在此类损害的可能性。
知识产权
- 除Meta对研究材料及其由Meta或代表Meta制作的衍生作品的所有权外,就您制作的研究材料的任何衍生作品和修改而言,在您和Meta之间,您是并将是此类衍生作品和修改的所有者。
- 如果您对Meta或任何实体提起诉讼或其他法律程序(包括在诉讼中的交叉索赔或反诉),声称研究材料、输出或结果或上述任何部分构成侵犯您拥有或可许可的知识产权或其他权利,则本协议授予您的任何许可应自提起此类诉讼或索赔之日起终止。您将赔偿并使Meta免受任何第三方因您使用或分发研究材料而产生的或与之相关的任何索赔。
期限和终止
本协议的期限将在您接受本协议或访问研究材料时开始,并将持续有效,直至根据本协议的条款和条件终止。如果您违反本协议的任何条款或条件,Meta可终止本协议。本协议终止后,您应删除并停止使用研究材料。第5、6和9条在本协议终止后仍然有效。
适用法律和管辖权
本协议将受加利福尼亚州法律的管辖和解释,不考虑法律选择原则,《联合国国际货物销售合同公约》不适用于本协议。加利福尼亚州的法院对因本协议引起的任何争议具有专属管辖权。
修改和修订
Meta可通过在 [https://huggingface.co/facebook/Perception - LM - 8B/blob/main/LICENSE](https://huggingface.co/facebook/Perception - LM - 8B/blob/main/LICENSE) 上发布修订版本来不时修改本协议;前提是修订版本与本协议的当前版本在精神上相似,但在细节上可能有所不同,以解决新的问题或担忧。所有此类更改将立即生效。在本协议进行任何修改后,您继续使用研究材料即表示您同意此类修改。除非本协议另有规定,否则对本协议任何条款的修改或补充,除非以书面形式并由您和Meta的授权代表签署,否则不具有约束力。
可接受使用政策
Meta的基础人工智能研究(FAIR)团队旨在通过开放研究推动人工智能的发展,以增进对新的和现有的研究领域的理解,造福所有人。作为这一使命的一部分,Meta提供某些研究材料供非商业研究使用。Meta致力于促进此类研究材料的安全和负责任使用。
禁止使用情况
- 您同意不使用或允许他人使用研究材料来:
- 违反法律或他人权利,包括从事、促进、生成、促成、鼓励、策划、煽动或进一步推动非法或违法活动或内容,例如:
- 暴力或恐怖主义
- 对儿童的剥削或伤害,包括招揽、创建、获取或传播儿童剥削内容或未报告儿童性虐待材料
- 人口贩运、剥削和性暴力
- 向未成年人非法分发信息或材料,包括淫秽材料,或未对此类信息或材料采用法律要求的年龄限制
- 性招揽
- 任何其他犯罪活动
- 从事、促进、煽动或便利对个人或群体的骚扰、虐待、威胁或欺凌
- 从事、促进、煽动或便利在就业、就业福利、信贷、住房、其他经济利益或其他基本商品和服务的提供方面的歧视或其他非法或有害行为
- 从事未经授权或无执照的任何专业实践,包括但不限于金融、法律、医疗/健康或相关专业实践
- 在未获得适用法律要求的权利和同意的情况下,收集、处理、披露、生成或推断个人的健康、人口统计或其他敏感个人或私人信息
- 从事或便利任何侵犯、盗用或以其他方式侵犯任何第三方权利的行为或生成任何内容,包括使用FAIR研究材料的任何技术的输出或结果
- 创建、生成或便利创建恶意代码、恶意软件、计算机病毒,或做任何可能禁用、使负担过重、干扰或损害网站或计算机系统的正常工作、完整性、操作或外观的事情
- 违反法律或他人权利,包括从事、促进、生成、促成、鼓励、策划、煽动或进一步推动非法或违法活动或内容,例如:
- 从事、促进、煽动、便利或协助策划或开展对个人造成死亡或身体伤害风险的活动,包括使用与以下相关的研究成果:
- 军事、战争、核工业或应用、间谍活动、用于受美国国务院维护的《国际武器贸易条例》(ITAR)管制的材料或活动
- 枪支和非法武器(包括武器开发)
- 非法药物和受管制/受控物质
- 关键基础设施、运输技术或重型机械的操作
- 自我伤害或对他人的伤害,包括自杀、自残和饮食失调
- 任何旨在煽动或促进暴力、虐待或对个人造成身体伤害的内容
- 故意欺骗或误导他人,包括使用与以下相关的FAIR研究材料:
- 生成、促进或进一步推动欺诈或创建或促进虚假信息
- 生成、促进或进一步推动诽谤性内容,包括创建诽谤性声明、图像或其他内容
- 生成、促进或进一步分发垃圾邮件
- 在未经同意、授权或合法权利的情况下冒充他人
- 表示FAIR研究材料的输出或使用FAIR研究材料的技术的输出是人类生成的
- 生成或便利虚假的在线互动,包括虚假评论和其他虚假在线互动方式
- 未向最终用户适当披露研究材料的任何已知危险。
请通过 [https://docs.google.com/forms/d/e/1FAIpQLSeb11cryAopJ7LNrC4nxEUXrHY26hfkXQMf_uH - oFgA3WlYZQ/viewform](https://docs.google.com/forms/d/e/1FAIpQLSeb11cryAopJ7LNrC4nxEUXrHY26hfkXQMf_uH - oFgA3WlYZQ/viewform) 提交报告,举报任何违反本政策的行为或可能导致违反本政策的其他问题。
致谢
本代码部分基于HuggingFace的 Transformers 仓库,该仓库采用 Apache许可证。
引用
如果您发现我们的代码对您的研究有用,请考虑引用:
@article{liu2024mobilellm,
title={MobileLLM: Optimizing Sub-billion Parameter Language Models for On-Device Use Cases},
author={Liu, Zechun and Zhao, Changsheng and Iandola, Forrest and Lai, Chen and Tian, Yuandong and Fedorov, Igor and Xiong, Yunyang and Chang, Ernie and Shi, Yangyang and Krishnamoorthi, Raghuraman and others},
journal={arXiv preprint arXiv:2402.14905},
year={2024}
}



