揭秘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

資訊來源:由0x資訊編譯自8BTC。版權歸作者所有,未經許可,不得轉載

Total
0
Shares
Related Posts