揭秘苹果iphone里的transformer:基于gpt
苹果Transformer的 秘密 ,让发烧友给扒出来了。
大模型浪潮下,即使保守如苹果,也每逢发布会必提 Transformer 。
比如,在今年(This Year)的WWDC上,苹果就已宣布,船新版本的iOS和macOS将内置Transformer语言模型,以提供带文本预测功能的输入法。
苹果官方没有透露更多信息,但技术爱好者们可坐不住了。
一位名叫Jack Cook的小哥,就把macOS Sonoma beta翻了个底朝天,结果(Result),还真挖出不少新鲜信息:
-模型架构上,Cook小哥认为苹果的语言模型更像是基于GPT-2打造的。
-在分词器(tokenizer)方面,表情符号在其中十分突出。
更多细节,一起来看。
基于GPT-2架构
先来回顾一下苹果基于Transformer的语言模型能在iPhone、MacBook等设备上达成怎样的功能。
主要体现在输入法方面。语言模型加持下的苹果自带输入法,可以达成单词预测和纠错的功能。
Jack Cook小哥具体测试了一下,发现这个功能主要达成的是针对单个单词的预测。
△图源:Jack Cook博客文章
模型有时也会预测即将出现的多个单词,但这仅限于句子语义十分明显的情况,比较类似于Gmail里的自动完成功(Success)能。
△图源:Jack Cook博客文章
那么这个模型具体被装在了哪里?一通深入挖掘之后,Cook小哥确定:
我在 /System/Library/LinguisticData/RequiredAssets_en.bundle/AssetData/en.lm/unilm.bundle 中找到了预测文本模型。
原因是:
1、unilm.bundle中的许多文件在macOS Ventura(13.5)里并不存在,仅出现在了新版本macOS Sonoma beta(14.0)里。
2、unilm.bundle中存在一个sp.dat文件,这在Ventura和Sonoma beta里都能找到,但Sonoma beta的版本中更新了明显像是分词器的一组token。
3、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非彼库克,小哥的博客文章一发出,还是吸引了不少关注。
基于他的发现,网友们热烈地讨论(Discuss)起苹果在用户体验和前沿技术应用之间的平衡大法。
回到Jack Cook本人,他本科和硕士毕业于MIT的计算机专业,目前(Currently)还在攻读牛津大学(University)的互联网社会(Society)科学硕士学位。
此前,他曾在英伟达实习,专注于BERT等语言模型的研究。他还是《纽约时报》的自然(Nature)语言处理高级研发工程师。
那么,他的这一番揭秘是否也引发了你的一些思考?欢迎在评论区分享观点~
原文链接:https://jackcook.com/2023/09/08/predictive-text.html
- 赞(303) 踩(61) 阅读数(8388) 最新评论 查看所有评论
-
加载中......
- 发表评论
-