标签: AI

  • 阅读分析报告: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. 伦理声明:论文强调了文本生成技术可能被滥用的风险,并声明了研究团队在设计方法时考虑了减少有害内容生成的措施。

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


  • 苹果公司近期开发了一种名为ReALM(Reference Resolution As Language Modeling)的系统

    苹果公司最近在人工智能领域取得了新的研究进展,他们发布了一种名为ReALM的人工智能系统,该系统具有优于GPT-4的视觉元素解析能力。这项研究成果被认为是苹果在AI大语言模型上的重要突破。

    ReALM是苹果研究人员开发的一种人工智能系统,它能够理解屏幕上的实体以及对话和背景上下文中的模糊引用,从而实现与语音助手更自然的交互。该系统利用大型语言模型将参考解析的复杂任务转换为纯语言建模问题,从而实现了显著的性能提升[1]

    为了处理基于屏幕的引用,ReALM的一个关键创新在于使用已解析的屏幕字符及其位置来重建屏显,以生成捕获视觉布局的文本表示。研究人员证明,这种方法与专门用于参考解析的微调语言模型相结合,可以在该任务上优于GPT-4[1]

    苹果的研究人员团队指出,能够理解上下文,包括参考文献,对于对话助理来说至关重要。他们展示了ReALM在不同类型的参考中对现有系统的巨大改进,最小的模型在屏幕参考上获得了超过5%的绝对增益,而较大模型的性能更是远远优于GPT-4[1]

    尽管ReALM在解析屏幕上的视觉元素方面取得了显著的成果,研究人员也指出,依赖屏幕自动解析仍然存在局限性。处理更复杂的视觉参考可能需要结合计算机视觉和多模态技术[1]

    这项研究的发布表明苹果公司在人工智能领域的投资和研究将继续推进,以使其语音助手Siri和其他产品更加熟悉和情境感知。苹果公司正在努力缩小与竞争对手在人工智能领域的差距,以保持其在市场上的竞争力[2]


    Learn more:

    1. 苹果大模型新进展:发布 ReALM,视觉元素解析能力优于 GPT-4_手机新浪网
    2. 苹果大模型新进展:发布 ReALM,视觉元素解析能力优于 GPT-4-CSDN博客
    3. 苹果研究人员称其设备端模型 ReALM 性能优于 GPT-4,可大幅提升 Siri 智能程度 – IT之家

  • 深入探索 Deep Java Library (DJL)

    在深度学习领域,Python 一直占据着主导地位,拥有 TensorFlow 和 PyTorch 等强大的框架。然而,Java 作为企业级应用的支柱语言,也渴望在深度学习浪潮中占据一席之地。Deep Java Library (DJL) 应运而生,它致力于弥合 Java 生态系统与深度学习之间的鸿沟。

    DJL:用 Java 语音构建深度学习应用的桥梁

    DJL 是一个开源的深度学习框架,专为 Java 开发者设计。它提供了一套直观且易于使用的 API,用于构建、训练和部署深度学习模型。

    DJL 的核心优势:

    • 专为 Java 打造: DJL 允许开发者使用熟悉的 Java 语法和工具构建深度学习应用,无需切换语言或学习复杂的 Python 库。
    • 引擎无关性: DJL 支持多种深度学习引擎,包括 TensorFlow、PyTorch、MXNet 和 OnnxRuntime。开发者可以自由选择最适合其需求的引擎,并轻松地在不同引擎之间切换。
    • 模型库: DJL 提供了丰富的预训练模型库,涵盖图像分类、对象检测、自然语言处理等多个领域。开发者可以直接使用这些模型进行推理或微调,快速构建原型或部署应用。
    • 高性能: DJL 针对性能进行了优化,可以充分利用多核 CPU 和 GPU 进行训练和推理。

    DJL 的应用场景

    DJL 适用于各种深度学习应用场景,包括:

    • 图像识别: 使用预训练模型或自定义模型进行图像分类、对象检测等任务。
    • 自然语言处理: 进行文本分类、情感分析、机器翻译等任务。
    • 预测分析: 构建时间序列模型进行预测和异常检测。
    • Java 应用集成: 将深度学习功能集成到现有的 Java 应用中,例如推荐系统、欺诈检测等。

    DJL 实例:图像分类

    以下代码示例展示了如何使用 DJL 和预训练的 ResNet-50 模型进行图像分类:

    // 加载预训练的 ResNet-50 模型
    Criteria<Image, Classifications> criteria = Criteria.builder()
            .setTypes(Image.class, Classifications.class)
            .optModelUrls("https://mlrepo.djl.ai/modelpaths/resnet50_v1/resnet50_v1_tf_cpu.zip")
            .build();
    try (ZooModel<Image, Classifications> model = ModelZoo.loadModel(criteria);
         Predictor<Image, Classifications> predictor = model.newPredictor()) {
    
        // 加载待分类的图像
        Image img = ImageFactory.getInstance().fromUrl("https://djl.ai/images/kitten.jpg");
    
        // 执行推理
        Classifications classifications = predictor.predict(img);
    
        // 打印分类结果
        System.out.println(classifications);
    }

    总结:

    DJL 为 Java 开发者打开了深度学习的大门,让他们能够利用现有的技能和工具构建强大的 AI 应用。随着 DJL 的不断发展和完善,我们可以预见 Java 在深度学习领域将会扮演越来越重要的角色。

  • KerasCV 和 KerasNLP:赋予视觉和语言处理超能力

    近年来,深度学习在计算机视觉(CV)和自然语言处理(NLP)领域取得了显著的进展。然而,构建和训练最先进的模型需要大量的计算资源和专业知识,这给许多研究人员和实践者带来了挑战。为了解决这些问题,谷歌的 Keras 团队推出了 KerasCV 和 KerasNLP,这是 Keras API 的扩展,旨在简化 CV 和 NLP 工作流程。

    模块化设计:构建复杂模型的基石

    KerasCV 和 KerasNLP 采用模块化、分层的设计方法,为用户提供了三种主要抽象级别:

    1. 基础组件: 这些组件是构建和训练预处理管道、模型和评估逻辑的可组合模块。例如,KerasCV 提供了丰富的预处理层,可以轻松构建数据增强管道,提高模型的鲁棒性和泛化能力。
    # 应用灰度预处理到输入
    (images, labels), _ = keras.datasets.cifar10.load_data()
    to_grayscale = keras_cv.layers.preprocessing.Grayscale()
    augmented_images = to_grayscale(images)
    1. 预训练主干: 用户可以使用预训练的模型主干进行微调,例如 ResNet、BERT 和 GPT2 等流行架构。这些主干模型通常在大型数据集上进行训练,可以为各种下游任务提供良好的起点。
    2. 任务模型: 这些模型针对特定任务进行了预先配置,例如图像分类、对象检测、文本生成和问答。任务模型结合了较低 API 级别的预处理和建模模块,创建了一个统一的训练和推理接口,可以直接对原始文本或图像输入进行操作。

    预设 API:快速构建最先进模型

    预设 API 提供了一种创建最先进的 CV 和 NLP 模型的便捷方法。预设是已经在特定数据集上训练过的预配置模型,可用于特定任务。

    例如,要使用预设 API 创建 RetinaNet 模型,只需导入 keras_cv.models 模块,然后在 RetinaNet 类上调用 from_preset() 方法:

    # 从预设加载架构和权重
    model = keras_cv.models.RetinaNet.from_preset(
        "resnet50_imagenet",
    )

    性能优势:多后端支持和 XLA 编译

    KerasCV 和 KerasNLP 支持 JAX、TensorFlow 和 PyTorch 等多个后端,允许用户选择最适合其需求的框架。此外,它们还支持 XLA 编译,这可以显著提高模型的训练和推理速度。

    Kaggle 模型:开放获取预训练模型

    所有 KerasCV 和 KerasNLP 的预训练模型都发布在 Kaggle 模型平台上,并且可以在没有互联网连接的情况下使用。这为研究人员和实践者提供了便捷地访问和使用最先进模型的机会。

    未来展望:多模态和模型服务

    Keras 团队计划在未来扩展 KerasCV 和 KerasNLP 的功能,包括支持更广泛的多模态模型和优化与后端特定大型模型服务解决方案的集成。

    结论:赋能 CV 和 NLP 创新

    KerasCV 和 KerasNLP 为快速原型设计新模型提供了模块化组件,并为许多计算机视觉和自然语言处理工作流提供了标准的预训练主干和任务模型。它们可以被 JAX、TensorFlow 或 PyTorch 的用户利用。得益于后端可选性和 XLA 编译,KerasCV 和 KerasNLP 提供了最先进的训练和推理性能。

    参考文献

    • Chollet, F. et al. (2015). Keras. https://keras.io/
    • Watson, M. et al. (2024). KerasNLP: Natural Language Processing with Keras.
    • Wood, L. et al. (2024). KerasCV: Computer Vision with Keras.
    • Abadi, M. et al. (2015). TensorFlow: Large-Scale Machine Learning on Heterogeneous Systems.
    • Bradbury, J. et al. (2018). JAX: Autograd and XLA for High-Performance Machine Learning Research.
    • Paszke, A. et al. (2019). PyTorch: An Imperative Style, High-Performance Deep Learning Library.
    • Sabne, A. (2020). XLA: The TensorFlow Compiler.
    • Devlin, J. et al. (2019). BERT: Pre-training of Deep Bidirectional Transformers for Language Understanding.
    • Jiang, Q. et al. (2023). Mistral 7B.
    • Kirillov, A. et al. (2023). Segment Anything.
    • Team, G. (2024). Gemma.
    • Wolf, T. et al. (2020). Transformers: State-of-the-Art Natural Language Processing.
  • KerasNLP: Your Gateway to State-of-the-Art NLP with TensorFlow

    KerasNLP is a powerful library that brings the simplicity and ease-of-use of Keras to the world of Natural Language Processing (NLP). Built on top of TensorFlow, it provides a comprehensive suite of tools for building, training, and deploying state-of-the-art NLP models.

    Key Features:

    • Pre-trained Models: Access a wide range of pre-trained models for tasks like text classification, question answering, summarization, and more. These models are ready to use off-the-shelf or fine-tune on your own data.
    • Modular Architecture: KerasNLP embraces modularity, allowing you to easily combine and customize different components like tokenizers, embeddings, encoders, and decoders to build your own custom NLP pipelines.
    • User-Friendly API: Leverage the intuitive Keras API for defining, training, and evaluating your models. The familiar syntax makes it easy for both beginners and experts to dive into NLP.
    • Seamless TensorFlow Integration: Built directly on TensorFlow, KerasNLP benefits from TensorFlow’s ecosystem, including distributed training, model optimization, and deployment options.

    What can you do with KerasNLP?

    • Text Classification: Categorize text into predefined classes (e.g., sentiment analysis, spam detection).
    • Sequence Tagging: Assign labels to words in a sequence (e.g., named entity recognition, part-of-speech tagging).
    • Question Answering: Develop models that can answer questions based on given context.
    • Text Summarization: Generate concise summaries of longer texts.
    • Machine Translation: Translate text from one language to another.
    • Text Generation: Create new text, like poems, code, scripts, musical pieces, email, letters, etc.

    Getting Started with KerasNLP:

    1. Installation: Install KerasNLP using pip:
       pip install keras-nlp
    1. Load a Pre-trained Model:
       import keras_nlp
       # Load a BERT model for text classification
       classifier = keras_nlp.models.BertClassifier.from_preset("bert_base_en_uncased")
    1. Preprocess Text:
       # Tokenize and encode the input text
       inputs = keras_nlp.preprocess.bert_preprocess(
           "This is an example sentence.", classifier.tokenizer
       )
    1. Make Predictions:
       # Get the predicted class probabilities
       probs = classifier(inputs)

    Advantages of KerasNLP:

    • Ease of Use: Keras’s intuitive API makes building and training NLP models straightforward.
    • Flexibility: The modular design allows for customization and experimentation with different architectures.
    • Performance: Built on TensorFlow, KerasNLP benefits from optimized performance and scalability.
    • Strong Community Support: Backed by a vibrant community and active development.

    Conclusion:

    KerasNLP provides a powerful and accessible toolkit for tackling a wide range of NLP tasks. Whether you’re a beginner or an experienced practitioner, KerasNLP empowers you to leverage the latest advancements in NLP and build cutting-edge applications.

  • KerasCV和KerasNLP:视觉和语言的增强

    在机器学习领域,Keras是最常用的工具之一,它提供了高层次的抽象来构建和训练机器学习模型。近年来,计算机视觉(CV)和自然语言处理(NLP)的发展给从业者带来了新的挑战。一方面,随着模型规模的不断增大,从头开始训练一个最先进的模型变得成本过高;另一方面,有效的数据预处理和度量计算也变得更加困难。为了解决这些问题,研究人员提出了KerasCV和KerasNLP这两个库,它们是Keras API在CV和NLP领域的扩展。

    KerasCV和KerasNLP的设计目标:

    KerasCV和KerasNLP旨在提供易于使用且性能优越的工具,支持在JAX、TensorFlow或PyTorch等深度学习框架上运行,以促进快速实验和模型开发。它们采用了模块化和分层的设计思想,为用户提供了不同层次的抽象和灵活性。

    KerasCV和KerasNLP的主要功能:

    • 基础组件:KerasCV和KerasNLP提供了构建和训练预处理流水线、模型和评估逻辑的可组合模块。这些组件可以在Keras Domain Packages生态系统之外使用,具有高度的灵活性。
    • 预训练骨干模型:这些库还提供了预训练的模型骨干,可以用于微调。在NLP模型中,还可以创建匹配的分词器。
    • 任务模型:KerasCV和KerasNLP提供了专门针对特定任务的端到端模型,如NLP中的文字生成和CV中的对象检测。这些任务模型结合了底层API中的预处理和建模模块,可以直接在原始输入上进行训练和推理。
    • 高效训练支持:库支持XLA编译,提高了训练效率。使用tf.data API运行所有预处理,通过编译的TensorFlow操作图来实现高效的数据处理。
    • 统一的分布式API:KerasCV和KerasNLP兼容Keras统一分布式API,支持模型和数据的并行处理,简化了模型的分布式训练配置。
    • 开源和社区贡献:这两个库完全开源(Apache 2.0许可),在GitHub上可供用户下载和使用,鼓励社区贡献和协作。

    KerasCV和KerasNLP的性能表现:

    论文中提供了KerasCV和KerasNLP在不同模型上的性能测试结果。例如,使用NVIDIA A100 GPU进行的实验显示,KerasCV和KerasNLP在模型训练和推理方面具有良好的性能。论文还与HuggingFace Transformers库进行了比较,突出了KerasNLP和KerasCV的设计哲学和方法的优势。

    未来的研究方向:

    论文中还提出了一些可以进一步探索的研究方向。例如,扩展多模态模型的提供,以支持更广泛的应用;优化与后端特定大型模型服务解决方案的集成,确保无缝部署和可扩展性。

    总之,KerasCV和KerasNLP为CV和NLP领域的研究人员和从业者提供了强大而易用的工具。它们的模块化和分层设计使得构建和训练模型变得更加简单和高效。通过提供预训练的模型骨干和任务模型,以及支持XLA编译和tf.data API的高效训练支持,KerasCV和KerasNLP为CV和NLP任务的快速实验和模型开发提供了便利。

    参考文献:

    KerasCV和KerasNLP的相关论文:

    更多关于KerasCV和KerasNLP的信息可以在官方网站和GitHub上找到。

    • Matthew Watson, Divyashree Shivakumar Sreepathihalli, François Chollet, Martin Görner, Kiranbir Sodhia, Ramesh Sampath, Tirth Patel, Haifeng Jin, Neel Kovelamudi, Gabriel Rasskin, Samaneh Saadat, Luke Wood, Chen Qian, Jonathan Bischof, Ian Stenbit. “KerasCV and KerasNLP: Vision and Language Power-Ups.” [PDF8].
    • François Chollet, et al. “Keras: The Python Deep Learning library.” Journal of Machine Learning Research 22.3 (2021): 1-7.
    • Thomas Wolf, et al. “Transformers: State-of-the-Art Natural Language Processing.” Proceedings of the 2020 Conference on Empirical Methods in Natural Language Processing: System Demonstrations. 2020.

    原始论文:

    • [PDF8] KerasCV and KerasNLP: Vision and Language Power-Ups
  • 解密商业文档信息提取:让电子文档处理工具为我们效力

    在现实生活中,我们常常需要将商业文档中的信息转化为结构化的格式,以便后续的系统能够解析和使用。这个过程被称为商业文档信息提取(Business Document Information Extraction,简称BDIE)。BDIE主要包括两个任务:关键信息提取(Key-Information Extraction,简称KIE)和行项目识别(Line Items Recognition,简称LIR)。本文将介绍一种全新的方法,即”检索增强结构化生成”(Retrieval Augmented Structured Generation,简称RASG),用于解决BDIE问题,并在相关基准测试中取得了最先进的成果。

    什么是商业文档信息提取?

    商业文档信息提取是将非结构化信息(如原始文本、扫描文档等)转化为结构化格式的过程,使其可以被后续的系统解析和使用。其中,关键信息提取的目标是将文档中的信息提取出来,并按照键值对的形式进行格式化。而行项目识别的目标是将信息提取为一系列行项目,其中每个行项目对应表格中的一行,并以列键值对的形式进行格式化。与表格结构识别不同的是,行项目识别不关注列的顺序,只要能够正确地将列映射到预定义的列键即可。

    检索增强结构化生成

    检索增强结构化生成(RASG)是一种由四个组件组成的方法:检索增强生成(Retrieval Augmented Generation)、监督微调(Supervised Finetuning)、结构化生成(Structured Generation)和结构化提示(Structured Prompting)。这些技术可以提高机器学习模型使用工具的能力,从而改善BDIE任务的性能。

    RASG的四个组件是相互关联的:

    1. 检索增强生成允许我们通过在上下文中进行学习,教导预训练模型使用新的工具。
    2. 监督微调提高了提取结果的正确性。
    3. 结构化生成确保模型输出的结果可以被后续的系统解析。
    4. 结构化提示将布局信息融入到提示中,使得文本提示的形式更接近原始文档。

    这四个组件在使用开源的7B大型语言模型(LLM)Hermes 2 Pro – Mistral 7B上可以取得最先进的BDIE结果。然而,在使用GPT-3.5模型时,只需要其中的一个子集即可。

    监督微调中的注意事项

    监督微调的目标是使语言模型既能输出正确的内容,又能输出正确的结构。为了确保模型输出的结果可以被后续系统解析,我们需要将无效标记的概率置零。然而,简单地将监督微调和结构化生成相结合往往会导致结果不佳。主要存在以下两个问题:

    1. 模式与模型不匹配:基于正则表达式的结构化生成算法(如Outlines’ outlines.generate.json模块)在生成过程中隐式地要求严格的键排序。例如,假设我们的模式中”amount”键在”currency”键之前。在使用Outlines时,会在生成”amount”之前屏蔽”currency”的输出。然而,如果模型被微调为在生成”amount”之前生成”currency”,预测准确性就会下降。为了解决这个问题,可以确保监督微调的数据集严格遵循指定的模式,或者使用基于上下文无关文法的结构化生成算法(例如Outlines’ outlines.generate.cfg模块),它不要求严格的键排序。
    2. 可选键带来的标记膨胀:我们经常遇到一个问题,即在预测值为空时仍然要求生成键。例如,当我们使用可选字段构建一个Pydantic对象并将其JSON模式传递给Outlines时,会生成许多不必要的标记,从而降低推理速度。另一个不好的做法是将所有键都设置为可选的。这是因为Outlines在这种情况下使用了不同的生成状态机算法。解决这个问题的方法是在模式中添加一个类型为null的必需的虚拟键,并在后处理中将其删除。

    边界框反向计算的启发式算法

    对于关键信息提取任务,我们发现一个简单的贪婪算法(算法1)就足以用于边界框的反向计算。如果要使用整个页面,可以将下边界和上边界分别设置为0和页面的高度(以像素为单位)。对于行项目识别任务,一个好的启发式算法是:(1)将页面在垂直方向上划分为多个块,每个块对应一个行项目;(2)使用上述算法1为每个行项目的分配的单词块中的单词反向计算边界框。挑战在于如何划分页面。

    算法1:边界框反向计算的启发式算法

    1. 设置下边界和上边界、预测的键值映射和OCR数据。
    2. 匹配得分、键到边界框的映射。
    3. 对于键值映射中的每对(键,值):
    • 找到边界框中的所有坐标处于下边界和上边界之间的且与值匹配的最长连续单词列表。
    • 记录匹配单词的边界框。
    • 将键到边界框的映射添加到键边界框映射中。
    1. 计算匹配分数,即所有匹配单词的相似度之和,用于评估预测结果的准确性。
    2. 返回匹配分数和键边界框映射。

    这种方法的时间复杂度为O(MN^2 * Algo1),其中M是行项目的数量,N是页面的高度。我们可以通过降低页面的规模来优化这个复杂度。在实际生产中,我们使用N=128。此外,我们利用算法1的单调性进行优化:匹配分数随着上边界的增加和下边界的减小而不增加。因此,我们可以使用分治优化来加速计算,将复杂度优化为O(MNlogN * Algo1)。最后,我们使用二分搜索来找到第一个行项目的最大下边界和最后一个行项目的最小上边界,以缩小边界范围。

    通用行项目识别度量

    行项目识别的目标是将信息提取为有序的行项目列表,其中每个行项目对应表格中的一行,并以列键值对的形式进行格式化。为了评估行项目识别的性能,我们需要一个具备以下属性的度量方法:

    1. 子任务隔离:需要分别评估子任务的性能。
    2. 单元格隔离:将一个真正的正样本对应一个预测的单元格和一个正确的真实单元格进行比较。
    3. 单元格完整性:虚构的单元格被视为假阳性,缺失的单元格被视为假阴性。
    4. 单元格相似度度量的灵活性:在同一个子任务中,度量方法应支持多种单元格相似度度量方式。
    5. 单元格行位置的不变性:对于正确预测的单元格,所给予的奖励应与其绝对行位置无关。
    6. 行顺序的保持:对于任意两个预测行,它们的相对顺序和与其匹配的真实行的相对顺序应保持一致。
    7. 列排列的不变性:度量方法应对列的重新排列具有不变性。即不考虑列的顺序。

    目前存在的行项目识别度量方法中,ANLS*和DocILE使用基于最大权重二分图匹配的算法进行行匹配,因此不满足属性#6。此外,DocILE支持单元格内容和单元格位置的识别,但无法隔离这两个方面,这使得它无法用于只进行单元格内容或单元格位置识别的任务。GriTS满足上述所有属性,但不满足属性#7。

    在接下来的部分,我们将介绍一种新的度量方法,称为通用行项目识别度量(General Line Items Recognition Metric,简称GLIRM),它满足上述所有属性。GLIRM可以看作是ANLS*和DocILE的扩展,使其满足属性#1和属性#6,同时也是GriTS的一种推广,使其满足属性#7。

    GLIRM中的相似度匹配分数

    根据属性#1和属性#4,我们将使用𝑓(𝑐ₚ, 𝑐ₜ)表示预测单元格𝑐ₚ和真实单元格𝑐ₜ之间的相似度度量。𝑓可以是适用于特定下游任务的任何相似度度量方式,如产品参考编号的精确匹配、边界框的交并比等。为了使度量方法类似于F1得分,我们需要将𝑓限制在0到1之间:0 ≤ 𝑓(𝑐ₚ, 𝑐ₜ) ≤ 1,对于所有𝑐ₚ, 𝑐ₜ。我们将使用𝑔𝑓(𝑟ₚ, 𝑟ₜ)表示预测行𝑟ₚ和真实行𝑟ₜ中对应单元格的相似度分数之和。

    行匹配

    我们将𝑅ₚ和𝑅ₜ分别表示预测的行序列和真实的行序列。我们的目标是找到等长的子序列𝑅~ₚ和𝑅~ₜ,使得对应单元格的相似度分数之和最大:
    𝑅~ₚ, 𝑅~ₜ = argmax 𝑅ₚ’ | 𝑅ₚ, 𝑅ₜ’ | 𝑅ₜ ∑ 𝑖 𝑔𝑓(𝑅~ₚ[𝑖], 𝑅~ₜ[𝑖]) (1)
    由于我们关注子序列而不是行的子集,因此更适合使用类似Levenshtein距离的算法来找到𝑅~ₚ和𝑅~ₜ,而不是像ANLS*和DocILE那样使用基于最大权重二分图匹配的算法。这样可以惩罚在预测中交换或重新排列的行。

    GLIRM的准确率(GLIRM-Prec)和召回率(GLIRM-Rec)可以定义如下:
    GLIRM-Prec(𝑅ₚ, 𝑅ₜ) = (1/|𝑅ₜ|) ∑ 𝑖 𝑔𝑓(𝑅~ₚ[𝑖], 𝑅~ₜ[𝑖]) (2)
    GLIRM-Rec(𝑅ₚ, 𝑅ₜ) = (1/|𝑅ₚ|) ∑ 𝑖 𝑔𝑓(𝑅~ₚ[𝑖], 𝑅~ₜ[𝑖]) (3)
    GLIRM-F1(𝑅ₚ, 𝑅ₜ)可以定义为:
    GLIRM-F1(𝑅ₚ, 𝑅ₜ) = (1+𝛽²) ∑ 𝑖 𝑔𝑓(𝑅~ₚ[𝑖], 𝑅~ₜ[𝑖]) / (𝛽²|𝑅ₚ| + |𝑅ₜ|) (4)
    在实际应用中,或者当人工审核系统的输出时,召回率通常比准确率更重要。这是因为查找并确定缺失单元格比验证提取单元格的正确性需要更多时间。因此,我们可以定义带有𝛽参数的GLIRM-F1指标:
    GLIRM-F1𝛽(𝑅ₚ, 𝑅ₜ) = (1+𝛽²) ∑ 𝑖 𝑔𝑓(𝑅~ₚ[𝑖], 𝑅~ₜ[𝑖]) / (𝛽²|𝑅ₚ| + |𝑅ₜ|) (5)
    其中𝛽是一个控制召回率重要性的超参数。当𝛽=1时,该指标与GLIRM-F1相同。

    实验结果

    我们使用DocILE数据集进行了实验。表格I比较了LLMs与RASG在KIE和LIR任务上的性能与强大的多模态基线(如LayoutLMv3和Roberta + DETR)。表格II显示了RASG各组件在不同基线模型上的贡献。

    在KIE任务上,只需要GPT-3.5 + 1-Shot Retrieval或Hermes 2 Pro + RASG即可超越基线。对于LIR任务,GPT-3.5 + 1-Shot Retrieval + Structured Prompting就足以击败基线模型。

    此外,我们还测量了边界框反向计算启发式算法的中位数表格级信息覆盖得分(Information Coverage Score,简称ICS)。最佳基线模型Roberta + finetuned DETR在ICS上达到92.93%,而GPT-3.5 + RASG和Hermes 2 Pro + RASG分别达到87.79%和85.02%。

    讨论与结论

    我们的模型性能和消融实验结果表明了几个结论。首先,在KIE任务中,与其进行提示工程相比,使用检索机制和/或在目标数据集上进行微调的效果更好。对于LIR任务,首先进行结构化提示,然后再进行微调是一个更好的策略。有趣的是,经过适当调整和增强的LLMs可以击败经过微调的多模态模型,如LayoutLMv3和Roberta + DETR。最后,我们提出的边界框反向计算启发式算法在表格检测任务上的性能仅略逊于最佳基线模型。

    对于在商业文档信息提取领域工作的团队,我们建议首先使用支持结构化生成的现成LLMs模型,然后实现检索机制。如果性能仍然不理想,可以考虑进行监督微调。对于LIR任务,我们建议先从结构化提示开始,然后再进行微调。

    综上所述,本文介绍了使用RASG框架解决BDIE问题的全面方法,并提供了关于LLMs在这一领域中性能和优化策略的见解。

    参考文献:

    • Franz Louis Cesista, Rui Aguiar, Jason Kim, Paolo Acilo. Retrieval Augmented Structured Generation: Business Document Information Extraction As Tool Use.
    • Skalický, Jakub, et al. “Business document information extraction.” arXiv preprint arXiv:2202.06070 (2022).
    • Smock, Matthew, et al. “GriTS: A Generalized Table Structure Recognition Metric.” arXiv preprint arXiv:2304.01428 (2023).
    • Willard, Willard. “Outlines: A toolkit for building structured generation models.” arXiv preprint arXiv:2303.01632 (2023).
    • Xiao, Tong, et al. “Information Coverage Score: Measuring Table Structure Extraction Quality.” arXiv preprint arXiv:2311.00007 (2023).
    • Simsa, Jiří, et al. “DocILE: A Large-scale Research Benchmark for Document Key Information Extraction and Line Item Recognition.” arXiv preprint arXiv:2312.00212 (2023).
    • Huang, Xingyi, et al. “LayoutLMv3: Multi-modal Pre-training for Visually Rich Document Understanding.” arXiv preprint arXiv:2203.06470 (2022).
    • Liu, Yinhan, et al. “Roberta: A robustly optimized BERT pretraining approach.” arXiv preprint arXiv:1907.11692 (2019).
    • Carion, Nicolas, et al. “End-to-end object detection with transformers.” arXiv preprint arXiv:2005.12872 (2020).
  • 新的位置编码CoPE

    新的位置编码方法 CoPE(Contextual Position Encoding)确实在提升大模型性能方面展示了显著的潜力。传统的 Transformer 模型使用绝对或相对位置编码,通常基于 token 的位置来进行编码,这在处理更高层次的抽象任务(例如计算第 i 个句子或特定单词)时存在局限性。而 CoPE 通过允许模型根据上下文来选择性地编码位置,解决了这一问题。

    CoPE 的优点

    1. 上下文依赖的位置编码:CoPE 通过计算每个 query-key 对的门控值(gate value)来决定哪些 token 应该被计入位置测量。这使得位置测量不再是简单的 token 计数,而是根据内容和上下文动态调整。
    2. 多层次位置抽象:CoPE 能够同时表示从 token 位置到句子位置等不同层次的抽象位置。这样,模型不仅能关注到前几个 token,还能关注到前几个句子,从而更好地理解当前句子的含义。
    3. 跨任务的优越性能:文章通过多个实验展示了 CoPE 在处理选择性复制、计数任务以及语言和编码任务中的优越性,特别是在处理分布外数据和需要高泛化能力的任务上表现出更强的性能。

    实验结果

    实验结果表明,CoPE 在以下几个方面优于传统的位置编码方法:

    • 选择性复制和计数任务:CoPE 能够解决标准位置编码方法无法解决的选择性复制和计数任务。
    • 语言建模和编码任务:在这些实际应用中,CoPE 降低了困惑度(perplexity),提高了模型性能。
    • 分布外数据的泛化能力:CoPE 在处理分布外数据时表现出更强的泛化能力,这是传统位置编码方法难以实现的。

    结论

    总的来说,CoPE 提供了一种更灵活、更强大的位置编码方法,适用于需要对输入数据结构和语义内容进行精细理解的任务。通过上下文依赖的位置编码,CoPE 能够显著提升大模型在多种任务上的性能,特别是在需要高泛化能力的场景中。

    论文链接:Encoding: Learning to Count What’s Important

  • 美国软件股大崩盘的启示:至少在现阶段,AI对软件是替代、而非增益!


    AI投资狂潮主要催生了芯片制造和云计算需求,而软件企业距离从中获利仍有一段距离。在人工智能热潮的强劲推动下,科技行业当前正上演着前所未有的剧烈洗牌。本周软件和企业科技公司的财报就暴露出这一转折期的阵痛——业绩普遍疲软,前景飘忽不定。

    软件公司距离从AI热潮获利仍有一段距离

    分析人士指出,目前AI投资狂潮主要催生了芯片制造和云计算需求,而软件企业距离从中获利仍有一段距离。

    彭博智库高级分析师 Anurag Rana 表示,除微软外,目前很少软件公司的收入有所提振,资金主要流向了英伟达等芯片巨头以及云计算平台。

    大多数公司都没有专门的AI预算,所以他们只能从非AI预算中挪用资金。他们仍在购买英伟达芯片和戴尔服务器,但不会签订大额软件合同。软件行业最终将从AI中获益,但要建立起来可能需要数年时间,今年下半年的业绩改善已经无望实现。

    曾经作为行业明星的 Salesforce 本周四绩后股价大跌近20%,创2004年上市以来最大单日跌幅。业绩不佳固然是导火索,但公司高管的表态更彰显出软件企业面临的窘境。

    Salesforce CEO 贝尼奥夫直言,过往疫情催生的“虚假繁荣”正在消退。当年为适应远程办公需求而大量采购的软硬件,如今亟需进行整合和理顺。

    他认为:

    每家企业软件公司都在疫后进行了调整,最近发布财报公司基本上都在以不同方式重复同样的话。

    除了 Salesforce,Okta、MongoDB、UiPath 等公司也在最新财报中下调了全年收入预期。Okta 直指宏观经济环境成为拖累,影响了新客户的获取及现有客户的购买扩展。

    而在 Veeva 的财报电话会议上,CEO 甚至将通用 AI 列为客户”优先权重新分配”的一大原因。类似的景象几乎笼罩了整个软件和企业科技行业。

    宏观环境低迷 企业主要资金流向硬件升级

    另一个潜在阻力则是宏观经济的持续低迷。在本周公布的最新 PCE 物价指数数据显示,通胀水平微高于预期,美联储也维持利率在23年高位不变。在这种环境下,企业对于签订长期软件订单的热情自然会大打折扣。

    UiPath 创始人 Daniel Dines 指出,UiPath 在3月下旬和4月份遭遇了严重业务放缓,部分原因就是当前经济状况乏力,客户对包年合同需求大幅降温,转而青睐短期订单。

    戴尔财报也显示,由于更多低利润的 AI 服务器订单涌入,全年毛利率料将下滑 150 个基点。这一点也从侧面说明了软件需求疲软、企业预算多转向硬件的局面。

    在 AI 火热的发展背后,科技行业正加速分化重组。芯片、云计算等直接相关领域获利最大,而软件企业则承受了较大冲击,不得不通过收缩支出、放缓扩张甚至裁员来应对。

    例如 SentinelOne CEO 就直言,企业的采购习惯和软件评估标准都在发生变化。这种动能切换对于整个软件行业来说都是个重大考验。一旦脱离 AI 趋势而错失良机,后果可能是被行业洗牌甩在后面。

    不过,也有分析人士认为,目前软件股的大幅回调恰恰为投资者提供了良机。伯恩斯坦分析师认为,像 ServiceNow 这样获利确定性较高的头部公司在估值修复后反而更具投资价值。

  • 文章标题:谁在写评论,是人还是AI?

    人工智能(AI)的广泛应用在自然语言处理领域引发了一个问题:如何准确区分AI生成的文本和人类编写的文本?一篇最新的研究提出了一种方法来解决这个问题,它通过使用迁移学习技术,让模型能够在不同主题下识别生成文本,同时提高对写作风格和词汇变化的检测能力。

    研究人员使用了一个包含真实书评和AI生成书评的数据集,通过开源的Vicuna语言模型生成了AI评论。经过实验验证,这种方法能够准确地区分AI生成的文本和人类编写的文本,实现了96.86%的准确率。这项研究的目标是探索大型语言模型在文本识别方面的能力和局限性,并为未来有效地识别和管理AI生成的内容提供有价值的经验。

    解决问题的方法:迁移学习和数据集准备

    为了解决区分AI生成文本和人类编写文本的问题,研究人员采用了以下方法:

    迁移学习

    迁移学习是一种将在一个任务上训练得到的模型应用于另一个相关任务的技术。在这项研究中,研究人员利用之前在科学摘要分类任务中训练得到的模型权重,通过迁移学习技术对模型进行微调,以适应书籍评论领域的文本分类任务。这种方法可以提高模型在不同主题下识别生成文本的能力。

    数据集准备

    研究人员使用了一个包含真实书评和AI生成书评的数据集。具体来说,他们从Kaggle上获取了一个公开的书籍评论数据集,并使用开源的Vicuna模型生成了对应的AI书籍评论。这个数据集包含了10,000条人类评论和10,000条AI生成评论,用于训练和评估模型。

    实验和结果分析

    在实验过程中,研究人员对模型进行了训练和评估,并分析了实验结果。

    数据预处理和文本表示

    在训练模型之前,研究人员对收集到的书籍评论进行了清洗和预处理。他们去除了特殊字符、空白、停用词,并将文本转换为小写格式,以提高数据质量。然后,他们使用Word2Vec技术中的”google-news-300″预训练模型将文本转换为300维的向量表示,以捕捉词义和上下文关系。

    模型架构和训练

    研究人员采用了长短期记忆网络(LSTM)来处理序列数据,并在LSTM后加入dropout层以减少过拟合。为了适应书籍评论领域的文本分类任务,他们使用迁移学习技术对模型进行微调。

    性能评估和结果分析

    通过使用准确率、精确率、召回率、F1分数和AUC等指标,研究人员评估了模型的性能。实验结果显示,使用迁移学习后,模型的平均准确率提高到了96.86%。

    此外,研究人员还对模型的分类结果进行了分析。他们可视化了模型正确分类和错误分类的文本,并对错误分类的文本进行进一步的分析。他们通过词云图展示了这些文本中的词汇使用情况,并使用t-SNE方法将模型隐藏状态的高维表示降维到2D空间,以可视化人类编写和AI生成文本的分离情况。

    进一步的研究方向

    尽管这项研究取得了显著的成果,但还有一些进一步的研究方向值得探索:

    • 跨领域应用:将所提出的方法应用于其他文本领域和类型,如推文(tweets),以测试模型在没有进一步训练的情况下是否能够检测AI生成的文本。
    • 使用更先进的语言模型:尝试使用更新的、更先进的开源语言模型来生成更大的数据集,这将有助于改进文本生成方法,并在不同领域、语言和文本类型中测试其有效性。
    • 深入理解AI内容的潜力和局限性:通过研究生成的文本,进一步了解AI产生内容的潜力和局限性。
    • 改进模型架构和文本表示方法:探索其他类型的循环神经网络(RNN)或变换器模型(如Transformer或BERT),以及其他文本表示技术,如BERT或ELMo,以进一步提高模型的性能。
    • 多模态数据集:考虑将文本数据与其他类型的数据(如图像或声音)结合起来,以研究AI在生成多模态内容方面的能力。
    • 伦理和社会影响:研究AI生成文本的伦理和社会影响,包括对隐私、版权和信息真实性的影响。
    • 对抗性训练:使用对抗性训练技术来提高模型对AI生成文本的鲁棒性,特别是在面对越来越复杂的文本生成策略时。
    • 实时检测系统:开发实时检测系统,以便在文本生成后立即识别AI生成的文本。
    • 用户研究:进行用户研究,了解人们如何感知AI生成的文本,并探索如何提高人类对AI文本的识别能力。

    结论

    这项研究提出了一种有效的方法来区分AI生成的文本和人类编写的文本。通过迁移学习和适当的文本表示技术,可以准确识别AI生成的文本,并在实验中实现了96.86%的准确率。然而,需要进一步的研究来探索AI在文本生成方面的潜力和局限性,并开发出更有效的工具来检测和管理AI生成的内容。

    参考文献:

  • 为什么大型语言模型需要适应不同用户群体的偏好?

    大型语言模型(LLMs)是一类强大的人工智能模型,可以处理和生成自然语言文本,如文章、对话和翻译。这些模型在许多任务上表现出色,但它们通常需要经过微调来适应特定的任务或用户需求。

    微调LLMs的常用方法是通过强化学习与人类反馈(RLHF)来调整模型的偏好。这意味着让人类标注者提供关于不同文本选项的偏好,然后通过优化模型的策略来使其更符合这些偏好。然而,这些偏好数据通常来自不同的标注者群体,他们可能具有不同的文化背景、语言特点、年龄、性别等特征。

    传统的RLHF方法存在一个问题,它们采用了所谓的“一刀切”策略,即假设所有群体的偏好是一致的,并且只优化一个单一的偏好模型。然而,不同群体的偏好可能存在差异,这可能导致模型在特定群体中的性能不佳。例如,一个模型在年轻人中可能表现出色,但在年长的用户中则可能表现不佳。

    为了解决这个问题,研究人员提出了一种名为Group Robust Preference Optimization(GRPO)的方法,旨在使LLMs能够更好地适应不同用户群体的偏好。GRPO方法考虑了不同群体的独特特征和需求,并通过优化策略以最大化最差情况下的群体性能来提高模型的鲁棒性。

    GRPO方法是如何工作的?

    GRPO方法通过以下关键步骤来优化LLMs以适应不同用户群体的偏好:

    1. 群体信息整合

    与传统方法不同,GRPO方法将来自不同群体的偏好数据整合到模型训练中。这意味着模型会考虑多个偏好分布,而不是仅仅假设一个单一的分布。

    2. 最坏情况性能优化

    GRPO方法的目标是优化策略,使得模型在最坏情况下的群体性能也能得到最大化。具体而言,它通过最大化不同群体损失的最小值来实现。这意味着模型将努力在最差表现的群体中保持较好的性能。

    3. 自适应权重调整

    GRPO方法根据不同群体的累积损失动态调整权重,以优先考虑那些累积损失较大的群体。这样做可以确保模型更关注性能较差的群体,并在后续的训练中给予它们更多的重视。

    4. 理论分析与算法设计

    为了保证GRPO方法的可行性,研究人员进行了理论分析,并设计了相应的算法来解决群体鲁棒偏好优化问题。他们提供了一些收敛性保证,以确保算法能有效地优化模型策略。

    5. 实验验证

    研究人员在合成数据集和真实世界数据上进行了实验验证GRPO方法的有效性。他们发现,通过使用GRPO方法微调LLMs,可以显著提高最差表现群体的性能,并减少不同群体之间的性能差距。实验结果显示,GRPO方法相比非鲁棒基线在损失和准确性方面取得了显著的改进。

    GRPO方法的应用前景和未来工作

    GRPO方法的提出为解决LLMs在不同用户群体间偏好对齐的问题提供了一种新的解决方案。通过考虑不同群体的特征和需求,GRPO方法能够使模型更加鲁棒和公平,提高用户体验。

    未来的研究可以进一步探索以下方向:

    • 提高算法效率,尤其是在处理大规模数据集和复杂模型时。
    • 更精细的超参数调整策略,以适应不同的应用场景和数据分布。
    • 探索其他类型的损失函数,以进一步提高模型的鲁棒性和性能。
    • 考虑更广泛的群体特征,如文化、语言和社会经济背景,以实现更全面的群体鲁棒性。
    • 在更广泛的实际应用中测试GRPO方法,如医疗、教育和商业领域,以验证其在现实世界中的有效性。
    • 进一步研究群体间和群体内的差异,以及如何平衡这些差异以实现最佳的模型性能。
    • 提高模型的解释性,以更好地理解不同群体偏好如何影响模型的决策。

    通过在这些方向上进行进一步的研究,可以提高GRPO方法的实用性、有效性和泛化能力,从而更好地服务于多样化的用户群体。

    参考文献:

    • Shyam Sundhar Ramesh, Yifan Hu, Iason Chaimalas, Viraj Mehta, Pier Giuseppe Sessa, Haitham Bou Ammar, Ilija Bogunovic. (2024). Group Robust Preference Optimization in Reward-free RLHF. [PDF13] [Copy] [Kimi33]
  • S3D:低内存GPU上的自推测解码方案

    引言

    大型语言模型(Large Language Models,LLMs)在自然语言处理领域起着重要作用,能够生成人类语言的连续文本,为我们提供强大的语言处理能力。然而,LLMs在推理过程中面临一个重要问题,即幻觉(Hallucination)问题。幻觉指的是模型生成看似合理但实际上不准确的信息,这可能导致误导性的结果和信息的传播。

    为了更好地理解和解决LLMs中的幻觉问题,研究者们进行了大量的研究工作。其中一篇关于幻觉问题的研究论文是《S3D: A Simple and Cost-Effective Self-Speculative Decoding Scheme for Low-Memory GPUs》。这篇论文提出了一种名为Skippy Simultaneous Speculative Decoding(简称S3D)的自推测解码方案,旨在解决在低内存GPU上进行LLM推理时的性能和内存限制问题。

    S3D方案解决的问题

    S3D方案的目标是解决在低内存GPU上进行LLM推理时的性能和内存限制问题。传统的推测解码方法在高端设备上实现了显著的加速,但在低内存设备上却存在性能下降的问题。此外,量化带来的内存开销也限制了LLMs在低内存GPU上的应用。因此,S3D方案旨在提供一种成本效益高、适用于低内存GPU的自推测解码方法。

    相关研究

    在幻觉问题的研究领域,已经有许多相关研究取得了重要进展。其中,早期的推测解码方法、多标记预测、雅可比迭代方法、层跳过技术以及其他SD系统等都与S3D方案有一定的关联。

    S3D方案的关键内容

    S3D方案提出了Skippy Simultaneous Speculative Decoding(S3D)方法,通过同时多标记预测和中层跳过的方式实现自推测解码。S3D方法不需要额外的显存成本,同时具备高训练效率。与其他SD系统相比,S3D方法在性能-内存比率方面表现出色,且无需进行大规模的架构调整和训练数据的修改。

    实验验证

    论文中进行了一系列实验来验证S3D方案的性能。实验结果表明,S3D在性能-内存比率方面表现出色,相较于其他开源SD系统,具有更好的性能。此外,论文还进行了成本效益和速度的比较实验,验证了S3D方案的有效性和实用性。

    进一步的研究方向

    尽管S3D方案已经取得了一定的研究成果,但仍有一些潜在的研究方向值得进一步探索。这些方向包括适配器技术、更广泛的硬件评估、更深入的超参数优化、模型泛化能力、量化和稀疏性、并行化和分布式训练、实时应用、鲁棒性和错误分析、与其他优化技术的集成、用户研究和应用案例等。

    通过进一步的研究探索,可以更好地理解S3D方案的潜绪和局限性,并推动其在更广泛的领域中的应用。

    结论

    《S3D: A Simple and Cost-Effective Self-Speculative Decoding Scheme for Low-Memory GPUs》论文提出了一种名为S3D的自推测解码方案,旨在解决低内存GPU上进行LLM推理时的性能和内存限制问题。S3D方案通过同时多标记预测和中层跳过的方式实现自推测解码,具备成本效益高、训练效率高的优点。实验结果表明S3D在性能和内存比率方面表现出色,并具有实际应用的潜力。进一步的研究可以在适配器技术、更广泛的硬件评估、模型泛化能力等方面开展,以推动S3D方案的发展和应用。

    参考文献:

    • Wei Zhong, Manasa Bharadwaj. “S3D: A Simple and Cost-Effective Self-Speculative Decoding Scheme for Low-Memory GPUs.” 2024.

    S3D (Skippy Simultaneous Speculative Decoding) is a simple and cost-effective self-speculative decoding scheme designed for low-memory GPUs. It aims to achieve fast inference, low VRAM costs, and high training efficiency [1].

    Speculative decoding (SD) is a technique that accelerates low-latency model (LLM) inference without sacrificing quality. It works by drafting tokens at a faster speed and then verifying the guessed tokens at the end of an iteration using a full forward pass. However, existing SD methods often achieve optimal performance on high-end devices or with a substantial GPU memory overhead. When applied to smaller models or low-memory devices where quantization is necessary, these methods can experience significant slowdowns [1].

    To address these challenges, S3D introduces mid-layer skipping and simultaneous multi-token predictions. It offers no added VRAM costs and high training efficiency. By leveraging memory efficiency, S3D demonstrates optimal performance-memory ratios among recent open-source SD models. It can avoid significant quantization overheads under certain VRAM constraints and outperform previous SD methods under 8-bit quantization by up to 3.9x in speedups on A10G GPU [1].

    S3D also provides optimal hyper-parameters by formalizing the relationship between the number of skipped layers and speedup in self-speculative decoding. It can verify the optimal number of token predictors, leading to improved performance [1].

    In summary, S3D is a cost-effective self-speculative decoding scheme that achieves fast inference, low VRAM costs, and high training efficiency for low-memory GPUs. It overcomes the limitations of existing SD methods and demonstrates optimal performance-memory ratios [1].


    Learn more:

    1. S3D: A Simple and Cost-Effective Self-Speculative Decoding Scheme for Low-Memory GPUs
    2. GitHub – hemingkx/SpeculativeDecodingPapers: 📰 Must-read papers and blogs on Speculative Decoding ⚡️
    3. [2309.08168] Draft & Verify: Lossless Large Language Model Acceleration via Self-Speculative Decoding

    S3D是一种简单且经济高效的自我推测解码方案,专为低内存GPU设计。该方法通过同时进行多令牌解码和中间层跳过来实现推测解码,既不增加显存开销,又具有高训练效率[1]

    S3D的主要特点和贡献包括:

    1. 有效的自我推测解码:S3D采用了中间层跳过和同时进行多令牌预测的简单且节省内存的自我推测解码方案。相比之前的方法,S3D在较小的模型上克服了速度上的限制[1]
    2. 最优超参数:S3D通过对自我推测解码中跳过层数和速度提升之间关系的形式化研究,确定了最优的令牌预测器数量[1]
    3. 最优速度-内存比:S3D在最近的开源自我推测解码模型中展现出最优的性能-内存比。通过利用内存效率,S3D可以避免在特定显存限制下进行量化时产生的显著开销,并在A10G GPU上在8位量化下比之前最快的SD方法(EAGLE)提升了3.9倍的速度[1]

    相关工作方面,早期的自我推测解码方法主要集中在特定领域任务上,如翻译和语法错误修正,这些任务很容易实现显著的加速。而S3D则针对通用领域任务,通过同时预测多个令牌和非批处理解码来节省内存并提高训练效率[2]


    Learn more:

    1. S3D: A Simple and Cost-Effective Self-Speculative Decoding Scheme for Low-Memory GPUs
    2. [2405.20314] S3D: A Simple and Cost-Effective Self-Speculative Decoding Scheme for Low-Memory GPUs
    3. GitHub – hemingkx/SpeculativeDecodingPapers: 📰 Must-read papers and blogs on Speculative Decoding ⚡️
  • 分析大型语言模型中的幻觉问题

    引言

    大型语言模型(Large Language Models,LLMs)在自然语言处理领域扮演着重要的角色,它们可以生成人类语言的连续文本,为我们提供了强大的语言处理能力。然而,随着模型规模的增大和训练数据的增加,LLMs也面临着一个严重的问题,即幻觉(Hallucination)问题。幻觉指的是模型生成看似合理但实际上不准确的信息,这可能导致误导性的结果和信息的传播。

    为了更好地理解和解决LLMs中的幻觉问题,研究者们进行了大量的研究工作。其中一篇关于幻觉问题的研究论文是《Analytical Annotation of Hallucinations in Large Language Models (ANAH)》。这篇论文提出了一种分析性注释的方法,以便更详细地研究和量化LLMs中的幻觉问题。

    ANAH数据集:详细注释LLMs中的幻觉

    为了深入研究LLMs中的幻觉问题,研究者们创建了一个名为ANAH的双语数据集。ANAH数据集提供了对LLMs在生成式问答(Generative Question Answering)任务中幻觉问题的分析性注释。数据集中的每个答案句子都经过了严格的注释,包括参考片段的检索、幻觉类型的判断以及对幻觉内容的更正。

    ANAH数据集由人工和自动化注释流程构建而成。通过这个数据集,研究者们能够量化和分析LLMs中幻觉的累积效应,并训练和评估幻觉注释器的性能。实验结果表明,经过训练的生成性幻觉注释器在性能上能够与最先进的模型相媲美,并展现出更好的泛化能力。

    幻觉问题的研究进展

    幻觉问题在自然语言处理领域一直备受关注。研究者们提出了多种方法来解决幻觉问题,包括幻觉检测和评估、幻觉缓解、基准测试、知识增强等。这些方法的目标都是提高模型的可靠性和准确性,减少幻觉的产生。

    例如,为了评估幻觉问题,研究者们构建了各种基准测试集,设计了挑战性的问题,并通过评估答案中幻觉的水平来衡量模型的性能。此外,还有一些研究探索了如何在模型的训练和推理阶段减轻幻觉问题,例如通过多任务学习、模型编辑和强化学习等方法。

    未来的研究方向

    尽管已经取得了一些进展,但解决LLMs中的幻觉问题仍然是一个具有挑战性的任务。未来的研究可以在以下几个方向上进行探索:

    1. 数据集扩展:将ANAH数据集的规模扩大,覆盖更广泛的主题和任务,以更全面地理解和解决幻觉问题。
    2. 模型泛化能力:研究如何提高模型在未见主题和未见问题上的泛化能力,使其能够更好地应对各种情况。
    3. 训练策略优化:探索不同的训练策略,如半监督学习、元学习等,以提高模型在有限数据上的性能和泛化能力。
    4. 提高模型解释性:研究如何提高幻觉注释器的解释性,使其能够提供更详细的解释和证据,以支持其注释和纠正决策。
    5. 多模态和跨语言能力:考虑多模态数据(如图像、视频)和跨语言能力,以提高模型对不同类型输入的理解和生成能力。
    6. 模型鲁棒性:进一步提高模型对对抗性攻击和输入扰动的鲁棒性。
    7. 长期影响评估:评估幻觉注释器在长期应用中的效果,包括用户对模型输出的信任度和依赖性的变化。
    8. 知识更新和维护:研究如何定期更新和维护模型的知识库,以确保其提供的信息是最新和准确的。
    9. 用户定制化和个性化:探索如何根据用户的特定需求和偏好定制化和个性化模型的输出。

    这些研究方向将有助于进一步提高LLMs的可靠性、准确性和用户满意度。

    结论

    本文总结了《Analytical Annotation of Hallucinations in Large Language Models (ANAH)》论文的主要内容。该论文通过创建详细的注释数据集和训练幻觉注释器,提供了一种系统的框架来研究和解决LLMs中的幻觉问题。幻觉注释器能够提高模型的可靠性并减少幻觉的产生。然而,幻觉问题仍然具有挑战性,需要进一步的研究来改进模型的性能和泛化能力。

    参考文献:

    • Ziwei Ji, Yuzhe Gu, Wenwei Zhang, Chengqi Lyu, Dahua Lin, Kai Chen. “Analytical Annotation of Hallucinations in Large Language Models (ANAH).” 2024.
  • 在纯Java文件中推理Llama 2

    在现代人工智能领域,推理大型语言模型(LLM)已经成为一个重要的应用场景。GitHub上的项目 mukel/llama2.java 提供了一种使用纯Java代码进行Llama 2推理的简洁实现。本文将详细介绍该项目的背景、构建方法及性能表现。

    背景介绍

    Llama 2是由Andrej Karpathy开发的一个非常简单的LLM推理实现。该项目的Java版本旨在提供教育价值,并用于在JVM上测试和调整编译器优化,特别是针对Graal编译器的优化。这一Java移植版本最初参考了llama2.scala。

    构建与运行

    要构建和运行该项目,您需要Java 21+,特别是其中的MemorySegment mmap-ing功能。以下是具体的构建步骤:

    1. 下载必要的文件: wget https://github.com/karpathy/llama2.c/raw/master/tokenizer.bin wget https://huggingface.co/karpathy/tinyllamas/resolve/main/stories15M.bin
    2. 手动构建与运行: javac --enable-preview -source 21 --add-modules=jdk.incubator.vector Llama2.java java --enable-preview --add-modules=jdk.incubator.vector Llama2 stories15M.bin
    3. 使用JBang直接运行: jbang Llama2.java stories15M.bin
    4. 使用Makefile和run.sh脚本: make # 可选,run.sh已经包含了make JAVA_HOME=GRAALVM_HOME \ JAVA_RUNTIME_OPTIONS=-Djava.util.concurrent.ForkJoinPool.common.parallelism=8 \ ./run.sh stories15M.bin</code></li> <!-- /wp:list-item --></ol> <!-- /wp:list -->  <!-- wp:heading --> <h2 class="wp-block-heading">生成本地镜像</h2> <!-- /wp:heading -->  <!-- wp:paragraph --> 使用GraalVM可以创建一个独立的本地镜像: <!-- /wp:paragraph -->  <!-- wp:code --> <pre class="wp-block-code"><code>JAVA_HOME=GRAALVM_HOME NATIVE_IMAGE_OPTIONS="-march=native" make native-image ./llama2 stories15M.bin

      或者使用Profile-Guided Optimizations (PGO):

      JAVA_HOME=GRAALVM_HOME \ NATIVE_IMAGE_OPTIONS="--pgo-instrument -march=native --initialize-at-build-time=Llama2 -Dllama2.VectorAPI=false" \ make native-image  # 生成默认的iprof配置文件 ./llama2 -Djava.util.concurrent.ForkJoinPool.common.parallelism=0 stories15M.bin  # 构建优化后的镜像 JAVA_HOME=GRAALVM_HOME \
      NATIVE_IMAGE_OPTIONS="--pgo -march=native --initialize-at-build-time=Llama2 -Dllama2.VectorAPI=false" \
      make native-image
      
      # 优化后的运行速度应该比普通镜像快约2倍
      ./llama2 stories15M.bin

      性能表现

      以下是该项目在不同配置下的性能测试结果(基于AMD Ryzen 3950X 64GB,Arch Linux):

      单线程测试

      模型每秒处理Token相对于llama2.c的加速实现
      stories15M.bin3631.0llama2.c
      stories15M.bin2370.65llama2.java
      stories110M.bin51.711.0llama2.c
      stories110M.bin42.200.81llama2.java
      llama2_7B.bin0.921.0llama2.c
      llama2_7B.bin0.880.95llama2.java

      多线程测试

      模型每秒处理Token相对于llama2.c的加速实现
      stories15M.bin12331.0llama2.c
      stories15M.bin4380.35llama2.java
      stories110M.bin901.0llama2.c
      stories110M.bin800.88llama2.java
      llama2_7B.bin1.681.0llama2.c
      llama2_7B.bin1.650.98llama2.java

      需要注意的是,Java版本在多线程情况下的性能提升并不显著,这主要是由于内存带宽限制所致。

      结论

      mukel/llama2.java项目展示了如何使用纯Java代码实现Llama 2推理,并在一定程度上达到了与原始C实现相当的性能。尽管当前版本的性能尚未完全优化,但其作为教育工具和编译器优化测试平台已经展现出巨大潜力。

      参考文献:GitHub – mukel/llama2.java

  • 探索 Llama 3 在 Java 中的实际应用

    引言

    在现代人工智能领域,模型推理的效率和方便性是技术人员关注的核心问题。如今,我们将目光投向一个名为 Llama 3 的项目,该项目旨在在 Java 环境中实现 Llama 3 的推理。这一项目不仅是其前身 Llama2.java 的延续,还在多个方面进行了优化和改进。让我们深入了解这个项目的细节及其实现方法。

    项目背景

    Llama 3 是基于 Andrej Karpathy 的 llama2.c 项目的一个扩展版本。Llama3.java 通过单个 Java 文件实现了 Llama 3 的推理,除了教育价值外,还为在 JVM 上测试和调整编译器优化和功能提供了便利,特别是针对 Graal 编译器的优化。

    项目特点

    1. 单文件实现,无依赖

    Llama3.java 的一大特点是其实现是通过单个 Java 文件完成的。这种设计简化了项目的依赖管理,使得项目的部署和维护更加便捷。

    2. 支持多种量化格式

    项目支持 GGUF 格式解析,并且提供了对 Q8_0 和 Q4_0 量化的支持。Q4_0 量化模型由于其较小的体积和较高的运行效率,成为推荐使用的模型。

    3. 高效的矩阵-向量乘法

    针对量化张量,项目使用了 Java 的 Vector API 实现了快速的矩阵-向量乘法。这一实现提高了推理的运行速度,特别是在处理大规模数据时。

    4. 简单的命令行界面

    Llama3.java 提供了一个简单的命令行界面,支持 --chat--instruct 模式,使用户能够方便地与模型进行交互。

    项目设置与运行

    下载量化模型

    首先,需要从 Hugging Face 下载纯 Q4_0 和(可选的)Q8_0 量化的 .gguf 文件。推荐使用大约 4.3GB 的 Q4_0 量化模型:

    curl -L -O https://huggingface.co/mukel/Meta-Llama-3-8B-Instruct-GGUF/resolve/main/Meta-Llama-3-8B-Instruct-Q4_0.gguf
    
    # 可选地下载 Q8_0 量化模型(约 8GB)
    # curl -L -O https://huggingface.co/mukel/Meta-Llama-3-8B-Instruct-GGUF/resolve/main/Meta-Llama-3-8B-Instruct-Q8_0.gguf

    手动量化

    如果需要生成纯 Q4_0 量化模型,可以使用 llama.cpp 提供的量化工具从高精度的 .gguf 源文件生成:

    ./quantize --pure ./Meta-Llama-3-8B-Instruct-F32.gguf ./Meta-Llama-3-8B-Instruct-Q4_0.gguf Q4_0

    构建与运行

    Llama3.java 需要 Java 21 及以上版本,特别是 MemorySegment mmap-ing 功能。可以使用 jbang 工具运行:

    jbang Llama3.java --help

    或者直接执行:

    chmod +x Llama3.java
    ./Llama3.java --help

    使用 Makefile 手动构建

    项目提供了一个简单的 Makefile,可以运行 make 来生成 llama3.jar:

    javac -g --enable-preview -source 21 --add-modules jdk.incubator.vector -d target/classes Llama3.java
    jar -cvfe llama3.jar com.llama4j.Llama3 LICENSE -C target/classes .

    生成的 jar 文件可以如下运行:

    java --enable-preview --add-modules jdk.incubator.vector -jar llama3.jar --help

    性能评估

    在不同的硬件配置下,Llama3.java 的性能表现如下:

    笔记本电脑 Intel 13900H

    模型tokens/s实现
    Llama-3-8B-Instruct-Q4_0.gguf7.53llama.cpp
    Llama-3-8B-Instruct-Q4_0.gguf6.95llama3.java
    Llama-3-8B-Instruct-Q8_0.gguf5.16llama.cpp
    Llama-3-8B-Instruct-Q8_0.gguf4.02llama3.java

    工作站 AMD 3950X

    模型tokens/s实现
    Llama-3-8B-Instruct-Q4_0.gguf9.26llama.cpp
    Llama-3-8B-Instruct-Q4_0.gguf8.03llama3.java
    Llama-3-8B-Instruct-Q8_0.gguf5.79llama.cpp
    Llama-3-8B-Instruct-Q8_0.gguf4.92llama3.java

    结论

    Llama3.java 在 Java 环境中实现了高效的 Llama 3 模型推理,其单文件实现和简单的命令行界面使其具有很高的实用性。虽然在某些性能指标上与 llama.cpp 存在差距,但其在 Java 生态系统中的表现依然值得肯定。

    参考文献

  • 谷歌投资20亿美元在马来西亚建设数据中心及云区域

    根据马来西亚政府的宣布,美国科技巨头谷歌计划在马来西亚投资20亿美元,建设谷歌在该国的首个数据中心和谷歌云区域,同时推进人工智能领域的发展。这一投资使谷歌成为东南亚地区最新一家注入资金以寻求增长机会的科技巨头[1]

    以下是有关这一投资的详细信息:

    1. 投资规模:谷歌将投资20亿美元(约合27亿新元)在马来西亚建设数据中心和云区域[1]
    2. 地点:数据中心和云区域将建在马来西亚雪兰莪州沙亚南的艾美娜商业园[1]
    3. 经济影响:这项投资预计将为马来西亚医疗保健、教育和金融领域提供2万6500个工作机会,并为制造业和服务业利用人工智能和其他先进技术提升全球价值链,创造约150亿4000万令吉(约43亿1600万新元)的经济总值[1]
    4. 谷歌的战略合作:这项投资是建立在谷歌与马来西亚政府合作推进“云优先政策”的基础上的,包括推动一流的网络安全标准[1]

    此外,谷歌的母公司Alphabet及谷歌的总裁兼首席投资官波拉特表示,这是谷歌在马来西亚运营13年来数额最大的投资计划,也是首次在该国设立数据中心和谷歌云区域[1]

    这项投资计划进一步证明了马来西亚政府的明确规划、国家的经济实力和资源,成功吸引了现有和新的投资者,有助于加速马来西亚的数码转型议程[1]


    Learn more:

    1. 谷歌投资20亿美元在马国建数据中心及云区域 | 联合早报
    2. 谷歌将在马来西亚投资 20 亿美元:建数据中心 / 进一步开发 AI,拟创造 2.65 万个就业岗位 – IT之家
    3. 团结政府拼经济奏效 谷歌投资大马94亿! – DAP
  • autoMate:用AI简化你的数字生活

    引言

    在这个数字化飞速发展的时代,我们的生活越来越依赖于各种软件和应用程序。但是,你有没有想过,如果这些软件能够更加智能,能够理解我们的指令并自动完成一些重复性的任务,那将会怎样?这就是autoMate所承诺的——它就像出行中的共享单车一样,只需3分钟,就能将AI的智能植入到任意一个软件中,让你的数字生活变得更加轻松和高效。

    autoMate是什么?

    autoMate是一个开源免费的项目,它允许用户通过简单的配置,将AI的能力集成到他们日常使用的软件中。无论是自动化工作流程,还是简化复杂的任务,autoMate都能提供强大的支持。

    如何开始使用autoMate?

    如果你是第一次使用autoMate,你只需要进行一些基础的设置。首先,你需要修改配置文件,添加OpenAI的信息。这可以通过在autoMate的左上角点击文件,然后选择components,接着配置OpenAI的相关信息来完成。

    autoMate的主要功能

    autoMate的核心功能是将AI集成到软件中,但它并不止步于此。以下是autoMate的一些主要功能:

    • 自动化任务:autoMate可以帮助你自动化那些重复性高且耗时的任务。
    • 智能决策:通过集成AI,autoMate能够提供智能的决策支持,帮助你更高效地完成工作。
    • 易于配置:即使是没有编程背景的用户,也能够通过简单的配置快速上手autoMate。

    各产品优势对比

    autoMate在众多自动化工具中脱颖而出,它的优势在于其开源免费的特性,以及对AI能力的集成。这使得autoMate不仅能够帮助个人用户提高效率,也能够为企业提供强大的自动化解决方案。

    开源社区的支持

    autoMate完全依赖于开源社区的支持,这意味着它不断地在改进和更新。社区的贡献者们不断地为autoMate添加新功能,修复bug,确保它能够满足用户的需求。

    结语

    autoMate是一个强大的工具,它能够让你的软件更加智能,让你的工作更加高效。无论你是希望简化日常任务,还是想要探索AI的潜力,autoMate都是一个值得尝试的选择。而且,由于它是开源免费的,你没有任何理由不试试这个能够改变你数字生活的神奇工具。

    呼吁行动

    如果你对autoMate感兴趣,不妨访问它的GitHub页面,那里有详细的安装指南和使用文档。同时,如果你觉得autoMate对你有帮助,不妨给它点个star,以示对开源项目的支持和鼓励。


  • 字节AI出海,冲击全球市场

    字节再次展现出海外AI应用开发的强大实力。在过去一年里,字节先后推出了7款基于AI技术的应用产品,覆盖对话助手、互动娱乐、教育等多个领域,并在全球市场取得了亮眼成绩。

    可以说,字节正在努力复制TikTok的出海奇迹,通过AI技术的加持,在海外打造一个又一个爆款应用。

    AI对话助手Cici,占领新兴市场

    Cici是字节推出的海外版AI聊天机器人,同时也是豆包的”孪生姐妹”。与国内版豆包采用自研大模型不同,Cici基于GPT架构。

    尽管在语音交互体验上可能略逊于豆包,但Cici在上线不久后即在阿根廷和秘鲁等市场迅速登顶应用下载榜,成功占领了AI聊天机器人的新兴市场。

    剧情互动平台AnyDoor,探索泛娱乐出海

    AnyDoor是字节推出的AI剧情互动平台,目前已在马来西亚、印度尼西亚等国家上线。用户可以通过AI角色和剧情进行互动体验,类似于”猫箱”的玩法。

    这样的剧情互动应用,正契合了海外用户对于新型娱乐体验的需求。而字节借助AI技术,在泛娱乐出海领域寻找新的突破口。

    AI教育平台Gauth,海外市场广受好评

    在教育领域,字节推出的AI应用Gauth也取得了不俗成绩。Gauth可以帮助用户自动识别并解答试题,同时还提供在线家教等功能,深受海外市场的欢迎。

    Gauth的日活用户已超过200万,位列海外头部教育应用之列。这再次证明,字节在AI领域的布局和投入正在逐步转化为市场影响力。

    全面布局海外AI应用,锚定新的增长引擎

    从总体来看,字节正在全面布局AI应用的海外市场。从对话助手、互动娱乐,到教育工具,再到内容创作,字节的AI产品线已经涵盖了多个细分赛道。

    这无疑体现了字节对于AI时代全球化战略的高度重视。AI技术正在成为其拓展海外市场的新引擎,也为其在全球科技格局中占据更加重要的地位奠定基础。

    对于其他创业公司来说,如何在AI出海赛道上找到自己的机会窗口,将是一大挑战。但字节的成功经验也给了我们启示:选准细分赛道,以单点极致的策略切入,并紧跟市场需求的变化,或许是实现AI出海突破的有效路径。

  • Salesforce带头暴跌,美国软件股全线崩盘,AI时代不转型就是死?

    作者:常嘉帅

    近年来,软件公司的业绩一直是推动其股价飙升的主要动力。然而,最新的财报季显示,这一局面正在发生改变。AI投资的激增,导致企业在传统软件上的支出减少,使得曾经的科技明星公司如Salesforce等面临增长放缓的严峻挑战。

    Salesforce的困境:20年来最惨跌幅

    周四,Salesforce的股价暴跌了约20%,创下近20年来的最大单日跌幅,这不仅拖累了整个软件板块,也使得美股软件板块整体重挫5%,创下两年来最大单日跌幅。Salesforce的全年业绩指引略微下调,同时其四季度财报在营收、利润率等方面均未能达到华尔街的预期。

    根据财报,Salesforce上季的营收仅增长10.7%,创下历史新低。更为糟糕的是,其订单同比涨幅仅有3%,同样刷新了历史最差水平。Salesforce高管承认,重大交易越来越难以敲定,且交易规模普遍缩小,总合同价值指标也罕见地低于两位数增幅。

    这一困境并非Salesforce独有。十家最大的软件公司中,有八家公司在发布最新业绩后股价应声下跌,跌幅平均达9%。隔夜iShares软件ETF(IGV)暴跌近6%。

    AI投资分流资本支出:软件公司面临双重挑战

    分析人士指出,AI热潮对软件公司有两方面的影响。一方面,鉴于AI被视为未来科技发展的终极力量,软件公司不得不在转型之路上加大投入,以免落伍,这无疑影响了营销等其他领域的资本支出;另一方面,软件公司的客户们也在大力投资于AI,导致对传统软件的投资减少。

    例如,Workday上季的订单数据逊色,全年订阅收入预期也出现下调,股价遭遇八年来最惨重挫。其CEO坦言,客户正在压缩续约时的员工使用授权数量,削减采购规模。而Snowflake则因大笔投入AI导致利润率预期大幅下调,遭投资者抛售。

    如何应对AI浪潮的冲击?

    尽管当前的财报季表现疲软,部分科技巨头已经尝到了AI转型的甜头。以微软为例,依靠其ChatGPT等生成式AI服务,公司目前的营收增速已超过Salesforce等老牌竞争对手。

    投行奥本海默分析师Brian Schwartz认为,Salesforce等软件公司本季度成绩“令人失望”,疲软表现可能意味着AI支出抢走了其他方向的投资,并且拖累了这些公司的招聘步伐。德意志银行分析师Brad Zelnick指出,虽然多头可能会觉得这只是一个季度的表现,但他认为,糟糕的财报已经让软件公司的AI应用道路及其最终货币化前景蒙上重重疑问。

    尽管如此,包括Salesforce在内的软件公司并未坐以待毙,正在纷纷加大对AI的投入,谋求在这场升级换代浪潮中取得突破,为客户提供更加智能和高效的软件产品。然而,要证明人工智能真能为它们带来丰厚回报,以抵消当前增长乏力的影响,仍需要一个漫长的过程。

    参考文献

    • 常嘉帅. Salesforce带头暴跌,美国软件股全线崩盘,AI时代不转型就是死?
  • 谷歌Gemini悄然崛起,中文能力超越GPT-4o!

    初露锋芒时的Gemini

    自从谷歌推出Gemini大模型以来,它一直在不断进化和提升。尽管最初亮相时,Gemini相较于OpenAI的GPT-4o显得略逊一筹,但这并未阻止谷歌持续进行迭代和优化。如今,Gemini已经展现出强大的实力,尤其是在中文处理能力方面,甚至超越了GPT-4o。

    最新测试结果:Gemini逼近GPT-4o

    在最新的综合测试中,Gemini 1.5 Pro和Advanced版本分别排在第二和第三位,几乎追平了GPT-4o。而轻量版的Gemini 1.5 flash也表现不俗,排在第九位,超越了Llama-3-70b,并接近GPT-4。

    值得注意的是,Gemini的性能提升不仅仅体现在排名上。相比4月份的版本,Gemini Pro和Flash的能力有了显著加强,尤其在上下文长度上更是达到了惊人的100万token,相比之下,GPT-4的上下文长度仅为12.8万token。

    中文能力的惊人表现

    特别值得一提的是,Gemini在中文处理能力上表现出色。在中文测试中,Gemini Pro和Advanced双双超越了GPT-4o,分别排在第一和第二位。这个成绩不仅显示了谷歌在多语言处理方面的技术实力,也为中文用户带来了更多期待。

    突破重重挑战的Hard Prompts测试

    在更具挑战性的Hard Prompts测试中,Gemini同样表现优异。该测试要求大模型面对更加复杂和棘手的问题,而Gemini 1.5 Pro在这一测试中排名第二,仅次于GPT-4o。这一成绩再次证明了Gemini在处理复杂任务时的卓越能力。

    技术底蕴的深厚积累

    尽管在两周前的更新撞档时,Gemini因表现不佳而遭遇了不少批评,甚至有科技博客指出,尽管谷歌对1.5 Pro进行了数月的改进,但在常识推理、多模态能力和代码能力上,仍无法与GPT-4o媲美。然而,经过一段时间的快速提升,谷歌Gemini如今的表现已经有了质的飞跃,显示出谷歌在AI领域强大的技术积累和持续创新的能力。

    结语

    谷歌Gemini的快速崛起和显著进步,尤其是在中文处理能力上的超越,显示了谷歌在AI技术上的深厚实力和不懈追求。尽管挑战依旧存在,但Gemini的未来无疑值得期待。


    参考文献

    常嘉帅, “谷歌Gemini“悄悄变强”,快速缩小与GPT-4o差距,中文更是完成了超越!”