《AI工程》:构建应用,需要哪些技术?(解惑篇)

人们对基础模型的热情和创造力前所未有,但构建应用的原则并未改变。

上一篇文,我们从需求和产品角度分析了要不要构建一个应用。

本篇文章,解决接下来要面对的问题,为大家解释一些最常见的技术概念究竟什么意思,可以为开发过程提供什么帮助。

工程技术栈

任何AI应用的技术栈都包含三层:应用开发层、模型开发层和基础设施层。

开发时通常从最上层开始,根据需要向下推进。

应用开发层: 涉及为模型设计优质的提示词并提供必要的上下文。这一层需要根据业务需求做严格的评估。往往还要做界面设计。

模型开发层: 模型开发工具,包括建模、训练、微调和推理优化框架。由于数据在模型开发中占据核心地位,因此这一层也包含数据集工程。

基础设施层: 位于技术栈最底层,包括用于模型服务、数据和计算管理以及监控的工具。

在Stable Diffusion和ChatGPT推出后的2023年,AI工具的数量出现了大幅增长,增长最快的类别是应用开发层。基础设施层也有一定增长,但远低于其他层的增长幅度。

尽管人们对基础模型的热情和创造力达到了前所未有的高度,但构建应用的许多原则并未因此改变。对于企业级应用而言,仍然需要解决业务问题,所以,将业务指标映射到ML(机器学习)指标依然重要,反之亦然。

当下的重点

当下的AI工程中,我们很少需要自行开发模型,而是使用别人训练好的模型。这意味着更少关注建模和训练,更多关注模型的适配评估

模型适配技术分为两类。

提示词:这类方案无须更新模型权重,通过给模型提供指令和上下文即可实现适配,而不是修改模型本身。

提示工程更容易上手,所需数据也更少。许多成功的应用仅通过提示工程就能实现。它的易用性使你能够尝试更多模型,从而增加找到适合的模型的机会。

然而,对于复杂任务或性能要求严格的应用就不够了。

微调:微调则需要更新模型权重,即需要修改模型本身。

通常来说,微调技术更复杂,也需要更多的数据,但它们能够显著提升模型的质量,降低模型的延迟和成本。很多任务如果不修改模型权重是无法实现的,比如模型训练时未接触过的新任务。

下面,我们将深入应用开发层和模型开发层,看看在AI工程的背景下,每层分别发生了怎样的变化。

模型开发

模型开发是传统ML工程中最常见的一层,主要包含三个职责:建模与训练、数据集工程、推理优化。

建模与训练

建模与训练是指设计模型架构、训练模型并对其进行微调的过程。

开发者熟知的谷歌的TensorFlow 、Hugging Face的Transformers 和Meta的PyTorch,都属于这类工具。

预训练、微调和后训练

训练必然改变模型权重,但并非所有对模型权重的改变都属于训练。

预训练: 是指从头训练一个模型,其权重通常是随机初始化的。对于LLM而言,预训练通常涉及文本补全。

在所有训练步骤中,预训练最耗费资源,是少数人的游戏,但正因如此,具备大模型预训练专业知识的人才非常抢手。

微调: 是指在已经训练好的模型基础上继续训练------模型权重继承自之前的训练过程。由于模型已经具备一定的知识,因此微调通常比预训练所需的资源更少。

后训练: 很多人使用"后训练"一词来表示在预训练阶段之后继续训练模型的过程。

模型开发者进行的训练通常称为后训练。应用开发者进行的训练则称为微调。

数据集工程

数据集工程是指为训练和适配模型而进行的数据收集生成标注工作。

数据处理更多涉及去重、分词、上下文检索和质量控制,包括剔除敏感信息和有害数据。对AI工程来说是一个更大的挑战。

许多人认为,随着模型的商品化程度越来越高,数据将成为主要的差异化因素,这使得数据集工程比以往任何时候都更加重要。

你需要多少数据取决于所用的适配技术。从头训练模型通常比微调需要更多数据,而微调又比提示工程需要更多数据。

推理优化

推理优化是指让模型运行得更快更经济。这一直是ML工程的重要内容。

用户永远不会拒绝更快的模型,公司也总能从更低成本的推理中获益。然而,随着基础模型规模的扩大,推理成本和延迟也随之增加,推理优化变得越来越重要。

基础模型的一个挑战是,它们通常逐个生成token,如果生成一个token需要10毫秒,那么生成100个token就需要1秒,更长的输出耗时更久。

随着用户的耐心消耗殆尽,将AI应用的延迟降低到典型互联网应用所期望的100毫秒,就是巨大的挑战。因此,推理优化已成为业界一个活跃的子领域。

应用开发

在传统ML工程中,团队使用自研模型构建应用,模型质量是差异化的关键。而在基础模型时代,许多团队使用相同的模型,因此必须通过开发过程来实现差异化

应用开发层包括以下职责:评估、提示工程、AI界面。

评估

评估旨在降低风险并发现机会。通常用于选择模型、对进展进行基准测试、确定应用是否准备好部署,以及在生产环境中发现问题和改进空间。

评估的挑战主要源于基础模型的开放性和生成能力。

大量适配技术的存在也使评估变得更加困难。一个系统在使用某种技术时表现不佳,但在使用另一种技术时可能表现得很好。

提示工程

前面的模型适配已经提到过"提示工程",应用开发的过程就可以理解为在做适配,所以同样属于这个范畴。

恰当的提示词可以让模型按照期望的方式完成任务,并以指定的格式输出结果。

提示工程不仅告诉模型做什么,还为模型提供完成特定任务所需的上下文和工具。

AI界面

AI界面为用户提供了与AI交互的桥梁。在基础模型问世之前,只有具备足够资源开发AI模型的组织才能开发AI应用,这些应用通常嵌入在组织已有的产品中。

得益于基础模型,任何人都可以构建AI应用,选择和可能性就变多。

流行的界面形式

  • 独立的网页、桌面和移动应用。
  • 浏览器扩展,允许用户在浏览网页时快速向AI模型发送查询。
  • 集成到Slack、Discord、微信和WhatsApp等应用中的聊天机器人。

许多产品(包括VS Code、Shopify和Microsoft 365)提供了API。开发者可以利用这些API将AI作为插件或附加组件集成到自己的产品中;AI智能体也可以利用这些API与外界交互。

尽管聊天界面最为常用,但交互方式也可以是语音 形式(如语音助手)或具身形式(如用于增强现实和虚拟现实)。这些新型AI界面也为收集和提取用户反馈带来了新途径。

AI与全栈

很多人都在思考,AI时代该如何做职业规划和抉择。

要求每个人都去做模型研究是不现实的,但可以往别的方向倾斜。比如,随着人们对交互界面重视程度的提高,AI工程与全栈开发的距离日益缩小。界面重要性的提升促使AI工具的设计发生演变,旨在吸引更多前端工程师加入。

传统ML工程以Python 为中心,在基础模型出现之前,最流行的ML框架大多只支持Python API。如今,虽然Python仍然流行,但对JavaScript API的支持也在不断完善,例如LangChain.js、Transformers.js、OpenAI的Node库以及Vercel的AI SDK。

新的AI工程工作流青睐那些能够快速迭代的人,全栈工程师的优势就体现出来,他们能够参与产品决策,快速将想法转化为演示产品,获取反馈并快速进行迭代。

更多好文章第一时间接收,关注公众号:"前端说书匠"

相关推荐
chaors2 小时前
DeepResearchSystem 0x03:HITL
llm·github·ai编程
都叫我大帅哥2 小时前
从Python到Java:为什么企业级Agent最终会选择Java?
java·ai编程
stormzhangV2 小时前
AI 的玩法,该做减法了
人工智能·ai编程·claude
kyriewen3 小时前
我review了一份Vibe Coding写的前端代码——能跑,但5个地方迟早要命
前端·javascript·ai编程
东小西3 小时前
第12篇:《AI的幻觉差点让我背锅:于是我给它开了一场"开卷考试"》
openai·ai编程
腻害兔4 小时前
【若依项目-产品经理视角】RuoYi-Vue-Pro 源码拆解:IM 即时通讯模块,一个被低估的「全功能聊天系统」
java·前端·vue.js·产品经理·ai编程
小徐_23334 小时前
寓言故事一则:狗猛酒酸
前端·ai编程
ServBay4 小时前
AI 时代的供应商锁定风险,开发者和企业如何保持主动权
aigc·ai编程
会思想的苇草i4 小时前
oMLX 部署本地大模型
大模型·ai编程·开发·本地部署·omlx