
轻量级本地小模型分流降本用端侧与自建模型承接 60% 无需大模型的预处理任务上个月初财务总监把一份打印好的大模型 API 账单甩在我的办公桌上脸色铁青“王工看看你们智能客服和内部 Copilot 上个月跑出来的费用——外部大模型GPT-6 Astra 与 DeepSeek-V4-Pro调了将近 12 万元下个月公司降本增效大模型预算直接腰斩到 5 万以内但业务部门要求的支撑并发还要再涨 50%。你给我想个辙不然这账我真平不了。”在小厂当架构师生存的第一法则就是学会算账。回到座位我立刻连夜拉取了网关过去 30 天累积的 180 万次大模型调用日志用脚本对用户 Query 与模型响应做了深度文本聚合分析。统计数据一出来结果触目惊心纯闲聊与机械查单占 38.6%大量用户进线只是输入“你好”、“在吗”、“催发货”或者直接输入一个 16 位的快递单号问“查查这个到哪了”。这种只要查数据库 RPC 的简单动作居然每次都调了一遍商业大模型每次至少烧掉 800 个 Prompt Tokens 和 150 个 Completion Tokens纯实体抽取与初级分类占 23.5%比如从一段几十个字的用户报修描述中提取“手机号”、“车型”和“故障部位”。这本质上只是个 Named Entity Recognition命名实体识别任务真正需要逻辑推理与多工具协作的请求只有 37.9%。这意味着整整六成以上的高额大模型调用完全是在用高射炮打蚊子架构分流核心大小模型动态漏斗针对这个惨痛的账本我们立即拍板了“大小模型动态漏斗”架构第一道防线本地小模型 / 1B~3B利用我们私有化部署在内网两台旧 GPU 机器上的轻量模型如 Qwen2.5-1.5B/3B以及轻量正则规则负责三件事敏感数据脱敏手机号、身份证、内网地址打码保护数据隐私用户意图初筛与置信度判定确定性槽位Slot提取。分流决策如果判定为机械意图且置信度高Score 0.85直接本地走内部微服务 RPC 返回结果外部大模型调用次数为 0如果判定为开放式复杂问题、长文本创作、复杂代码纠错再将脱敏后的 Query 路由给外部顶级云端大模型第二道防线云端旗舰大模型只承接最硬核的 38% 复杂推理场景。Go 分流网关核心实现我们在 API 网关层注入了一个前置分流过滤器IntentDispatcher以下是其生产环境代码缩影package router import ( bytes context encoding/json fmt net/http regexp time ) // IntentType 意图分类枚举 type IntentType string const ( IntentChitchat IntentType chitchat // 问候闲聊 IntentOrderQuery IntentType order_query // 订单物流确定性查询 IntentDataMasking IntentType data_mask // 脱敏提取 IntentComplexQA IntentType complex_qa // 复杂推理走云端大模型 ) // DispatchResult 分流决策结果 type DispatchResult struct { Intent IntentType Confidence float64 CleanQuery string DirectResp string NeedCloud bool } type Dispatcher struct { localModelURL string httpClient *http.Client phoneRegex *regexp.Regexp } func NewDispatcher(localModelURL string) *Dispatcher { return Dispatcher{ localModelURL: localModelURL, httpClient: http.Client{Timeout: 300 * time.Millisecond}, // 本地推理必须在 300ms 内完成 phoneRegex: regexp.MustCompile((1[3-9]\d)\d{4}(\d{4})), } } // LocalPreprocessRequest 请求本地小模型推理结构体 type LocalPreprocessRequest struct { Prompt string json:prompt } type LocalPreprocessResponse struct { Intent string json:intent Confidence float64 json:confidence Entity string json:entity } // Dispatch 核心分流决策 func (d *Dispatcher) Dispatch(ctx context.Context, userQuery string) (*DispatchResult, error) { // 1. 本地极速正则预处理与数据脱敏耗时 0.1ms cleanQuery : d.phoneRegex.ReplaceAllString(userQuery, $1****$2) // 2. 基础规则快筛避免小模型都免调 if cleanQuery 你好 || cleanQuery 在吗 || cleanQuery 有人吗 { return DispatchResult{ Intent: IntentChitchat, Confidence: 1.0, CleanQuery: cleanQuery, DirectResp: 您好我是智能业务助理请问有什么可以帮您输入订单号可秒查进度。, NeedCloud: false, }, nil } // 3. 调用内网本地轻量小模型进行意图分类与槽位提取 reqPayload, _ : json.Marshal(LocalPreprocessRequest{ Prompt: fmt.Sprintf(分析输入意图和实体%s以JSON输出: intent, confidence, entity, cleanQuery), }) httpReq, err : http.NewRequestWithContext(ctx, POST, d.localModelURL/v1/chat, bytes.NewReader(reqPayload)) if err ! nil { // 降级兜底如果本地模型调用构建失败直接走云端确保业务高可用 return DispatchResult{NeedCloud: true, CleanQuery: cleanQuery}, nil } httpReq.Header.Set(Content-Type, application/json) resp, err : d.httpClient.Do(httpReq) if err ! nil { // 超时或挂掉时降级兜底 return DispatchResult{NeedCloud: true, CleanQuery: cleanQuery}, nil } defer resp.Body.Close() var localResp LocalPreprocessResponse if err : json.NewDecoder(resp.Body).Decode(localResp); err ! nil { return DispatchResult{NeedCloud: true, CleanQuery: cleanQuery}, nil } // 4. 路由决策逻辑 result : DispatchResult{ Intent: IntentType(localResp.Intent), Confidence: localResp.Confidence, CleanQuery: cleanQuery, } // 如果属于单号查询且置信度高直接内部 RPC 处理阻断大模型计费 if result.Intent IntentOrderQuery result.Confidence 0.85 { result.NeedCloud false result.DirectResp fmt.Sprintf(已为您匹配到单号【%s】的物流状态包裹正在派送中。, localResp.Entity) return result, nil } // 如果意图不是简单类型或置信度偏低放行至云端商业大模型进行深度推理 result.NeedCloud true return result, nil }生产避坑本地小模型的“过载雪崩”与“误判击穿”这套体系在上线第一天也踩了两个大坑本地显卡显存溢出导致超时降级本地部署的小模型服务使用的是内网两台闲置的 RTX 3090 服务器。早高峰流量突增时vLLM 并发显存打满响应时间从 40ms 劣化到 800ms触发了 Go 网关的 300ms 超时阈值导致所有流量瞬间全部降级到云端大模型反而引发了双重雪崩。解法在 Go 网关设置本地小模型的并发信号量Semaphore如果并发满载直接排队限流同时开启 vLLM 的 PagedAttention 显存优化与固定批处理。意图分类误判引发用户投诉有用户发了一大段愤怒的维权投诉“你们商品不仅质量稀烂发货还慢单号是 99882233我要退货赔偿”本地小模型直接匹配到了单号判定为“物流查询”直接干巴巴回复了一句“包裹在途”用户当场炸毛。解法增加负向情绪检测分支。凡是命中“投诉”、“维权”、“赔偿”、“差评”等情绪词库的请求置信度直接惩罚至 0一律直通云端高情商模型或者无缝转人工客服。降本成果真实账本改版上线运行整整三周后财务报表给出了最诚实的反馈API 账单腰斩云端大模型的日均调用量从 6 万次骤降到 2.2 万次当月 API 账单从 11.8 万元断崖式下跌至 4.5 万元硬生生省下了 61.8% 的成本首字响应提速对于那 60% 的高频确定性问题用户在 25ms 内即可收到本地直出的完整答案相比等待云端大模型吐出第一个 Token平均 650ms交互体感实现了质的飞跃算力自给自足承载这 60% 流量的两台旧服务器日均电费增加不到 15 元。在预算吃紧的当下架构师千万不要盲目迷信全链路大模型。学会用轻量技术把简单的杂活脏活挡在前面把昂贵的智力算力留给真正的硬仗才是工程师对业务最硬核的商业贡献。