用好企业知识库是大模型应用破局的关键。
从 ChatGPT 最初发布算起,虽然大模型的热潮已经持续了一年多,但大部分时间依然停留在学术前沿和技术创新层面,深入具体场景实现产业价值的案例并不多见。
实际落地的种种挑战最终指向一个方向:行业知识。
面对各行各业的垂直场景,依靠网络公开信息和知识预训练的通用模型很难搞定准确性、稳定性、性价比等问题。如果在外部实时信息搜索之余辅以强大的专门的企业知识库,让模型对行业知识的理解大大增强,效果自然更好。
这就好比我们熟悉的「开卷考试」模式,人类大脑的「内存容量」越强越好,但终归有上限,而带进考场的参考资料正如外接「硬盘」,让考生不需要去背诵繁杂的知识点,而是可以将精力更多地花在理解知识的本质逻辑上。
在 12 月 19 日举办的 Baichuan2 Turbo 系列 API 发布活动上,百川智能创始人、CEO 王小川做了一个更精准的类比:大模型就像计算机的 CPU ,通过预训练将知识内化在模型内部,然后根据用户的 Prompt 生成结果,上下文窗口可以看做计算机的内存,存储了当下正在处理的文本,而互联网实时信息与企业完整知识库共同构成了大模型时代的硬盘。
这些最新的技术思考,已经融入到百川智能的大模型产品之中。
百川智能正式开放了基于搜索增强的 Baichuan2-Turbo 系列 API ,包含 Baichuan2-Turbo-192K 及 Baichuan2-Turbo 。该系列 API 不仅支持 192K 的超长上下文窗口,还增加了搜索增强知识库的能力,所有用户均可上传特定文本资料构建自身专属知识库,根据自身业务需求构建更完整、高效的智能解决方案。
与此同时,百川智能也升级了官网模型体验,正式支持 PDF 文本上传以及 URL 网址输入,普通用户均可通过官网入口体验长上下文窗口和搜索增强加持后的通用智能水平的飞升。
大模型应用的关键在于用好企业数据,对于这一点,领域内从业者都感受非常深刻。
对于企业自身来说,过去数年在数字化建设过程中,大量的高价值数据和经验被沉淀下来,这些自有数据构成了企业的核心竞争力,也决定了大模型落地的深度和广度。
以往,实力雄厚的企业多在预训练阶段利用自身数据来训练大模型,但这种方式所需要的时间和算力成本是巨大的,也需要配备专业的技术团队。也有企业团队选择引入业界领先的基础大模型,使用自身数据进行后训练(Post- Train)和有监督微调(SFT),一定程度上弥补了大模型建设周期过长和领域知识匮乏的缺点,但仍然无法解决的是大模型落地的幻觉和时效性问题。无论是预训练(Pre-Train)还是后训练(Post- Train)和有监督微调(SFT)的方式,每更新一次数据都要重新训练或微调模型,并且无法保证训练的可靠性和应用的稳定性,多次训练后仍会出现问题。
这意味着,大模型落地需要一种更高效、精准、实时的数据利用方式。
近期,扩展上下文窗口和引入向量数据库的方法被寄予厚望。从技术层面来看,上下文窗口所能容纳的信息越多,模型在生成下一个字时可以参考的信息就越多,「幻觉」发生的可能性就越小,生成的信息就越准确,因此这项技术是大模型技术落地的必要条件之一。向量数据库则为大模型外接了一个「存储」。相对于单纯扩大模型规模而言,引入外挂数据库能够让大模型在更广泛的数据集上回答用户问题,以非常低的成本提高模型对各种环境和问题的适应能力。
只不过,每一种方法都存在局限,大模型无法依靠单个方案来突破落地挑战。
比如,上下文窗口过长时存在的容量限制、成本、性能、效率等问题。首先是容量问题,128K 的窗口最多可以容纳 23 万汉字,也不过是一个 658KB 左右的文本文档。另外是计算成本问题,长窗口模型的推理过程需要消耗大量 token 造成的成本。再从性能上看,由于模型的推理速度与文本长度正相关,即使是运用了大量的缓存技术,长文本也会导致性能的下降。
对于向量数据库,由于其查询和索引操作比传统的关系型数据库更复杂,这将给企业带来更多的计算和存储资源压力。而且国内的向量数据库生态系统相对薄弱,对于中小企业来说存在相当高的开发门槛。
在百川智能看来,只有将长窗口模型与搜索 / RAG(检索增强生成)相结合,形成「长窗口模型 + 搜索」的完整技术栈,才能真正实现高效、高质量的信息处理。
在上下文窗口方面,百川智能在 10 月 30 日推出了当时全球最长上下文窗口模型 Baichuan2-192K,一次可输入 35 万汉字,达到了业界领先的水准。同时,百川智能将向量数据库升级为搜索增强知识库,使得大模型获取外部知识的能力大大增强,其与超长上下文窗口的结合可以连接全网信息以及全部企业知识库,从而替代绝大部分的企业个性化微调,解决了 99% 企业知识库的定制化需求。
这样一来,企业获益显而易见,不仅成本大大降低,还能更好沉淀垂直领域知识,使得企业专有知识库这一核心资产持续增值。
一方面,在不修改底层模型本身的情况下,通过增加内存(即更长的上下文窗口)和借助搜索增强(即访问互联网实时信息和从专业领域知识库中获取专家知识)强强联合的方法,大模型可以将内化知识与外部知识融会贯通。
另一方面,搜索增强技术的加入,能更好地发挥长上下文窗口优势。搜索增强技术能让大模型精准理解用户意图,在互联网和专业 / 企业知识库海量的文档中找到与用户意图最相关的知识,然后将足够多的知识加载到上下文窗口,借助长窗口模型对搜索结果做进一步的总结和提炼,更充分地发挥上下文窗口能力,帮助模型生成最优结果,从而实现各技术模块之间的联动,形成一个闭环的强大能力网络。
两种方法的结合,能够将上下文窗口的容量拓展到一个全新的高度。百川智能通过长窗口 + 搜索增强的方式,在 192K 长上下文窗口的基础上,将大模型能够获取的原本文本规模提升了两个数量级,达到 5000 万 tokens 。
「大海捞针」测试(Needle in the Heystack)是由海外知名 AI 创业者兼开发者 Greg Kamradt 设计的,业内公认最权威的大模型长文本准确度测试方法。
为验证长窗口 + 搜索增强的能力,百川智能采样了 5000 万 tokens 的数据集作为大海(Haystack),并使用多个领域的问答作为针(Needle)插入大海(Haystack)不同位置中,并分别测试了纯 embedding 检索和稀疏检索 + embedding 检索的检索方式。
对于 192K tokens 以内的请求,百川智能可以实现 100% 回答精度。
而对于 192K tokens 以上的文档数据,百川智能结合搜索系统,将测试集上下文长度扩展到 5000 万个 tokens,分别评测了纯向量检索和稀疏检索 + 向量检索的检索效果。
测试结果显示,稀疏检索 + 向量检索的方式可以实现 95% 的回答精度,即使在 5000 万 tokens 的数据集中也可以做到接近全域满分,而单纯的向量检索只能实现 80% 的回答精度。
同时,在博金大模型挑战赛 - 金融数据集(文档理解部分)、MultiFieldQA-zh 和 DuReader 三个测试集上,百川智能搜索增强知识库的得分均领先 GPT-3.5、GPT-4 等行业头部模型。
「长窗口模型 + 搜索」固然可以突破大模型在幻觉、时效性和知识等方面的瓶颈,但前提是先要解决二者的结合难题。
二者能不能完美融合,很大程度上决定了模型最终的使用效果。
尤其是在当下,用户信息需求表达方式正在发生潜移默化的变化,其与搜索的深度结合在各个环节都对百川智能提出了新的考验。
一方面,在输入方式上,用户的问题不再是一个词或短句,而是转变成了更自然的对话互动甚至是连续多轮对话。另一方面,问题形式也更加多元,并且紧密关联上下文。输入风格上更加口语化,输入问题趋于复杂化。
这些在 Prompt 方面的变化与传统基于关键词或者短句表达搜索逻辑并不匹配,如何实现二者对齐是长窗口模型与搜索结合要解决的第一个难题。
为了更精准地理解用户意图,百川智能首先利用自研大模型对用户意图理解进行微调,将用户连续多轮、口语化的 Prompt 转换为更符合传统搜索引擎理解的关键词或语义结构,呈现出来的搜索结果也更精确和更相关。
其次,针对用户实际场景中日益复杂的问题,百川智能不仅借鉴了 Meta 的 CoVe(链式验证)技术,将复杂 Prompt 拆分为多个独立且能并行检索的搜索友好型查询,让大模型对每个子查询进行定向知识库搜索,最终提供更准确详实答案的同时减少幻觉输出。此外,还利用自研的 TSF(Think Step-Further)技术推断并挖掘出用户输入背后更深层的问题,更精准、全面地理解用户意图,引导模型输出更有价值的答案。
另外一个难题与企业知识库本身相关。用户需求与搜索查询的匹配程度越高,大模型的输出结果自然更好。但在知识库场景中,模型要想进一步提升知识获取的效率和准确性,则需要更强大的检索和召回解决方案。
知识库场景有其独特的特征,用户数据通常是私有化的,利用传统的向量数据库无法很好保证用户需求与知识库的语义匹配。
为此,百川智能自研了 Baichuan-Text-Embedding 向量模型,在超过 1.5T tokens 的高质量中文数据上进行预训练,并通过自研损失函数解决对比学习方式依赖 batchsize 的问题。效果很显著,该向量模型登顶了当前最大规模、最全面的中文语义向量评测基准 C-MTEB,并在分类、聚类、排序、检索和文本相似度 5 个任务及综合评分上取得领先。
虽然当前构建大模型知识库的主流方法是向量检索,但单纯依靠它显然是不够的。究其原因,向量数据库的效果对训练数据覆盖的依赖很大,在未覆盖的领域泛化能力会大打折扣,这无疑给数据私有化知识库场景造成了不小的麻烦。同时,用户 Prompt 与知识库中文档长度存在差距,二者不匹配也为向量检索带来挑战。
因此,百川智能在向量检索基础上引入稀疏检索和 rerank 模型,形成向量检索与稀疏检索并行的混合检索方式,大幅提升了目标文档的召回率。用数据说话,这种混合检索方式对目标文档的召回率达到了 95%,而绝大多数开源向量模型的召回率低于 80%。
此外,大模型在回答问题过程中也会因引用资料不准确以及与大模型不匹配,加重自身的幻觉现象。
对此,百川智能在通用 RAG 的基础上首创 Self-Critique 大模型自省技术,让大模型基于 Prompt、从相关性和可用性等角度对检索回来的内容自省,进行二次查看,从中筛选出与 Prompt 最匹配、最优质的候选内容,让材料的知识密度和广度更上一个台阶,还能降低检索结果中的知识噪声。
沿着「长窗口模型 + 搜索」技术栈路线,百川智能凭借自身在搜索领域的技术积累,尤其是业界领先的向量检索与稀疏检索的配合,解决了大模型与用户 Prompt、企业知识库结合中需求不匹配的痛点,让自身搜索增强知识库的能力凸显出来,对于大模型更高效地赋能行业垂直场景真可谓如虎添翼。
短短一年间,大模型的发展超乎人们的想象。我们曾经展望「行业大模型」能够带来千行百业的生产力释放,但行业大模型受到专业技术人才和算力支撑等因素制约,更多中小企业更无法在这波大模型浪潮中收获红利。
由此可见,走出「从产品到落地」这一步,的确比当初的「从技术到产品」更难。
在轰轰烈烈的百模大战到定制化大模型的比拼中,技术经历了一轮又一轮迭代,从最开始基于预训练做行业大模型、基于后训练或 SFT 做企业专属模型,到之后利用长窗口、向量数据库等技术开发专属定制化模型,虽然都推动大模型离理想中的「全知全能」更近了一些,但在广泛行业垂直场景中的应用落地还无法真正实现。
百川智能打造「大模型 + 搜索」技术栈,在凭借长窗口提升模型基础性能的同时,利用搜索增强更高效、全面地连接领域知识和全网知识,提供了一种更低成本的定制化大模型之路,率先迈出实现「全知」的一步。我们有理由相信,这将引领大模型产业落地走向全新阶段。
文章来自于微信公众号 “机器之心”,作者 “机器之心编辑部”
【开源免费】FASTGPT是基于LLM的知识库开源项目,提供开箱即用的数据处理、模型调用等能力。整体功能和“Dify”“RAGFlow”项目类似。很多接入微信,飞书的AI项目都基于该项目二次开发。
项目地址:https://github.com/labring/FastGPT
【开源免费】graphrag是微软推出的RAG项目,与传统的通过 RAG 方法使用向量相似性作为搜索技术不同,GraphRAG是使用知识图谱在推理复杂信息时大幅提高问答性能。
项目地址:https://github.com/microsoft/graphrag
【开源免费】Dify是最早一批实现RAG,Agent,模型管理等一站式AI开发的工具平台,并且项目方一直持续维护。其中在任务编排方面相对领先对手,可以帮助研发实现像字节扣子那样的功能。
项目地址:https://github.com/langgenius/dify
【开源免费】RAGFlow是和Dify类似的开源项目,该项目在大文件解析方面做的更出色,拓展编排方面相对弱一些。
项目地址:https://github.com/infiniflow/ragflow/tree/main
【开源免费】phidata是一个可以实现将数据转化成向量存储,并通过AI实现RAG功能的项目
项目地址:https://github.com/phidatahq/phidata
【开源免费】TaskingAI 是一个提供RAG,Agent,大模型管理等AI项目开发的工具平台,比LangChain更强大的中间件AI平台工具。
项目地址:https://github.com/TaskingAI/TaskingAI
【开源免费】MindSearch是一个模仿人类思考方式的AI搜索引擎框架,其性能可与 Perplexity和ChatGPT-Web相媲美。
项目地址:https://github.com/InternLM/MindSearch
在线使用:https://mindsearch.openxlab.org.cn/
【开源免费】Morphic是一个由AI驱动的搜索引擎。该项目开源免费,搜索结果包含文本,图片,视频等各种AI搜索所需要的必备功能。相对于其他开源AI搜索项目,测试搜索结果最好。
项目地址:https://github.com/miurla/morphic/tree/main
在线使用:https://www.morphic.sh/
【开源免费】XTuner 是一个高效、灵活、全能的轻量化大模型微调工具库。它帮助开发者提供一个简单易用的平台,可以对大语言模型(LLM)和多模态图文模型(VLM)进行预训练和轻量级微调。XTuner 支持多种微调算法,如 QLoRA、LoRA 和全量参数微调。
项目地址:https://github.com/InternLM/xtuner
【开源免费】LangGPT 是一个通过结构化和模板化的方法,编写高质量的AI提示词的开源项目。它可以让任何非专业的用户轻松创建高水平的提示词,进而高质量的帮助用户通过AI解决问题。
项目地址:https://github.com/langgptai/LangGPT/blob/main/README_zh.md
在线使用:https://kimi.moonshot.cn/kimiplus/conpg00t7lagbbsfqkq0