diff --git a/_c4/2024-01-01-transformers-note-11.md b/_c4/2024-01-01-transformers-note-11.md index 5bc6c1c..b0fd9cf 100644 --- a/_c4/2024-01-01-transformers-note-11.md +++ b/_c4/2024-01-01-transformers-note-11.md @@ -396,7 +396,106 @@ Prompts包含了四个关键要素: - 使用模型友好的格式:在OpenAI文档中建议使用###或"""分离指令和上下文,可以更好地被LLM理解 - 复杂任务中有特定的输出形式或背景知识,prompt显得更为重要,能达到与监督方法相当或更好的性能。如数学推理任务,可以基于编程语言的形式设计prompt +## 五、大模型的能力评估 +### LLM的基础能力(Basic Ability):语言生成Language Generation、知识使用Knowledge Utilization、复杂推理Complex Reasoning + +**1、语言生成** + +> 即生成自然语言或者形式语言的能力,主要从语言建模、条件文本生成、和代码合成三方面阐述 + ++ 语言建模:要求LLM有基本的语言理解和生成的能力。例如在LAMBADA数据集上根据context预测next token, 使用预测的最后一个词的准确性和困惑度来评估LLM + + 语言建模数据集有Penn Treebank、WikiText-103和Pile ++ 条件文本生成:根据某些条件满足特定的任务需求,例如机器翻译、文本摘要等 + + 最近的研究提出将**LLM**作为生成的评估器,检查相应条件下生成内容的质量 ++ 代码合成:LLM除了生成高质量的自然语言文本,还能生成形式语言例如代码 + + 生成的代码可以直接通过相应的编译器和解释器进行检查,评估可以通过设计测试用例的通过率、代码文本的规范等 + + 最近的一些代码基准:APPS、HumanEval和MBPP + ++ 目前还存在的一些问题: + +**推理不一致性**:即有时候LLM推理的答案和推理过程是不一致的,为了解决这个问题最近的方法是将复杂的推理任务重新制定为代码生成任务,其中生成代码的严格执行确保了推理过程和结果之间的一致性 + +**生成评估准则的不可靠性**:人类评估与基于自动参考的度量之间存在明显的不一致性。例如,在OpenDialKG中,ChatGPT在BLEU和ROUGE-L指标上表现不及对GPT-2进行微调后的性能,但却获得了更多人类判断的青睐 + +**LLM无法完全掌握需要特定领域知识或生成结构化数据的生成任务**:在复杂的结构化数据任务上经常落后于任务特定模型,例如知识库问答和语义解析 + +**2、知识使用** + +> 利用通用知识进行问答任务或者知识补全任务 + ++ 知识问答:分为closed-book QA, open-book QA + + + closed-book和open-book可以理解为开卷和闭卷问答。闭卷即仅仅通过给定的context进行回答,而开卷还可以利用一些外部资源,对于这个任务的评估,可以利用一些特定的数据集,包括自然问题、网络问题和TriviaQA,其中准确度指标被广泛采用 + ++ 知识补全:现有的知识补全任务大致可以分为知识图谱补全任务(例如FB15k237和WN18RR)和事实补全任务(例如WikiFact) + ++ 目前还存在的一些问题: + + **幻觉的出现**(Intrinsic hallucination、Extrinsic hallucination):内在幻觉即生成的内容和提供的输入信息不一致(例如对输入内容推断的错误);外在幻觉是生成内容的错误性往往不能从输入进行判断(例如对输入内容没有详细阐述的某个名词的错误解释)。为了缓解这个问题,可在高质量数据上微调LLM或利用人类反馈 + + **知识的时效性**:即需要定期使用新数据来更新LLM,但是微调LLM的成本很高,或者使用外部知识源例如搜索引擎来补充LLM + +**3、复杂推理** + +> 复杂推理包括知识推理、符号推理和数学推理 + ++ 知识推理: 现有的工作主要使用特定的数据集来评估相应类型知识的推理能力,例如用于科学知识推理的ScienceQA, 其中链式推理策略CoT涉及中间推理步骤,可以手动创建或自动生成到提示中,以指导LLM进行多步推理 + ++ 符号推理:基于对符号之间关系的处理和操作来实现推理,目前利用形式化编程语言来表示符号操作和规则,这需要LLM生成代码,并通过外部解释器执行推理过程 + ++ 数学推理:分为数学问题求解和自动定理证明两类,这需要在大规模数学语料库上预训练LLM + ++ 复杂推理存在的主要问题: + + **推理不一致**:推导出的答案与推理过程之间不一致,可以改进推理策略例如COT提示,最近的方法将复杂推理任务构造为代码生成任务,生成的代码的严格执行确保了推理过程与结果之间的一致性 + + **数字计算**:由于预训练遇到的符号一般比较少,在大量计算上的能力还有所欠缺,现有研究还整合了外部工具(例如计算器),或者将数字分词为单独的标记(例如LLaMA和Galactica标记器)可以增强LLM固有算术能力 + +### LLM的优越能力(Advanced Ability) + +**1、与人类对齐** + +> LLM需要符合人类的价值观和需求,例如帮助性、诚实性和安全性 + ++ 在与专家的互动中收集的数据上进行对齐调整后,GPT-4在处理敏感或不允许的提示时,错误行为的比率可以大大降低。此外,高质量的预训练数据可以减少对齐所需的工作量,例如科学语料库中内容较少的偏见。人工评估仍然是一种更直接的方式来有效地测试LLM的人类对齐能力 + +**2、与外部环境的交互** + +> 从外部环境接收反馈并设计行为指令进行操作和设计行动计划,例如智能家居 + ++ LLM可以生成自然语言的行动计划来操作代理程序,有研究通过在沙盒环境中实例化多个基于LLM的代理,让LLM具有观察、规划和记忆等人类社会行为来模拟人类社会行为 + +**3、工具操控** + +> 各种外部工具例如搜索引擎、计算器和编译器能增强LLM在一些特定任务上的性能 + ++ 现有研究在上下文中添加了使用工具的示例以引导LLM,或者在关于工具利用的模拟数据上对LLM进行微调,LLM还具有自主为特定任务制作工具的能力 + +### 基准测试和实证评估 + +> 对以上LLM的基础能力和优越能力进行评估 + ++ 存在一些广泛使用的基准,即MMLU、BIG-bench、HELM和一系列人类考试基准,这些基准覆盖了多种主流评估任务和真实世界的人类考试问题,用于评估LLM。此外,还有一些专注于评估LLM特定能力的基准,例如 TyDiQA 用于多语言知识利用和 MGSM用于多语言数学推理 ++ 在一个综合的评估任务中,具体可以参照https://github.com/RUCAIBox/LLMSurvey/tree/ main/Experiments. 指导调整模型通常优于基础模型,在语言生成任务上表现出色;小型开源模型在数学推理、与环境交互和工具操作任务上表现不佳;不同的人类对齐任务上,最佳模型不同;Falcon-7B模型在语言生成任务上表现突出,其性能优于其他基础模型。 + +### LLM的应用 + +> 主要阐述在医疗、法律、金融、教育和科学研究等方面的应用 + ++ 医疗:包括生物信息提取、医疗咨询、心理健康分析和报告简化等任务。研究人员设计特定的提示或指令来引导LLM执行这些任务 ++ 法律:LLMs在法律领域展现出强大的潜力,能够解决各种法律任务,如法律文件分析、法律判决预测和法律文件撰写 ++ 金融:在金融领域,它们用于数字索赔检测、金融情感分析等任务,但需要注意潜在的风险 ++ 教育:LLM在教育领域有潜力成为学习和教学的有力工具,能够在标准化考试中表现良好,提供写作和阅读支持,促进个性化学习和自动化评估 ++ 科学研究:可以帮助进行文献调研、生成科学假设、分析数据和科学写作 + +### 总结 + ++ **1、理论和原则**:LLM的基本工作机制以及一些emergency能力的产生的原因仍然是一个谜,尤其是关于其如何利用大规模、深度神经网络进行信息分布和利用的问题。 ++ **2、模型框架**:Transformer是构建LLM的主要架构。为了提高模型容量,LLM通常保持长的上下文窗口,为了减少其中的时间复杂度需要研究更高效的Transformer变体。此外,神经网络面临的灾难性遗忘问题也影响着LLM,因此需要更灵活的机制来扩展现有架构。 ++ **3、预训练**:需要开发更灵活的硬件支持和资源调度,以及更系统化、经济高效的预训练方法,提供更多技术细节的开源模型检查点,以及改进调优策略。 ++ **4、微调**:微调成本高昂,提示已成为使用LLM的主要方法,为了增强复杂推理能力,提出了高级提示技术,例如链式思维策略COT。 ++ **5、安全性和对齐性**:在安全方面存在类似于小型语言模型的挑战,如生成幻觉和被恶意指令操控。为应对这些问题,采用了强化学习和红队测试等方法,以改进模型安全性。然而,强化学习依赖于高质量的人类反馈数据,因此需要改进数据收集方法。 ## 参考