博客

  • MMLU-Pro:更强大、更具挑战性的多任务语言理解基准

    引言:人工智能理解能力的新标杆

    近年来,大型语言模型(LLM)的进步彻底改变了自然语言处理(NLP)领域。GPT-4、Gemini 和 Claude 等最先进的模型正在不断突破人工智能在语言理解和推理方面的能力边界。为了实现专家级人工智能的目标,即在各种任务中达到或超过 10% 的技能娴熟的成年人的表现,我们需要不断评估这些模型在广泛任务上的表现。

    目前,有多种流行的基准测试用于衡量这种通用智能,例如侧重于考试题的 AGIEval、侧重于科学问题的 ARC、侧重于解决困难的合成任务的 BBH 以及涵盖 STEM、人文、社会科学等 57 个科目的考试题的 MMLU。

    MMLU 的局限性:从饱和到不稳定

    MMLU 因其广泛的覆盖面和高质量而成为评估 LLM 的事实标准。然而,当前 LLM 的快速发展已迅速导致 MMLU 的性能饱和。自 2023 年 3 月 GPT-4 达到 86.4% 的准确率以来,该基准测试一直没有取得任何重大进展。大多数最新的前沿模型,如 GPT-4-Turbo、Gemini-1.5-Pro、Claude 和 LLaMA-3-400B,其准确率都稳定在 86% 到 87% 之间。最近发布的 GPT-4o 在 MATH 和 Chatbot Arena 上取得了显著的性能提升(10% 以上),但在 MMLU 上仅获得了 1% 的提升,达到 87.4%。

    除了饱和问题外,MMLU 的性能还因其对提示和评分函数的高度敏感而闻名,这导致排行榜上的排名发生重大变化。我们推测,这些问题是由以下原因造成的:

    • 选项数量少:MMLU 中的问题只有三个干扰选项,这使得 LLM 可以在没有真正理解问题的情况下利用捷径得出答案,从而导致对 LLM 真实性能的高估和一定程度的不稳定性。
    • 推理难度低:MMLU 中的问题大多是知识驱动的,不需要太多的推理,尤其是在 STEM 科目中,这降低了其难度。事实上,大多数模型在没有思维链的情况下,通过“直接”答案预测就能获得更好的性能。
    • 数据噪声:MMLU 中有一部分问题是无法回答的,或者标注有误,这导致了性能上限较低,而前沿模型已经达到了这个上限。

    MMLU-Pro:更具挑战性、更具辨别力、更可靠

    为了解决这些问题,我们引入了 MMLU-Pro:一个全面的基准测试,旨在评估高级语言模型在多学科语言理解和推理方面的能力。MMLU-Pro 涵盖了 14 个不同的领域,包括数学、物理、化学、法律、工程、心理学和健康,包含超过 12,000 个问题。

    MMLU-Pro 与 MMLU 的区别在于:

    • 选项数量增加:MMLU-Pro 有十个选项,比 MMLU 多 3 倍,这大大降低了随机猜对答案的概率,从而提高了基准测试的难度和鲁棒性。
    • 推理难度提高:MMLU-Pro 增加了具有挑战性的大学水平考试题的比例,这些问题要求 LLM 在不同领域进行深思熟虑的推理才能得出最终答案。
    • 数据质量更高:我们整合了两轮专家评审,以减少数据集的噪声。第一轮是基于专家验证,第二轮是利用最先进的 LLM 来识别潜在的错误,并聘请标注员进行更有针对性的验证。

    实验结果:CoT 的必要性和 MMLU-Pro 的有效性

    我们在 MMLU-Pro 上评估了 50 多个 LLM,包括开源和闭源模型,如 GPT-4o、Claude-3-Opus、Gemini、LLaMA-3 和 Phi-3。我们的主要发现总结如下:

    • MMLU-Pro 极具挑战性:领先的模型 GPT-4o 仅获得了 72.6% 的准确率,GPT-4-Turbo 达到 63.7%,这表明还有很大的改进空间。
    • MMLU-Pro 更具辨别力:例如,GPT-4o 和 GPT-4-Turbo 在 MMLU 上的差距为 1%,而在 MMLU-Pro 上则为 9%。这种辨别性使得 MMLU-Pro 成为一个更合适的基准测试。
    • 开源模型的进步:Llama-3-70B-Instruct 和 DeepSeek-V2-Chat 等先进的开源模型,虽然在性能上还无法与 GPT-4o 和 Claude-3-Opus 等领先的闭源模型相媲美,但已经接近 Claude-3-Sonnet 的水平。
    • CoT 的必要性:MMLU-Pro 需要思维链(CoT)才能取得良好的效果。例如,CoT 可以将 GPT-4o 的性能提高 19%。相比之下,CoT 实际上会损害模型在 MMLU 上的表现。这反映了在 MMLU-Pro 上进行深思熟虑的推理的必要性,而这在知识驱动的 MMLU 问题中是不需要的。
    • 错误分析:我们对当前性能最佳的模型 GPT-4o 的 120 个错误案例进行了分析,发现 39% 的错误是由于推理过程中的缺陷,35% 是由于缺乏特定领域的专业知识,另外 12% 是由于计算错误。这些结果突出了 MMLU-Pro 基准测试的难度,并指出了需要进一步研究和模型改进的领域。

    结论:迈向更强大的 LLM 评估

    MMLU-Pro 是一个更强大、更具挑战性的多任务语言理解基准测试,它解决了 MMLU 的局限性,并为评估 LLM 的推理和知识能力设定了更高的标准。我们的实验结果表明,MMLU-Pro 在区分模型、鼓励 CoT 推理和推动 LLM 研究方面非常有效。


  • 阅读分析报告:An Information Bottleneck Perspective for Effective Noise Filtering on Retrieval-Augmented Generation

    摘要:
    《An Information Bottleneck Perspective for Effective Noise Filtering on Retrieval-Augmented Generation》这篇论文提出了一种信息瓶颈的视角,用于改善检索增强生成中的噪声过滤效果。检索增强生成将大型语言模型的能力与从广泛语料库中检索到的相关信息相结合,但在面对真实世界的嘈杂数据时会遇到挑战。最近的解决方案是训练一个过滤模块来找到相关内容,但只能实现次优的噪声压缩。本文提出将信息瓶颈理论引入检索增强生成中。我们的方法涉及通过同时最大化压缩和基准输出之间的互信息,同时最小化压缩和检索段落之间的互信息来过滤噪声。此外,我们推导出信息瓶颈的公式,以便在新的综合评估、监督微调数据的选择和强化学习奖励的构建中应用。实验结果表明,我们的方法在各种问答数据集上取得了显著的改进,不仅在答案生成的正确性方面,而且在压缩率的简洁性方面也有所提高。

    • 引言
    • 大型语言模型在自然语言理解和生成方面取得了重大进展,但仍存在一些缺点。
    • 检索增强生成是一种将外部知识源的信息整合到推理阶段的方法,可以提高文本生成的相关性、连贯性和事实准确性。
    • 相关工作
    • 信息瓶颈理论:信息瓶颈理论是一种在面对任务时使用最少信息来完成任务的理论。
    • 噪声过滤:噪声过滤是为了减轻检索证据中的噪声问题而采取的后处理技术。
    • 方法
    • 信息瓶颈原理:信息瓶颈原理通过最大化有用信息的同时最小化噪声来实现数据压缩。
    • 噪声过滤:通过最大化压缩和基准输出之间的互信息,同时最小化压缩和检索段落之间的互信息来过滤噪声。
    • 实验结果
    • 在开放领域的问答数据集上进行实验,包括自然问题(Natural Questions)、TriviaQA和HotpotQA。
    • 与强基线模型(RankGPT、LongLLMLingua和Lllama2)相比,我们的方法在所有三个数据集上都取得了显著的改进。
    • 创新点
    • 首次将信息瓶颈理论引入检索增强生成,展示了过滤的最佳效果。
    • 在评估指标、监督微调目标和强化学习奖励中应用了信息瓶颈。
    • 实验证明了我们方法在生成正确性和压缩简洁性方面的有效性。

    参考文献:
    [1] Zhu, K., Feng, X., Du, X., Gu, Y., Yu, W., Wang, H., … & Qin, B. (2024). An Information Bottleneck Perspective for Effective Noise Filtering on Retrieval-Augmented Generation.
    [2] “An Information Bottleneck Perspective for Effective Noise Filtering on Retrieval-Augmented Generation | OpenReview” (2024). OpenReview. Retrieved from [link]


    Learn more:

    1. An Information Bottleneck Perspective for Effective Noise Filtering on Retrieval-Augmented Generation
    2. An Information Bottleneck Perspective for Effective Noise Filtering on Retrieval-Augmented Generation | OpenReview
    3. BlendFilter: Advancing Retrieval-Augmented Large Language Models via Query Generation Blending and Knowledge Filtering

    Retrieval-augmented generation integrates the capabilities of large language models with relevant information retrieved from an extensive corpus, yet encounters challenges when confronted with real-world noisy data. One recent solution is to train a filter module to find relevant content but only achieve suboptimal noise compression. In this paper, we propose to introduce the information bottleneck theory into retrieval-augmented generation. Our approach involves the filtration of noise by simultaneously maximizing the mutual information between compression and ground output, while minimizing the mutual information between compression and retrieved passage. In addition, we derive the formula of information bottleneck to facilitate its application in novel comprehensive evaluations, the selection of supervised fine-tuning data, and the construction of reinforcement learning rewards. Experimental results demonstrate that our approach achieves significant improvements across various question answering datasets, not only in terms of the correctness of answer generation but also in the conciseness with $2.5\%$ compression rate.

    SubjectsComputation and Language ; Artificial Intelligence

    Publish: 2024-06-03 17:31:06 UTC


    Q: 这篇论文试图解决什么问题?

    A: 这篇论文试图解决的问题是如何在检索增强型生成(Retrieval-Augmented Generation, RAG)中有效地过滤噪声数据。检索增强型生成是一种结合大型语言模型和从大量语料库中检索到的相关信息的技术,但面对现实世界中的噪声数据时会遇到挑战。论文指出,现有的解决方案,如训练一个过滤模块来寻找相关内容,只能实现次优的噪声压缩。为了解决这个问题,论文提出了将信息瓶颈理论(Information Bottleneck, IB)引入到检索增强型生成中,通过同时最大化压缩与目标输出之间的互信息,以及最小化压缩与检索到的段落之间的互信息,来过滤噪声。此外,论文还推导出信息瓶颈的公式,以便于在新的综合评估中应用,选择监督式微调数据,并构建强化学习奖励。实验结果表明,这种方法在多个问答数据集上取得了显著改进,不仅提高了答案生成的正确性,还提高了压缩率,达到了2.5%的压缩率。

    Q: 有哪些相关研究?

    A: 相关研究主要集中在信息瓶颈理论和噪声过滤在检索增强型生成中的应用。以下是一些具体的相关研究领域和工作:

    1. 信息瓶颈理论 (Information Bottleneck, IB):
      • Tishby et al., 1999; Fischer, 2020 提出了信息瓶颈理论,强调在面对任务时应该使用最少量的信息来完成。
      • Shwartz-Ziv 和 LeCun, 2023 讨论了信息瓶颈理论在特定任务中的应用,如表示学习、深度学习、文档聚类、语音识别和文本摘要等。
    2. 噪声过滤 (Noise Filtering):
      • Jiang et al., 2023c; Asai et al., 2023 提出了训练模型以具备主动检索和过滤检索内容的能力。
      • Shi et al., 2023b 通过改善检索器来减少噪声。
      • Bai et al., 2023 专注于重新排列检索到的文章以过滤噪声。
      • Li, 2023 和 Jiang et al., 2023a 使用小型语言模型来衡量提示的互信息或困惑度,以找到最高分元素。
      • Xu et al., 2023; Wang et al., 2023 采用总结技术设计压缩器。
    3. 检索增强型生成 (Retrieval-Augmented Generation):
      • Lewis et al., 2020 提出了检索增强型生成的概念,通过结合检索方法和生成模型来提高文本生成的相关性、连贯性和事实准确性。
      • Gao et al., 2023 提供了检索增强型生成在大型语言模型中的应用概述。
    4. 评估指标、监督式微调和强化学习:
      • 论文还提出了将信息瓶颈理论应用于评估指标、监督式微调目标和强化学习奖励的方法,以提高检索增强型生成的性能。

    这些相关研究为论文提出的解决方案提供了理论基础和实践方法。通过综合这些研究成果,论文提出了一种新的噪声过滤方法,旨在提高检索增强型生成在处理噪声数据时的有效性。

    Q: 论文如何解决这个问题?

    A: 论文通过引入信息瓶颈理论(Information Bottleneck, IB)来解决检索增强型生成(Retrieval-Augmented Generation, RAG)中的噪声过滤问题。具体的解决方法包括以下几个步骤:

    1. 信息瓶颈理论的应用
      • 利用信息瓶颈理论优化噪声过滤器,通过同时最大化压缩表示与目标输出之间的互信息,以及最小化压缩表示与检索到的段落之间的互信息。
    2. 推导信息瓶颈公式
      • 论文为检索增强型生成推导了信息瓶颈的具体公式,这有助于在新的综合评估中应用,选择监督式微调数据,并构建强化学习奖励。
    3. 评估指标
      • 提出信息瓶颈作为评估噪声过滤性能的新指标,该指标综合考虑了压缩内容的简洁性和正确性。
    4. 监督式微调
      • 利用信息瓶颈理论来选择最佳的压缩输出作为训练数据,通过监督式学习来训练噪声过滤器。
    5. 强化学习
      • 采用直接偏好优化(Direct Preference Optimization, DPO)等强化学习方法,结合信息瓶颈理论来增强噪声过滤器的性能。
    6. 实验验证
      • 在开放域问答数据集(如Natural Questions, TRIVIAQA和HOTPOTQA)上进行实验,使用LLAMA2作为过滤和生成模型,与强基线模型进行比较,证明了所提方法的有效性。
    7. 压缩与性能的平衡
      • 通过信息瓶颈理论,实现了在压缩率和性能之间的最佳平衡,达到了显著的压缩率(2.5%)和提高的精确答案匹配率(最多3.2的改进)。

    通过这些方法,论文成功地展示了如何有效地过滤检索到的信息中的噪声,提高了生成答案的正确性和简洁性。

    Q: 论文做了哪些实验?

    A: 论文中进行了以下实验来验证所提方法的有效性:

    1. 开放域问答实验
      • 在Natural Questions (NQ)、TRIVIAQA和HOTPOTQA三个问答基准数据集上进行实验。
      • 使用LLAMA2作为基础架构的大型语言模型,并对其7B模型版本进行微调以进行噪声过滤。
    2. 压缩率与性能评估
      • 报告了压缩检索证据的单词数量,以反映压缩率。
      • 使用Exact Match (EM)、F1分数和信息瓶颈分数(IB)等指标来评估模型性能。
    3. 基线模型比较
      • 与不使用检索增强的LLAMA2-13B生成器以及使用top-1或top-5检索文档的情况进行比较。
      • 包括了RANKGPT和LONGLLMLINGUA等过滤方法,并与LLAMA-7B模型进行比较。
    4. 多跳问答实验
      • 在HOTPOTQA数据集上评估了过滤模型在处理多跳问题时的性能。
    5. 压缩简洁性消融研究
      • 通过消融实验展示了信息瓶颈理论中简洁性项的重要性。
    6. 信息瓶颈在过滤数据选择中的应用
      • 在NQ和HOTPOTQA的数据集上验证了信息瓶颈在选择训练数据时的有效性。
    7. 压缩长度与简洁性关系的研究
      • 通过一个玩具实验来验证压缩率和简洁性互信息之间的关系。
    8. 案例研究
      • 提供了来自三个数据集的示例,展示了在不同情况下检索内容的压缩结果。

    这些实验结果表明,论文提出的方法在多个数据集上显著提高了答案生成的正确性,并且在压缩率方面取得了2.5%的改进。此外,通过消融研究和案例研究,论文进一步展示了所提方法在不同情况下的应用效果和优势。

    Q: 有什么可以进一步探索的点?

    A: 尽管论文提出了一种有效的噪声过滤方法并取得了良好的实验结果,但仍有一些潜在的研究方向可以进一步探索:

    1. 改进的评估指标:虽然论文提出了信息瓶颈(IB)分数作为评估指标,但可以探索更多与特定任务相关的评估指标,以更全面地衡量模型性能。
    2. 更复杂的检索增强模型:研究更复杂的检索增强模型,以进一步提高生成文本的相关性、连贯性和事实准确性。
    3. 多模态数据集的应用:将所提方法应用于多模态数据集(如结合文本和图像的数据集),探索在这种环境下的噪声过滤问题。
    4. 跨领域适应性:研究模型在不同领域间的适应性,例如,将训练好的模型应用到新的领域时,如何快速适应并保持性能。
    5. 半监督或无监督的噪声过滤:探索在缺少标注数据的情况下,如何利用未标注数据或用户反馈来改进噪声过滤。
    6. 强化学习策略的优化:研究不同的强化学习策略,以更有效地训练噪声过滤器,提高检索增强型生成的性能。
    7. 噪声过滤的可解释性:提高噪声过滤过程的可解释性,帮助用户理解模型为何做出特定的过滤决策。
    8. 多语言和跨文化的应用:将模型扩展到多语言和跨文化场景,研究如何处理不同语言和文化背景下的噪声过滤问题。
    9. 实时应用和在线学习:研究如何将噪声过滤方法应用于实时系统,并探索在线学习策略以持续改进模型性能。
    10. 伦理和社会影响:深入研究文本生成技术的伦理和社会影响,确保生成的内容符合社会规范和伦理标准。
    11. 模型鲁棒性:提高模型对于各种噪声和异常情况的鲁棒性,确保在面对恶意输入或数据污染时的稳定性。
    12. 资源效率:优化模型的计算效率,减少资源消耗,使得模型可以部署在资源受限的环境中。

    这些探索点可以帮助研究者从不同角度改进和扩展论文中提出的方法,以适应更广泛的应用场景和需求。

    Q: 总结一下论文的主要内容

    A: 这篇论文的核心内容是提出了一种基于信息瓶颈理论的方法,用于改进检索增强型生成中的噪声过滤问题。以下是对论文主要内容的总结:

    1. 问题背景:检索增强型生成(RAG)在处理现实世界噪声数据时面临挑战,现有解决方案在噪声压缩方面表现不佳。
    2. 信息瓶颈理论:引入信息瓶颈理论来优化噪声过滤器,通过最大化压缩与目标输出之间的互信息,同时最小化与检索到的段落之间的互信息。
    3. 方法论
      • 提出一种新的噪声过滤目标,基于信息瓶颈理论,以实现更精确的信息提取。
      • 推导出信息瓶颈公式,用于评估噪声过滤的效果,并指导监督式微调和强化学习。
    4. 实验设置
      • 使用Natural Questions (NQ)、TRIVIAQA和HOTPOTQA等开放域问答数据集进行实验。
      • 使用LLAMA2模型作为过滤和生成模型。
    5. 实验结果
      • 所提方法在多个数据集上显著提高了答案生成的正确性,并达到了2.5%的压缩率。
      • 在Exact Match (EM)和F1分数上均优于基线模型。
    6. 主要创新点
      • 首次将信息瓶颈理论引入检索增强型生成。
      • 提出将信息瓶颈应用于评估指标、监督式微调目标和强化学习奖励。
      • 实验结果显示所提方法在生成正确性和压缩简洁性方面的有效性。
    7. 相关工作:论文回顾了信息瓶颈理论和噪声过滤的相关研究,展示了如何将这些理论应用于RAG。
    8. 方法细节
      • 对信息瓶颈原则进行了详细解释,并将其转化为噪声过滤器的形式。
      • 提供了评估指标、监督式微调和强化学习目标的具体实现细节。
    9. 局限性:论文讨论了方法的局限性,包括对生成器性能的依赖和在True-Flip-Rate (TFR)与False-Flip-Rate (FFR)之间的权衡。
    10. 伦理声明:论文强调了文本生成技术可能被滥用的风险,并声明了研究团队在设计方法时考虑了减少有害内容生成的措施。

    通过这些内容,论文展示了如何通过信息瓶颈理论来提高检索增强型生成在噪声数据处理中的性能。


  • MMLU-Pro:更强大、更具挑战性的多任务语言理解基准

    引言:人工智能理解能力的新标杆

    近年来,大型语言模型(LLM)的进步彻底改变了自然语言处理(NLP)领域。GPT-4、Gemini 和 Claude 等最先进的模型正在不断突破人工智能在语言理解和推理方面的能力边界。为了实现专家级人工智能的目标,即在各种任务中达到或超过 10% 的技能娴熟的成年人的表现,我们需要不断评估这些模型在广泛任务上的表现。

    目前,有多种流行的基准测试用于衡量这种通用智能,例如侧重于考试题的 AGIEval、侧重于科学问题的 ARC、侧重于解决困难的合成任务的 BBH 以及涵盖 STEM、人文、社会科学等 57 个科目的考试题的 MMLU。

    MMLU 的局限性:从饱和到不稳定

    MMLU 因其广泛的覆盖面和高质量而成为评估 LLM 的事实标准。然而,当前 LLM 的快速发展已迅速导致 MMLU 的性能饱和。自 2023 年 3 月 GPT-4 达到 86.4% 的准确率以来,该基准测试一直没有取得任何重大进展。大多数最新的前沿模型,如 GPT-4-Turbo、Gemini-1.5-Pro、Claude 和 LLaMA-3-400B,其准确率都稳定在 86% 到 87% 之间。最近发布的 GPT-4o 在 MATH 和 Chatbot Arena 上取得了显著的性能提升(10% 以上),但在 MMLU 上仅获得了 1% 的提升,达到 87.4%。

    除了饱和问题外,MMLU 的性能还因其对提示和评分函数的高度敏感而闻名,这导致排行榜上的排名发生重大变化。我们推测,这些问题是由以下原因造成的:

    • 选项数量少:MMLU 中的问题只有三个干扰选项,这使得 LLM 可以在没有真正理解问题的情况下利用捷径得出答案,从而导致对 LLM 真实性能的高估和一定程度的不稳定性。
    • 推理难度低:MMLU 中的问题大多是知识驱动的,不需要太多的推理,尤其是在 STEM 科目中,这降低了其难度。事实上,大多数模型在没有思维链的情况下,通过“直接”答案预测就能获得更好的性能。
    • 数据噪声:MMLU 中有一部分问题是无法回答的,或者标注有误,这导致了性能上限较低,而前沿模型已经达到了这个上限。

    MMLU-Pro:更具挑战性、更具辨别力、更可靠

    为了解决这些问题,我们引入了 MMLU-Pro:一个全面的基准测试,旨在评估高级语言模型在多学科语言理解和推理方面的能力。MMLU-Pro 涵盖了 14 个不同的领域,包括数学、物理、化学、法律、工程、心理学和健康,包含超过 12,000 个问题。

    MMLU-Pro 与 MMLU 的区别在于:

    • 选项数量增加:MMLU-Pro 有十个选项,比 MMLU 多 3 倍,这大大降低了随机猜对答案的概率,从而提高了基准测试的难度和鲁棒性。
    • 推理难度提高:MMLU-Pro 增加了具有挑战性的大学水平考试题的比例,这些问题要求 LLM 在不同领域进行深思熟虑的推理才能得出最终答案。
    • 数据质量更高:我们整合了两轮专家评审,以减少数据集的噪声。第一轮是基于专家验证,第二轮是利用最先进的 LLM 来识别潜在的错误,并聘请标注员进行更有针对性的验证。

    实验结果:CoT 的必要性和 MMLU-Pro 的有效性

    我们在 MMLU-Pro 上评估了 50 多个 LLM,包括开源和闭源模型,如 GPT-4o、Claude-3-Opus、Gemini、LLaMA-3 和 Phi-3。我们的主要发现总结如下:

    • MMLU-Pro 极具挑战性:领先的模型 GPT-4o 仅获得了 72.6% 的准确率,GPT-4-Turbo 达到 63.7%,这表明还有很大的改进空间。
    • MMLU-Pro 更具辨别力:例如,GPT-4o 和 GPT-4-Turbo 在 MMLU 上的差距为 1%,而在 MMLU-Pro 上则为 9%。这种辨别性使得 MMLU-Pro 成为一个更合适的基准测试。
    • 开源模型的进步:Llama-3-70B-Instruct 和 DeepSeek-V2-Chat 等先进的开源模型,虽然在性能上还无法与 GPT-4o 和 Claude-3-Opus 等领先的闭源模型相媲美,但已经接近 Claude-3-Sonnet 的水平。
    • CoT 的必要性:MMLU-Pro 需要思维链(CoT)才能取得良好的效果。例如,CoT 可以将 GPT-4o 的性能提高 19%。相比之下,CoT 实际上会损害模型在 MMLU 上的表现。这反映了在 MMLU-Pro 上进行深思熟虑的推理的必要性,而这在知识驱动的 MMLU 问题中是不需要的。
    • 错误分析:我们对当前性能最佳的模型 GPT-4o 的 120 个错误案例进行了分析,发现 39% 的错误是由于推理过程中的缺陷,35% 是由于缺乏特定领域的专业知识,另外 12% 是由于计算错误。这些结果突出了 MMLU-Pro 基准测试的难度,并指出了需要进一步研究和模型改进的领域。

    结论:迈向更强大的 LLM 评估

    MMLU-Pro 是一个更强大、更具挑战性的多任务语言理解基准测试,它解决了 MMLU 的局限性,并为评估 LLM 的推理和知识能力设定了更高的标准。我们的实验结果表明,MMLU-Pro 在区分模型、鼓励 CoT 推理和推动 LLM 研究方面非常有效。


    Q: 这篇论文试图解决什么问题?

    A: 这篇论文介绍了一个名为MMLU-Pro的新型多任务语言理解基准测试。它旨在解决现有大规模语言模型(LLMs)在现有基准测试(如MMLU)上性能趋于饱和的问题,这些现有基准测试无法有效区分模型之间的细微差别。具体来说,MMLU-Pro试图解决以下几个问题:

    1. 提高难度:通过增加更多挑战性的、侧重于推理的问题,并扩大选项集从四个增加到十个,MMLU-Pro旨在提高基准测试的难度。
    2. 增强鲁棒性:通过减少由于提示(prompt)变化导致的模型分数波动,MMLU-Pro旨在提供更稳定的评估。
    3. 改善区分度:MMLU-Pro通过设计更复杂的推理问题,使得模型之间的性能差异更加明显,从而更好地区分不同模型的能力。
    4. 鼓励推理:与MMLU相比,MMLU-Pro要求模型使用更加细致的推理过程(Chain of Thought, CoT)来解决问题,而不是简单地依赖于知识驱动的直接回答。
    5. 减少数据噪声:通过两轮专家审查,MMLU-Pro旨在减少数据集中的噪声,提高问题的质量。

    总的来说,MMLU-Pro旨在成为一个更具挑战性、更稳定的基准测试,以更准确地跟踪和评估语言模型在多任务语言理解方面的进步。

    Q: 有哪些相关研究?

    A: 论文中提到了多项与大型语言模型(LLMs)及其评估基准相关的研究。以下是一些主要的相关研究领域和具体工作:

    1. 大型语言模型(LLMs)的进步
      • GPT-3 [7]:展示了强大的少样本预测能力。
      • InstructGPT [28]:通过人类反馈强化学习提高了遵循用户指令的能力。
      • 后续模型如GPT-4o, GPT-4, Claude-3, Gemini, Llama-3等,在多领域复杂推理方面取得了显著进步。
    2. LLMs评估基准
      • GLUE [37] 和 SuperGLUE [38]:推动了语言理解任务的发展。
      • MMLU [18]:评估模型在57个不同科目的考试问题上的表现。
      • HELM [22]、BigBench [32]、HellaSwag [45] 和 AI2 Reasoning Challenge (ARC) [12]:评估了语言生成、知识理解和复杂推理等能力。
    3. 性能比较和排行榜
      • OpenLLM Leaderboard [27] 和 OpenCompass [14]:为不同LLMs提供了性能比较的平台。
    4. 模型的健壮性
      • 研究表明,现有基准测试中的性能对提示的微小变化非常敏感 [25, 31]。
    5. 特定任务和领域
      • MATH [19]:专注于评估模型解决数学问题的能力。
      • AGIEval [48]:关注SAT、Gaokao、GRE等一般考试问题。
    6. 错误分析和模型改进
      • 对GPT-4o等模型的错误分析,揭示了推理错误、特定领域知识缺失、计算错误等问题。
    7. 其他相关技术报告和模型
      • 如Phi-3 [1], Llama-3 [24, 35], Claude [6, 13], GPT-4 [2], Qwen [5], Mistral [20], DeepSeek [15] 等。

    这些研究为MMLU-Pro基准测试的设计提供了背景和动机,同时也展示了在评估和推动LLMs发展方面的现有工作。MMLU-Pro旨在建立在这些研究的基础上,提供一个更加健壮和具有挑战性的评估平台。

    Q: 论文如何解决这个问题?

    A: 论文通过以下几个关键步骤来解决现有基准测试中的性能饱和和区分度不足的问题:

    1. 扩展问题选项:MMLU-Pro将问题的答案选项从4个增加到10个,这样增加了随机猜测正确答案的难度,从而提高了基准测试的挑战性。
    2. 增加挑战性问题:通过整合更多需要深入推理的问题,特别是那些需要应用定理解决的问题(如TheoremQA)和高级科学问题(如SciBench),MMLU-Pro要求模型进行更加复杂的推理。
    3. 减少数据噪声:通过两轮专家审查,MMLU-Pro旨在减少数据集中的噪声。第一轮审查基于专家验证,第二轮使用最先进的LLMs来识别潜在错误,并由人工审核者进行更有针对性的验证。
    4. 增强模型评估:论文采用了5-shot Chain-of-Thought (CoT) 方法来评估模型性能,这种方法强调了推理步骤,而不仅仅是语言概率。
    5. 稳定性测试:通过测试24种不同的提示风格,MMLU-Pro展示了对提示变化的敏感性降低,从而提高了评估的稳定性。
    6. 性能比较:论文比较了MMLU和MMLU-Pro的性能,显示了MMLU-Pro在挑战性、区分度和鲁棒性方面的改进。
    7. 错误分析:通过对GPT-4o模型的120个错误案例的分析,论文揭示了模型在推理、特定领域知识和计算方面的错误,为未来的模型改进提供了方向。
    8. 评估多种模型:论文评估了50多种LLMs,包括开源和闭源模型,如GPT4o、Claude-3-Opus和Gemini等,以展示MMLU-Pro的挑战性。

    通过这些方法,MMLU-Pro旨在成为一个更加区分性、鲁棒性和挑战性的基准测试,以更好地跟踪和评估语言模型在多任务语言理解方面的进步。

    Q: 论文做了哪些实验?

    A: 论文中进行了一系列实验来评估和展示MMLU-Pro基准测试的有效性。以下是论文中提到的主要实验内容:

    1. 模型性能评估:评估了50多种大型语言模型(LLMs),包括开源和闭源模型,如GPT-4o、Claude-3-Opus、Gemini、LLaMA-3、Phi-3等,在MMLU-Pro上的性能。
    2. 准确性比较:比较了MMLU-Pro与原始MMLU基准测试在准确性方面的差异,显示MMLU-Pro导致准确率显著下降,从而提高了挑战性。
    3. 稳定性测试:通过24种不同的提示风格测试模型,比较了MMLU和MMLU-Pro在稳定性方面的表现,发现MMLU-Pro对提示变化的敏感性降低。
    4. 推理方法比较:比较了使用Chain of Thought (CoT)推理方法与直接回答(Direct Answering)在MMLU和MMLU-Pro上的性能差异,发现CoT在MMLU-Pro上表现更好。
    5. 错误分析:对GPT-4o模型在MMLU-Pro上的120个错误案例进行了详细分析,分类了错误原因,如推理错误、特定领域知识缺失、计算错误等。
    6. 跨领域比较:分析了模型在MMLU-Pro中不同领域(如数学、物理、工程、历史、法律、心理学等)的表现,以展示模型在不同领域的能力差异。
    7. 性能提升分析:探讨了CoT方法在MMLU-Pro上对模型性能的提升效果,并与MMLU进行了对比。
    8. 模型间差异:展示了MMLU-Pro在区分不同模型间细微差别方面的能力,如GPT-4o与GPT-4-Turbo在MMLU-Pro上的较大性能差距。

    这些实验结果表明,MMLU-Pro是一个更具挑战性、更稳定的基准测试,能够有效地区分和评估语言模型在多任务语言理解方面的能力。

    Q: 有什么可以进一步探索的点?

    A: 尽管MMLU-Pro基准测试在提高难度、增强鲁棒性和改善区分度方面取得了显著进展,但仍有一些潜在的领域可以进一步探索和改进:

    1. 多模态能力评估:当前的MMLU-Pro主要关注文本数据。未来的工作可以扩展到多模态模型,包括图像、视频和音频,以更全面地评估语言模型的综合能力。
    2. 更广泛的领域覆盖:虽然MMLU-Pro涵盖了多个领域,但总有更多特定领域知识可以整合进来,特别是那些新兴或高度专业化的领域。
    3. 实时交互和理解:目前的基准测试主要关注静态文本。未来的研究可以探索模型在实时交互环境中的理解能力,例如对话系统或交互式问题解答。
    4. 模型的可解释性和透明度:提高模型的可解释性,让研究人员和用户更好地理解模型的决策过程,可以作为一个重要的研究方向。
    5. 模型的伦理和偏见问题:研究和解决模型可能存在的伦理问题和偏见,确保模型的公正性和可靠性。
    6. 模型的适应性和泛化能力:探索模型在面对未见过的数据或任务时的适应性和泛化能力,以及如何通过持续学习或增量学习来提高这些能力。
    7. 模型的计算效率:研究如何提高模型的计算效率,减少资源消耗,使模型更适合在资源受限的环境中使用。
    8. 模型的健壮性和安全性:进一步增强模型的健壮性,抵御对抗性攻击和误导性输入,确保模型在面对恶意使用时的安全性。
    9. 模型的创造力和创新能力:评估和提升模型在生成新颖、创造性内容方面的能力,这可能涉及艺术创作、文学创作等领域。
    10. 模型的协作和协同工作能力:研究模型如何与其他模型或人类用户有效地协作和协同工作,以解决复杂问题。
    11. 模型的长期学习能力:探索模型如何在长期时间内持续学习和适应新知识,而不是仅仅依赖于预训练阶段获得的知识。
    12. 模型在特定应用场景下的表现:针对特定的应用场景,如医疗诊断、法律咨询等,定制和优化基准测试,以更好地评估模型的实际应用价值。

    这些探索点可以帮助推动语言模型的进一步发展,提高其在更广泛任务和环境中的性能和实用性。

    Q: 总结一下论文的主要内容

    A: 这篇论文介绍了MMLU-Pro,一个用于评估语言模型多任务语言理解能力的增强型基准测试。以下是论文的主要内容总结:

    1. 背景:随着大型语言模型(LLMs)的发展,现有基准测试(如MMLU)已经无法有效区分模型性能,因为模型在这些基准上的表现已趋于饱和。
    2. MMLU-Pro的提出:为了解决现有基准的局限性,作者提出了MMLU-Pro,这是一个更具挑战性、更稳定的基准测试,旨在更好地评估和推动LLMs的发展。
    3. 数据集特点
      • 包含14个不同领域的超过12,000个问题。
      • 选项从4个增加到10个,减少了随机猜测正确答案的可能性。
      • 增加了需要深入推理解决的大学级别考试问题。
      • 通过两轮专家审查减少数据噪声。
    4. 实验结果
      • MMLU-Pro显著提高了挑战性,领先模型GPT-4o的准确率从MMLU的87.4%下降到72.6%。
      • MMLU-Pro比MMLU更能区分不同模型之间的细微差别。
      • 证明了使用Chain of Thought(CoT)推理方法在MMLU-Pro上的有效性,与MMLU形成鲜明对比。
    5. 稳定性和鲁棒性:MMLU-Pro显示出更好的稳定性,对提示风格变化的敏感性降低。
    6. 错误分析:通过对GPT-4o模型错误案例的分析,揭示了模型在推理、特定领域知识和计算方面的错误。
    7. 相关工作:论文讨论了LLMs的进展、评估基准的发展,以及现有基准的局限性。
    8. MMLU-Pro基准测试的构建:详细介绍了数据集的构建过程,包括初步筛选、问题收集与整合、选项增强和专家审查。
    9. 实验设置:描述了用于评估模型性能的Few-Shot Chain-of-Thought Prompting方法和答案提取技术。
    10. 结果与分析:展示了不同模型在MMLU-Pro上的表现,并进行了详细的分析。
    11. 与MMLU的比较:从难度、推理能力和鲁棒性三个方面对MMLU和MMLU-Pro进行了比较。
    12. 局限性:讨论了MMLU-Pro的局限性,如多选格式的限制和对单模态模型的专注。
    13. 结论:MMLU-Pro是一个更具挑战性和鲁棒性的基准测试,有助于推动语言模型的进一步发展。
    14. 致谢和资金披露:感谢为该研究提供反馈和建议的个人和组织,以及开源语言模型提供者的贡献。

    MMLU-Pro的开发是对现有语言模型评估基准的重要补充,为未来LLMs的研究和应用提供了新的挑战和方向。

  • 调整 PHP-FPM 以获得超高的服务器性能

    这篇文章提供了一个关于如何通过调整 PHP-FPM 设置来优化服务器内存使用并提高性能的逐步指南。

    步骤 1:确定 PHP-FPM 进程的内存使用情况

    • 运行以下命令以显示按 RSS(常驻集大小,即进程实际使用的物理内存量)排序的 php-fpm 进程:
       ps -ylC php-fpm7.3 --sort:rss 
    • 注意每个 php-fpm 进程使用的内存量(以 KB 或 GB 为单位)。

    步骤 2:估算其他进程的内存消耗

    • 运行 top 命令。
    • 按三次 < 键以按 RES(常驻内存大小)排序。
    • 确定 MySQL 和 Apache 等其他进程使用的内存量。

    步骤 3:为 PHP-FPM 分配内存

    • 根据服务器上的可用内存和步骤 1 和 2 中确定的内存使用情况,为 PHP-FPM 分配一定数量的内存。
    • 例如,如果您可以为 PHP-FPM 分配 2GB 内存,并且每个进程使用 0.15GB,则可以运行大约 13 个子进程 (2 / 0.15 = 13.33)。

    步骤 4:配置 PHP-FPM

    • 打开 PHP-FPM 配置文件:
       sudo nano /etc/php/7.x/fpm/pool.d/www.conf
    • 找到以下设置并根据您的计算结果进行调整:
      • pm = dynamic:将此设置为 dynamic 以允许 PHP-FPM 根据需要动态调整子进程的数量。
      • pm.max_children = 12:设置 PHP-FPM 可以创建的最大子进程数。
      • pm.min_spare_servers = 2:设置空闲状态下保持的最小服务器进程数。
      • pm.max_spare_servers = 4:设置空闲状态下保持的最大服务器进程数。
      • pm.start_servers = 12:设置 PHP-FPM 启动时启动的服务器进程数。
      • pm.max_requests = 500:设置每个子进程在重启之前可以处理的最大请求数,以防止内存泄漏。

    步骤 5:保存并重新启动 PHP-FPM

    • 保存配置文件。
    • 重新启动 PHP-FPM 以使更改生效:
       sudo service php7.3-fpm restart

    步骤 6:监控内存使用情况

    • 在进行更改后,请持续监控服务器的内存使用情况,以确保 PHP-FPM 性能最佳,并且不会导致内存不足的问题。

    在 PHP 8 中,您无法完全关闭垃圾回收(GC)机制。

    PHP 的垃圾回收器是其内存管理的核心部分,对于确保脚本运行时的稳定性和防止内存泄漏至关重要。

    尽管您无法禁用 GC,但您可以通过以下方式影响其行为:

    • gc_disable() 函数: 这个函数可以暂时禁用垃圾回收器的运行。 然而,这并不会阻止 PHP 引擎跟踪引用计数。 一旦 gc_enable() 被调用或者脚本结束,垃圾回收器会重新启动并清理不再需要的变量。
    • 修改 php.ini 配置文件: 您可以调整 zend.enable_gc=Off 来禁用循环引用收集器。 将其设置为 Off 会阻止 PHP 引擎检测和清理循环引用,但这可能会导致潜在的内存泄漏,尤其是在处理大量对象和复杂数据结构时。

    重要提示:

    • 强烈建议不要尝试完全禁用 PHP 的垃圾回收机制。 这样做可能会导致不可预测的行为,包括内存泄漏、性能下降,甚至导致 PHP 进程崩溃。
    • 如果您在脚本运行期间遇到与 GC 相关的性能问题,请先尝试优化代码以减少对象创建和循环引用的数量,而不是尝试禁用 GC。

  • 从一个博弈论的案例,看拼多多怎么赢的淘宝

    1983年美洲杯帆船赛上,澳大利亚队战胜美国队的经典案例是帆船比赛历史上的一个重要事件。以下是关于这个案例的详细信息:

    • 背景信息:
    • 1983年的美洲杯帆船赛是一场激烈的帆船比赛,由美国队和澳大利亚队参与。
    • 在此之前,美国队一直是美洲杯的统治者,连续保持着长达132年的连胜纪录。
    • 澳大利亚队则是挑战者,希望能够打破美国队的统治地位。
    • 比赛过程:
    • 在比赛中,美国队一路领先,离终点还有3海里时,领先澳大利亚队4海里。
    • 然而,突然刮起了一阵大风,帆船需要根据风向调整帆的方向才能前进。
    • 这个时候,老船长根据多年的经验判断这是一种阵风,于是调整了帆的方向
    • 不幸的是,风向突然变化,变成了一种阵风式的旋风,导致美国队的帆船在原地打转,浪费了很多时间。
    • 与此同时,澳大利亚队没有调整帆的方向,一路向前,最终超过了美国队。
    • 当美国队离终点还有两海里时,澳大利亚队已经到达了终点,取得了胜利。
    • 结果和影响:
    • 这次比赛中,澳大利亚队成功战胜了连胜132年的美国队,打破了美国队的统治地位。
    • 这个经典案例成为帆船比赛历史上的一个重要事件,被广泛讨论和研究。
    • 这次胜利也激励了其他国家和队伍参与美洲杯帆船赛,增加了比赛的竞争性和吸引力。

    Learn more:

    1. 历史上真实发生的帆船博弈 – 简书
    2. 美洲杯帆船赛:只有4个冠军的百年超级帆船赛| 世界帆船赛事巡礼②-中国帆船帆板运动协会
    3. 美洲杯帆船赛的知识 America’s Cup – 历史篇 – 知乎

    拼多多接住了淘宝撵走的小商家;

    拼多多抽水,淘宝捕鱼;

    淘宝的流量售卖对大商家过于友好;

    拼多多的仅退款,对小商家的流量友好;(这里可以展开讲)

  • AI Native Apps 开发的实践与思考

    战略的理念是以己之长攻人之短

    在开发 AI Native Apps(原生人工智能应用程序)时,制定正确的战略非常重要。我们可以借鉴一些战略理念,例如以己之长攻人之短。这意味着我们应该专注于发挥自身的优势,而不是试图与大公司直接竞争。每家公司都有不同的使命和定位,我们应该在这个广阔的市场中找到适合自己的空间。

    案例分析: 一个创业公司不应该试图通过大规模广告投放来击败大公司,因为大公司的投放成本几乎为零。即使是像字节跳动这样的公司,他们更关注用户口碑。创业公司应该采取不同的策略,利用自身的优势和资源建立局部的竞争优势。

    AI Native 的定义

    AI Native 并不是指应用中 AI 技术的占比,而是利用人工智能技术创造全新的应用范式。以 PPT 类应用为例,AI Native PPT 并不仅仅是将 AI 用于生成大纲和图片的组合,而是通过 AI 技术创造了一种全新的 PPT 创作方式。

    案例分析: AI Native PPT 应用不仅可以帮助用户生成大纲和图片,还可以根据用户的输入自动调整内容和布局,提供更加智能和个性化的创作体验。这种新的应用范式使用户可以更高效地创建演示文稿,节省时间和精力。

    寻找 AI Native 应用的 PMF

    在开发 AI Native 应用之前,寻找产品-市场匹配(PMF)是非常重要的。在新技术出现之前,已经有一些先行者在尝试和验证新的产品。我们可以通过以下途径来寻找已经验证过的 PMF:

    1. 关注每月的 AI 产品增速榜,了解市场上最新的产品和趋势。
    2. 关注知名风投公司如 Y Combinator 和 Andreessen Horowitz 关注的新项目,这些公司对市场趋势有很好的洞察力。
    3. 关注一线 AI 公司的产品需求,了解他们在寻找什么样的 AI Native 应用。
    4. 在二级市场的咨询话题中寻找需求信号,这些话题可以指引我们开发哪些有市场潜力的应用。

    案例分析: 通过关注以上渠道,我们可以获得很多有关 AI Native 应用的信息。比如,我们可能发现在教育领域有一些成功的 AI Native 应用,如智能辅导系统,可以根据学生的学习情况提供个性化的辅导和反馈。这是一个已经验证过的 PMF,我们可以在此基础上思考如何差异化和创新。

    AI 和 App 的配比

    在开发 AI Native 应用时,需要注意 AI 技术在产品中的配比。有时候,降低 AI 的占比反而更容易实现商业闭环。用户更关注产品能否解决问题,而不是关注是否采用最先进的 AI 技术。

    案例分析: 假设我们开发了一个 AI Native 的翻译应用。用户使用这个应用主要是为了解决语言障碍,他们更关心翻译的准确性和速度。在这种情况下,我们可能会采用一些基于开源模型和 API 的方法,而不是自己开发复杂的 AI 模型。这样可以降低开发成本和技术难度,更快地实现商业闭环。

    PM 的角色

    在 AI Native 应用的开发中,一个项目通常需要两个产品经理(PM)的参与。一个负责系统构建和商业闭环,另一个懂得模型,能够定义清晰的技术指标。这两个 PM 的协同工作非常重要,以确保产品的商业和技术目标能够相互支持。

    案例分析: 在开发一个 AI Native 应用时,一个 PM 可以负责用户需求、商业模式、产品设计和市场推广等方面,确保系统构建和商业闭环的顺利实现。另一个 PM 则可以负责与算法团队的合作,定义技术指标并确保模型的准确性和性能。这种双重角色的分工可以保证商业和技术的平衡,并促进项目的成功。

    算法的雕花技巧

    在 AI Native 应用的开发过程中,算法的迭代速度通常较慢。因此,除了关注算法的性能和准确性外,还需要注重算法的雕花技巧。这些技巧可以帮助我们在算法迭代缓慢的期间实现差异化。

    案例分析: 举例来说,假设我们开发了一个 AI Native 的图像识别应用。在模型的迭代过程中,我们可能会发现不同的雕花技巧,例如增加模型对特定场景的识别准确性、提高模型对细节的捕捉能力等。这些技巧可以让我们的应用在性能和用户体验上与竞争对手有所区别。

    结尾

    AI Native Apps 的开发涉及到战略、PMF 寻找、AI 和 App 的配比、PM 和算法的合作模式以及算法的雕花技巧等多个方面。通过正确的战略定位,寻找已验证的 PMF,合理配置 AI 和 App 的比例,以及优化 PM 和算法之间的合作关系,我们可以开发出具有差异化竞争力的 AI Native 应用。

  • x86架构:是否该退出历史舞台?

    简介

    近期有一篇文章声称:“x86架构需要退出历史舞台”。这个观点引发了广泛的讨论。在ThePrimeagen的直播节目中,一位资深专栏作家对这个观点进行了深入的探讨。本文将基于参考文献,以通俗易懂的方式详细解读这一观点,并举例说明。

    内存寻址的问题

    在这篇文章中,有人认为CPU在实模式下的“直接访问内存”的能力给现代x86架构带来了很多遗留问题。但实际上,这些问题与直接内存访问关系不大。问题主要源于早期8086实模式的一些兼容性要求,其中涉及更多的16位段寄存器用于内存地址计算。而要解决的问题是如何正确计算和维护这些寄存器的地址。

    然而,不必完全相信我的观点。因为Intel公司已经提出了一份详细的架构改进方案,他们清楚地列出了x64架构中可以简化的部分,包括旧式分段寻址。此外,Intel还提出了其他一些改进,比如移除未使用的特权级等。这些都可以在他们的提案《Envisioning A Simplified Intel Architecture》中找到。

    指令编码的问题

    另一个问题是x64指令编码的复杂性,这使得同时解码大量指令变得不够高效。我们可以认为这是x64架构需要改进的主要方面,需要重新排列一些位模式,使得同时解码多条指令更加简单。

    举个例子,许多指令都会影响标志位,而条件指令通常会根据这些标志位进行操作。这种设计导致了很多“不必要的依赖性”,即使你可能并不关心某些指令对标志位的修改,CPU仍然需要跟踪这些标志位的变化,而且你(或者更常见的是编译器)也需要小心地避免在你关心的标志位变化和随后依赖它的条件指令之间使用会覆盖标志位的指令。

    因此,一个可能的改进是在x64架构中引入一些不影响标志位的指令,比如用于移位操作的指令。这样,当程序员不打算修改标志位时,可以使用保留标志位的移位指令。

    同样,不必完全相信我的观点。Intel已经提出了一项指令集扩展方案,称为Advanced Performance Extensions(APX),它解决了这些问题并引入了许多性能改进。该方案允许许多常见指令不写入标志位,并包含许多其他面向性能的功能。

    x86是否需要退出历史舞台?

    如果我们将目光转向RISC-V这样的新兴架构,我们会发现它在某些方面并不如x86。举例如,最新的RISC-V V扩展是为了在计算密集型工作负载中提供向量支持而设计的,但其指令集设计在第一个版本中存在一些问题。这部分原因在于他们决定不使用可变长度的指令编码。结果,尽管现代的SIMD/向量指令集(如AVX-512、ARM SVE和GPU的自定义指令集)可以根据你选择的掩码寄存器执行指令,但RISC-V V只能在打开或关闭掩码时进行操作,并且只能从v0寄存器读取掩码,没有其他可用的掩码寄存器。

    为什么会这样呢?因为他们在32位指令编码中无法腾出足够的位数来引用更多的掩码寄存器!相比之下,当AVX-512引入掩码功能时,它支持从8个掩码寄存器中选择。正如往常一样,x64架构的设计者们选择了支持更复杂的指令解码,而忽略了成本的增加。

    因此,我们不应该将问题看作是“固定长度指令好,可变长度指令坏”,而应该将其视为一种权衡。紧凑一致的指令编码需要付出代价,使得在应对行业和计算环境的变化时变得更加困难。这也使得硬件和软件更难以及时提供满足新兴高性能软件领域需求的新指令。你要么牺牲指令质量(如RISC-V所做的),要么像x86/x64一样选择更复杂的解码逻辑。

    我们强烈怀疑RISC-V的未来修订版本将会选择后者。RISC-V支持可变长度编码,而且我不会感到意外的是,一旦它的存在时间达到x86的一小部分寿命,为了在高性能类别中保持竞争力,它将需要更多地利用可变长度编码方案。

    总的来说,我不认为x86(x64)架构需要退出历史舞台。尽管它有缺点,但在过去的四十年中,x86架构在软件开发领域发挥了巨大作用,为我们提供了稳定性和灵活性。虽然x64有改进的空间,但ARM和RISC-V等架构并不一定比x64更好,它们也有各自的局限性和权衡。此外,x64的未来可能更多地受到商业因素的影响,如许多公司提供ARM和RISC-V处理器的原因是ARM可以被任何人授权,而RISC-V则是免费的。

    总而言之,x64架构在技术上并不需要退出历史舞台。虽然有改进的空间,但它仍然在软件开发中发挥着重要的作用。如果将来x64架构被逐渐淘汰,更可能是出于商业原因,而不是技术上的限制。

    参考文献:


    Intel的Advanced Performance Extensions(APX)是一项指令集扩展方案,旨在提高Intel架构的性能。该方案通过扩展x86指令集,增加寄存器数量和引入新的功能,以提供高效的性能提升,而不会显著增加核心的硅面积或功耗。

    以下是APX的一些关键特点和优势:

    1. 增加通用寄存器数量:APX将通用寄存器(GPRs)的数量从16个增加到32个。这使得编译器可以将更多的值保存在寄存器中,从而减少了加载和存储操作的次数。与基于Intel 64基线编译的代码相比,APX编译的代码中的加载操作减少了10%,存储操作减少了20%以上[1]
    2. 快速且低功耗的寄存器访问:APX中的寄存器访问不仅更快,而且消耗的动态功耗也比复杂的加载和存储操作要少得多。
    3. 简化的编译器支持:编译器支持APX非常简单。新的REX2前缀提供了对新寄存器的统一访问,而Intel AVX指令则通过现有的EVEX前缀中定义的新位来实现访问。此外,传统的整数指令现在也可以使用EVEX来编码专用目标寄存器操作数,将其转换为三操作数指令,从而减少了额外的寄存器移动指令的需求。
    4. 扩展的条件指令集:为了解决大量条件分支预测错误对性能的影响,APX显著扩展了x86的条件指令集。这些扩展包括条件形式的加载、存储、比较和测试指令,以及编译器可以禁止常见指令的状态标志位写入的选项。这些改进扩展了if-conversion的适用范围,减少了可能导致预测错误的分支数量。
    5. 简化的应用开发:应用开发人员可以通过简单的重新编译来利用APX的优势,无需对源代码进行更改。使用动态语言编写的工作负载在底层运行时系统启用后将自动受益。

    总的来说,Intel的APX通过增加寄存器数量、优化寄存器访问和扩展条件指令集等方式,提供了显著的性能提升,同时保持了与现有代码的兼容性。


    Learn more:

    1. Advanced Performance Extensions (APX)
    2. Advanced Performance Extensions (APX)
    3. Intel® Advanced Performance Extensions (Intel® APX) Assembly Syntax Recommendations

    简化英特尔架构:探索64位纯模式架构

    本文基于参考文献[1],采用通俗易懂的语言,详细介绍了英特尔公司正在研究的架构简化方案,重点关注64位纯模式架构(x86S)。我们将从以下几个方面展开讨论:

    • 64位纯模式架构的工作原理
    • 64位纯模式架构的好处
    • 64位纯模式架构上的传统操作系统
    • 64位纯模式架构的详细方案

    64位纯模式架构的工作原理

    当前的英特尔64位架构中,处理器需要经过一系列代码转换才能进入64位模式。然而,这些模式在现代应用程序和操作系统中并不常用。在64位纯模式架构中,一些当前在实模式或保护模式下运行的技术需要具备64位的等效替代方案。

    举个例子,引导处理器(SIPI)目前从实地址模式开始,但在64位纯模式架构中需要一个64位的替代方案。此外,目前使用5级分页需要禁用分页,回到非分页的传统模式。而在提出的架构中,可以在分页模式下切换到5级分页,无需回到非分页的传统模式。

    这些修改可以通过对系统架构进行简单的增强来实现,只会影响操作系统本身。

    64位纯模式架构的好处

    64位纯模式架构通过移除一些较旧的架构附属物件,降低了软件和硬件架构的整体复杂性。通过探索64位纯模式架构,可以实现与现代软件部署相一致的其他变化。

    一些潜在的好处包括:

    • 使用64位简化分段模型来支持32位应用程序的分段,与现代操作系统的使用方式相匹配。
    • 移除不再使用的第1和第2特权级(现代软件中未使用)以及过时的分段特性。
    • 移除16位寻址支持。
    • 取消对第3特权级I/O端口访问的支持。
    • 取消支持基于字符串端口的过时CPU驱动I/O模型。
    • 仅使用X2APIC限定本地中断控制器(APIC),移除传统的8259支持。
    • 移除一些未使用的操作系统模式位。

    64位纯模式架构上的传统操作系统

    尽管64位纯模式架构上运行传统的64位操作系统并不是该方案的明确目标,但英特尔架构软件生态系统已经发展成熟,并提供了虚拟化产品。这使得可以使用虚拟化硬件(VMX)来模拟启动传统操作系统所需的功能,从而实现在64位纯模式架构上运行这些操作系统的解决方案。

    例如,可以通过虚拟化技术在64位纯模式架构上创建虚拟机,利用虚拟化硬件来模拟传统操作系统所需的功能,以达到在该架构上运行传统操作系统的目的。

    64位纯模式架构的详细方案

    英特尔提供了一份64位纯模式架构详细方案的规范,其中包含了本文所述的想法。英特尔发布此规范,以便生态系统评估对软件可能产生的潜在影响。

    该规范包括以下内容:

    • 对分段状态进行了简化,详细说明了VMX、SMX和复位等内容。
    • 提供了版本为1.1的X86S外部架构规范,包括许多澄清和简化的内容。

    英特尔欢迎生态系统就这一架构提出反馈意见,可以通过电子邮件与他们联系。

    结论

    英特尔正在探索一种简化的架构方案,即64位纯模式架构(x86S)。通过移除不再使用的传统模式和附属物件,这种架构可以简化软件和硬件的复杂性,同时实现与现代软件部署相一致的变化。

    尽管64位纯模式架构并非专门用于运行传统操作系统,但通过虚拟化技术可以实现在该架构上运行这些操作系统的解决方案。

    参考文献:

    1. Envisioning a Simplified Intel Architecture for the Future

    x86s是Intel于2023年公布的一个处理器架构,经由改进及简化x86-64而来。它的目标是降低当代软件和硬件体系结构的整体复杂性,通过移除不常用的部分和遗留概念来提高处理器的性能和能效[1]

    下面是对x86s架构的详细介绍:

    1. 简化的64位模式:x86s仅实现了64位模式,放弃了对16位和32位操作系统的支持。这使得处理器更加专注于现代软件和硬件的需求,提高了性能和能效。
    2. 精简化的内存寻址模型:x86s使用简化的64位内存段寻址模型来支持32位应用程序中的段寻址。这与现代操作系统中使用的做法一致,提高了兼容性和效率。
    3. 移除不常用的保护环和特性:x86s移除了不常用的保护环(ring 1和ring 2)以及过时的特性(如gate)。这减少了处理器的复杂性,提高了性能和能效。
    4. 简化的I/O接口:x86s终止了对从第三个保护环访问I/O端口的支持,并移除了输入/输出端口(INS/OUTS)字符串操作。这使得处理器更加专注于核心任务,提高了性能和能效。
    5. 改进的中断控制器:x86s终止了对8259中断控制器的支持,并仅使用X2APIC可编程控制器。这简化了中断处理,提高了性能和能效。

    下面是x86和x86s架构的比较:

    1. 支持的操作系统:x86支持16位、32位和64位操作系统,而x86s仅支持64位操作系统。
    2. 内存寻址模型:x86使用复杂的内存寻址模型,包括16位、32位和64位寻址。而x86s使用简化的64位内存段寻址模型,提高了兼容性和效率。
    3. 保护环和特性:x86支持多个保护环(ring 0到ring 3)和一些过时的特性(如gate)。而x86s移除了不常用的保护环和过时特性,简化了架构。
    4. I/O接口和中断控制器:x86支持从第三个保护环访问I/O端口,并使用传统的8259中断控制器。而x86s终止了对这些特性的支持,使用更简化的I/O接口和X2APIC可编程控制器。

    综上所述,x86s架构通过简化和精简化的设计,提高了处理器的性能和能效,同时降低了整体复杂性。它放弃了对16位和32位操作系统的支持,专注于64位模式,并移除了不常用的保护环、特性和接口。这使得x86s成为适用于现代软件和硬件需求的处理器架构。

    参考文献:

    1. x86s – 维基百科,自由的百科全书 [1]
    2. x86S,英特尔的新架构,消除了16位和32位的遗留概念| Desde Linux [3]

    Learn more:

    1. x86s – 维基百科,自由的百科全书
    2. x86s – 維基百科,自由的百科全書
    3. x86S,英特尔的新架构,消除了16位和32位的遗留概念| Desde Linux
  • 放宽IPFS的CORS(跨域资源共享)限制

    要放宽IPFS的CORS(跨域资源共享)限制,你可以按照以下步骤进行操作:

    1. 使用IPFS命令行工具配置CORS头信息:
    • 打开终端或命令提示符窗口。
    • 运行以下命令来设置CORS头信息:
      ipfs config --json API.HTTPHeaders.Access-Control-Allow-Origin '["*"]' ipfs config --json API.HTTPHeaders.Access-Control-Allow-Methods '["GET", "POST"]' ipfs config --json API.HTTPHeaders.Access-Control-Allow-Headers '["Authorization"]' ipfs config --json API.HTTPHeaders.Access-Control-Expose-Headers '["Location"]' ipfs config --json API.HTTPHeaders.Access-Control-Allow-Credentials '["true"]'
      这些命令将设置允许所有来源(*)的跨域请求,并指定允许的HTTP方法、请求头、暴露的响应头和是否允许携带凭证(如Cookie)。
    1. 重新启动IPFS守护进程(daemon):
    • 运行以下命令来重新启动IPFS守护进程:
      ipfs daemon
      这将使新的CORS配置生效。

    现在,IPFS将允许来自任何来源的跨域请求。

    请注意,这些配置将应用于IPFS守护进程,而不是IPFS网关。如果你使用的是IPFS网关,你可能需要查看网关的文档以了解如何配置CORS。


    Learn more:

    1. cors – How to do cross-origin requests on IPFS – Stack Overflow
    2. Gateway should allow CORS · Issue #934 · ipfs/kubo · GitHub
    3. How to enable CORS in go-ipfs Dockerfile – Help – IPFS Forums
  • 为什么大多数女性对自己的丈夫不满意?

    在现代社会中,有许多女性对自己的丈夫不满意,甚至瞧不上眼。这引发了一个问题:为什么会出现这种现象?我们将从几个可能的原因来探讨。

    追求更好的经济条件

    首先,许多女性在选择伴侣时倾向于追求经济条件优于自己的人,或者至少是与自己经济条件相当的人。这并不是说女性只关注金钱,而是因为她们希望过上更好的生活,享受更高的物质条件。如果她们选择了经济条件不如自己的伴侣,那么她们往往会感到不满意,因为她们希望能够从对方那里获得更多的物质利益。

    制造亏欠心理

    其次,有些女性倾向于通过制造亏欠心理来经营婚姻。她们希望从丈夫那里得到更多的关注和付出,因此经常让丈夫感到亏欠,从而使自己处于控制的位置。这种心理策略使得女性在婚姻中拥有更多的话语权,决定了对方的付出是否符合她们的期望。这样一来,女性可以通过频繁地否定丈夫的努力来维持自己在关系中的优势地位。

    高标准和挑剔

    此外,一些女性可能持有较高的标准,并对伴侣的表现持续挑剔。她们对伴侣的行为和付出有着极高的期望,并且往往只看到对方的不足之处,而忽视了对方的努力和优点。这种持续挑剔的行为会导致女性对丈夫产生不满和瞧不上的感觉。

    不公平的期望和责任分配

    最后,一些女性可能对伴侣有着不公平的期望和责任分配。她们可能认为丈夫应该承担更多的责任,包括经济上的支持、家务劳动、子女教育等。而丈夫的付出往往被视为理所当然,而不被充分认可和赞赏。这种不公平的期望和责任分配会导致女性对丈夫的不满和瞧不上。

    综上所述,大多数女性对自己的丈夫不满意可能是由于多种因素的综合作用。这包括追求更好的经济条件、制造亏欠心理、持有高标准和持续挑剔,以及对伴侣有不公平的期望和责任分配。了解这些因素有助于我们更好地理解婚姻关系中的挑战,并为建立和谐幸福的婚姻关系提供思考和改善的方向。

    参考文献:
    VIERI32. (2024, 6月 4). 为什么大多数女的都瞧不上自己的老公?. Zhihu.

  • 《汤姆叔叔的小屋》:小说引发的美国南北战争

    美国的历史相对来说并不算长久,从独立战争到现在,也只有不到两百年的时间。在哥伦布发现美洲大陆之前,美洲印第安人已经有几千年的文明历史。然而,北美洲的文学在独立战争之前主要是一些宗教诗歌,直到独立战争后,美国才逐渐形成了自己的民族文学。

    1776年,美国宣布独立成为一个独立国家,80年后,美国爆发了历史上规模最大的内战,即南北战争。

    南北战争参战人数高达350万人,其中大部分是志愿兵,这场战争造成了大量伤残和死亡,死亡人数高达百万。

    为什么会爆发这场大战呢?原来,在美国独立后,尽管摆脱了英国的殖民统治,但国内的种族压迫问题一直存在,尤其在美国南方地区更加明显。

    南方地区以种植园经济为主,数百万黑奴每天为白人奴隶主辛勤劳作,却连最基本的人权都没有。

    1861年,林肯当选为美国总统,为了促进经济发展,顺应民意,他决心废除蓄奴制度。然而,在林肯出手之前,南方的奴隶主们却先下手为强。

    最终,南北战争持续了5年,以北方的胜利结束。

    在战争期间,林肯在白宫接见了当时的女作家斯托夫人,并声称这场战争是因为她的书而引发的。斯托夫人的这本书就是《汤姆叔叔的小屋》。

    《汤姆叔叔的小屋》于1852年首次连载,立即引起了巨大反响。仅在第一年,就印刷了100多版,并被翻译成20多种语言,在世界各地传播开来。

    斯托夫人最初并没有预料到这部小说会引起如此大的反响。最初,一家杂志同意连载小说的三四期,但故事越写越长,人物形象越写越栩栩如生,最后连载了四十多期。斯托夫人曾感慨地说:“这部小说是上帝的作品,我只是他手中的一支笔!”

    后来,小说出版成单行本,首印五千册,两天就售罄!随后,八家出版社一起印刷,一年内印刷了三十万册,仍然供不应求。甚至英国和欧洲的出版公司也加入其中,一年内售出了二百五十万册!

    可以说,《汤姆叔叔的小屋》为美国南北战争的爆发起到了决定性的作用。

    这部小说的故事并不复杂,主要讲述了奴隶汤姆叔叔一家在南方种植园主家中辛勤劳作的生活。尽管生活艰辛,但他们对待生活还算平静。然而,当种植园主家破产后,他们被迫分离。汤姆叔叔被卖到远方,经历了苦难和残酷的奴役。

    在途中,汤姆叔叔救起了一名白人女孩,并得到她父亲的感激。然而,后来他又落入了另一个凶残的奴隶主手中,遭受残酷的虐待。

    最终,汤姆叔叔因为保护其他奴隶而被殴打致死。他的死触动了他的主人乔治,乔治以汤姆叔叔的名义解放了所有的黑奴,并希望他们通过《汤姆叔叔的小屋》来铭记自由的重要性。

    《汤姆叔叔的小屋》的出版,揭示和描绘了黑奴的悲惨生活,引起了社会的广泛关注。它成为19世纪最畅销的小说之一,仅次于《圣经》。

    美国南北战争的爆发并非单一原因造成的,但《汤姆叔叔的小屋》的出版无疑是其中一个重要的推动力。这本小说通过生动的描写和强烈的情感,让人们对奴隶制度的残酷性质有了更深刻的认识,进一步激发了废奴运动的发展。

    因此,美国总统林肯将斯托夫人形容为“写了一本书,酿成一场大战的小妇人”,这不是没有道理的。


    参考文献:
    [1] 《汤姆叔叔的小屋》:文学与历史的交汇点. Retrieved from here.


    破坏了社会的共识就破坏了统治的基础!社会围绕一个共同认可的“故事”而存在!