一、背景
来自 GPT4 的技术报告中指出,GPT4 仍处于通用人工智能(AGI)的初级阶段。而目前研发中的 GPT4.5 或 GPT5 则已展现出了 AGI 的某些特征。
GPT4 的出现给研究和工业界带来了巨大冲击,其显著特点是拥有强大的底座知识能力,超越了传统知识图谱,蕴含丰富的世界知识和人类常识。它能够解答各种复杂问题,包括脑筋急转弯等。对专注于知识图谱的从业者来说,常识一直是知识领域最难解决的问题,但大模型似乎轻松解决了这一问题。因此,我们不禁要问:大模型是否终结了知识工程呢?
大模型是目前唯一能利用人类常识进行开放推理的技术。传统常识知识图谱在灵活应用常识于开放推理场景上受限,而大模型则能克服这一限制。
大模型具备开放世界的理解能力,能轻松处理具体场景问题,例如,在给大模型药品说明书的情况下,面对一些具体场景的问题,大模型能轻松推理并回答。
大模型不仅限于单步问答,还能连续执行动作,形成 Agent。通过 Agent,大模型能一步步执行,去处理更复杂的一些任务,如编写代码或在 Minecraft 中收集原材料、制作工具等。
尽管大模型具有独特的甚至不可替代的优点,但我们也面临着大模型难以在领域落地的实际挑战。为什么这么强的大模型现在不能很好地被应用呢?我们也尚未看到大模型引领的工业革命的进行。这主要是由于推理成本、能力缺陷和难以协同三方面的挑战。
挑战一:大模型的推理成本限制其应用。构建和使用大模型都需要大量资源,且在实际应用中大模型的推理速度相对较慢,即使是经过优化的版本,处理文本分析仍需数秒。这与传统应用场景如文档搜索和索引的速度相差甚远,后者能在一秒内处理数十甚至上千篇文档。此外,随着大模型上下文长度的增加,如达到几十万 token,处理整个文档库将需要巨大的计算资源,导致推理成本进一步上升。这种高成本使得大模型在需要大规模重复应用的场景中变得不切实际。尽管有些企业愿意投入更多成本,但即使采购了大量计算资源并采用最新的推理技术,大模型是否能够真正完成任务并创造价值呢?
挑战二:大模型在复杂决策场景仍有缺陷。尽管大模型在聊天机器人等开放式闲聊场景中表现出色,但在工业、商业等严肃场景中,如替代程序员编写代码,大模型目前仍显不足。从开放式闲聊到复杂决策,大模型还有很长的路要走。目前的大模型,如 GPT-3 或 GPT-4,无法直接应用于特定场景,仍需要用户通过多次交互和提供 prompt 来引导。尽管许多工作正致力于提升大模型的能力,有可能发布的 GPT-4.5 或 GPT-5 等新一代模型能进一步提升性能,但即便如此,是否足够满足实际应用需求仍存有疑问。
挑战三:大模型在企业应用中需要协同能力和可控性。即使招聘了天才员工,也需要时间适应企业流程。同样,大模型也需要时间与企业现有流程相融合。即使大模型有能力重塑整个企业流程,但这也可能带来不稳定和风险,因此直接替换原有系统并不现实。实际上,人们期望大模型能够在人机协作中发挥作用,嵌入现有系统,辅助升级特定环节,而非全面替代。因此,大模型与现有业务人员或系统的对接能力,即其协同能力和可控性,显得尤为重要。在实际应用中,我们更看重大模型能否在特定环节上协同工作,而非仅仅追求其在某些测试中的高分表现。
二、大模型的领域适配
第二部分是关于大模型领域适配的研究。当前,领域大模型如医疗大模型、金融大模型等备受关注。持续预训练是构建这些模型的基本方法,虽然简单且开源,但数据问题至关重要。在选择训练数据时,面临两个主要挑战:一是数据质量,即什么样的数据是好的;二是数据配比,即如何平衡不同来源的数据。如维基百科与网络小说在数量和性质上存在显著差异,配比比例难以确定。过分依赖单一数据源可能导致模型出现偏差。如仅依赖维基百科可能导致模型缺乏娱乐性和现实感,而过多使用网络小说可能导致模型产生不符合实际情况的认知。
在领域大模型的训练中,数据的选择是一个关键问题。我们将数据分为三层:第一层是基础且不必要的数据,这些数据对于大模型来说已经足够了解,无需再重复训练;第二层是过于细节且不必要的数据,如实时股价等,这些数据对于人类专家来说也无需背诵,不适用于训练大模型;最重要的是中间层,即高价值行业数据,这些数据对于微调大模型至关重要。然而,这些行业数据数量稀少且收集成本高,导致精品语料占比小,而“垃圾”语料却占据大部分。尽管如此,两者都是不可或缺的。
针对数据选择的问题,我们提出了一个创新的解决方案。在训练大模型时,无论是预训练还是微调,我们为语料添加了一个特殊的标记,以指示其来源,如“维基”、“新闻”、“小说”或特定网站(如“起点”)。这样,模型就能像人一样区分不同来源的数据,从而更加准确地评估其可靠性。实验证明,这种简单的“来源增强”方法在许多小任务中的表现,甚至超越了未增强的更大规模的模型。
我们还有一些特别的发现。在下游任务中,如果我们提供任务相关信息,如论文分析或科幻小说创作,模型的表现会进一步提升。即使没有这些信息,经过来源增强的模型本身也优于未增强的模型。关于来源标签的选择,我们发现具体的标签表达方式并不重要。即使使用抽象字符对语料进行分类,也能增强模型效果。然而,带有语义的标签,尽管表达方式没有严格规定,却能带来更显著的增强效果。
我们正在研究一个工作,就是将语料进行系统化分类,类似于知识图谱中的整体分类。尝试使用这些分类来预训练模型,希望获得更强大的能力。目前,我们已经初步建立了训练语料分类体系,并取得了一些积极的结果。这些分类不仅存在于语料中,而且确实能有效增强模型的能力。
三、大模型的能力提升
接下来探讨领域微调和能力提升。我们强调大模型协同能力的重要性,而不仅仅是模型在 MMLU 等考试题中的表现。首要工作是提升大模型理解复杂指令的能力。这与 GPT-4 Turbo 的发布会中提到的类似,即确保模型能准确输出可解析的 JSON 格式。我们发现,模型能否给出固定、可对接的表达至关重要。因此,我们需要评估并提升模型理解复杂指令的能力。这些指令可包括各种特定要求,如格式约束(如 JSON 输出)、内容约束(如简短或详细回答)等。通过将不同类别的特殊要求自由组合来测试模型是否能遵循这些复杂指令。这样,大模型不仅能作为聊天机器人,还能更准确地满足用户在创作文章或作为 Agent 的执行器时的各种需求。
我们将复杂指令分为 8 个维度,通过自动化组合这些维度生成数据。在模型评估方面,我们更关注模型是否满足要求而非其智商或输出质量。由于是否符合要求可以通过程序自动判定,我们能够实现自动评估的效果。
当遇到复杂指令,如告诉 Agent 一个复杂指令:从特定行为中选择并以 JSON 格式输出,同时避免多余推理。可以发现,每一个任务都能通过严谨程序进行判别,从而避免了精确匹配、模糊匹配以及大模型打分的局限,实现了更精准的能力评估。然而,最终的结果并不理想。在面临 1—3 条复杂指令时,大多数模型能完全遵从;而一旦指令数量增至五条或更多,大部分模型都会遗漏或无法完成部分指令。
在工业场景中,大模型的数学能力虽受关注,但其在量纲理解上表现出了局限性。特别是在工业场景中单位至关重要,文档与实验报告中的单位错误会导致分析错误放大至 100 或 1000 倍。
我们的工作基于物理学中的量纲定义,构建了包含量纲组合知识的语料库,并据此预训练模型。通过这种方法,预训练出的模型在带有单位量的推理任务中表现出色,甚至超越了当时 GPT4 的性能。
接下来的工作专注于提升大模型的自我纠正能力。对于复杂的专业问题,大模型不应仅提供一次性的答案,而应像专家一样进行思考和修正。因此,我们设计了一个大模型“内在的自我纠正”机制,设计构造自我纠正数据集,通过指令微调,并提出了部分答案掩码(PAM)训练方法,激发大模型在问答时进行自我迭代修正。具体来说,将数据中的问答对[Q/A]扩展为[Q/A1,A2,A3],并确保每次迭代中的答案[A2]优于[A1],[A3]优于[A2]。通过微调大模型,使其具备自我纠正的能力,即当给出初始答案[A]后,通过追问得到更完善的答案[A1、A2]。这种自我增强方法不仅提高了答案的正确率,而且将会应用于更大规模的模型训练中。
在命令生成领域也应用了自我纠正能力。考虑到在使用命令行时,用户可能无法一次性输入正确的命令,而是需要根据报错信息进行修改和调整。我们借鉴了这一机制,将其应用于大模型中,使大模型能够基于报错信息或其他反馈进行自我修正,从而提高命令生成的准确率。
四、大模型的协同工作
最后来讨论一下大模型的协同工作能力。协同能力的重要性超越了大模型本身智能水平或特定任务的评分。我们判断,当前大模型能力仍不足以完全替代目前较为成熟的知识工程流程。大模型追求的是“端到端”的解决方案,即从原始文档和用户问题直接输出答案。然而,传统的知识工程流程更为复杂,包括检索、知识抽取、构建知识库、检测一致性、调整知识库以及进行知识检索和推理等多个步骤。
大模型虽功能强大但成本高昂,并非所有流程都需其参与。从数据层面和应用特点出发,可以将任务分类。对于大部分任务,传统BERT 模型即可实现 80% 至 90% 的准确率,仅在处理极端复杂句子时,大模型才是不可或缺的。对于大量语料的知识抽取和初步验证,传统模型因其高效和低成本而更为合适。然而,在知识库纠错和常识检测等需要开放性和高级理解的环节,大模型则成为了唯一选择。因此,大模型与小模型应协同工作,如上图中的两个典型例子,要根据任务需求去适配并执行一个流程。
为什么要这样设计?关键要明确大模型适用的任务。大模型的作用主要体现在三个方面:首先,它拥有不可替代的常识验证和推理能力;其次,作为高准确率的保底或教师方案,大模型能用于构建数据或指导小模型;最后,大模型是目前最强大的 Few-shot Learner,支持通过 Few-shot 方案进行微调。
第一个工作针对知识抽取,虽是一个传统的 NLP 任务,但可以发现大模型在知识抽取中面临特定挑战。不同于其他 UIE(通用信息抽取)方法,大模型关注于对齐能力而非单纯的抽取能力。例如,在 NER 任务中需要决定“中山公园”中的“孙中山”是否应被抽取为实体,这取决于数据集和应用场景。为了应对这种细微差别,我们微调了一个抽取模型底座,该底座集成了多种抽取任务。然而,这个模型底座在使用前需要针对应用场景进行对齐,确保其准确捕捉特定需求。在新闻人物信息抽取任务中,仅使用 300 条数据微调达到了 92% 的准确率;而使用 ChatGPT 仅有 60% 准确率,这主要由于 prompt 很难准确描述抽取的具体细节要求。
第二个工作是针对一个综合的知识抽取任务,融合了实体抽取、实体对齐和实体关系抽取等多个子任务。这些子任务在大小模型上的适应性各不相同。通过适当选择,部分使用大模型,部分使用小模型,能够实现既超越大模型又优于单独小模型 SOTA 的结果。
第三个工作是利用大模型进行常识验证,通过构建特定的 prompt 将相关证据组合,让大模型判断其中是否存在常识错误。这种方法超越了传统规则推理的局限,能够提供更为准确的推理结果。
大模型在特定领域应用中并非能力不足,而是缺乏与领域的协同性。对于特殊需求,如 NL to SQL,需要通过微调使大模型适应特定任务。例如,在理解“基金表现最好”时,若未被告知其特定业务含义,大模型可能不准确。因此,需要在特定领域微调大模型。我们的做法是反向利用表格生成自然语言描述,再通过业务和产品经理的规则修正,最后训练模型以学习这些特定知识。除非面对极端复杂问题,否则大部分大模型的智能水平是足够的,关键在于任务协同和与现有流程的对齐。
尽管在大模型上下文长度非常长的情况下,检索后回答 RAG 在当前大模型时代仍显重要。由于成本考虑,不是所有问题都适合用大模型处理大量 token。目前常用下拉数据库或单数据缺口方法,但在专业领域需要精确匹配。稀疏检索(如 BM25)在常见精确问题中效果好但缺乏语义泛化性,而稠密检索(如 BGE)虽效果好但易召回语义相近但不准确的内容。因此,我们致力于融合这两种方法,根据问题中是否含有专有名词来决定检索策略。若问题中专有名词分数高,则增加稀疏检索比重,来提升领域任务的检索效果。
最后关于 RAG,聚焦于 AIGC 的可靠性问题。当前,即使大模型展现出高度智能,人们对其答案的准确性仍持怀疑态度,形成了所谓的“狼来了”现象。因此,在专业领域,我们强调只有可溯源的结果才能赢得用户的信任。RAG 系统要实现大模型在回答问题时能够引用原文,确保答案的可靠性和准确性。以 New Bing 的精确模式为例,即使搜索的网页内容正确,其答案仍可能出错。
我们的工作思路是采用解码硬约束方案,通过在微调阶段给大模型标记特殊括号,实现特定部分的直接原文接管。一旦特殊括号标记出现,其后的内容将直接由算法接管,借助原文后缀树进行填充,确保该部分与原文完全一致。这种方法确保了两个标记间的内容为原文内容,同时利用模型的推理能力生成答案,避免了传统方法的生硬和推理能力低下的问题。
以上就是我们针对领域大模型落地应用方面所进行的一些研究,谢谢大家。