ARTICLE DETAIL

资讯详情

深耕郑州网站建设与运营推广的一线实战洞察。

AI大模型工程化实践:从Token计量到Agent应用

AI大模型工程化实践:从Token计量到Agent应用 1. 动荡的AI时代技术人需要面对什么1.1 从“风口”到“常态”AI技术演进速度远超预期如果你最近半年一直在关注技术圈应该能明显感受到一种“动荡感”大模型的能力迭代周期从年缩短到月开源模型和闭源模型的差距不断波动昨天还在用的 Agent 架构今天可能已经被新的范式取代。这种动荡不是某个公司的战略调整而是整个技术底座正在切换。过去我们聊人工智能通常指的是传统机器学习特征工程、逻辑回归、XGBoost、图像分类、目标检测。但现在人工智能的主要矛盾已经变成“如何用大模型 工程化能力解决真实业务问题”。模型不再是单纯的算法而是像数据库、消息队列一样成为技术架构中的基础设施。更直接的变化是AI 相关岗位的职责边界越来越模糊。算法工程师要写工程代码后端工程师要懂 Prompt 和 RAG运维工程师要接触 GPU 调度和 Token 计量。技术人面临的不再是“要不要学 AI”的问题而是“如何在 AI 技术栈中找到自己的生态位”。1.2 人工智能相关的核心名词算力、Token、数据、模型、场景网上关于人工智能的讨论越来越多但很多初学者容易被概念淹没。结合近期的技术演进来梳理一下算力训练和推理大模型所需的计算资源主要指标是 GPU 的显存和吞吐量。预训练阶段通常需要成千上万张高性能 GPU 并行计算这也是为什么大模型训练成本极高普通团队很难复现。Token大模型处理文本的最小单位。可以粗略理解为一个单词或一个汉字的一部分。模型按 Token 数量计费同时上下文长度也以 Token 为单位。Token 既是成本指标也是能力边界指标。数据模型的“教材”。数据质量直接决定模型能力上限。高质量数据能训练出更好的模型低质量数据会导致模型产生偏见、幻觉等问题。模型通过训练算法得到的参数集合。可以理解为“存储了知识推理能力的文件”。选择模型时需要考虑参数量、推理速度、成本、领域适配度。场景AI 技术落地到具体业务中的位置比如智能客服、代码生成、内容总结、知识库问答。场景决定模型选型和技术架构。把这五个概念串起来理解算力提供动力数据提供知识模型提供能力Token 连接成本场景决定价值。1.3 从传统 AI 到大模型的范式迁移传统 AI 项目通常遵循“数据标注 - 特征工程 - 模型训练 - 模型部署”的流程。一个图像分类模型从训练到上线可能需要几周时间模型迭代需要重新训练。大模型时代范式发生了变化从“训练一切”到“微调部分”大多数场景下不需要从头训练模型而是基于预训练模型做指令微调甚至直接使用通用模型。从“写规则”到“写自然语言”很多逻辑通过 Prompt 表达而不是手写规则代码。从“固定版本”到“持续演进”模型版本升级更快API 接口兼容性需要持续关注。从“单点能力”到“复合能力”RAG、Agent、多模态已经变成普遍架构组件。换句话说AI 工程师的核心竞争力正在从“数学和算法推导能力”向“模型理解能力 工程落地能力 成本控制能力”转移。这种转变正是“动荡”的根源。2. 算力与 Token人工智能的成本坐标系2.1 为什么人工智能训练需要大量 GPU 和资金“为什么训练一个模型要花那么多钱”这是入门者最常问的问题。本质上大模型训练是在大量数据上做高维参数优化。以主流的 Transformer 架构为例模型参数量从亿级到万亿级每一层都要做矩阵乘法运算。一次完整的预训练需要处理数万亿个 Token 数据。训练过程中的主要开销包括GPU 采购或租用成本训练任务需要长时间霸占大规模 GPU 集群。电力消耗GPU 集群运行期间功耗巨大散热成本同样不可忽视。数据工程成本清洗、去重、标注、审核数据需要大量人力和算力。实验与试错成本超参数调整、模型架构实验可能失败多次每次失败都意味着资源消耗。所以训练成本高的根本原因不是“AI 行业故意烧钱”而是“在现有硬件架构下实现高质量智能需要巨大的计算量”。这也是为什么更多团队倾向于使用成熟的大模型 API而不是自己重新训练。2.2 Token 计量人工智能服务的计费标准如果你调用过大模型 API一定见过“按 Token 计费”的说法。Token 是大模型处理文本时的最小语义单元。不同模型的 Tokenizer分词器不同Token 的切分规则也不同。一个相对容易理解的参考值是在英文场景下大约 1000 个 Token 约等于 750 个单词在中文场景下1000 个 Token 大约对应 500-1000 个汉字具体取决于分词器的切分逻辑。在实际的 API 调用中计费逻辑通常包括输入 Token 数量Prompt 部分输出 Token 数量模型生成部分部分模型还会对缓存命中 Token 给出折扣价格因此编写代码时需要考虑如何控制 Token 消耗。比如压缩 Prompt、使用多轮对话合并策略、设置 max_tokens 上限都是工程上常用手段。2.3 上下文长度的工程取舍上下文长度决定了一次请求中能携带多少信息。窗口越大模型能处理的材料越多但代价是消耗更多 Token成本线性上升。推理延迟变高响应时间变长。注意力计算复杂度上升长文本下可能出现“中间遗忘”现象。工程实践中不建议把所有资料都塞进 Prompt。更合理的做法是先检索、再压缩、最后生成。通过 RAG 缩小知识范围用总结链把长文档压缩成关键信息片段再送给模型完成最终生成。3. 数据质量与模型能力人工智能的“教材”工程3.1 高质量数据为什么决定模型上限有一个广泛认同的观点模型能力上限由数据质量决定。给定同一种模型架构和训练算法喂入不同质量的数据最终模型表现会显著不同。高质量数据包括几个特征准确性事实正确不包含错误知识。多样性覆盖不同领域、风格、表达方式。平衡性类目分布合理避免某些群体或观点过度代表。时效性反映当前世界的事实。人工智能中提到的“偏见”问题本质上就是数据失衡的体现。如果训练数据集中在某一类人群、地区或观点上模型输出就可能表现出系统性偏差。因此数据审核、去偏、公平性评估成为 AI 工程的重要组成部分。3.2 数据清洗与处理的基础流程即使不参与预训练做 RAG 应用时也要处理数据。一个典型的知识库数据处理流程包括数据采集从文档、网站、数据库等来源收集原材料。格式转换把 PDF、Word、HTML 统一转换为纯文本或 Markdown。清洗去重移除广告、页眉页脚、重复段落。分块按章节或语义切分块大小需要根据模型上下文调整。向量化用 Embedding 模型把文本转换为向量。索引构建存入向量数据库建立元数据索引。这一套流程中的每一环都有可能出现问题。比如分块太大导致检索不准分块太小导致语义不完整Embedding 模型选择不当导致向量空间无法表达业务语义。数据工程不是“能跑就行”而是需要反复调优。3.3 人工智能训练师从算法岗位到数据与模型协同岗位“人工智能训练师”已经成为一个正式职业。这个岗位的工作内容通常是设计标注规范指导标注团队完成任务。评估模型输出质量筛选 bad case。根据错误样本迭代 Prompt 或微调数据。管理训练数据集的质量和版本。这和传统的“数据标注员”不同训练师更强调对模型行为的分析能力。你可以理解为数据标注是给模型出题训练师是根据答题结果调整出题策略并判断模型是否掌握了知识点。4. 模型选择、Agent 与人工智能工程化4.1 如何选择适合业务的大模型面对众多模型选择哪个更适合自己的场景这是工程决策问题不是技术偏好问题。建议按以下维度评估评估维度关键问题能力在目标任务上的准确率、生成质量是否达标成本输入/输出 Token 单价是否在预算内速度响应延迟是否满足业务要求可控性是否能私有化部署数据是否安全稳定性API 是否频繁变更供应商是否长期可靠生态是否有丰富的工具链和社区支持对于业务场景相对标准、数据不敏感的场景可以直接用商业 API如果数据必须私有化则需要选择开源模型并自建推理服务。不要迷信参数越多越好关键是匹配场景。4.2 理解模型组多模型协作的架构思路单一模型很难解决所有问题。很多项目会同时使用不同模型形成“模型组”。常见模式包括小模型做前置任务意图识别、实体抽取、内容审核用轻量模型速度快成本低。大模型做生成任务最终文案、报告、代码生成使用能力更强的模型。专用模型做垂直任务代码补全、翻译、语音转写分别接入对应领域的专用模型。路由机制根据问题类型动态选择模型平衡成本与效果。模型组的设计本质上是“用工程手段管理多个 AI 工具”类似微服务架构中对服务的拆分与治理。模型并不是越多越好而是要通过路由规则让合适的任务进入合适的模型。4.3 Harness、Skills 与 AgentAI 应用的三层结构在 Agent 开发中经常能看到两个概念Harness 和 Skills。Skills可以理解为模型“外挂的能力”。模型本身只能做文本预测但通过 Skills它可以在推理过程中调用外部工具查天气、运行代码、调用数据库、请求第三方 API。Skill 通常被定义为函数或工具协议模型根据用户意图选择合适的工具。Harness可以理解为“装载和调度这些能力的外壳”。它负责管理模型、Skills、上下文、任务状态、错误处理。Harness 决定了 Agent 如何感知环境、如何决策、如何执行动作以及如何在失败时恢复。从架构上看三层结构是应用层用户交互 ↓ Agent 层Harness调度、记忆、决策 ↓ 技能层Skills工具调用、外部系统访问 ↓ 模型层大模型推理、Token 消耗这种分层的好处是模型可以被替换Skill 可以被扩展Harness 的调度逻辑可以被复用。AI 应用不再是“一条 Prompt 走天下”而是体系化的工程建设。4.4 人工智能中的“技能”定义与使用场景在智能体开发中一个 Skill 通常包含以下信息名称工具的唯一标识。描述说明该工具的功能和适用场景用于让模型判断何时调用。参数调用该工具需要提供的字段。执行逻辑真正完成操作的代码。返回结果模型可解析的返回值格式。下面用一个简单的天气查询 Skill 示例说明# 文件路径skills/weather_skill.py # 这是一个函数调用型 Skill通俗讲就是给模型一个查天气的工具 def get_weather(city: str, date: str today) - dict: 查询指定城市在指定日期的天气情况。 Args: city: 城市名称例如 北京 date: 日期例如 2026-03-20 或 today Returns: 包含天气信息的字典。 # 这里应该调用真实天气服务本文示例只返回模拟结果 # 生产环境请接入可靠的数据源并做好异常处理 return { city: city, date: date, weather: 晴, temperature: 22, humidity: 40, source: 模拟数据 }在 Agent 的 Harness 层需要把这个 Skill 注册到工具列表中并生成一个模型能理解的工具描述。模型看到用户说“北京明天天气怎么样”会从工具列表中发现这个 Skill 的名字、描述和参数格式然后返回一个调用请求由 Harness 执行真实的函数。5. 手把手搭建一个最小 AI 应用调用模型 Token 计量理论讲了很多接下来动手实现一个“最小可运行”的 AI 应用。这个案例的价值不在于功能多复杂而在于串联起前面提到的概念模型调用、上下文管理、Token 统计、结构化输出。5.1 环境准备与项目结构本文示例使用 Python 环境不限定具体框架版本。如果你使用最新稳定版本以下代码应该可以直接运行。# 建议创建独立虚拟环境 python -m venv ai-demo-env source ai-demo-env/bin/activate # Windows 下使用 ai-demo-env\Scripts\activate # 安装依赖 pip install openai项目结构ai-demo/ ├── main.py # 主程序 ├── token_utils.py # Token 估算工具 └── .env # API 配置注意不要提交到仓库需要注意的是不同大模型厂商的接口格式可能不同但整体思路一致把消息列表发送给模型接口模型返回生成结果。以下代码以 OpenAI 兼容接口为例使用环境变量管理密钥避免把密钥硬编码在代码中。5.2 Token 估算工具的实现在无法直接调用模型 Tokenizer 的情况下可以用一个粗略的估算函数。需要注意真正的 Token 计数应该使用模型官方的 Tokenizer本函数仅用于开发调试和成本预估。# 文件路径ai-demo/token_utils.py import re def estimate_tokens(text: str) - int: 粗略估算一段文本的 Token 数量。 注意这是近似值真实计费以模型服务商的 Tokenizer 为准。 中文字符通常占用更多 Token英文单词平均约 1.3 Token。 if not text: return 0 # 中文字符粗略按 1.5 Token 计算 chinese_chars len(re.findall(r[\u4e00-\u9fff], text)) # 英文单词按 1.3 Token 计算 english_words len(re.findall(r[a-zA-Z0-9], text)) return int(chinese_chars * 1.5 english_words * 1.3 2) def count_messages_tokens(messages: list) - int: 统计一组消息的总 Token 数用于估算一次请求的消耗。 total 0 for msg in messages: total estimate_tokens(msg.get(content, )) return total这个工具的价值在于在发送请求前就能知道大概要消耗多少 Token从而控制成本。线上环境如果追求精确可以用服务商提供的 Tokenizer 接口或 SDK 内置方法。5.3 对话历史管理与请求封装在实际业务中如果每次请求都携带完整对话历史Token 消耗会快速增长。下面封装一个带“最近 N 条消息”限制的对话管理函数。# 文件路径ai-demo/main.py import os from datetime import datetime from openai import OpenAI from token_utils import estimate_tokens, count_messages_tokens # 从环境变量读取 API 配置不要硬编码在生产代码中 # base_url 需要根据你使用的模型服务商调整 client OpenAI( api_keyos.getenv(API_KEY), base_urlos.getenv(BASE_URL, None), # 使用默认官方接口时可不填 ) MODEL_NAME os.getenv(MODEL_NAME, gpt-4o-mini) def limit_context(messages, max_messages6): 控制上下文长度只保留最近的 max_messages 条消息。 系统提示词始终保留不参与截断。 system_prompt [m for m in messages if m.get(role) system] history [m for m in messages if m.get(role) ! system] if len(history) max_messages: history history[-max_messages:] return system_prompt history def chat_with_history(user_input: str, history: list, max_tokens: int 500): 把用户输入和历史记录组合调用大模型接口生成回复。 返回生成内容、Token 使用情况、预估费用上下文。 messages history [{role: user, content: user_input}] messages limit_context(messages, max_messages6) # 请求前估算 Token方便打印日志 prompt_tokens count_messages_tokens(messages) print(f[请求] 预估输入 Token: {prompt_tokens}) response client.chat.completions.create( modelMODEL_NAME, messagesmessages, max_tokensmax_tokens, temperature0.3, ) assistant_msg response.choices[0].message.content # 记录实际 Token 消耗 usage response.usage print(f[完成] 模型: {MODEL_NAME}) print(f[完成] 实际输入 Token: {usage.prompt_tokens}) print(f[完成] 实际输出 Token: {usage.completion_tokens}) # 维护新的历史记录 new_messages messages [ {role: assistant, content: assistant_msg} ] return assistant_msg, new_messages def main(): print(AI Demo 对话程序启动输入 exit 退出。) history [ { role: system, content: 你是一个友好的中文助手回答简洁准确。 } ] while True: user_input input(\n你: ) if user_input.lower() in [exit, quit]: print(程序退出。) break try: reply, history chat_with_history(user_input, history) print(fAI: {reply}) except Exception as e: print(f调用失败: {e}) print(请检查 API 配置、网络连接和模型名称。) # 保留历史允许用户重试 if __name__ __main__: main()5.4 运行与验证设置环境变量export API_KEY你的API密钥 export MODEL_NAMEgpt-4o-mini # export BASE_URLhttps://你的模型服务商地址然后运行python main.py程序会启动一个简单的命令行对话AI Demo 对话程序启动输入 exit 退出。 你: 介绍一下人工智能中的 Token 概念 [请求] 预估输入 Token: 32 [完成] 模型: gpt-4o-mini [完成] 实际输入 Token: 38 [完成] 实际输出 Token: 120 AI: Token 是大模型处理文本的最小单位...这个案例虽然简单但包含了生产环境的核心要素上下文管理、Token 成本监控、异常处理。你可以继续扩展把历史存储到 Redis、接入 Agent 工具调用、增加日志系统等。6. 常见问题与排查思路6.1 API 调用报错问题现象常见原因解决思路AuthenticationErrorAPI 密钥无效或过期检查密钥确认环境变量已正确配置RateLimitError请求频率超过限制增加重试逻辑降低并发申请提额ModelNotFound模型名称拼写错误或无权访问确认模型名称检查账户权限APIConnectionError网络不稳定或代理问题检查网络确认 base_url 配置正确ContextLengthExceeded发送的内容超过模型上下文限制截断历史消息压缩文档内容6.2 模型输出质量不稳定这是 Agent 应用中最常见的问题。可能原因包括Prompt 描述不清晰模型不知道输出的格式和重点。缺少示例没有给出少样本示例模型只能自由发挥。温度参数过高生成内容随机性增大容易跑偏。系统提示词和用户输入冲突系统要求简洁但用户要求详细模型难以平衡。排查顺序建议先看 Prompt 是否明确要求了格式再加示例约束模型行为最后调整 temperature 和 max_tokens。6.3 Token 消耗异常增长如果发现成本上升很快重点检查历史消息是否无限制累积。一定要设置上下文窗口。是否传入了大量与任务无关的背景材料。是否重复调用了模型而不是复用缓存结果。是否设置了过高的 max_tokens导致模型生成了冗长无用的内容。建议在早期开发阶段打印每次请求的 Token 消耗日志建立成本基线。6.4 Agent 循环调用或工具选择错误Agent 应用偶尔会陷入“不断调用工具但得不到结果”的循环。常见原因工具描述不准确模型反复调用错误工具。工具返回结果格式不明确模型无法解析。缺少终止条件Agent 在没有得到满意结果时不断重试。解决方案是在 Harness 层加入最大循环次数限制每个工具返回结构尽量固定为 JSON当 Agent 连续两次使用相同工具且参数不变时主动终止。7. 最佳实践与工程建议7.1 把模型当作不稳定组件来治理很多 AI 项目的失败不是因为模型能力不够而是因为把模型当成了“稳定可靠的计算单元”。实际上模型输出存在随机性模型 API 可能变更模型供应商可能调整价格。因此在架构设计上要把模型当作外部不稳定依赖来处理所有模型调用放在独立 Service 层方便替换供应商。关键业务增加输出校验不符合格式就重新生成。对模型输出做日志记录方便追踪 bad case。在模型 API 变更前提前做兼容测试。7.2 成本治理从第一天开始AI 项目的成本不像服务器那样“固定”而是与调用量、Token 消耗成正比。建议做到每个请求记录 Token 用量和成本预估。设置月度预算告警。开发环境和生产环境使用不同模型或不同限额。对非核心场景使用小模型或低精度模型。批量任务使用异步处理避免高峰时段并行调用。7.3 数据安全与权限控制在 AI 应用中数据安全和权限控制比传统应用更复杂因为大模型会把用户输入上传到第三方服务。需要注意敏感数据不要直接发送给外部模型 API。使用私有化部署模型处理高敏感数据。API 密钥只能存放在服务端环境变量或密钥管理系统中。对用户输入做审计防止 Prompt 注入攻击。模型输出内容要经过审核防止生成不当内容。7.4 评测驱动迭代Prompt 调优和模型选型不能靠“感觉”。建议建立评测集准备一批代表性输入和期望输出每次修改 Prompt、切换模型后都跑一遍评测用准确率、相关度、格式合规率等指标衡量效果。这样模型升级或 Prompt 调整后能快速判断是变好还是变坏。7.5 关注人工智能相关规范的演进随着大模型应用规模化行业正在出现 Token 计量计费、模型能力评估、生成内容标识等规范化要求。技术团队需要关注这些规范在新项目设计阶段就预留出审计、计量、追溯能力。例如在日志中保留请求元数据、记录模型版本、保存输入输出摘要这些不仅是技术需求也可能是未来的合规需求。7.6 稳定比惊艳更重要在大型业务系统中AI 的最终价值不是“生成一段惊艳的文字”而是“在 99% 的场景下稳定输出正确结果”。因此生产级 AI 应用必须包含兜底逻辑模型失败时降级到规则逻辑输出不合规时重新生成延迟过高时返回缓存结果。AI 时代的技术竞争不只看谁的模型更强更看谁先把模型能力稳定地装进业务系统。8. 写在后面动荡期如何保持进步人工智能的“动荡”本质上是范式转换期的特征。今天的热门框架过两个月可能变得边缘今天的 Token 计量标准未来可能被更复杂的定价模型取代。面对这种不确定性技术人能做的是抓住不变的东西数据结构与算法功底、分布式系统设计能力、成本与质量的工程权衡、数据敏感性判断。这些基本功在大模型时代依然适用只是载体从传统程序变成了“模型 工具 代码”的复合系统。对于正在选择方向的人建议先选一个业务场景用现有 API 快速搭出一个最小应用把模型调用、Token 控制、结果评估这些流程真跑一遍。遇到问题再往深处研究原理比漫无目的地刷概念效率高得多。AI 不会取代工程师但掌握 AI 工程化能力的人会在下一轮技术周期里更有竞争力。与其焦虑时代变化不如动手写一段代码先把一个真实问题通过大模型跑通。这是穿越“动荡期”最可靠的方法。
返回列表