当前位置: 首页 > news >正文

#Paper Reading# Apple Intelligence Foundation Language Models

论文题目: Apple Intelligence Foundation Language Models
论文地址: https://arxiv.org/pdf/2407.21075
论文发表于: arXiv 2024年7月
论文所属单位: Apple

论文大体内容
本文介绍了Apple AFM团队的2个基础大模型,分别可在服务端和客户端上运行。这两个大模型是Apple的基础模型,文中描述了从训练到评估模型的各个模块。

Motivation
这是Apple的基础大模型。

Contribution
①技术落地的完整性,本文详细描述了训练AFM的各个模块和步骤。
②提出了从基础模型扩展到具体任务的整体框架,用于Apple后续各个应用的落地。
③强调负责任的AI实践,包括整个流程的Principles,以及注重用户的隐私。


1. 本文主要介绍了Apple AFM组(Apple Foundation Model)的2个基础大模型,包括:
①AFM-on-device:3B参数的模型,运行于设备端;
②AFM-server:主LLM模型,用于对标GPT系列;
这两个基础模型主要提供2个应用场景:
①Coding model:在Xcode中提供给开发者使用;
②Diffusion model:在App中提供给用户使用,比如Messages App;

2. Apple对LLM开发时候遵守的Principles包括:
①用智能工具赋能用户
②代表我们的用户
③谨慎设计
④保护隐私
这几个Principles是公司文化的体现。

3. LLM整体架构采用了业界主流的Transformer架构,主要有以下几点选择:
①一个共享的输入/输出嵌入矩阵,节省内存;
②Pre-Normalization和RMSNorm;
③Q/K进行归一化,提升训练稳定性;
④GQA(Grouped-query attention),节省内存;
⑤SwiGLU激活函数[1];
⑥RoPE位置嵌入,支持更长的context;

4. LLM的整体尺寸信息如下,参数量计算公式是:N*(12*D*D+13*D),其中D=n*d。
-N是Transformer的层数
-n是MHA中head的数量
-d是MHA中每个头的dim

【Pre-training阶段】
5. 数据:
使用Applebot抓取的数据。本文指出数据的质量比数量更重要。
①网页数据:
-抽取正文
-使用启发式方法和模型进行安全性过滤来处理网页文本
-数据去重,使用n-gram哈希
-使用启发式方法和模型进行质量筛选
-对常用的基准数据集进行处理
②授权数据集:来自于出版商
③代码数据:来自于Github
④数学数据:网络爬取
⑤公开的高质量数据集
⑥分词器:BPE(byte-pair encoding)

6. 方法:
AFM Pre-training分为3个阶段:
①核心阶段:使用6.3T token训练,用了8192个TPUv4芯片,4096的序列长度
②延续阶段:弱化低质量数据集,强化高质量数据集,用了8192的序列长度
③context扩展阶段:提升context长度,用了32768的序列长度
优化器使用RMSProp。
其中AFM-on-device是AFM-server的蒸馏版本,使用了知识蒸馏和结构剪枝来降低模型大小。


【Post-Training阶段】
7. 数据:
包括人工标注数据和合成数据。本文指出数据的质量比数量更重要。
①人工标注数据
②合成数据:提升多样性

8. SFT(Supervised fine-tuning)
使用标注数据进行SFT。

9. RLHF
①iTeC(Iterative teaching committee)
该框架有效地结合了各种偏好优化算法,包括拒绝采样(RS)、直接偏好优化(DPO)以及在线强化学习(RL)。这使我们能够将RLHF的优势应用于各种规模的模型,同时提高它们的对齐性。
②MDLOO(Mirror Descent with Leave-One-Out estimation)
比PPO更有效。

10. 拒绝采样的理解[2]
①属于蒙特卡洛方法的一种,本质是通过一个提议分布(均匀分布或正态分布)q(x),来采样出目标分布p(x)。如果从q(x)中随机出来的 x <= p(x) 则采样,否则不采样。
②在LLM中使用拒绝采样的方式是让LLM生成多个答案,然后用 V3 判断哪个回答好,好的回答当作接下来的 SFT 数据,不断螺旋上升(DeepSeek R1[3])。

11. 基于基础模型扩展到具体任务:通过LoRA、量化进行微调,整体框架如下:

12. 效果评估
①Pre-Training阶段:主要使用了基准数据集MMLU(多选题Multi-subject multiple-choice)评估


②Post-Training阶段:主要使用了人工评估,能更接近于用户体验
-基准测试 HELM-Lite v1.5.0


-人工评估


-指令遵循


-工具使用


-写作


-数学:GSM8K、MATH


-摘要人工评估

13. Responsible AI(安全性)
①安全标准:该分类标准包含12个主要类别,下设51个子类别,其中包括“仇恨言论、刻板印象与诋毁性语言”、“歧视、边缘化与排斥”、“非法活动”、“成人色情内容”以及 “血腥暴力内容”。
②Pre-Training阶段:训练语料的的安全过滤、隐私信息过滤;
③Post-Training阶段:10%的数据用于对抗训练,与安全相关;
④防范恶意代码:将所有生成的代码视为不安全代码,代码只会在封闭的环境里执行
⑤Red Teaming:主动诱导、攻击的测试;
⑥安全性评估:本模型效果相比GPT等更优;


14. 这篇论文比较完整的展示了Apple LLM模型的各个环节,对大家了解LLM的工作有一些帮助,文章写的比较务实。整体来看是中规中矩,学术性的突破不多,更多是具体落地的工程实践。


参考资料
[1] 详解SwiGLU激活函数 https://zhuanlan.zhihu.com/p/31289994147
[2] 拒绝采样 https://blog.csdn.net/jteng/article/details/54344766
[3] DeepSeek R1 https://blog.csdn.net/John159151/article/details/147687702

以上均为个人见解,因本人水平有限,如发现有所错漏,敬请指出,谢谢!

http://www.lryc.cn/news/588549.html

相关文章:

  • 微服务初步入门
  • 量子计算新突破!阿里“太章3.0”实现512量子比特模拟(2025中国量子算力巅峰)
  • 【算法训练营Day12】二叉树part2
  • 《大数据技术原理与应用》实验报告二 熟悉常用的HDFS操作
  • 【小白量化智能体】应用5:编写通达信股票交易指标及生成QMT自动交易Python策略程序
  • UDP协议的端口161怎么检测连通性
  • 【PY32】如何使用 J-Link 和 MDK 开发调试 PY32 MCU
  • 【STM32】什么在使能寄存器或外设之前必须先打开时钟?
  • java基础-1 : 运算符
  • 使用dify生成测试用例
  • 13.计算 Python 字符串的字节大小
  • HTML 文本格式化标签
  • 工业新引擎:预测性维护在工业场景中的实战应用(流程制造业为例)
  • 具身智能零碎知识点(五):VAE中对使用KL散度的理解
  • JJ20 Final Lap演唱会纪念票根生成工具
  • HashMap的长度为什么要是2的n次幂以及HashMap的继承关系(元码解析)
  • C语言:20250714笔记
  • 文本预处理(四)
  • AI驱动编程范式革命:传统开发与智能开发的全维度对比分析
  • 【DataWhale】快乐学习大模型 | 202507,Task01笔记
  • js的局部变量和全局变量
  • Java面试总结(经典题)(Java多线程)(一)
  • kotlin学习笔记
  • 【日常技能】excel的vlookup 匹配#N/A
  • Linux ACL权限策略
  • Faiss库
  • OFDM系统中关于信号同步的STO估计与CFO估计的MATLAB仿真
  • 基于Android的景点旅游信息系统App
  • DNS重绑定
  • 操作系统-第一章操作系统和第二章进程(知识点学习/期末复习/笔试/面试/考研)