0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

5天内用户数破亿、增速碾压ChatGPT,Twitter 劲敌Threads是如何构建的?

jf_WZTOguxH 来源:AI前线 2023-07-16 16:36 次阅读

小扎和马斯克的“格斗”,从八角笼中来到了社交平台上。

当地时间 7 月 5 日,Meta 旗下的 Instagram 正式发布 Threads,与 Twitter 展开直接竞争。据介绍,Threads 的定位是“用文本分享动态和加入公共对话”。应用上线后,Meta 公司首席执行官马克·扎克伯格“实时”公布 Threads 最新成绩:4 小时,注册用户 500 万;7 小时,注册用户 1000 万;24 小时,注册用户 3000 万;48 小时,注册用户 7000 万。

北京时间 7 月 10 日 15 点左右,据数据追踪网站 Quiver Quantitative 披露,Threads 的登录用户数已经突破 1 亿人。扎克伯格表示,这主要是自然需求,Threads 甚至还没有开展很多推广活动。这远远超出了预期。

而此时,距离 Threads 在美洲地区首发上线连 5 天整都没到。Threads 的注册用户增速也打破了此前 ChatGPT 留下的记录,后者用了 2 个月实现注册用户数破亿。此外,Threads 用户的活跃度也很高,据报道,过去几天 Threads 上的帖子数量已经达到 9500 多万条,点赞数 1.9 亿次。

投资银行 Evercore ISI 表示,虽然现在还处于早期阶段,但预计 Threads 可以为 Meta 带来可观的现金。Threads 有望在未来两年内覆盖近 2 亿的日活跃用户,并产生约 80 亿美元的年收入。

那么,这样一款现象级应用程序是如何构建的?

Threads 是如何构建的?

近日,国外工具分析平台 Emerge Tools 率先对 Threads App 进行了拆解分析,分别揭晓了 Android 版 Threads 以及 iOS 版 Threads 是如何构建的。

Emerge Tools 表示,Meta 投入大量资源对应用做移动性能优化。通过测试和分析,可以看到 Meta 的移动应用优化确实做得不错。Meta 采取的不少模式虽非典型的最佳实践,但凭借着强大的基础设施和工程能力,Meta 仍然在这场“以终为始”的性能大战中占据了主动。

拆解 Android、iOS 版 Threads

Android 版 Threads 方面,跟其他 Meta 应用一样,Threads 也提供通用 APK 文件。虽然业界认为 AAB 才是最佳实践,但 Meta 还是选择了高度优化过的通用 APK——把资源、自定义打包共享库和 Redex 结合了起来。

Threads 还发布了调试代码。Threads 提供 com.instagram.debug.devoptions.sandboxselector 和 com.instagram..debug.quickexperiment 等调试包。

此外,Threads 在应用的某些部分使用了 React Native,- InstagramBundle.js.hbc.spk.xz 可能是 Hermes 字节码(js.hbc)的压缩版本。

其中有个很大的.spo 文件,看起来像是不同本机库的编译版本。其中附带一个元数据文件:

arm64-v8a/librtc.so 11336240 bda527a307edd868700fccfab15481f403d3f39363289d5d6a717579f284bed7 arm64-v8a/libgojni.so 11330024 616915938eb1face6aa3392aedab8bddce280f2b84423377ac65896a6b3faad7 arm64-v8a/libarfxgraphicsmerged.so 9710600 afb00aa881a63b20371e447dbbad61fefcf4df2c23c922a9e44e2171d7a649ad ...

Emerge Tools 猜测这个.spo 文件是所有本机库的合并版本,第二个条目是 offset/size,第三个条目则是 checksum。

UI 方面,根据 @richz(Threads 工程师)的帖子,Threads 主要用 Jetpack Compose 来构建自己的 UI。跟整个 dex 大小相比,dex 的组装部分相对较小(约 130 KB),所以也许能更高效地使用 Compose 并 / 或共享 Instagram 代码、控制实际代码量。

a6e5ddb0-239a-11ee-962d-dac502259ad0.png

Threads 的 iOS 版有两点比较突出:

Thredas 有 0 个动态库,而 Facebook 应用却大量使用动态框架。

Threads 的插件体量几乎逼近人们的认知极限。其中 BarcelonaShareExtension 达到 81 MB。相比之下,最大的 Instagram 插件 - InstagramNotificationExtension 也仅为 23.5 MB,InstagramShareExtension 则为 5.6 MB。

后端采用 Cinder,基于 Python 3.10 构建

此外,据 CPython 核心开发者 Łukasz Langa 透露,Threads 的后端使用了 Cinder,这是基于 Python 3.10 构建的高性能版本,其中包含 JIT、延迟加载模块、预编译静态模块,而且针对 Python 3.10 做出了一系列有趣的调整。

a71e4b28-239a-11ee-962d-dac502259ad0.png

据了解,Cinder 是 Meta 内部打造的、强调高性能的 CPython 3.10 生产版本。其中包含多种性能优化,例如字节码内联缓存、协和即时评估、每次一个方法 JIT,以及使用类型注释在 JIT 中实现类型专用字节码、从而提高性能的实验性字节码编译器。

Cinder 目前已经在支持 Instagram,而且正越来越多被用在 Meta 公司的各类 Python 应用程序当中。Meta 表示,公开发布 Cinder 是为了推动将部分工作负载回流至 CPython 的讨论,同时努力减少 CPython 开发者在性能优化方面浪费的时间。

但 Cinder 本身尚不完善,也不是 CPython 的替代品,Meta 发布项目代码的唯一理由,就是想帮助 CPython 在速度方面更上一层楼。虽然 Meta 自己确实在生产环境中运行 Cinder,但无法为其他开发者提供生产层级的技术支持。只能保证 Cinder 在 Meta 自己的生产工作负载中稳定且快速,但不保证其在其他外部工作负载或用例中具有良好的稳定性、正确性或性能。

据介绍,Instagram 拥有非常庞大的 Python 代码库,所以由引用计数复制所带来的开销也极为沉重。为此,Cinder 开发出名为“不朽实例”(Immortal Instance)的解决方案,能够从引用计数中清退对象。此功能通过定义 Py_IMMORTAL_INSTANCES 进行控制,并在 Cinder 中默认启用。这对生产流程是一个巨大的胜利(节约开销约 5%),但也会令直接代码的运行速度变慢。由于引用计数操作会频繁发生,所以启用此功能前必须检查对象是否确实参与了引用计数。

Threads 的启动时间如何?

Emerge Tools 用 ETTrace 来查看 Threads 的实际启动时间。

a7502490-239a-11ee-962d-dac502259ad0.png

使用 ETTrace 为 Threads 的启动过程生成火焰图。

Emerge Tools 表示,由于 Meta 公开的 build 混淆,能从栈中追踪到的信息不多。但仍然可以看到,其中存在大量 pre-main 时间(在追踪期间约为 50 毫秒)。

还有一个会在应用启动时初始化的 WKWebView,它的速度也相当慢。这意味着整个登录体验并非本机、而是在显示 webview,或者是出于追踪的目的而将登录放在了后台。

Threads 未来会 “去 Instagram 化”吗?

分析发现,Threads 在 Android 和 iOS 两大平台上都照搬了不少 Instagram 代码,比如 InstagramBundle.js.hbc.spk.xz 等等。

其中,Android 版 Threads 与 Instagram 间的 /assets/dsp 也是相同的。考虑到 Threads 与 Instagram 高度集成,二者共享代码也完全在情理之中。

此外,iOS 版 Threads 的 BarcelonaShareExtension 与 Instagram 的 FBSharedFramework 之间拥有很多相同元素。一些值得注意的相同元素:

FilterAsset.bundle;

ig_signals_cupid_better_recall_v1.mlmodelc 与ig_signals_cupid_v2.mlmodelc;

资产目录几乎完全相同。

作为一款新产品,Threads 的发布显然有些仓促。Threads 在 Android 和 iOS 两大平台上和 Instagram 共享大量代码,明显是为了加快开发速度。Threads 团队希望快速行动,在一切可能的位置直接使用 Instagram 那边的现成代码。在未来的发展中,Threads 会不会逐步“去 Instagram 化”值得关注。

目前,Threads 还缺少了一些关键功能,比如没有翻译按钮、不能搜索内容(只能搜索用户)、没有话题标签功能、没有编辑按钮(发布帖子后无法进行编辑)、不能私信等。Meta 产品副总裁 Connor Hayes 也承认,有一些功能没能赶上这次发布,它们会在日后更新时推出。

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • Twitter
    +关注

    关注

    0

    文章

    175

    浏览量

    15669
  • python
    +关注

    关注

    51

    文章

    4675

    浏览量

    83466
  • ChatGPT
    +关注

    关注

    27

    文章

    1408

    浏览量

    4741

原文标题:5 天内用户数破亿、增速碾压 ChatGPT,Twitter 劲敌 Threads 是如何构建的?

文章出处:【微信号:AI前线,微信公众号:AI前线】欢迎添加关注!文章转载请注明出处。

收藏 人收藏

    评论

    相关推荐

    Netflix利润创新高,付费用户数达2.696亿,季度报告公布

    Netflix在股东信中指出,未来将更注重收入及其他财务数据的披露,而非单纯关注用户数。同时,Netflix宣布自2025年Q1起,将不再披露订阅用户数量数据,但在达到特定里程碑后仍会分享相关信息。
    的头像 发表于 04-19 11:27 63次阅读

    蔚来智能驾驶月度运营报告新鲜出炉:新增智能驾驶用户11,816名

    2024年3月,蔚来新增智能驾驶用户11,816名,智能驾驶总用户数达307,783名。其中,全域领航辅助NOP+用户数达193,174名。智能驾驶端云算力新增11.5 EOPS,总算力达232.21 EOPS。
    的头像 发表于 04-09 15:03 606次阅读

    在FPGA设计中是否可以应用ChatGPT生成想要的程序呢

    当下AI人工智能崛起,很多开发领域都可看到ChatGPT的身影,FPGA设计中,是否也可以用ChatGPT辅助设计呢?
    发表于 03-28 23:41

    【书籍评测活动NO.30】大规模语言模型:从理论到实践

    名单将在论坛公示请活动参与者尽量完善个人信息如管理员无法联系到选中的评测者则视为自动放弃。 3、申请人收货后14天内未完成书评无权将书籍出售或转赠给他人。如无法在收货后14天内提交书评请将书籍退回
    发表于 03-11 15:16

    【国产FPGA+OMAPL138开发板体验】(原创)6.FPGA连接ChatGPT 4

    (chatGPT_Server, question); print(\"FPGA: 问题已发送,等待回复...\"); // 5. 从ChatGPT 4服务器接收回复 answer
    发表于 02-14 21:58

    OpenAI回应ChatGPT严重停机:发现黑客DDoS攻击的迹象

    巧合的是,OpenAI的劲敌Anthropic旗下的Claude 2聊天机器人,也在周三差不多时间出现故障。与ChatGPT类似,Claude告知用户“由于意外的容量限制,无法回复您的消息”。
    的头像 发表于 11-23 15:55 317次阅读

    马斯克发布AI大模型Grok:挑战ChatGPT,X平台将搭载

    马斯克表示,Grok可以挑战chatgpt 3.5,并且在许多标准测试中,试制品做得更好。grok是利用x平台(旧twitter)的数据开发的,将对少数用户进行测试,并以每月16美元的价格向x premium +
    的头像 发表于 11-06 14:29 507次阅读

    如何将用户数据存贮到电池供电域数据寄存器

    AT32F4xx电池供电域数据存储展示如何将用户数据存贮到电池供电域数据寄存器。
    发表于 10-27 08:17

    如何让用户数据更安全?消费级SSD中的掉电保护思路分享

    Power Loss Protection(掉电保护,简称PLP)技术旨在为SSD提供数据完整性和可靠性方面的保障,主要是为了应对断电或电源突然中断等意外情况,防止数据丢失或损坏。 突然断电时,SSD可能会丢失其易失性写入缓存中的用户数据,或者丢失重要的内部数
    的头像 发表于 10-16 15:55 1121次阅读
    如何让<b class='flag-5'>用户数</b>据更安全?消费级SSD中的掉电保护思路分享

    中国移动物联网用户数破12亿,开启高质量发展新篇章

    截至2023年7月,中国移动物联网用户数突破12亿,累计净增1.73亿。物联网业务发展正处于从高速发展到高质量发展的换挡期,中国移动持续在做大物联网规模、做优连接管理、做强增值服务等方面深耕
    的头像 发表于 09-27 11:32 469次阅读
    中国移动物联网<b class='flag-5'>用户数</b>破12亿,开启高质量发展新篇章

    AI实现按键输入功能控制不同的LED灯

    从今年年初,OpenAI发布的ChatGPT以摧古拉朽之势席卷全球,短短两个月注册用户数就超过1亿人,是全世界增长速度最快的应用。
    发表于 07-28 11:39 476次阅读
    AI实现按键输入功能控制不同的LED灯

    中国IPv6活跃用户数达到7.63亿 各大厂商加快IPv6规模建设

    中国信息通信研究院总工程师兼推进IPv6规模部署和应用专家委员会秘书长敖立表示,中国的IPv6发展已经历20年,用户数量快速增长,流量占比不断提升,同时应用领域也在持续扩大。
    的头像 发表于 07-25 16:15 738次阅读

    马斯克:ThreadsTwitter前员工做出来的!

    目前 Instagram 上提供的核心辅助功能,例如人工智能支持,也可以在 Threads 上启用。根据 CPython 核心开发者 Łukasz Langa 透露,Threads 的后端是用 #Python 3.10 构建,在
    的头像 发表于 07-11 14:36 323次阅读
    马斯克:<b class='flag-5'>Threads</b>是<b class='flag-5'>Twitter</b>前员工做出来的!

    Twitter关注者状态通知器构建

    电子发烧友网站提供《Twitter关注者状态通知器构建.zip》资料免费下载
    发表于 07-04 09:19 0次下载
    <b class='flag-5'>Twitter</b>关注者状态通知器<b class='flag-5'>构建</b>

    如何使用ChatGPT在1天内完成毕业论文

    如何使用ChatGPT在1天内完成毕业论文 几天前,亲眼见证了到一位同学花了1天时间用ChatGPT完成了他的毕业论文,世道要变,要学会使用黑科技才能混的下去。废话到此结束,下面说明这么用AI生成
    的头像 发表于 05-17 16:22 733次阅读
    如何使用<b class='flag-5'>ChatGPT</b>在1<b class='flag-5'>天内</b>完成毕业论文