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