AI革命不会被垄断:开源如何战胜规模经济,即便对于大语言模型也是如此
随着自然语言处理(NLP)和大语言模型(LLM)的最新进展,以及某中心等大公司主导该领域,许多人都在思考:我们是否正进一步走向一个被大科技公司垄断的API所控制的、越来越大的黑盒模型时代?
事实并非如此。本次演讲将深入探讨开源模型生态系统、关于LLM在工业中应用场景的一些常见误解、实际案例,以及模块化、可测试性和灵活性等软件开发基本原则如何仍然适用。LLM是我们工具箱中的一项伟大的新工具,但最终目标仍然是创建一个能完成预期任务的系统。显式依然优于隐式,可组合的构建模块仍然胜过庞大的黑盒。
随着理念的发展,我们看到越来越多高效利用计算的方法,从而产生运行成本更低、更容易控制的AI系统。本次演讲将分享一些当下可以应用的实用方法。如果你试图构建一个执行特定任务的系统,你不必将你的请求转换成任意语言,然后调用最擅长理解任意语言的最大模型。开发那些模型的人在讲述那个故事,但我们其他人没有义务相信他们。
为何选择开源?
- 透明
- 无锁定风险
- 可扩展
- 可在内部运行
- 易于入门
- 经过社区验证
- 可编程
- 保持更新
- 并且免费!
开源模型
- 任务特定模型:小型、通常快速、运行成本低廉,但泛化能力不一定好,需要数据进行微调。
- 编码器模型(如 ELECTRA, T5):相对较小且快速,运行成本可负担,泛化和适应能力强,需要数据进行微调。
- 大型生成模型(如 Falcon, MIXTRAL):非常庞大,通常较慢,运行成本高昂,泛化和适应能力强,需要很少或不需要数据。
编码与解码任务
- 编码任务:使用模型编码输入,训练特定任务的网络。
- 文本 -> 模型 -> 文本向量 -> 任务模型 -> 任务输出 / 任务网络标签
- 解码任务:模型生成可解析为任务特定输出的文本。
- 文本 -> 模型 -> 原始输出 -> 解析器 -> 任务输出 / 模板提示
规模经济
大公司(如某中心,某机构)宣称的优势包括:
- 获得人才、计算资源等。
- API请求批处理:将低流量请求批量处理以提高效率。
AI产品不仅仅是模型
- 面向人类的系统 (如 ChatGPT, GPT-4):最重要的差异化是产品本身,而不仅仅是技术。包括用户界面/用户体验、市场营销、定制化。
- 面向机器的模型:基于研究的可交换组件,其影响是可量化的。评估维度包括成本、速度、准确性和延迟。
关于数据:用户数据是产品的优势,而非面向机器任务的基础。获取通用知识不需要特定数据。
工业中的用例
- 预测性任务:实体识别、关系抽取、共指消解、语法与词法分析、语义解析、语篇结构分析、文本分类。
- 生成性任务:单文档/多文档摘要、推理、问题解决、复述、风格转换、问答。
- 许多行业问题本质上保持不变,只是规模发生了变化,最终目标仍是获取结构化数据。
问题定义的演变
- 编程与规则(规则或指令 ✍️)
- 监督学习(示例 📝)
- 提示工程 / 上下文学习(规则或指令 ✍️)
演变特点:
- 指令:符合人类思维,对非专家友好,但存在数据漂移风险。
- 示例:行为细致且直观,针对特定用例,但劳动密集。
工作流示例
- 提示大型通用模型,获取基线并进行持续评估。
- 利用特定领域数据,通过某机构的工具进行迭代式的模型辅助数据标注。
- 通过知识蒸馏和迁移学习,从大型通用模型中提取出蒸馏后的任务特定模型。
- 将蒸馏后的模型部署到生产环境。
从原型到生产
- 原型:使用
github.com/explosion/spacy-llm等工具,通过提示模型并将输出转换为结构化数据,构建处理流水线。 - 生产环境:在生产流水线中,可以交换、替换和混合组件,处理面向机器的结构化文档对象。
蒸馏后的任务特定组件
- 模块化
- 可测试
- 灵活
- 可预测
- 透明
- 无锁定风险
- 可编程
- 可扩展
- 可在内部运行
- 运行成本低廉
Python之禅的启示
不要抛弃使软件成功的原则:
优美胜于丑陋,显式胜于隐式,简单胜于复杂,复杂胜于难懂,扁平胜于嵌套,稀疏胜于稠密,可读性很重要……
垄断策略与反垄断
垄断策略通常包括:控制资源、利用监管、规模经济复合效应、网络效应。
然而,在AI领域:
- 面向人类的产品 vs 面向机器的模型:这是关键区别。
- 软件行业不靠“秘密配方”运行:知识被共享和发布。秘密不会给任何人带来垄断。
- 使用数据有利于改进产品,但不能泛化:数据不会带来垄断。
- LLM可以是产品或流程的一部分,并可与不同方法互换:互操作性是与垄断相对的。
- 监管可能带来垄断(如果我们允许的话):监管应关注产品和行动,而非组件。
结论:AI革命不会被垄断。