❤️ 如果你也关注大模型与 AI 的发展现状,且对大模型应用开发非常感兴趣,我会快速跟你分享最新的感兴趣的 AI 应用和热点信息,也会不定期分享自己的想法和开源实例,欢迎关注我哦!
🥦 微信公众号|搜一搜:蚝油菜花 🥦
🚀 快速阅读
- MobileLLM 是 Meta 为移动设备优化的语言模型,参数少于十亿。
- 该模型在零样本常识推理任务上表现优异,并支持多种语言相关的任务。
- 技术上采用深薄架构、SwiGLU 激活函数、嵌入共享等优化策略。
正文(附运行示例)
MobileLLM 是什么
MobileLLM 是 Meta(前 Facebook)推出的一种专为移动设备设计和优化的大型语言模型。该模型通过采用多种设计策略,如深薄架构和嵌入共享等,在少于十亿参数的条件下达到了高质量的语言理解和生成能力。MobileLLM 旨在解决云计算成本上升和延迟问题,使其非常适合在资源受限的设备上运行。
MobileLLM 的主要功能
- 语言理解与生成:能够理解和生成自然语言,支持多种语言任务。
- 零样本常识推理:在没有特定训练数据的情况下,能够解决需要常识推理的问题。
- 聊天交互:在对话系统中提供流畅的交互体验。
- API 调用:将自然语言指令转换为 API 调用,实现与后端服务的交互。
- 文本重写与摘要:支持文本重写和摘要生成。
- 数学问题解决:具备解决数学问题的能力。
MobileLLM 的技术原理
MobileLLM 通过以下技术手段实现了在移动设备上的高效运行:
- 深度与薄架构:采用更多的层数和较少的参数,有助于模型学习更抽象的概念。
- SwiGLU 激活函数:用 SwiGLU 激活函数替代传统的 ReLU,提高模型的非线性表达能力。
- 嵌入共享:输入和输出嵌入层共享权重,减少模型参数量并保持性能。
- 分组查询注意力机制:优化注意力机制,减少键值头的数量并重复使用它们,提高模型效率。
- 量化兼容性:支持量化技术,如 W8A8,使模型在资源受限的设备上运行良好。
如何运行 MobileLLM
步骤 1: 安装依赖
* python 3.9, pytorch >= 2.0
* pip install -r requirements.txt
步骤 2: 数据预处理
将数据集进行标记化处理,并分布到多个训练节点,每个节点包含 1x8 GPUs。数据需按照以下结构组织:
basepath
├── 1
│ └── xxx.jsonl
├── 2
│ └── xxx.jsonl
└── ...
└── #nodes
└── xxx.jsonl
每个 jsonl 文件的每一行是标记化数据的键值对,例如{"token_ids": [1,2,3,4,...]}
。
步骤 3: 训练模型
使用pretrain.sh
脚本开始训练:
* 指定 `--train_data_local_path` 为预处理数据路径。
* 指定 `--input_model_filename` 为模型配置路径,如`./configs/{model_size}/`。
* 运行 `bash pretrain.sh`。
评估模型
下载模型并更新eval.sh
中的检查点路径:
* 运行 `bash eval.sh`。
资源
- 关注并回复公众号【62】或【MobileLLM】获取相关项目资源。
❤️ 如果你也关注大模型与 AI 的发展现状,且对大模型应用开发非常感兴趣,我会快速跟你分享最新的感兴趣的 AI 应用和热点信息,也会不定期分享自己的想法和开源实例,欢迎关注我哦!
🥦 微信公众号|搜一搜:蚝油菜花 🥦