ARTICLE DETAIL

资讯详情

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

数字人+大模型知识引擎:从形象驱动到知识交互的落地实践

数字人+大模型知识引擎:从形象驱动到知识交互的落地实践 1. 数字人项目为什么突然又火了从“壳”到“脑”的转折点数字人这个概念其实不新鲜。早几年做虚拟主播、虚拟客服的团队一抓一大把但大多数项目最后都卡在同一个地方形象做得再精致一开口就露馅。用户问东它答西多问两轮它就开始胡言乱语。本质上那时候的数字人只是一个“壳”——有脸、有嘴型、有动作但背后没有真正的理解能力。这两年情况变了。大模型把“脑”这一块补上了数字人从“会动的播报器”变成了“能对话、能办事、能记住上下文”的交互体。这个转折点带来的直接后果是数字人项目的技术重心从建模、渲染、驱动转移到了知识组织、意图理解、多轮对话管理上。换句话说以前拼的是美术和动画现在拼的是知识引擎和模型能力。腾讯在这条线上推的产品组合核心逻辑就是把“数字人形象”和“大模型知识引擎”绑在一起卖。形象层解决“看起来像个人”知识引擎层解决“答得对、答得准、答得可控”。这个组合瞄准的场景很明确企业客服、政务咨询、展厅导览、培训陪练、直播带货辅助。这些场景的共同特点是——不能瞎答必须有据可依而且要能接入企业自己的知识库。我接触过几个做数字人落地的团队他们最头疼的不是模型不够聪明而是模型太“自由”。你问它公司报销流程它给你编一个看似合理但完全错误的答案。这种错误在客服场景里是致命的。所以知识引擎的价值就体现出来了它把大模型的生成能力约束在企业的知识边界内让数字人“只说自己该说的话”。这篇文章我会从产品架构、知识引擎的工作机制、数字人形象与对话的耦合方式、实际部署中的坑、以及选型对比几个角度展开。适合正在评估数字人方案的技术负责人、正在做AIGC落地的产品经理以及想搞清楚“大模型到底怎么跟数字人结合”的开发者。2. 拆开腾讯这套组合拳数字人壳子与知识引擎脑子各自管什么2.1 数字人形象层不只是“捏脸”驱动和交互才是重点很多人一提到数字人就想到建模觉得形象越逼真越好。实际做项目的时候你会发现形象精度和项目成本是指数级关系但用户对“像不像真人”的容忍度其实比想象中高。一个卡通风格的数字人只要口型对得上、表情跟得上、响应不卡顿用户照样愿意跟它聊。腾讯数字人产品在形象层提供的核心能力我理解主要是三块第一是形象资产库。提供预置的2D/3D形象企业也可以基于真人照片或视频做定制。预置形象的好处是开箱即用省掉建模和绑定骨骼的时间。定制形象则适合有品牌形象要求的企业比如银行想让数字人穿行服、带行徽。第二是驱动引擎。这是数字人“活起来”的关键。驱动分两种一种是TTS驱动的口型同步文本转语音之后根据音素序列生成对应的口型动画另一种是动作和表情驱动根据对话内容的情感倾向触发相应的微表情和肢体动作。腾讯这边把TTS和口型对齐做成了标准管线开发者只需要传入文本引擎自动完成语音合成和口型匹配。第三是交互接入层。数字人最终要跟用户对话所以必须有一个通道把用户输入语音或文字送进对话系统再把系统的回复送回来驱动数字人。腾讯的方案是通过SDK和API把这一层封装好前端只需要调用接口不用关心底层的音频编解码和动画调度。这里有个容易踩的坑很多团队在POC阶段用预置形象跑得很顺一到定制形象就发现口型对不上。原因是定制形象的绑定骨骼和预置形象不一致驱动引擎需要重新做口型映射。建议在定制形象交付时要求供应商提供已经适配好驱动管线的版本而不是只给一个模型文件。2.2 知识引擎层把企业知识变成模型能“查”的东西知识引擎这个词听起来很玄拆开看其实就干三件事知识入库、知识检索、知识注入。知识入库是把企业已有的文档、FAQ、工单记录、产品手册等非结构化数据经过清洗、切片、向量化之后存进向量数据库。这一步的难点不在技术在数据治理。我见过太多企业直接把一堆PDF扔进去结果切片切得乱七八糟检索出来的内容驴唇不对马嘴。正确的做法是先做文档结构化把标题、段落、表格分开处理表格单独走结构化抽取正文按语义段落切片切片长度控制在300到500字之间。知识检索是用户提问之后系统从向量库里找出最相关的若干条知识片段。这里的关键是混合检索——纯向量检索对语义相似但关键词不匹配的情况处理得好但对精确匹配比如产品型号、法规条款编号就不行。所以实际生产环境里通常是向量检索加关键词检索一起上再用重排序模型把结果排个序。知识注入是把检索到的知识片段拼进大模型的提示词里让模型基于这些片段生成回答。这一步的核心是提示词模板设计。模板里要明确告诉模型你只能基于以下知识回答如果知识里没有就说“我暂时没有找到相关信息”。这个约束看起来简单但实际调的时候需要反复打磨措辞否则模型还是会忍不住自由发挥。2.3 两层之间的耦合对话状态怎么在形象和知识之间流转数字人和知识引擎不是简单的前后关系它们之间有一个对话状态管理层。用户说了一句话系统要先判断意图是闲聊、是问知识、还是要执行某个操作比如查订单、转人工。不同意图走不同路径。闲聊走通用大模型知识问答走向量检索加知识注入操作类请求走API调用或工单系统。这个路由逻辑通常用一个意图分类模型来实现也可以用大模型做few-shot分类。腾讯的方案里这部分是通过对话编排引擎来配置的产品经理可以在界面上拖拽节点定义不同意图的处理流程。对话状态还需要维护多轮上下文。比如用户先问“你们有哪些产品”再问“第二个多少钱”系统得知道“第二个”指的是什么。这要求对话管理模块把历史轮次的实体和意图都存下来在生成回复时一并传给模型。3. 知识引擎的检索质量怎么调从“答非所问”到“精准命中”3.1 切片策略决定检索上限我做过一个对比实验同一份产品手册用固定长度切片和语义切片分别入库检索命中率差了将近30%。固定长度切片的问题是会把一个完整的操作步骤拦腰截断用户问“怎么重置密码”检索出来的片段只有前半步模型只能根据半截信息编。语义切片的核心思路是按段落和标题层级切。具体操作上先用规则把文档按标题拆成章节章节内再按自然段拆如果某个段落超过500字再按句子边界切。每个切片要带上它的标题路径比如“第三章 账户管理 3.2 密码重置 3.2.1 自助重置步骤”。这个标题路径在检索时可以作为元数据过滤条件也可以拼进切片内容里帮助模型理解上下文。表格的处理要单独说。表格直接转文本会丢失行列关系检索出来模型也看不懂。正确的做法是把表格的每一行转成一条自然语言描述比如“产品A的月费是99元包含100分钟通话”。这样检索和生成都友好。3.2 重排序模型是性价比最高的优化点很多团队做完向量检索就直接把Top-K结果扔给大模型效果不好就怪模型不行。其实中间加一个重排序模型效果提升非常明显。向量检索用的是双塔模型查询和文档分别编码速度快但精度有限。重排序模型用的是交叉编码查询和文档一起编码精度高但速度慢。所以典型架构是向量检索召回Top 50重排序精选Top 5再送给大模型。重排序模型的选型上开源的有BGE-Reranker系列效果已经不错。如果预算允许也可以用腾讯云提供的重排序服务省去自己部署和调优的麻烦。实测下来加不加重排序答案准确率能差20个百分点以上。3.3 提示词里的“防幻觉”约束怎么写才有效提示词防幻觉这件事我踩过不少坑。最早写的是“请基于以下知识回答不要编造”结果模型该编还是编。后来改成“如果以下知识中没有相关信息请直接回复‘根据现有资料无法回答该问题’”效果好了一些但模型有时候会把知识里不相关的内容硬凑成答案。真正有效的是结构化约束。提示词模板大概长这样你是一个企业客服助手。请严格根据【知识片段】回答用户问题。 【知识片段】 {retrieved_context} 【用户问题】 {user_query} 回答要求 1. 只使用【知识片段】中出现的信息。 2. 如果【知识片段】中没有足够信息回复“抱歉我暂时没有找到相关信息建议您联系人工客服”。 3. 不要对知识片段中的信息进行推测或扩展。 4. 回答控制在200字以内。这个模板的关键在于第3条——明确禁止推测和扩展。模型在生成时如果发现知识片段里没有直接答案会更倾向于触发第2条的兜底回复而不是自己编。还有一个技巧是在知识片段里标注来源。比如每个片段前面加上“来源产品手册第三章”这样模型在回答时如果引用了某个片段可以顺带说出处增加可信度。用户看到“根据产品手册第三章”会觉得这个回答有依据。4. 数字人对话的延迟从哪里来一次完整交互的耗时拆解4.1 从用户说话到数字人开口中间经过了什么用户对着数字人说一句话到数字人开口回应中间要经过这些环节语音识别ASR把用户语音转成文本。耗时取决于音频长度和ASR服务响应速度通常几百毫秒。意图分类和路由判断用户想干什么。如果用大模型做分类又是一次模型调用几百毫秒到一秒。知识检索向量检索加关键词检索加重排序通常200到500毫秒。大模型生成这是大头。生成一段200字的回复用7B模型大概1到2秒用更大的模型可能3到5秒。语音合成TTS把回复文本转成语音。流式TTS可以边生成边合成首包延迟可以压到几百毫秒。口型驱动和动画渲染根据音频生成口型动画并渲染。这部分在客户端做通常几十毫秒。加起来端到端延迟在2到5秒之间。用户能感知到的延迟阈值大概是1.5秒超过这个数就会觉得“卡”。所以优化目标是把首响应时间压到1.5秒以内。4.2 流式输出是压延迟的关键手段大模型生成是延迟最大的环节但也是最能优化的环节。核心思路是流式输出模型每生成一个token就立刻返回而不是等整段话生成完再返回。前端收到第一个token就开始渲染文字TTS收到第一句话就开始合成语音数字人就可以开始说话。腾讯的知识引擎产品支持SSEServer-Sent Events流式输出开发者在前端用EventSource接收配合AbortController可以在用户打断时取消当前生成。这个打断能力很重要——用户不想听数字人啰嗦的时候直接说“停”或者问下一个问题系统要能立刻中断当前TTS和动画切换到新请求。流式输出的实现细节上要注意分句策略。模型输出的token是连续的但TTS需要按句子合成。所以中间要有一个缓冲层按标点符号切分句子凑够一句就送给TTS。标点识别要处理省略号、破折号这些特殊情况否则会出现半句话就合成的尴尬。4.3 本地部署还是云服务延迟和成本的权衡如果数字人项目对延迟极其敏感比如直播场景可以考虑把大模型本地部署。本地部署的好处是网络延迟几乎为零而且可以针对特定任务做微调。但代价是硬件成本——跑一个7B模型至少需要一张16G显存的卡如果要跑更大的模型成本更高。腾讯云这边提供的是API调用方式按token计费。对于大多数企业客服场景API方式的延迟已经够用而且省去了运维成本。我的建议是POC阶段用API快速验证等业务量上来、延迟要求明确之后再评估是否值得本地部署。有个细节容易被忽略ASR和TTS的选型也会影响延迟。有些ASR服务是整段识别必须等用户说完才返回结果有些支持流式识别用户边说边出文字。后者可以让意图分类提前开始进一步压缩端到端时间。5. 落地时最容易翻车的三个地方5.1 知识库更新了数字人还在说旧答案这是最典型的翻车场景。企业改了产品价格知识库文档更新了但数字人回答的还是旧价格。原因通常是向量库没有同步更新。很多团队的知识入库是一次性的后续文档更新了没有触发重新切片和向量化。正确的做法是建立知识更新管线。文档管理系统里每次有变更自动触发一个工作流重新解析文档、重新切片、重新向量化、更新向量库。同时要保留版本记录万一新版本有问题可以回滚。还有一个隐藏问题是缓存。如果检索结果被缓存了知识更新后缓存没失效用户拿到的还是旧结果。所以缓存要设置合理的过期时间或者在知识更新时主动清除相关缓存。5.2 多轮对话里数字人“失忆”用户问“你们有哪些套餐”数字人列了三个。用户接着问“第二个多少钱”数字人回答“抱歉我没有找到相关信息”。这就是典型的上下文丢失。问题出在对话状态管理上。很多实现只把当前轮的用户输入送给检索和生成没有把历史轮次带进去。正确的做法是在生成时把最近几轮的对话历史拼进提示词同时在检索时把历史轮次中的实体提取出来作为检索的附加条件。但上下文也不能无限带。带太多会超出模型上下文窗口而且会引入噪声。通常保留最近3到5轮就够了更早的对话可以摘要成一句话带进去。5.3 数字人形象和语音不匹配这个问题在定制形象时特别常见。企业找了一个真人录了形象但用的是通用TTS音色结果数字人的口型跟声音对不上看起来像配音没对准。更严重的是如果真人形象是女性TTS用了男声那就更出戏了。解决方案是音色定制。腾讯云提供音色定制服务可以用真人录音训练专属音色。训练出来的音色跟真人形象的匹配度高口型同步也更自然。如果预算有限至少要做到性别匹配、语速匹配、情感风格匹配。6. 选型对比什么场景适合用这套组合什么场景不适合6.1 适合的场景知识密集、交互标准化、品牌形象有要求企业客服是这套组合最典型的适用场景。产品线多、知识更新频繁、用户问题重复率高知识引擎可以大幅降低人工客服压力。数字人形象则提升了品牌科技感比纯文字客服更有温度。政务咨询也适合。政策文件多、条款复杂、市民问题集中在少数高频事项上。知识引擎可以确保回答有政策依据数字人形象则让政务服务更有亲和力。展厅导览和培训陪练是另一类适合场景。展厅里数字人可以介绍展品、回答参观者问题培训场景里数字人可以扮演客户让销售练习话术系统根据对话质量打分。6.2 不适合的场景创意生成、情感陪伴、复杂操作如果你的场景是让数字人写诗、编故事、做创意策划那知识引擎反而是束缚。这类场景需要的是模型的创造力和发散能力不需要严格的知识约束。情感陪伴类场景也不太适合。用户需要的是共情和倾听而不是精准的知识问答。知识引擎的“只基于知识回答”约束会让数字人显得冷冰冰。复杂操作类场景比如让数字人帮用户完成一个多步骤的退款流程知识引擎只能回答“退款政策是什么”不能真正执行退款。这类场景需要的是Agent能力让模型调用API、操作数据库知识引擎只是其中一环。6.3 成本估算别只看API调用费很多团队做预算时只算了API调用费忽略了其他成本。我列一个大概的清单成本项说明量级参考数字人形象定制一次性费用按形象复杂度几千到几万音色定制一次性费用按录音时长几千到几万知识库建设文档清洗、切片、入库按文档量人力为主API调用大模型生成、ASR、TTS按调用量月付向量数据库存储和检索按数据量和QPS运维人力知识更新、效果调优持续投入实际项目里知识库建设和运维人力往往是大头API费用反而占比不高。所以选型时不要只盯着模型单价要算总账。7. 我踩过的坑和后来怎么绕过去的第一个坑是过度追求形象逼真。早期项目花了大价钱做高精度3D形象结果渲染延迟高用户等半天才看到数字人开口。后来换成2D卡通形象渲染压力小响应快用户反馈反而更好。形象精度和交互流畅度之间优先保流畅度。第二个坑是知识库贪多。把公司所有文档一股脑塞进去结果检索噪声大模型经常被不相关的内容带偏。后来做了知识分层核心知识产品价格、政策条款放主库辅助知识内部培训材料、历史工单放副库检索时优先主库主库没有结果再查副库。准确率明显提升。第三个坑是忽略兜底策略。知识引擎再强也有答不上来的时候如果没有兜底数字人就会卡在那里或者胡说。后来加了三级兜底知识库没有就转通用大模型闲聊闲聊也接不住就引导用户转人工人工不在线就留工单。用户至少不会觉得被晾着。第四个坑是不做A/B测试就上线。数字人对话效果很主观产品经理觉得好用户不一定觉得好。后来每次知识库更新或提示词调整都先拿10%流量做A/B测试看用户满意度、问题解决率、转人工率这些指标确认有效再全量。8. 后续可以怎么扩展从问答到办事现在这套组合主要解决的是“问答”问题但数字人的终局是“办事”。用户不只是想问“退款政策是什么”还想直接说“帮我退了这个订单”。这需要数字人具备工具调用能力——识别用户意图后调用后端API完成操作再把结果告诉用户。腾讯的知识引擎产品已经在往这个方向走支持配置API节点让对话流程可以调用外部服务。但实际落地时难点不在技术在权限和安全。数字人能不能直接操作订单系统需不需要二次确认操作失败了怎么回滚这些问题需要业务方和技术方一起定规则。另一个扩展方向是多模态。现在的数字人主要是语音和文字交互未来可以支持用户上传图片、数字人识别图片内容并回答。比如用户拍一张设备故障照片数字人识别出故障类型给出维修建议。这需要视觉模型和知识引擎的配合目前还在早期阶段。还有一个方向是数字人矩阵。一个企业可能同时需要客服数字人、培训数字人、导览数字人每个数字人的知识库和话术不同。知识引擎支持多知识库隔离可以为每个数字人配置独立的知识空间共用同一套形象和驱动管线。这样企业只需要维护一套数字人基础设施就能支撑多个业务场景。我个人在实际项目里的体会是数字人项目的成败三分在技术七分在运营。知识库要持续更新对话效果要持续调优用户反馈要持续跟进。上线只是开始后面的运营才是真正的考验。
返回列表