蔚来知识平台的建设与应用
在相当长的一段时间里,蔚来公司内部散落着多个独立的知识库系统。它们彼此之间“老死不相往来”,活脱脱一个个数据孤岛。这就导致了一个问题:你真的很难找到想要的知识,好不容易找到了,也拿不准它到底是不是最新的、最完整的。这种体验,用一句话概括就是“既找不着,又不放心”。
正是在这个大背景下,一个公司级别的知识项目应运而生。目标很明确:要打破这些孤岛,构建一个真正统一的平台,让知识流动起来。具体要实现什么?说起来有五个关键点:
第一,从公司整体的高度去指导和整合各业务部门的知识资产,而不是各搞各的。
第二,打造一个好用的、弹性的知识管理工具,不能让工具成为新的负担。
第三,制定一套公司级的知识资产规范,让大家有章可循。
第四,想清楚怎么高效地应用和推广这些知识。
最后,也是最前沿的一点,要能支持大模型的知识和语料需求。
整体架构设计
先看整体架构。乍一看有点复杂,但分层理解就清晰多了。
最底下那层,我们叫它“原始材料层”。说白了,就是公司内部各个知识库系统里的原始语料。就像前面说的,它们过去是数据孤岛,现在成了最基础的资料来源,涵盖了生产、研发、质量等各个领域。
在这些原始材料之上,是一套统一的知识生产运营工具。它能做知识接入、生产加工这类活儿。不管是飞书文档、富文本文档,还是PDF、Word文件,都能通过这套工具整合进来。这个过程里包括了编辑、审核、加工、分析等一系列功能,目的就是把零散的原始材料,转化成统一的知识资产。
根据知识的密级,这些资产又分成两大类:公开知识与企业内部知识。公开知识还能再细化成结构化和非结构化两类;企业内部知识则涉及培训、产品研发、销售、质量管理、生产制造等方方面面。
再往上,是一系列知识服务,包括内容服务和大模型需要的语料服务。内容服务这块,主要是知识的查找、查看和一些交互功能。找知识的方式也挺多,全文检索、内容检索、向量检索、目录索引、重点推送都有,同时支持富文本内容查看和推荐内容展示。自然,也要有与用户互动的环节,确保知识能真正传递和应用。
经过这么一套流程,最终就形成了成品知识库。比如客服产品、销售产品这类知识库,形态包括问答库、成品推文、操作手册等。基于这些成品,就能构建出各种各样的知识应用,比如知识门户、知识管理后台、AI应用等等。与此同时,整个平台还能支持全公司范围的智能化服务,像NIO APP、Nomi、客服系统这些,背后都是由这个知识平台在支撑。
当然,知识平台也得为大模型服务。通过提供语料来支持模型的训练和微调,在基座大模型上进行扩展,打造各领域的专业模型。
最后,还得有一条反馈链路。知识在应用过程中如果发现有问题,比如内容错了或者过期了,就能通过这条链路反馈回原始生产环节,进行二次生产和加工,形成一个闭环。同时,一套完整的权限管理体系,包括用户角色设定等安全措施,也是必不可少的,得保证知识的安全和防止信息泄露。
接下来看异构知识的结构化加工系统。知识的形态多种多样,从各种非结构化的信息到最终可应用的知识,中间的路可不短,是一个复杂且链路挺长的加工过程。
纵向来看,是知识加工的具体步骤;横向是加工流程和配套建设的知识工具。第一步,先从知识需求分析开始,明确需要什么内容,建立起需求地图。然后进入知识生产运营阶段,平台提供编辑、审核等一系列功能支持。为了实现这些功能,就得开发出相应的生产运营工具。
经过以上流程生产出来的知识,以及统一集成的知识,都会被整合进知识平台。为了实现这个目标,会采用多种集成方式,比如HTTP、MR、数仓等手段,把公司内部各个知识孤岛里的资源全面集成起来。这些知识的载体可以是PDF文档、飞书文档、代码或网页;形态包括文本、图片、表格、视频等。为了支持这个结构化加工过程,还得开发一套统一的结构化加工工具。这个工具能把知识转化成文字,并进行模块化处理,然后执行切分和信息抽取。具体来说,文本会根据一定规则被切成多个片段,再进行标注和摘要生成,最后统一录入数据库。这个过程会用到好几种切分方法和信息抽取技术。
最终,知识平台实现了多方面的应用消费,比如知识搜索和知识问答。这些功能会根据不同的知识空间来实施。应用消费环节产生的反馈信息,回流到知识需求模块,更新需求地图,这就形成了一个完整的闭环。
最后是企业内部知识智能检索架构,就是大家常说的RAG。
在蔚来,实现RAG的路线是这样走的:每次知识文档更新,系统先进行内容抽取服务,把文档里的文本部分提取出来。接着执行知识切片服务,然后把切好的内容做向量化处理,最终存进向量数据库。到了在线服务阶段,用户一提问,系统先对查询进行改写,然后把改写后的问题也向量化,跟向量数据库里的知识切片做匹配。匹配到的相关知识点会被重新排序,确定最相关的那些。最后,通过大模型的提示词工程,使用企业专属的大模型生成最终答案,包括答案文本和引用的知识点,形成一个完整的回答返回给用户。
在整个语料加工过程中,除了向量数据库的存储,这些资料还用于支持大模型的服务,比如语料微调和评估,用来构建企业专属的大模型。
传统方式下,用户提个问题,得自己去搜、去看一堆知识文档,才能找到想要的信息。现在有了RAG流程,用户一问,直接拿到答案和相关的知识点。这时间省得可不少,大模型提供的回答基本能满足需求,让用户不用再点开链接去翻看详细内容。整体算下来,大约能省40%的时间,这效率提升是很明显的。
挑战与解决思路
理论说完了,实际运行起来,总会遇到各种问题。下面说说几个主要的挑战和解决办法。
第一个挑战,知识问答系统的准确性。
专业问题和敏感问题,我们采用关键词检索来处理。因为RAG技术对专业术语的理解可能不够好,容易答非所问或者不够精准。对于需要高度专业性的问题,直接通过关键词检索引导用户到具体的知识点,反而更管用。同样,敏感问题,比如销售政策这种容错率为零的场景,也必须用关键词检索来保证准确。
除了这两类,剩下的都归为普通问题。普通问题又细分成三种处理类型:如果向量检索后知识库里有充足的相关信息,系统就正常生成答案;如果发现相关信息不足,也就是匹配度低或者得分不高,系统会给个风险提示,告诉用户这回答可能有误差,请谨慎判断;如果完全找不到相关信息,系统就退化为使用大模型做普通回答,并且明确提示用户,这不是基于知识库内容生成的答案。
通过这种分类处理,我们搭建了一套比较完整的知识问答体系,既提高了回答的准确性,也照顾了用户的满意度,同时又确保敏感信息的处理符合高要求。
第二个挑战,知识点的访问权限控制。
为了应对这个挑战,我们用了一套基于角色的权限控制方案。搭建了一个权限配置后台,通过用户角色和权限设置来管理访问控制。每个用户根据其职位和职责被赋予特定角色,每个角色绑定了特定的权限范围。在此基础上,构建了一套权限服务体系,用来查询用户当前的角色和所拥有的权限。在知识搜索和问答场景里,系统会根据用户的当前角色,在向量数据库中匹配其权限范围内允许访问的知识内容。只用这些有权限的知识来做智能检索和问答,就能确保回答的内容严格限制在用户有权访问的范围内,从而保证数据的安全和保密。
第三个挑战,多领域的智能问答服务。
思路是这样的:在每个问题提出时,提问者会在其特定场景下限定自己的知识库范围。知识平台上建立了多个独立的知识库,研发、生产、销售等领域各有各的。比如,研发领域的智能助手提问题,检索和回答就只在研发知识库内进行。然后进入全公司统一的智能回答链路。在给出最终答案前,再根据特定领域的特点对回答风格进行调整,让它符合这个场景的要求。比如研发领域,我们就设定一种符合研发风格的回答模式,让答案既准确又贴合实际。
通过限定知识库范围和定制化回答风格,就可以满足不同领域的个性化要求。同时,统一的智能问答服务又实现了广泛的复用性,避免了重复建设。
第四个挑战,高并发问题。
为了解决这个问题,我们加入了高并发的处理。
首先引入了一个知识生产流程,包括知识变更的影响问题计算。知识点更新时,系统会计算哪些问题的回答会受影响,然后对这些问题的答案进行统一更新。这个过程走传统的RAG流程,保证答案的准确和一致。更新后的答案会存到知识问答缓存数据库里。一旦命中缓存中的问题,用户就能在极快的时间里拿到答案,不需要再次计算。因为有实时更新机制,缓存库里的答案基本保持最新,延迟控制在秒级。
基于这个缓存服务,我们设计了三种智能问答机器人:No Cache、Only Cache 和 Cache First。
No Cache
Only Cache
Cache First
未来展望
基础打好了,下一步就是往前走了。有几个方向正在推进。
AI 辅助知识理解。
AI 辅助知识创作。
多模态能力。
知识类型扩展。
Q&A
Q1:如果是专业问题或敏感问题,没有用语言模型推理,是基于全文检索吗?
A1:是的。对于专业问题和敏感问题,系统会退化为基于全文检索。这类问题不适合通过语言模型推理处理,用全文检索更准确、更安全。
Q2:缓存库里的答案为什么能保持准确?需要人工专家标注吗?
A2:缓存库的准确依赖于三个不变的因素:用户的问题、知识库的内容和背后的大模型。只要模型和问题没变,唯一会影响答案准确性的就是知识库的更新。知识点变了时,我们会及时更新缓存中的答案。所以,不需要每次依赖人工专家标注,而是通过自动化机制来保证准确。