10 Years of Open Source: Navigating the Next AI Revolution
在人工智能(AI)和自然语言处理(NLP)领域,很多事情正在发生:人们对新技术有着无尽的兴奋,也有炒作降温后的清醒反思,以及对领域未来走向的不确定性。在这次演讲中,将分享在开源软件开发十年间学到的最重要的经验教训、帮助我们适应不断变化的AI格局的核心理念,以及为什么开源和互操作性仍然胜过黑盒式的专有API。
我们的开发理念
“让他们写代码” 好的工具帮助人们完成他们的工作。你不需要替他们完成工作。 你可以重新发明轮子,但不要试图重新发明道路。
窗口敲击机测试
想象未来的样子时,回顾过去并比较过去的愿景与我们今天的现实会有所帮助。 你是在设计一个“窗口敲击机”还是一个“闹钟”?
软件开发范式的演变
软件1.0 代码 -> 程序(编译器) 软件2.0 数据 -> 模型(算法) 测试 -> 评估 重构 -> 重构 迭代 -> 迭代
spaCy与Prodigy的发展历程
- 首次提交spaCy代码
- spaCy首次发布
- 聊天机器人引发广泛兴奋
- 深度学习被广泛采用
- Prodigy首次发布
- 语言模型预训练取得成功
- 小样本上下文学习取得成功
- spaCy v3首次发布
- 上下文学习获得关注
- spacy-llm首次发布
- LLMs和生成式AI全面进入主流(ChatGPT时代)
工业中的用例
生成式任务 单文档/多文档摘要 推理 解决问题 释义 风格迁移 问答
预测式任务 实体识别 关系抽取 指代消解 语法与词法分析 语义解析 篇章结构 文本分类
许多行业问题本质上保持不变,只是规模发生了变化。
AI产品不仅仅是模型
AI产品不仅仅是模型,而是一个从人机交互系统到面向机器的模型的完整体系。 最重要的差异化是产品本身,而不仅仅是技术。 产品包含:用户界面/用户体验、营销、定制化。 基于研究的可互换组件,其影响是可量化的。 评估维度包括:速度、准确率、延迟、成本。
关于数据
用户数据是产品的优势,而非面向机器任务的基础。 你不需要特定数据来获取通用知识。
spacy-llm:将LLMs集成到结构化NLP管道中
spacy-llm是一个用于快速原型设计和提示工程的模块化系统,能够将非结构化响应转换为适用于各种NLP任务的稳健输出,且无需训练数据。
配置:结构化数据 <-> LLM <-> 文本 统一的、模型无关的API 支持的任务包括:实体识别、实体链接、文本分类、关系抽取等。
规模经济与替代方案
某中心和某机构等大型科技公司拥有规模经济优势,包括人才、计算资源的获取以及API请求批处理能力。 然而,人机协同蒸馏提供了一种有前景的替代路径。
人机协同蒸馏
过程:
- 持续评估基线
- 使用LLM进行提示
- 通过迁移学习提取/训练特定组件
- 得到蒸馏后的模型 这使得可以利用最新模型,并将其知识提炼成可在内部运行和维护的更小、更快的组件。
案例研究:某全球机构
- 目标:通过提取结构化属性提供实时大宗商品交易洞察。
- 环境:高安全性环境。
- 方法:在标注过程中使用LLM;人与模型协同循环,使数据开发速度提升10倍。
- 成果:8个市场管道投入生产;模型大小仅6MB;处理速度超过16k词/秒;F值达到99%。
AI依然需要产品决策!
即使是检索增强生成等技术,AI仍然需要产品决策。 分析师需要的是清晰的数据和界面,而不是一个模拟人类对话的“窗口敲击机”。
技术采纳循环
一个不断演进的循环:结合新技术与既定工作流程。 从规则和条件逻辑开始,到线性模型、深度学习、聊天机器人、Transformer、迁移学习、上下文学习,再到如今的LLMs和生成式AI。 在每个阶段,都将新技术应用到已确立的工作流程中。
总结:把握AI与NLP
- 超越聊天机器人或类人任务进行思考:你不想构建一个“窗口敲击机”。
- 专注于你的应用程序:考虑它真正需要什么,并让你的数据指导你。
- 保持雄心:不要在最实践、效率和隐私方面妥协。
- 不断充实你的工具箱:了解你可用的技术,并应用最好的工具来完成工作。
工具
- spaCy: 用于工业级自然语言处理的开源库。
- Prodigy: 用于机器学习开发者的现代化、可编写脚本的标注工具。