Sora 2:好模型,但未必是好生意 | 肘子的 Swift 周报 #0105

weekly.fatbobman.com 订阅本周报的电子邮件版本。访问我的博客 肘子的 Swift 记事本 查看更多的文章。加入 Discord 社区,与 2000+ 中文开发者深入交流 Swift、SwiftUI 开发体验。

Sora 2:好模型,但未必是好生意

一周前,OpenAI 发布了 Sora 2 模型,并同步推出了带有社交平台属性的 Sora 应用。目前,用户仅能通过 iOS 应用使用该模型生成视频。无论在视觉细节、人物形象、环境纹理,还是声画同步方面,Sora 2 相较早期版本都有显著提升。一时间,社交媒体上充斥着各类由 Sora 2 生成的短片。

Sora 应用的推出,标志着 OpenAI 正尝试进入一种全新的商业路径------从基础模型提供商转型为视频内容的创建、分享与聚合平台,以此拓展收入来源。然而,这种转型注定充满挑战。发布初期,OpenAI 采用 opt-out 机制,默认允许用户使用受版权保护的内容,除非版权方主动退出。但在各方强烈反对下,仅过三天,Sam Altman 便宣布将调整为"类似 opt-in"的机制,承诺提供更细粒度的控制权,并探索收益分成方案。

即便市场上已有 YouTube Content ID 这样成熟的版权管理机制,OpenAI 也难以在 Sora 中复制这一模式并获得版权方的认可。YouTube 之所以能建立基于 opt-in 的匹配体系,是因为它处理的是确切的、可比对的作品;而 Sora 生成的只是统计意义上的相似结果,并非对原始素材的复制。换言之,YouTube 解决的是"发现已存在的作品是否被使用",而 Sora 面临的却是"判断生成内容是否过于接近某个作品"的问题------后者在技术与法律上都要复杂得多。

即便能妥善处理版权问题,Sora 2 的商业化仍受制于高昂的成本结构。Altman 承认,用户生成的视频数量远超预期,而每个 10 秒视频都需消耗大量计算资源,却往往只服务于极小的受众群体。若在生成阶段引入"版权感知模型",虽可部分缓解侵权风险,却势必压缩创作自由;若在生成后执行相似度检测,又会显著提升运营成本。

这种两难局面揭示了当下 AI 产业的奇特现象:以英伟达为代表的硬件厂商赚得盆满钵满,而以苹果为代表的终端厂商,则通过在设备端深度整合 AI 能力、强化生态闭环,为自有产品创造了清晰的增值路径,反而是那些构建模型本身的企业,仍在为如何兑现估值而苦苦探索。产业链两端盈利可观,中游路径却愈发模糊。

Sora 2 无疑是一次值得关注的技术与商业实验。它或许能成为生成式视频的重要里程碑,但若最终用户体验和商业回报均不尽如人意,也将进一步放大这一行业症结------迫使厂商与投资者重新思考,AI 服务的真正价值,究竟该体现在能力、内容,还是场景之上。

近期推荐

同步函数等待异步结果的困境 (Waiting for an Async Result in a Synchronous Function)

有时开发者会遇到同步函数等待异步函数结果的需求,苹果的 DTS 工程师 Quinn "The Eskimo!" 在这篇文章中明确指出:在苹果平台上,没有好的方法让同步函数等待异步函数的结果。常见的基于 DispatchSemaphore 的实现存在严重缺陷:

  • 优先级反转:系统无法识别线程依赖关系,可能导致 UI 卡顿
  • 线程池耗尽:可能造成线程爆炸或死锁

Quinn 建议的解决方案是使用 Swift async/await,或重构整体架构避免同步等待。这也体现了 Swift Concurrency 的设计理念------从根本上改变异步编程模式,而非修补有缺陷的同步阻塞方案。


AsyncStream 改造轮询 API 实践 (AsyncSequence for Real-Time APIs: From Legacy Polling to Swift 6 Elegance)

Wesley Matlock 用轻松幽默的风格探讨了如何使用 Swift 6 的 AsyncStream 来改造传统的轮询 API。通过对比三种实现实时数据更新的方式(传统 Timer、Combine 以及 AsyncStream),文章展示了 AsyncStream 的诸多优势:更优雅的取消机制、结构化并发支持、更好的可测试性以及可组合性。AsyncStream 不仅让轮询代码变得简洁而健壮,同时为将来迁移到 WebSocket 等真正的实时方案提供了平滑的过渡路径。


Liquid Glass 适配经验与陷阱 (Adopting Liquid Glass: Experiences and Pitfalls)

很显然,不少开发者在适配 Liquid Glass 时都碰到了一些问题,即便苹果原生的应用也不例外。JuniperPhoton(Weichao Deng)分享了他在适配过程中遇到的五个实际问题及解决方案,包括:旋转动画异常(需桥接 UIKit)、Menu 变形动画故障、SF Symbols 变体使用技巧、通过 GlassEffectContainer 优化性能(减少离屏渲染)以及按钮点击区域修正等。

特别值得注意的是,使用 GlassEffectContainer 可以将多个玻璃效果合并到单个 CALayer,显著减少离屏渲染次数,同时获得更流畅的变形动画。


SwiftUI 文件导入器详解 (The File Importer in SwiftUI)

在 SwiftUI 中,开发者可以通过 fileImporter 轻松构建文件导入功能,但在实践中可能会发现导入过程并没有如预期般顺利。Gabriel Theodoropoulos 在本文中不仅介绍了 fileImporter 的基本用法,还特别强调了最关键的技术要点------安全作用域访问 :由于导入的文件位于应用沙盒外,必须通过 startAccessingSecurityScopedResource() 请求临时访问权限,处理完成后调用 stopAccessingSecurityScopedResource() 释放权限。Gabriel 建议使用 defer 语句确保权限总是被正确释放,避免在复杂代码中因提前返回而遗漏。


Foundation Models 性能分析 (Foundation Models Profiling with Xcode Instruments)

Xcode 26 新增了针对 Foundation Models 框架的 Instrument 工具,帮助开发者分析和优化模型性能。Artem Novichkov 在本文中展示了其使用方法,包括:性能监控、Tool Calling 优化、会话预热以及优化效果对比。需要注意的是,目前 token 计数功能仅在真机上有效。另外,Artem 还提供了 TranscriptDebugMenu 开源库,用于调试和检查语言模型会话记录。


如何测试私有成员 (Testing Private Members in Swift with @_private)

尽管 private 关键字可以创建更丰富的封装层次,但它的一个实际困扰是无法对私有代码进行有效的单元测试。在本文中,Kyle Ye 介绍了一个测试技巧:使用 @_private(sourceFile:) 属性可以绕过访问控制,让测试代码能够验证私有成员的状态,而无需破坏封装性。

这个技巧很实用,但确实需要谨慎对待。对于需要深度测试内部状态的项目来说,这提供了一个在保持封装性和测试覆盖率之间的平衡方案。

工具

Swift Configuration - 统一配置管理方案

在实际项目中我们可能会碰到这样的场景:通过 JSON 为应用提供了默认设置,但又允许用户通过环境变量来进行覆盖,同时又可能从远程对配置进行修改。显然处理这种配置管理碎片化并不轻松。为此,苹果发布了 Swift Configuration 库以解决这个痛点。

该库最大的亮点是层级配置系统:可以组合多个配置源(环境变量、命令行参数、JSON/YAML 文件等)并建立清晰的优先级覆盖机制。主要特性包括:

  • 统一的配置读取 API,应用和库都可使用
  • 热重载支持,无需重启即可更新配置
  • 内置访问日志和敏感信息脱敏
  • 支持同步、异步和响应式访问模式

AsyncItemProvider - 确保时序的异步加载

在 iOS 的 UIDropInteraction 中,如果你不在 performDrop 返回之前同步开始加载内容,系统可能会终止拖放会话,导致加载静默失败。在并发编程越来越流行的今天,这会给很多开发者带来困扰。Harlan Haskins 开发的 AsyncItemProvider 通过 Swift 6.2 的 Task.immediate API(通过 Task.startOnMainActor 向后兼容至 iOS 17)巧妙解决了这个问题。该库返回的 ItemLoadTask 对象包含:正在加载内容的 Task(可 await)以及可观察的 Progress 对象用于跟踪进度。

该库不仅具备实用价值,其代码实现对很多类似场景也有指导意义。这也是 Quinn 在 "Waiting for an Async Result in a Synchronous Function" 一文中推荐的 async/await 重构方案的一个实际应用------虽然它解决的是一个更特殊的时序问题。

往期内容

THANK YOU

如果你觉得这份周报或者我的文章对你有所帮助,欢迎 点赞 并将其 转发 给更多的朋友。

weekly.fatbobman.com 订阅本周报的电子邮件版本。访问我的博客 肘子的 Swift 记事本 查看更多的文章。加入 Discord 社区,与 2000+ 中文开发者深入交流 Swift、SwiftUI 开发体验。

相关推荐
yzx9910132 小时前
国庆科技感祝福:Python 粒子国旗动画
开发语言·人工智能·python
金井PRATHAMA7 小时前
描述逻辑(Description Logic)对自然语言处理深层语义分析的影响与启示
人工智能·自然语言处理·知识图谱
Rock_yzh7 小时前
AI学习日记——参数的初始化
人工智能·python·深度学习·学习·机器学习
CiLerLinux9 小时前
第四十九章 ESP32S3 WiFi 路由实验
网络·人工智能·单片机·嵌入式硬件
七芒星202310 小时前
多目标识别YOLO :YOLOV3 原理
图像处理·人工智能·yolo·计算机视觉·目标跟踪·分类·聚类
Learn Beyond Limits11 小时前
Mean Normalization|均值归一化
人工智能·神经网络·算法·机器学习·均值算法·ai·吴恩达
ACERT33311 小时前
5.吴恩达机器学习—神经网络的基本使用
人工智能·python·神经网络·机器学习
C嘎嘎嵌入式开发11 小时前
(一) 机器学习之深度神经网络
人工智能·神经网络·dnn
Aaplloo11 小时前
【无标题】
人工智能·算法·机器学习