揭秘iPhone里的Transformer:基于GPT-2架构,分词器含emoji,MIT校友出品
原文来源:量子位
图片来源:由无界 AI 生成
苹果Transformer的“秘密”,让发烧友给扒出来了。
大模型浪潮下,即使保守如苹果,也每逢发布会必提“Transformer”。
比如,在今年的WWDC上,苹果就已宣布,船新版本的iOS和macOS将内置Transformer语言模型,以提供带文本预测功能的输入法。
苹果官方没有透露更多信息,但技术爱好者们可坐不住了。
一位名叫Jack Cook的小哥,就把macOS Sonoma beta翻了个底朝天,结果,还真挖出不少新鲜信息:
- 模型架构上,Cook小哥认为苹果的语言模型更像是基于GPT-2 打造的。
- 在分词器(tokenizer)方面,表情符号 在其中十分突出。
更多细节,一起来看。
基于GPT-2架构
先来回顾一下苹果基于Transformer的语言模型能在iPhone、MacBook等设备上实现怎样的功能。
主要体现在输入法方面。语言模型加持下的苹果自带输入法,可以实现单词预测和纠错的功能。
Jack Cook小哥具体测试了一下,发现这个功能主要实现的是针对单个单词的预测。
**
**
△ 图源:Jack Cook博客文章
模型有时也会预测即将出现的多个单词,但这仅限于句子语义十分明显的情况,比较类似于Gmail里的自动完成功能。
**
**
△ 图源:Jack Cook博客文章
那么这个模型具体被装在了哪里?一通深入挖掘之后,Cook小哥确定:
我在 /System/Library/LinguisticData/RequiredAssets_en.bundle/AssetData/en.lm/unilm.bundle 中找到了预测文本模型。
原因是:
- unilm.bundle中的许多文件在macOS Ventura(13.5)里并不存在,仅出现在了新版本macOS Sonoma beta(14.0)里。
- unilm.bundle中存在一个sp.dat文件,这在Ventura和Sonoma beta里都能找到,但Sonoma beta的版本中更新了明显像是分词器的一组token。
- sp.dat中token的数量跟unilm.bundle中的两个文件——unilm_joint_cpu.espresso.shape和unilm_joint_ane.espresso.shape能匹配得上。这两个文件描述了Espresso/CoreML模型中各层的形状。
进而,小哥根据unilm_joint_cpu中描述的网络结构,推测苹果模型是基于GPT-2架构打造的:
主要包含token embeddings、位置编码、解码器块和输出层,每个解码器块中都有类似gpt2_transformer_layer_3d这样的字眼。
**
**
△ 图源:Jack Cook博客文章
根据每层大小,小哥还推测,苹果模型约有3400万参数,隐藏层大小是512。也就是说,它比GPT-2最小的版本还要小。
小哥认为,这主要是因为苹果想要一种不太耗电,但同时能够快速、频繁运行的模型。
而苹果官方在WWDC上的说法是,“每点击一个键,iPhone就会运行模型一次”。
不过,这也就意味着,这个文本预测模型并不能很好地完整续写句子或段落。
**
**
△ 图源:Jack Cook博客文章
模型架构之外,Cook小哥还挖出了分词器(tokenizer)的相关信息。
他在unilm.bundle/sp.dat里发现了一组数量为15000的token,值得关注的是,其中包含100个emoji 。
Cook揭秘库克
尽管此Cook非彼库克,小哥的博客文章一发出,还是吸引了不少关注。
基于他的发现,网友们热烈地讨论起苹果在用户体验和前沿技术应用之间的平衡大法。
回到Jack Cook本人,他本科和硕士毕业于MIT的计算机专业,目前还在攻读牛津大学的互联网社会科学硕士学位。
此前,他曾在英伟达实习,专注于BERT等语言模型的研究。他还是《纽约时报》的自然语言处理高级研发工程师。
那么,他的这一番揭秘是否也引发了你的一些思考?欢迎在评论区分享观点~
原文链接:
https://jackcook.com/2023/09/08/predictive-text.html