揭秘iPhone里的Transformer:基于GPT-2架构,分词器含emoji,MIT校友出品

2023-11-14

鱼羊 发自 凹非寺
量子位 | 公众号 QbitAI

苹果Transformer的“秘密”,让发烧友给扒出来了a29ba558ba1f6e2f878164c18760f116.png

大模型浪潮下,即使保守如苹果,也每逢发布会必提“Transformer”。

比如,在今年的WWDC上,苹果就已宣布,船新版本的iOS和macOS将内置Transformer语言模型,以提供带文本预测功能的输入法。

158f197d4924f396132766687953c018.png

苹果官方没有透露更多信息,但技术爱好者们可坐不住了。

一位名叫Jack Cook的小哥,就把macOS Sonoma beta翻了个底朝天,结果,还真挖出不少新鲜信息:

  • 模型架构上,Cook小哥认为苹果的语言模型更像是基于GPT-2打造的。

  • 在分词器(tokenizer)方面,表情符号在其中十分突出。

更多细节,一起来看。

基于GPT-2架构

先来回顾一下苹果基于Transformer的语言模型能在iPhone、MacBook等设备上实现怎样的功能。

主要体现在输入法方面。语言模型加持下的苹果自带输入法,可以实现单词预测和纠错的功能。

f34740cb27a015799d4bd68472deaa71.gif

Jack Cook小哥具体测试了一下,发现这个功能主要实现的是针对单个单词的预测。

3b03cf4570d82bbff5387d3636e15195.jpeg
图源:Jack Cook博客文章

模型有时也会预测即将出现的多个单词,但这仅限于句子语义十分明显的情况,比较类似于Gmail里的自动完成功能。

c5a644eb86e99fba7d9942e7a1bbdd1d.png
图源: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这样的字眼。

2798d422b507f70d5ba0becd901940db.png
图源:Jack Cook博客文章

根据每层大小,小哥还推测,苹果模型约有3400万参数,隐藏层大小是512。也就是说,它比GPT-2最小的版本还要小。

小哥认为,这主要是因为苹果想要一种不太耗电,但同时能够快速、频繁运行的模型。

而苹果官方在WWDC上的说法是,“每点击一个键,iPhone就会运行模型一次”。

不过,这也就意味着,这个文本预测模型并不能很好地完整续写句子或段落。

f8dfbd75c5f573413e8daf3e214d5c6c.png
图源:Jack Cook博客文章

模型架构之外,Cook小哥还挖出了分词器(tokenizer)的相关信息。

他在unilm.bundle/sp.dat里发现了一组数量为15000的token,值得关注的是,其中包含100个emoji

Cook揭秘库克

尽管此Cook非彼库克,小哥的博客文章一发出,还是吸引了不少关注。

4dcbc0f8a6db1ba67c20c58e9b068d4a.png

基于他的发现,网友们热烈地讨论起苹果在用户体验和前沿技术应用之间的平衡大法。

a903d92eee464008c2df319ec77815df.png

回到Jack Cook本人,他本科和硕士毕业于MIT的计算机专业,目前还在攻读牛津大学的互联网社会科学硕士学位。

此前,他曾在英伟达实习,专注于BERT等语言模型的研究。他还是《纽约时报》的自然语言处理高级研发工程师。

那么,他的这一番揭秘是否也引发了你的一些思考?欢迎在评论区分享观点~

原文链接:
https://jackcook.com/2023/09/08/predictive-text.html

「AIGC+垂直领域社群」

招募中!

欢迎关注AIGC的伙伴们加入AIGC+垂直领域社群,一起学习、探索、创新AIGC!

请备注您想加入的垂直领域「教育」或「广告营销」,加入AIGC人才社群请备注「人才」&「姓名-公司-职位」。

2d153b40ad5d944b51cc606dd5cfd5a8.png

点这里

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

揭秘iPhone里的Transformer:基于GPT-2架构,分词器含emoji,MIT校友出品 的相关文章

  • 如何在 iOS 中使用 Dropbox API 用父版本覆盖文件?

    我正在使用 Dropbox API 开发 iOS 应用程序 使用 dropbox API 上传文件时 我只想覆盖同名的现有文件 如何设置父转速以及什么值 谢谢 获取目录中的所有文件 self restclient loadMetadata
  • Swift 2.0 中的协议扩展方法调度

    我面临有关协议方法调度的问题 我有一个类层次结构 如下所示 protocol E func test extension E func test print jello class A E class B A func test print
  • 当输入集中在移动 Safari 上时,页面底部出现不需要的填充

    我正在移动 safari 上使用文本区域 当文本区域聚焦时 视口似乎会在文档下方添加填充 当检查和选择区域时 它不会解析为元素 甚至不会解析为 html 节点 文本区域在屏幕上的位置或是否绝对位置似乎并不重要 当其聚焦时 填充始终存在 有时
  • 将文件保存到 icloud 驱动器

    我正在尝试将文件保存到 icloud 驱动器 我要使用简单版本 不让用户选择保存文件的位置 我只是将其保存在 icloud 驱动器的根目录中 这是我正在使用的代码 func exportToFiles for page in pages l
  • iOS 中的 NSCachesDirectory 和 NSDownloadsDirectory 有什么区别?

    我想将下载的杂志保存到我的 iOS 应用程序中的一个目录中 它似乎NSCachesDirectory and NSDownloadsDirectory是合适的 我不知道它们之间有什么区别 以及哪一种适合下载杂志 任何建议表示赞赏 内存不足时
  • 左右并排放置两个 UILabels,而不知道左标签中文本的字符串长度

    在 iPhone fb 应用程序的照片选项卡中 对于每个表格视图单元格 他们都会放置相册标题 后跟相册中的图片数量 例如 第一张专辑 22 最后也是最后的 12 我认为有两个标签 一个用于标题 一个用于数字 因为数字实际上是不同的 UICo
  • 从 NSString 获取子字符串,直到到达特定单词

    假设我有这个NSString Country Address Tel number 我该如何获取之前的子字符串Tel 国家地址 然后我该如何获取后面的子字符串Tel 数字 使用 NSScanner NSString string Count
  • 更改 UINavigationBar 中 UIBarButtonItem 的位置

    如何更改 UIBarButtonItem 在 UINavigationBar 中的位置 我希望我的按钮比正常位置高约 5 像素 此代码为 UINavigationBar 创建一个具有图像背景和自定义位置的后退按钮 诀窍是创建一个中间视图并修
  • 如何确定 NSURLSessionTask 请求何时开始?

    I use NSURLSessionTask我正在尝试监视我的一些 HTTP 请求需要多长时间 我可以监视什么委托方法 或其他方法 NSURLSessionTask实际上提出了最初的请求 如果这是一个NSURLConnection里面一个N
  • iOS:在代码中访问 app-info.plist 变量

    我正在开发通用应用程序 并且希望访问代码中 app info plist 文件中存储的值 原因 我使用以下方法从故事板动态实例化 UIViewController UIStoryboard storyboard UIStoryboard s
  • iPhone模拟器的屏幕截图应用程序[关闭]

    Closed 这个问题正在寻求书籍 工具 软件库等的推荐 不满足堆栈溢出指南 help closed questions 目前不接受答案 我想知道有没有什么好的推荐iPhone模拟器截图的应用程序 我尝试过 iPhone 屏幕截图裁剪器等应
  • UITableView 如何一次显示两个不同的数组?

    下面的代码有效 但不符合我的意愿 我希望当我单击 UIbutton 时 它会自动更新 UITableview 中的新值而不是旧值 下面的代码仅在我按下 UIbuttons 时有效 之后当我滚动 UITableview 时它会更新具有新值的
  • 关于 S3 文件传输的权限

    我正在使用 S3TransferManager Sample 进行测试 我创建了Cognito并设置了IAM并最后更改了constants swift文件 我上传没有问题 但下载失败 错误信息是 下载失败 错误域 com amazonaws
  • .net MVC 将 MP4 流式传输到 iDevice 问题

    我一直在编写用于提供视频服务的一段代码 但遇到了一些问题 代码如下 public ResumingFileStreamResult GetMP4Video string videoID if User Identity IsAuthenti
  • 加载 UIWebView 时如何使用 UIProgressView?

    我正在开发一个应用程序 我在 UIWebView 中加载 urlrequest 并且它成功发生 但现在我试图在加载过程中显示 UIProgressView 从 0 0 到 1 0 它随着加载进度动态变化 我怎样才能做到这一点 UIWebVi
  • 如何防止 iPhone 4 在添加到主屏幕时截断我的标题?

    我的网页标题很长 当添加到 iPhone 旧版本的主屏幕时 整个标题在确认对话框中可见 当我添加到 iPhone 4 的主屏幕时 标题在第 12 个符号之后被切断 有没有办法阻止这种剪切 让 iPhone 默认显示完整标题 显然会有一个无证
  • 为什么在快速合并两个视频或更改背景音乐后视频变成黑屏?

    在我的 ios 应用程序中 我想合并两个视频并更改背景音乐 我尝试过 对于普通视频来说效果很好 但是 当我选择任何延时视频 然后尝试合并或更改背景音乐时 视频变成全黑屏 对于我的应用程序 我使用 swift 4 2 和 xcode 10 我
  • iPhone - cancelPerformSelectorWithTarget 不起作用

    如果我在 UIView 的子类中执行此操作 self performSelector selector doSomething withObject nil afterDelay 5 然后像这样取消它 我已经尝试了两个版本 NSRunLoo
  • 如何支持滑动删除具有组合布局的 UICollectionView 列表中的行?

    以前对于表视图 这是在UITableViewDataSource委托回调tableView commit forRowAt 相关 API 中是否有等效功能新的集合视图 https developer apple com documentat
  • stringFromDate 始终为 NIL

    我知道这是一个重复的问题 但是在 stackoverflow 和 google 上搜索了许多类似的问题后 没有一个解决方案对我有用 我正在尝试将从数据库收到的日期转换为字符串格式以在 iPhone 应用程序中显示 我正在按以下方式将日期转换

随机推荐

  • 数据库十一章——并发控制

    11 1 并发控制概述 1 并发操作带来的数据不一致性 1 丢失修改 Lost Update 两个事务T1和T2读入同一数据并修改 T2的提交结果破坏了T1提交的结果 导致T1的修改被丢失 2 不可重复读 Non repeatable Re
  • XGBoost学习(六):输出特征重要性以及筛选特征

    XGBoost学习 一 原理 XGBoost学习 二 安装及介绍 XGBoost学习 三 模型详解 XGBoost学习 四 实战 XGBoost学习 五 参数调优 XGBoost学习 六 输出特征重要性以及筛选特征 完整代码及其数据 XGB
  • makefile-gdb

    makefile gdb 1 makefile makefile 文件中定义了 一系列的规则来指定 哪些文件需要先编译 哪些文件需要后编译 哪些文件需要重新编译 甚至于进行更复杂的功能操作 就像是一个shell脚本 其中也可以执行操作系统的
  • 关于迅雷与优酷

    迅雷的用户许可协议上有这样一段 4 4 使用本 软件 涉及到互联网服务 可能会受到各个环节不稳定因素的影响 存在因不可抗力 计算机病毒 黑客攻击 系统不稳定 用户所在位置 用户关机以及其他任何网络 技术 通信线路等原因造成的服务中断或不能满
  • 语义分割方法总结与综述

    语义分割论文 Dilated convolution low level high level information fusion 2019 CVPR DFANet Deep Feature Aggregation for Real Ti
  • 2207 字符串中最多数目的子字符串(递推)

    1 问题描述 给你一个下标从 0 开始的字符串 text 和另一个下标从 0 开始且长度为 2 的字符串 pattern 两者都只包含小写英文字母 你可以在 text 中任意位置插入一个字符 这个插入的字符必须是 pattern 0 或者
  • Axios请求使用XML格式进行请求

    第一次接触xml格式请求 因为我们公司要对接其他公司的平台 需要用XML格式进行请求 才可以打通内网访问 在网上查了好多资料也没明白这个格式怎么使用 试了多次 发现用模板字符串将请求内容包裹进去就可以使用 废话不多说 直接上代码 此处是请求
  • PL/SQL 动态Sql拼接where条件

    完整例子 DECLARE SQLSTR VARCHAR 200 SELECT FROM hr employees where 1 1 TYPE EMPCURTYP IS REF CURSOR V EMP CURSOR EMPCURTYP E
  • shell的文本处理( grep / sed / awk / find)

    1 grep文本过滤明令 全面搜索研究正则表达式并显示出来 grep 命令是一种强大的文本搜索工具 根据用户指定的 模式 对目标文本进行匹配检查 打印匹配到的行 由正则表达式或者字符及基本文本字符所编写的过滤条件 1 grep的格式 gre
  • 网络切片技术缺点_中国联通携手紫光展锐发布首款5G网络切片技术

    出品 搜狐科技 编辑 张雅婷 11月9日 中国联通携手紫光展锐发布全球首款支持完整3GPP标准化网络切片和eSIM的5G CPE VN007 据了解 CPE全称为客户终端设备 是适用于家里的一种微基站 不需要有线进户即可享受到高速上网体验的
  • 谷粒商城-启动renren-fast-vue

    关于启动renren fast vue 为了启动这个 这两天都快搞疯了 本人没搞过前端 所以很费劲 资料 包含node js10 16 3与python2 7 2 链接 https pan baidu com s 1CLSNkiQhMgtM
  • arXiv上传文章注意事项

    1 注册 不忍吐槽arxiv的注册过程 密码有格式要求 而且一旦输错了 得从头填一遍密码和验证码 唯一需要注意的是 如果想要后续用这个账号上传文章 一定记得用自己的 edu邮箱注册 edu cn自然也可以 因为非edu邮箱注册的账号 在上传
  • Java架构直通车——过滤器和拦截器使用

    文章目录 过滤器和拦截器的区别 Filter过滤器 Interceptor拦截器 过滤器和拦截器的区别 规范不同 Filter是Servlet规范中定义的 是Servlet容器支持的 而拦截器是Spring容器内的 是Spring框架支持的
  • 龙书D3D11章节习题答案(第五章)

    以下答案仅供参考 有错欢迎留言 Chapter 5 The Rendering Pipeline 1 Construct the vertex and index list of a pyramid 金字塔 as shown in Figu
  • Qt 解决用QLineEdit实现的输入框开始没有光标在闪烁的问题

    在项目中遇到new出来QLineEdit在开始时 没有光标在闪烁 此时需要重写QlineEdit 代码如下 h文件 class CLineEidt public QLineEdit Q OBJECT public CLineEidt QWi
  • 大数据技术——用户与组管理

    一 实验目的 1 了解linux用户和组 2 熟练掌握liunx用户和组的基本操作 3 进一步了解linux系统 二 实验内容 1 用户账号的添加 删除与修改 2 用户口令的管理 3 用户组的管理 三 实验原理或流程 Linux系统是一个多
  • QT两种方法实现定时器

    方法一 1 重写虚函数 void timerEvent QTimerEvent e 2 启动定时器 返回值为定时器id 参数为定时间隔 单位为毫秒 int startTimer int interval 代码 widget h ifndef
  • DIV CSS优化

    一 Css background背景语法 CSS背景基础知识CSS 背景这里指通过CSS对对象设置背景属性 如通过CSS设置背景各种样式 背景语法 background background color background image b
  • 【会了这些命令,还怕搞不定思科设备?】

    一 常规配置 创建 VLAN S1 config vlan 100 给VLAN 命名 S1 config vlan name vlan100 删除 VLAN S1 config no vlan 100 分配端口到 VLAN 中 S1 con
  • 揭秘iPhone里的Transformer:基于GPT-2架构,分词器含emoji,MIT校友出品

    鱼羊 发自 凹非寺量子位 公众号 QbitAI 苹果Transformer的 秘密 让发烧友给扒出来了 大模型浪潮下 即使保守如苹果 也每逢发布会必提 Transformer 比如 在今年的WWDC上 苹果就已宣布 船新版本的iOS和mac
Powered by Hwhale