揭秘iPhone里的Transformer:基于GPT-2架構(gòu),分詞器含emoji,MIT校友出品
本文經(jīng)AI新媒體量子位(公眾號ID:QbitAI)授權(quán)轉(zhuǎn)載,轉(zhuǎn)載請聯(lián)系出處。
蘋果Transformer的“秘密”,讓發(fā)燒友給扒出來了。
大模型浪潮下,即使保守如蘋果,也每逢發(fā)布會必提“Transformer”。
比如,在今年的WWDC上,蘋果就已宣布,船新版本的iOS和macOS將內(nèi)置Transformer語言模型,以提供帶文本預(yù)測功能的輸入法。
蘋果官方?jīng)]有透露更多信息,但技術(shù)愛好者們可坐不住了。
一位名叫Jack Cook的小哥,就把macOS Sonoma beta翻了個底朝天,結(jié)果,還真挖出不少新鮮信息:
- 模型架構(gòu)上,Cook小哥認(rèn)為蘋果的語言模型更像是基于GPT-2打造的。
- 在分詞器(tokenizer)方面,表情符號在其中十分突出。
更多細節(jié),一起來看。
基于GPT-2架構(gòu)
先來回顧一下蘋果基于Transformer的語言模型能在iPhone、MacBook等設(shè)備上實現(xiàn)怎樣的功能。
主要體現(xiàn)在輸入法方面。語言模型加持下的蘋果自帶輸入法,可以實現(xiàn)單詞預(yù)測和糾錯的功能。
Jack Cook小哥具體測試了一下,發(fā)現(xiàn)這個功能主要實現(xiàn)的是針對單個單詞的預(yù)測。
△圖源:Jack Cook博客文章
模型有時也會預(yù)測即將出現(xiàn)的多個單詞,但這僅限于句子語義十分明顯的情況,比較類似于Gmail里的自動完成功能。
△圖源:Jack Cook博客文章
那么這個模型具體被裝在了哪里?一通深入挖掘之后,Cook小哥確定:
我在 /System/Library/LinguisticData/RequiredAssets_en.bundle/AssetData/en.lm/unilm.bundle 中找到了預(yù)測文本模型。
原因是:
- unilm.bundle中的許多文件在macOS Ventura(13.5)里并不存在,僅出現(xiàn)在了新版本macOS Sonoma beta(14.0)里。
- unilm.bundle中存在一個sp.dat文件,這在Ventura和Sonoma beta里都能找到,但Sonoma beta的版本中更新了明顯像是分詞器的一組token。
- sp.dat中token的數(shù)量跟unilm.bundle中的兩個文件——unilm_joint_cpu.espresso.shape和unilm_joint_ane.espresso.shape能匹配得上。這兩個文件描述了Espresso/CoreML模型中各層的形狀。
進而,小哥根據(jù)unilm_joint_cpu中描述的網(wǎng)絡(luò)結(jié)構(gòu),推測蘋果模型是基于GPT-2架構(gòu)打造的:
主要包含token embeddings、位置編碼、解碼器塊和輸出層,每個解碼器塊中都有類似gpt2_transformer_layer_3d這樣的字眼。
△圖源:Jack Cook博客文章
根據(jù)每層大小,小哥還推測,蘋果模型約有3400萬參數(shù),隱藏層大小是512。也就是說,它比GPT-2最小的版本還要小。
小哥認(rèn)為,這主要是因為蘋果想要一種不太耗電,但同時能夠快速、頻繁運行的模型。
而蘋果官方在WWDC上的說法是,“每點擊一個鍵,iPhone就會運行模型一次”。
不過,這也就意味著,這個文本預(yù)測模型并不能很好地完整續(xù)寫句子或段落。
△圖源:Jack Cook博客文章
模型架構(gòu)之外,Cook小哥還挖出了分詞器(tokenizer)的相關(guān)信息。
他在unilm.bundle/sp.dat里發(fā)現(xiàn)了一組數(shù)量為15000的token,值得關(guān)注的是,其中包含100個emoji。
Cook揭秘庫克
盡管此Cook非彼庫克,小哥的博客文章一發(fā)出,還是吸引了不少關(guān)注。
基于他的發(fā)現(xiàn),網(wǎng)友們熱烈地討論起蘋果在用戶體驗和前沿技術(shù)應(yīng)用之間的平衡大法。
回到Jack Cook本人,他本科和碩士畢業(yè)于MIT的計算機專業(yè),目前還在攻讀牛津大學(xué)的互聯(lián)網(wǎng)社會科學(xué)碩士學(xué)位。
此前,他曾在英偉達實習(xí),專注于BERT等語言模型的研究。他還是《紐約時報》的自然語言處理高級研發(fā)工程師。