尧图建网站 尧图建网站 YAOTU WEB BUILD 免费咨询
ARTICLE DETAIL

资讯详情

深耕网站建设与建站编程的一线实战洞察。

面壁智能技术:奇点大会分享从模型压缩到端侧部署的完整链路实战

面壁智能技术:奇点大会分享从模型压缩到端侧部署的完整链路实战 2026 奇点智能技术大会 · 议题前瞻演讲嘉宾李宇轩面壁智能技术合伙人、智能进化首席科学家大会时间2026年11月20-21日 · 北京万达文华酒店一、端侧 AI 的崛起为什么大模型需要小部署2024-2025 年大模型参数规模从 7B 增长到 400B但端侧设备手机、IoT、车载、安防的算力和内存约束并未改变设备类型典型算力可用内存功耗预算延迟要求旗舰手机10-20 TOPS8-12GB5-10W100ms中端手机3-5 TOPS4-6GB3-5W200ms智能摄像头1-2 TOPS1-2GB2-3W50ms车载座舱20-50 TOPS16-32GB20-30W50ms智能手表0.5-1 TOPS512MB-1GB0.5-1W500msTWS 耳机0.1-0.5 TOPS128-256MB0.1-0.3W100ms核心矛盾云端大模型能力强大但延迟高、成本高、隐私差端侧模型延迟低、成本低、隐私好但能力弱。模型压缩与端侧部署是弥合这一矛盾的关键技术。二、面壁智能的小钢炮路线MiniCPM 系列2.1 产品矩阵模型参数量端侧目标关键能力性能对标MiniCPM-2B2.4B手机端文本生成、对话Llama 2 7BMiniCPM-V-2.62.6B手机端视觉理解、OCRGPT-4V miniMiniCPM-o-2.62.6B手机端全模态文本视觉语音GPT-4o miniMiniCPM-1B1.2BIoT/手表轻量对话定制优化MiniCPM-Embedding2B全场景文本嵌入、RAGBGE-large2.2 核心指标对比模型参数量手机端延迟内存占用文本能力视觉能力GPT-4未公开云端 500msN/A★★★★★★★★★★Llama 3 8B8B不可部署16GB★★★★☆N/AQwen2-7B7B不可部署14GB★★★★☆★★★★☆MiniCPM-2B2.4B120ms3GB★★★★☆★★★☆☆MiniCPM-V-2.62.6B200ms4GB★★★★☆★★★★☆MiniCPM-o-2.62.6B250ms4.5GB★★★★☆★★★★☆关键洞察MiniCPM-2B 以 2.4B 参数达到 Llama 2 7B 的文本能力且可在手机上流畅运行——小参数、大能力是面壁智能的核心技术路线。三、模型压缩技术栈从 7B 到 2B 的瘦身之旅3.1 压缩技术全景┌─────────────────────────────────────────┐ │ 第一层架构优化训练阶段 │ │ - 非对称 Transformer深窄 vs 浅宽 │ │ - 共享注意力头MQA/GQA │ │ - 滑动窗口注意力减少 KV Cache │ ├─────────────────────────────────────────┤ │ 第二层知识蒸馏训练阶段 │ │ - 响应蒸馏模仿教师输出 │ │ - 特征蒸馏对齐中间层特征 │ │ - 数据增强合成高质量训练数据 │ ├─────────────────────────────────────────┤ │ 第三层训练后量化部署阶段 │ │ - INT8/INT4 权重量化 │ │ - 动态激活量化 │ │ - AWQ/GPTQ 量化算法 │ ├─────────────────────────────────────────┤ │ 第四层结构化剪枝部署阶段 │ │ - 注意力头剪枝 │ │ - FFN 层剪枝 │ │ - 层剪枝跳过不重要的层 │ └─────────────────────────────────────────┘3.2 非对称 Transformer 设计# 非对称 Transformer深窄 vs 浅宽classAsymmetricTransformer(nn.Module): 面壁智能的非对称设计 - 更深的网络40 层 vs 标准 32 层 - 更窄的隐藏维度2304 vs 标准 4096 - 更少的注意力头36 vs 标准 32 - 共享键值头GQA4 个查询头共享 1 个键值头 效果参数量减少 40%性能保持 95% def__init__(self,config):super().__init__()self.num_layersconfig.num_layers# 40self.hidden_sizeconfig.hidden_size# 2304self.num_attention_headsconfig.num_attention_heads# 36self.num_key_value_headsconfig.num_key_value_heads# 9 (GQA)self.intermediate_sizeconfig.intermediate_size# 5760self.layersnn.ModuleList([AsymmetricTransformerLayer(config)for_inrange(self.num_layers)])defforward(self,hidden_states,attention_mask):forlayerinself.layers:hidden_stateslayer(hidden_states,attention_mask)returnhidden_statesclassAsymmetricTransformerLayer(nn.Module):def__init__(self,config):super().__init__()# 自注意力GQA 设计self.self_attnGroupedQueryAttention(hidden_sizeconfig.hidden_size,num_attention_headsconfig.num_attention_heads,# 36num_key_value_headsconfig.num_key_value_heads,# 9)# FFNSwiGLU 激活self.mlpSwiGLU(hidden_sizeconfig.hidden_size,intermediate_sizeconfig.intermediate_size,)# LayerNormself.input_layernormRMSNorm(config.hidden_size)self.post_attention_layernormRMSNorm(config.hidden_size)defforward(self,hidden_states,attention_mask):# 预归一化residualhidden_states hidden_statesself.input_layernorm(hidden_states)hidden_statesself.self_attn(hidden_states,attention_mask)hidden_statesresidualhidden_states# FFNresidualhidden_states hidden_statesself.post_attention_layernorm(hidden_states)hidden_statesself.mlp(hidden_states)hidden_statesresidualhidden_statesreturnhidden_statesclassGroupedQueryAttention(nn.Module):分组查询注意力多个查询头共享键值头def__init__(self,hidden_size,num_attention_heads,num_key_value_heads):super().__init__()self.hidden_sizehidden_size self.num_attention_headsnum_attention_heads self.num_key_value_headsnum_key_value_heads self.head_dimhidden_size//num_attention_heads# Q 投影独立self.q_projnn.Linear(hidden_size,num_attention_heads*self.head_dim)# K/V 投影共享self.k_projnn.Linear(hidden_size,num_key_value_heads*self.head_dim)self.v_projnn.Linear(hidden_size,num_key_value_heads*self.head_dim)# 输出投影self.o_projnn.Linear(num_attention_heads*self.head_dim,hidden_size)defforward(self,hidden_states,attention_mask):batch_size,seq_len,_hidden_states.shape# Q/K/V 投影qself.q_proj(hidden_states).view(batch_size,seq_len,self.num_attention_heads,self.head_dim)kself.k_proj(hidden_states).view(batch_size,seq_len,self.num_key_value_heads,self.head_dim)vself.v_proj(hidden_states).view(batch_size,seq_len,self.num_key_value_heads,self.head_dim)# 扩展 K/V 到与 Q 相同的头数通过重复kk.repeat_interleave(self.num_attention_heads//self.num_key_value_heads,dim2)vv.repeat_interleave(self.num_attention_heads//self.num_key_value_heads,dim2)# 标准注意力计算qq.transpose(1,2)# [B, H, S, D]kk.transpose(1,2)vv.transpose(1,2)scorestorch.matmul(q,k.transpose(-2,-1))/math.sqrt(self.head_dim)scoresscoresattention_mask attnF.softmax(scores,dim-1)outputtorch.matmul(attn,v)outputoutput.transpose(1,2).contiguous().view(batch_size,seq_len,-1)returnself.o_proj(output)3.3 知识蒸馏让小模型学会大模型的思维方式# 知识蒸馏训练classKnowledgeDistillationTrainer:def__init__(self,teacher_model,student_model,config):self.teacherteacher_model# 大模型教师self.studentstudent_model# 小模型学生self.configconfig# 蒸馏温度self.temperatureconfig.temperature# 通常 2.0-4.0# 损失权重self.alphaconfig.alpha# 蒸馏损失权重通常 0.7self.betaconfig.beta# 特征对齐权重通常 0.3defcompute_distillation_loss(self,batch): 计算蒸馏损失 1. 响应蒸馏学生模仿教师的输出分布 2. 特征蒸馏学生对齐教师的中间层特征 input_idsbatch.input_ids attention_maskbatch.attention_mask labelsbatch.labels# 教师输出无梯度withtorch.no_grad():teacher_outputsself.teacher(input_idsinput_ids,attention_maskattention_mask,output_hidden_statesTrue,)teacher_logitsteacher_outputs.logits/self.temperature teacher_probsF.softmax(teacher_logits,dim-1)teacher_hiddenteacher_outputs.hidden_states# 所有层# 学生输出student_outputsself.student(input_idsinput_ids,attention_maskattention_mask,output_hidden_statesTrue,)student_logitsstudent_outputs.logits/self.temperature student_probsF.softmax(student_logits,dim-1)student_hiddenstudent_outputs.hidden_states# 1. 响应蒸馏损失KL 散度distill_lossF.kl_div(F.log_softmax(student_logits,dim-1),teacher_probs,reductionbatchmean,)*(self.temperature**2)# 2. 特征蒸馏损失MSE# 选择教师和学生对应的层进行对齐# 例如教师 40 层学生 40 层逐层对齐feature_loss0fort_layer,s_layerinzip(teacher_hidden,student_hidden):# 投影到相同维度如果维度不同ift_layer.size(-1)!s_layer.size(-1):t_layerself.projection(t_layer)feature_lossF.mse_loss(s_layer,t_layer)feature_lossfeature_loss/len(teacher_hidden)# 3. 硬标签损失标准交叉熵hard_lossF.cross_entropy(student_outputs.logits.view(-1,student_outputs.logits.size(-1)),labels.view(-1),ignore_index-100,)# 总损失total_loss(self.alpha*distill_lossself.beta*feature_loss(1-self.alpha-self.beta)*hard_loss)return{total_loss:total_loss,distill_loss:distill_loss,feature_loss:feature_loss,hard_loss:hard_loss,}3.4 量化INT4 极致压缩# INT4 量化实现基于 GPTQ/AWQclassInt4Quantizer:def__init__(self,bits4,group_size128):self.bitsbits self.group_sizegroup_size self.quant_range2**bits# 16 for INT4defquantize_weights(self,weight_tensor): 将 FP16 权重量化为 INT4 策略 1. 按 group_size 分组 2. 每组独立计算缩放因子 3. 量化后存储为 INT4打包为 INT8 orig_shapeweight_tensor.shape# reshape 为 [num_groups, group_size]weight_tensorweight_tensor.view(-1,self.group_size)num_groupsweight_tensor.shape[0]# 计算每组的缩放因子和零点w_minweight_tensor.min(dim1,keepdimTrue)[0]w_maxweight_tensor.max(dim1,keepdimTrue)[0]scales(w_max-w_min)/(self.quant_range-1)zerostorch.round(-w_min/scales).clamp(0,self.quant_range-1)# 量化quantizedtorch.round((weight_tensor-w_min)/scales).clamp(0,self.quant_range-1).to(torch.uint8)# 打包两个 INT4 打包为一个 INT8packedself._pack_int4(quantized)return{packed_weights:packed,# INT8 存储每 byte 含 2 个 INT4scales:scales,# FP16zeros:zeros,# INT8orig_shape:orig_shape,}def_pack_int4(self,int4_tensor):将 INT4 打包为 INT8每 byte 存储 2 个 INT4flatint4_tensor.view(-1)# 确保长度为偶数ifflat.size(0)%21:flattorch.cat([flat,torch.zeros(1,dtypetorch.uint8)])# 打包高 4 位 低 4 位packed(flat[0::2]4)|flat[1::2]returnpackeddefdequantize_weights(self,quantized_data):反量化回 FP16packedquantized_data[packed_weights]scalesquantized_data[scales]zerosquantized_data[zeros]orig_shapequantized_data[orig_shape]# 解包int4_tensorself._unpack_int4(packed)# reshape 回 [num_groups, group_size]int4_tensorint4_tensor.view(-1,self.group_size)# 反量化dequantized(int4_tensor.float()-zeros)*scalesreturndequantized.view(orig_shape)def_unpack_int4(self,packed_tensor):将 INT8 解包为 INT4# 高 4 位high(packed_tensor4)0xF# 低 4 位lowpacked_tensor0xF# 交错合并unpackedtorch.empty(packed_tensor.size(0)*2,dtypetorch.uint8)unpacked[0::2]high unpacked[1::2]lowreturnunpacked四、端侧部署从模型到产品的最后一公里4.1 端侧推理框架选型框架支持平台量化支持性能易用性社区活跃度llama.cpp全平台INT4/INT8/FP16★★★★☆★★★★☆★★★★★MLC-LLM全平台INT4/INT8/FP16★★★★☆★★★☆☆★★★★☆ONNX Runtime全平台INT8/FP16★★★☆☆★★★★☆★★★★★TensorRT-LLMNVIDIAINT4/INT8/FP8★★★★★★★★☆☆★★★★☆Core MLAppleINT8/FP16★★★★☆★★★★★★★★☆☆NNIE海思INT8★★★☆☆★★☆☆☆★★☆☆☆NPU SDK各厂商INT8/INT4★★★★☆★★☆☆☆★★☆☆☆4.2 手机端部署以 llama.cpp 为例// llama.cpp 端侧部署配置// 适用于 Android/iOS 手机#includellama.hclassMobileInferenceEngine{public:boolinitialize(conststd::stringmodel_path,intn_threads){llama_model_params model_paramsllama_model_default_params();model_params.n_gpu_layers0;// 手机端纯 CPU 推理model_llama_load_model_from_file(model_path.c_str(),model_params);if(!model_){returnfalse;}llama_context_params ctx_paramsllama_context_default_params();ctx_params.n_ctx2048;// 上下文长度ctx_params.n_batch512;// 批处理大小ctx_params.n_threadsn_threads;// 线程数通常 4-8ctx_params.n_threads_batchn_threads;ctx_llama_new_context_with_model(model_,ctx_params);if(!ctx_){returnfalse;}returntrue;}std::stringgenerate(conststd::stringprompt,intmax_tokens256){// Tokenizestd::vectorllama_tokentokenstokenize(prompt);// 评估 promptllama_decode(ctx_,tokens.data(),tokens.size(),0,true);// 生成std::string result;for(inti0;imax_tokens;i){llama_token new_tokensample_token();if(new_tokenllama_token_eos(model_)){break;}resulttoken_to_str(new_token);// 单 token 解码llama_decode(ctx_,new_token,1,tokens.size()i,false);}returnresult;}private:llama_model*model_nullptr;llama_context*ctx_nullptr;llama_tokensample_token(){llama_token_data_array candidatesget_logits();// 采样策略temperature top-pllama_sample_temperature(ctx_,candidates,0.8);llama_sample_top_p(ctx_,candidates,0.95);returnllama_sample_token(ctx_,candidates);}};// Android 配置// build.gradleandroid{defaultConfig{ndk{abiFiltersarm64-v8a// 仅 64 位 ARM}externalNativeBuild{cmake{arguments-DANDROID_STLc_shared,-DANDROID_ABIarm64-v8a,-DLLAMA_ARM_NEONON,// 启用 NEON 加速-DLLAMA_OPENMPON// 启用 OpenMP}}}}4.3 性能优化数据配置模型设备延迟首 token吞吐tok/s内存FP16MiniCPM-2BiPhone 15 Pro800ms85.5GBINT8MiniCPM-2BiPhone 15 Pro400ms153.2GBINT4MiniCPM-2BiPhone 15 Pro200ms252.1GBINT4 NEONMiniCPM-2BiPhone 15 Pro120ms352.1GBINT4MiniCPM-2B小米 14180ms282.1GBINT4MiniCPM-2B华为 Mate 60200ms222.1GB五、端侧 AI 的商业模式5.1 商业模式矩阵模式描述代表产品盈利方式模型授权向手机厂商/IoT厂商授权模型MiniCPM 授权授权费 royalties云服务端云协同复杂任务上云面壁智能云 API按调用量计费解决方案行业定制解决方案金融/医疗端侧方案项目制收费开发者生态开源模型 企业版增值MiniCPM 开源 企业支持企业支持服务硬件捆绑与芯片厂商合作预装与高通/联发科合作分成5.2 端云协同架构┌─────────────────────────────────────────┐ │ 云端大模型 │ │ - 复杂推理、知识更新、模型训练 │ │ - 400B 参数GPU 集群 │ ├─────────────────────────────────────────┤ │ 网络5G/WiFi │ │ - 低延迟传输 50ms │ │ - 数据压缩、差分同步 │ ├─────────────────────────────────────────┤ │ 边缘中小模型 │ │ - 路由决策、任务分发、结果聚合 │ │ - 7B-13B 参数边缘服务器 │ ├─────────────────────────────────────────┤ │ 端侧小模型 │ │ - 实时响应、隐私保护、离线可用 │ │ - 1B-3B 参数手机/IoT │ └─────────────────────────────────────────┘六、参会建议角色重点关注推荐演讲模型压缩工程师知识蒸馏、量化算法、剪枝策略李宇轩端侧部署工程师推理框架、性能优化、跨平台适配李宇轩产品经理端侧 AI 商业模式、场景选择、竞品分析李宇轩移动端开发者手机端推理、SDK 集成、功耗优化李宇轩七、延伸阅读与资料李宇轩面壁智能 MiniCPM 技术博客面壁智能MiniCPM 开源仓库GitHub面壁智能端侧 AI 部署最佳实践白皮书大会官网https://ml-summit.org2026 奇点智能技术大会2026年11月20-21日 · 北京万达文华酒店22 位确认嘉宾 · 18 大前沿议题 · 1000 行业精英立即报名 →
返回列表