Files
note/课题一/AI 视觉对话助手/成本控制.md
2026-06-12 11:51:07 +08:00

4.3 KiB
Raw Blame History

tags, create time
tags create time
AI
成本优化
端云协同
多模态
运营策略
2026-06-12 11:13

成本控制

概述

实时视频流 + 多模态 LLM 推理的成本极易失控。本节从视觉链路语音链路推理链路三个维度梳理成本控制策略,并引入端云协同的架构思维——将适合的计算前置到客户端,降低对云端 API 的依赖。

正文

成本构成分析

[!question] 思考 假设一个用户每天使用 10 分钟,每秒处理 1 帧图像 + 持续语音交互。粗算一下10 分钟 × 60 秒 = 600 次图像 API 调用。如果每次调用消耗 1000 tokens一天就是 60 万 tokens。1000 个用户呢?

graph TD
    A["总成本"] --> B["视觉链路"]
    A --> C["语音链路"]
    A --> D["推理链路"]
    B --> B1["图像编码与传输"]
    B --> B2["视觉 token 消耗"]
    C --> C1["STT 按分钟计费"]
    C --> C2["TTS 按字符计费"]
    D --> D1["LLM 输入 tokens"]
    D --> D2["LLM 输出 tokens"]

策略一:智能采样——少发图,发好图

最直接的降本手段:减少发送给 LLM 的图片数量

策略 降本幅度 实现复杂度 说明
提高采样间隔 从 1fps 降到 0.2fps
关键帧过滤 画面不变时不发送
用户触发 只在用户提问时拍照
本地预筛选 用轻量模型判断"是否值得问 LLM"
// 混合策略:定时低频 + 事件高频
const NORMAL_INTERVAL = 5000;  // 正常 5 秒一帧
const ACTIVE_INTERVAL = 1000;  // 用户说话时 1 秒一帧

let isUserSpeaking = false;

setInterval(() => {
  captureAndSend(isUserSpeaking ? "low" : "high");
}, isUserSpeaking ? ACTIVE_INTERVAL : NORMAL_INTERVAL);

策略二:端云协同——把计算推到边缘

核心思想:不是所有计算都需要上云

graph LR
    subgraph Client["客户端"]
        A["摄像头帧"] --> B["轻量视觉模型"]
        B --> C{"场景变化?"}
        C -->|"否"| D["丢弃"]
        C -->|"是"| E["压缩 + 上传"]
    end
    subgraph Cloud["云端"]
        E --> F["多模态 LLM"]
        F --> G["返回结果"]
    end

可前置到客户端的计算:

  • VAD 语音检测:浏览器端完成,减少无效音频上传(节省 ~70% 带宽)
  • 人脸/物体检测:用 ONNX Runtime 跑轻量模型,只在检测到新物体时触发 LLM
  • 重复画面过滤:计算帧间相似度,相似度 > 90% 直接跳过
  • 敏感内容过滤NSFW 检测前置,避免无效 API 调用

[!tip] 端云协同的"甜点" 浏览器端的 ONNX Runtime Web 可以跑 YOLOv8-nano 这样的轻量模型(~6MB推理耗时约 30ms完全不影响用户体验但能显著减少云端调用次数。

策略三:模型分级——用对模型做对事

不是每个问题都需要最贵的模型:

graph TD
    A["用户提问"] --> B{"问题复杂度"}
    B -->|"简单识别"| C["GPT-4o-mini / Haiku"]
    B -->|"深度分析"| D["GPT-4o / Sonnet"]
    B -->|"代码/推理"| E["o1 / Opus"]
    C --> F["成本: $0.15/1M tokens"]
    D --> G["成本: $2.5/1M tokens"]
    E --> H["成本: $15/1M tokens"]

路由策略示例:

async function routeQuery(image: string, question: string) {
  // 先用小模型判断问题复杂度
  const complexity = await classifyComplexity(question);

  const modelMap = {
    simple: "gpt-4o-mini",    // "这是什么?" → 用小模型
    moderate: "gpt-4o",       // "分析这张图" → 用中模型
    complex: "o1"             // "推理/规划"  → 用大模型
  };

  return callLLM(modelMap[complexity], image, question);
}

策略四:缓存与复用

  • 语义缓存:相似问题直接返回缓存结果(如反复问"这是什么"
  • 上下文复用:连续对话中,未变化的图像不必重复发送
  • Prompt 压缩:精简 system prompt减少每轮的固定 token 开销

[!info] 成本对比 优化前1fps 全量发送vs 优化后0.2fps + 端侧筛选 + 模型分级):月成本可从 $5000 降至 $300~500,降幅约 90%。

关联笔记