写点什么

AI 开源如何吞噬 AI

  • 2023-03-14
    北京
  • 本文字数:5420 字

    阅读完需:约 18 分钟

AI开源如何吞噬AI

本文最初发布于 swyx 的个人博客。


GPT-2 的周期为 6 个月:


  • 2019 年 2 月,OpenAI 宣布了 GPT-2,但说它太危险了,尚不能全部发布,并从非营利性改组为有限营利(capped-profit)。

  • 到了 8 月,两名硕士生公开克隆了它,并命名为 OpenGPT-2。

  • 到了 11 月,经过谨慎地分阶段发布,OpenAI 发布了他们的 1.5B 参数模型。 


GPT-3 的周期为 10 个月:

  • 2020 年 5 月:OpenAI 将 GPT-3 以论文形式发布,并在 2020 年 6 月发布了封测版 API。2020 年 7 月:EleutherAI 成为一个真正开放的 OpenAI 替代品。

  • 2020 年 9 月:授予微软“GPT-3 独家许可”。

  • 2021 年 1 月:EleutherAI 发布了 The Pile,他们 800GB 的数据集。

  • 2021 年 3 月:EleutherAI 发布了他们开放的 GPT-Neo 1.3B 和 2.7B 模型。

  • 2021 年 11 月:OpenAI 将 API 从等待列表中移除。

  • 2022 年 5 月:Meta 面向研究人员发布了 OPT-175B(包括日志和一个开放许可)。

  • 2022 年 6 月:Yandex 在 Apache-2 许可下发布 YaLM-100B。

  • 2022 年 7 月:HuggingFace 在 RAIL 许可下发布 BLOOM-176B。


Text-to-Image 的周期为两(?)年(GANs 的整个历史达 10 年之久):


  • 2020 年 6 月:OpenAI 在博客上介绍了 Image GPT。

  • 2020 年 12 月:Patrick Esser 等人发表论文 Taming Transformers for High-Resolution Image Synthesis(又称 VQGAN,大幅改进了 2019 年的 VQVAEs)。

  • 2021 年 1 月:OpenAI 宣布了第一代 DALL-E 的结果并开源 CLIP。

  • 2021 年 5 月:OpenAI 宣布,他们发现扩散模型在图像合成中击败了 GANs。

  • 2021 年 12 月:CompVis 小组发布了使用潜在扩散模型合成的高分辨率图像,以及原始存储库 CompVis/latent-diffusion。

  • 2021 年 12 月:OpenAI 发布了 GLIDE:利用文本引导扩散模型实现逼真的图像生成和编辑。

  • 2022 年 3 月:Midjourney 推出封测版。

  • 2022 年 4 月:OpenAI 宣布推出 DALL-E 2,并提供受限“研究预览”。

  • 2022 年 5 月:谷歌发布他们的 Imagen 论文(在 3 天时间内用 PyTorch 实现)。

  • 2022 年 7 月:DALL-E 2 通过 OpenAI 的 UI/API 提供公开测试版(有等待名单)。

  • 2022 年 7 月:Midjourney 也通过他们的 Discord 宣布了一个完全开放的测试版。

  • 2022 年 8 月:Stable Diffusion  1.4 公开发布,遵循 OpenRAIL-M 许可。模型和代码来自 CompVis + Runway,Stability AI 提供资金以增加计算能力。

  • 2022 年 9 月:OpenAI 将 DALL-E 2 移出等待名单。

  • 2022 年 10 月更新:Runway 发布 Stable Diffusion 1.5 版,存在一定的争议性。

  • 2022 年 11 月更新:Stability 发布 Stable Diffusion 2.0。


当然,上面这个时间线是经过仔细筛选的;如果把扩散模型(2015 年)和 Transformer 模型(2017 年)从学术论文发表到开发的历史以及 GANs 之前的工作都考虑进来,那么这个故事要长得多。还可以看下 Stable Diffusion 在 RunwayML 的研究起源,以及 2021 年 12 月,Emad 在与 Elad Gil 的聊天中对 CC12M 的突破性进展的描述。


但更有趣的是此后发生的事情。9 月份,OpenAI 发布音频转文本模型 Whisper,遵循 MIT 许可,没有设置 API 付费墙。当然,音频转文本领域的滥用空间比较小,但也有不少人猜测,人们对 Stable Diffusion 发布的反应影响了开源决策。


Dreambooth:社区掌控方向


足够先进的社区是有魔力的。研究人员和资金充足的团队一直都非常擅长创建新的基础模型(FM),但提供产品化用例和优化模型的最后一英里则是开源社区非常擅长的工作。


在这方面,最可量化的例子发生在最近的 Dreambooth 循环中(通过主题的少样本分析对 text-to-image 进行微调以插入场景)。



Dreambooth 是一个值得考虑的优化目标,因为你不仅要下载一个模型并运行它,还要在自己的样本图像上运行微调训练,但最初的移植需要大量的内存,以至于对大多数人来说,不可能在自己的机器上运行。

 是 Corridor Digital 的家伙们让它在 YouTube 上走红。


Twitter 形式的时间线:



可以看出,为了那些在自己机器上运行模型的人,开源社区在 12 天内完成了开源移植,然后在随后的 25 天内将系统要求降低了 79%。


更新:10 月 8 日,系统需求再次降低,变成 8GB。


大部分优化工作都发生在 GitHub 上,由 Xavier Xiao(来自新加坡的生成式模型和优化博士,就职于 AWS AI)和 Shivam Shrirao(驻印度的高级计算机视觉工程师)完成,并得到来自意大利的 Matteo Serva 的帮助。两人与原 Dreambooth 团队都没有关系。 


低处的果实都摘完了,使得一些人开始担心收益递减,但还是存在一些概念验证,将 Stable Diffusion 缩小到可以在手机上运行(之前已降至 10GB 甚至 5GB——消费级卡的内存为 6-12GB,iDevices 有统一内存)。


这可能是开源人工智能模型优化的圣杯,因为这样一来,图像生成实际上就不再受云经济和利润动机的限制了。


2022 年 10 月更新:这里有一个开源实现:https://github.com/madebyollin/maple-diffusion 


开源做了哪些研究人员未做的事


虽然在这 3 个新的 text-to-image 模型中,Stable Diffusion 是出现最晚的,但在社区的帮助下,它在影响力和应用方面都远远超过了另外两个与其存在竞争关系的 text-to-image 模型 Midjourney 和 DALL-E。

这就为其他形式的人工智能(音乐、生物、语言模型)如何开源(才有可能创造新的机会)提供了一个有用的、具有推广价值的路线图。


 

以下是提高所需技术技能的一个大致顺序:


改进文档


  • 原始的 CompVis README 对于初学者而言并不友好

  • 社区合力创建:

  • R*tard 指南和常规指南

  • 博客

  • 推特主题

  • YouTube 演练

  • 谷歌专栏

  • 带注释的网站和图示说明


分享 Prompt


  • Prompt 工程是一种后天技能,在 GPT3 发布 3 年后,有人仍然用它得出了令人惊讶的结果(1、2);这意味着 LLM 有很大的潜力(不只是结果),而我们尚处于初级探索阶段

  • 对于分享 Prompt,每个社区现在都有了成熟完备的方法,以此为基础,我们可以建立 Prompt 库,大幅减少寻找 Prompt 的耗时(从大于 30 秒到不足 300 毫秒,减少了 2 个数量级!),降低 Prompt 工程的学习难度。

  • 社区也是利用这种方法摸索已知的难题,如如何生成真实的手和 Negative Prompt 的重要性。

 

创建新的 UI 及改进可访问性


  • 由于 Stable Diffusion“只是”一个 Python 脚本,人们可以根据自己的需要创建自己的 UI,而不必受 Stability AI 自己的 Dreambooth 所束缚。

  • AUTOMATIC1111 已经成为社区中最重要的 Web UI,它提供了大量的功能,可谓集社区发现的 SD 使用智慧之大成。

  • 由于 ML 社区偏爱 Windows,所以开源社区已经实现了大量在 M1 Macs 或许还有 iPhone 上运行的技巧(如上所述)。

  • 通常,SD UI 是独立的应用程序,但新的交付模式使它们可以作为现有工作流程的一部分来使用,在 Photoshop、Figma、GIMP,甚至是 VR 里面。

 

以创造性的方式扩展现有特性,开创新的用例


  • 我不清楚谁首先发明了 Inpainting 和 Outpainting 技术(它最初是在 DALL-E 的公告中被提及,但是在像这样的开源 UI 被创建出来后,它才真正被广泛使用)

  • 更多:超高分辨率 Outpainting,3D 世界

  • 与其他工具/技术搭配使用是成熟创新的另一个来源:

  • “反向 Prompt 工程”也就是使用图像进行 Prompt(使用 CLIP Interrogator)

  • 使用 txt2mask 来增强 Inpainting

  • 多个后处理步骤,包括使用 Real-ESRGAN、TECOGAN、GFPGAN、VQGAN 等(如 AUTOMATIC1111 中的“hires fix”)

  • 创建一个 GRPC 服务器(用于与 Stability AI 通信)

  • 为 txt2music、music2img 等新模式做准备

优化内核


  • (如上所述)最大限度地减少 Stable Diffusion 和 Dreambooth 占用的内存

  • 将 Stable Diffusion 的速度提高了 50%


一个有趣但重要的切入点——大部分 AI/ML 的东西都是用 Python 编写的,而 Python 作为一种分发机制是很不安全的。也就是说,“开源人工智能”的兴起也将伴随“开源人工智能安全”需求的日益增加。

AI 开源的未来


整个过程让人不禁联想到开源是如何吞噬 Software 1.0 的:


  • 版本控制:从 Bitkeeper 到 Git

  • 语言:从 Java 工具链到 Python、JavaScript 和 Rust

  • 集成开发环境(IDE):从[许多相当不错的 IDE]到 VS Code 占据 60%以上的市场份额

  • 数据库:从 Oracle/IBM 到 Postgres/MySQL


Anders Hejlsberg 是 Turbo Pascal、TypeScript 等 5 种语言之父,他有一句名言:未来,不开源的语言是不会取得成功的。或许,对于技术栈中越来越多的东西,你都可以说同样的话。


我们很容易得出这样的结论,在 Software 2.0/3.0 中也会出现同样的情况,但还存在一些问题。


问题 1: 经济诱因


对于经济学家来说,希望基础模型开源发布是违反直觉的。据估计,训练 GPT-3 的成本在 460 万到 1200 万美元之间,还不包括人工成本和失败的尝试(现在,一些创业公司声称已将其降低到 45 万)。即使是 Stable Diffusion 令人印象深刻的 60 万美元成本(Emad 暗示真实数值要低得多,但也说他们的实验成本是 13 倍(200 万 A100 小时)),在没有投资回收计划的情况下,也不是什么可以随意忽视或放弃的东西。

从 OpenAI 通过 API 盈利的轨迹来看,每个人都明白 AI 经济的发展趋势:



(如果 Research > Infra 可能会有争议,所以让它们大致相等,就迁就我一下吧)


但作为非经济行为体,Stability AI 的既定目标是既压低拥有专有基础模型研究的经济价值,又扩大人工智能的总体 TAM:


这是由 Stan Shih 提出的关于行业价值分布的微笑曲线模型,Ben Thompson 也做过广泛的讨论。


最大的问题是 Stability 公司打算如何为自己融资——1 亿美元的 A 轮融资为他们争取了一些时间,但在我们真正知道 Stability 公司打算如何赚钱之前,这个生态系统不会真正稳定下来。


来自 Emad 的回应:“商业模式很简单,规模和服务与普通 COSS 类似,但有一些附加价值。


问题 2:许可


根据最坚定的开源倡导者的说法,对于开源一词,我们整篇文章中的用法都是错误的。严格地说,一个项目只有在遵循 OSI 批准的少数许可之一的情况下才是开源的。与此同时,几乎没有一个“开源 AI”模型或衍生品需要许可,诚信问题完全被忽略:


  • https://github.com/AUTOMATIC1111/stable-diffusion-webui/issues/24


  • https://github.com/divamgupta/diffusionbee-stable-diffusion-ui/issues/5


  • https://github.com/breadthe/sd-buddy/discussions/20


2022 年 10 月更新:InvokeAI 是一个例外,它遵循 MIT 许可。


Stable Diffusion 自己发布了一个新的 CreativeML Open RAIL-M 许可(RAIL 代表 Responsible AI,由一个独立的团队创建),用于管理模型权重(要花 60 万美金才能获得),其中某些部分与 OSI 批准的许可兼容,但也有些不兼容的用例限制。如果你与法律部门和 OSI 的人打过交道,就会知道这是行不通的,这种许可分歧没有法律先例可依。


StabilityAI 已经清楚地表明,你可以将其产品用于商业目的,他们甚至公开支持 Midtravel 使用 StabilityDiffusion,但当有一天,赌注扩大 1000 倍时,法律细节就开始变得重要了。


来自 HuggingFace 人工智能顾问 Carlos Muñoz Ferrandis 的说明:“Meta 发布的 OPT175(LLM)、BB3(聊天机器人)和 SEER(计算机视觉)许可类似于 RAIL(包括用例限制),仅用于研究目的(许可证有 2 个取决于模型的变体)。”


OpenAI Whisper 是我所知道的第一个模型、权重和代码都遵循 MIT 许可(简单、"真正开源")的例子。


Emad 更正道:“除了 Stable Diffusion,我们支持的所有模型都已经在 MIT 许可下发布了,例如,花了 120 万 A100 小时的 OpenCLIP。”


时间敏感提示:如果你很关心许可,则可以关注下 GitHub 和开源研究所 10 月 18 日组织的讨论和一个专家组。你也可以联系 Tidelift 总顾问 Luis Villa。


问题 3:“开源”了什么?


撇开 OSI 的批准不谈,到目前为止,我们有意忽略了另一个问题,那就是“开源”到底意味着什么。

 在传统的 Software 1.0 时代,“开源”意味着代码库开源,但不一定是基础设施设置的细节,也不一定是代码所积累/操作的数据。换句话说,开放代码并不意味着开放基础设施或开放数据(虽然不是必须的,但在实践中,通常至少会有一些关于如何自托管的基本指南)。


在 Software 2.0 时代,数据收集变得非常重要,并开始主导代码(被简化为模型架构)。像 ImageNet 这样的开放数据集帮助培养了整整一代 ML 工程师,最明显的动力来自 Kaggle 比赛,当然还有 ImageNet 挑战赛本身(在这项赛事中,AlexNet 和 CNN 推动了整个领域向深度学习的融合)。通过半同态加密,你甚至可以屏蔽数据以创建像 Numerai 这样的系统——不是严格意义上的开放,但也足够开放,无聊的数据科学家可以摆弄下这些假数字,赚点外快。不过,权重通常是不开放的,因为那是训练成本最高的内容。

有了 Software 3.0 和已知的 Chinchilla 缩放曲线,LLM 和 FM 成了人们在单一大型语料库上进行的一次性大规模投资。


“开源 AI”运动正在用几种不同的方式来解决这个问题:


  • 开放数据集:例如,LAION-5B 和 The Pile。这些数据集已经针对 Waifus、日语、中文和俄语进行了修改。

  • 开放模型:通常通过研究论文发布——如果提供了足够的细节,人们就可以自己重新实现,就像 GPT3 和 Dreambooth 那样。

  • 开放权重:这个新的潮流源于 HuggingFace 的 BigScience(发布了 BLOOM),然后由 Stability AI 应用于 text-to-image,并由 OpenAI Whisper 接续(其经济性在问题 1 中讨论过)。

  • 开放接口:不只提供了可供调用的 API,就像 OpenAI 在 GPT3 中所做的那样,而是直接提供了对代码的访问,为的是方便用户修改和编写他们自己的 CLI、UI 和其他任何他们想要的东西。

  • 开放 Prompt:用户(像 Riley Goodside)和研究人员(像 Aran Komatsuzaki)分享了 Prompt 技术的突破,释放了 FM 的潜力。



上述内容的确切顺序会根据实际的进展和背景的变化而变化,但这感觉对吗?

开源 AI 研究所?

关于“开源 ”人工智能的所有这些方面,开源促进会(Open Source Initiative)可能确实没有考虑到,而开源 AI 文化最基础的举措之一是创建一个有预期、规范和法律先例可循的可信标准。这是 Hugging Face 和 Stability AI 的机会,但也许已经有其他组织这样做了,只是我还没有发现。


延伸阅读

  • 另一条延伸到 2021 年 11 月的时间线

  • 我的大多数笔记都是在公共场合做的;我会在 GitHub 上实时更新我的想法


原文链接:https://lspace.swyx.io/p/open-source-ai

2023-03-14 09:003866
用户头像
刘燕 InfoQ高级技术编辑

发布了 1112 篇内容, 共 537.9 次阅读, 收获喜欢 1977 次。

关注

评论

发布
暂无评论
发现更多内容

iOS中#define和const

NewBoy

ios 前端 移动端 iOS 知识体系 7月月更

教你学c++算法题中最简单的二分,我不允许还有人不会!!!!

KEY.L

7月月更

MySQL消息队列表结构

极客土豆

Docker 常用命令整合

宁在春

Docker 7月月更

Python干货——内置函数

Java学术趴

7月日更

自研的数据产品迭代了一年多,为什么不买第三方商业数据平台产品呢?

松子(李博源)

数据中台 数据产品经理 数字化转型 数据产品

springboot 项目打包优化(核心 class 与依赖 jar 分离)

安逸的咸鱼

Java maven SpringBoot 2 7月月更

Go 并发编程基础:什么是上下文

宇宙之一粟

并发编程 Go 语言 7月月更

python小知识-python格式化

AIWeker

Python python小知识 7月月更

Redis 事务学习有感

恒山其若陋兮

7月月更

Istio架构扩展机制

阿泽🧸

istio 7月月更

LeetCode-83. 删除排序链表中的重复元素(java)

bug菌

Leet Code 7月月更

谈谈文字两端对齐的css问题

南极一块修炼千年的大冰块

7月月更

OSI七层模型有哪七层?每一层分别有啥作用,这篇文章讲的明明白白!

wljslmz

OSI七层协议 网络技术 7月月更

QDS08 curl 安装

耳东@Erdong

curl qds 7月月更

java零基础入门-异常、线程(完结篇)

喵手

Java 7月月更

互联网流量编排方案

穿过生命散发芬芳

7月月更 流量编排

【函数式编程实战】(三)Lambda表达式原理与函数式接口精讲

小明Java问道之路

Java Lambda 后端 java8 7月月更

Java多线程之锁优化与JUC常用类

未见花闻

7月月更

百变小精灵,CRMEB Java 单商户系统也要当!

CRMEB

来,滑动到下一个小姐姐

岛上码农

flutter ios 前端 安卓开发 7月月更

沉淀2年的 Jira 自动化经验分享

跟YY哥学Jira

RPA 自动化 Jira

Java 虚拟机的概念是怎么来的

HoneyMoose

项目升级遇到的坑

技术小生

7月月更

Qt|模仿文字浮动字母

中国好公民st

qt 7月月更

zookeeper-curator开源框架介绍

zarmnosaj

7月月更

JavaScript 中如何取消请求

掘金安东尼

JavaScript 前端 7月月更

【刷题记录】19. 删除链表的倒数第 N 个结点

WangNing

7月月更

【K8s入门必看】第二篇 —— 快速部署集群指南

Albert Edison

Docker Kubernetes 容器 云原生 7月月更

K3S - 轻量级Kubernetes集群

mengzyou

DevOps k8s k3s

C# 线程锁和单多线程简单使用

IC00

C# 7月月更

AI开源如何吞噬AI_开源_swyx_InfoQ精选文章