博客

  • Deductive Closure Training of Language Models for Coherence, Accuracy, and Updatability

    最近读到一篇非常有意思的AI论文,提出了一种新的方法来提高语言模型的可靠性。这项技术被称为Deductive Closure Training(DCT),它采用了与众不同的训练方式,能够显著改善语言模型生成内容的准确性和一致性。那么这项技术是如何做到的呢?让我为大家详细介绍一下🧐:

    为何需要Deductive Closure Training

    目前的语言模型🌐存在以下问题:

    • 事实错误✖️:有时会生成自相矛盾或与事实不符的内容
    • 缺乏一致性❌:不同部分之间存在逻辑冲突
    • 难以更新➕:很难用新信息来更新模型

    这导致了语言模型生成的文本可靠性较差。为了解决这一难题,研究人员提出了DCT方法。

    Deductive Closure Training的技术原理🔧

    DCT的核心思路是,在训练过程中✏️,利用语言模型自己的推理能力🧠,来改进其生成内容的准确性和一致性。主要包含以下步骤:

    • 文档生成🚩:使用语言模型根据已有文档,生成更多相关文档
    • 一致性评估🔍:评估所有文档,找出逻辑上最可能成立的一致文档子集
    • 模型微调🔧:仅用一致的文档子集进行模型的参数调整

    通过这种方式,可以有效提升语言模型的事实性和逻辑一致性,无需额外的监督数据。

    DCT技术的实验验证🧪

    为了验证DCT的效果,论文进行了以下实验:

    • 事实验证:DCT可以提高模型判断事实正误的能力
    • 问答:DCT可以帮助模型更好地回答基于新信息的问题
    • 一致性检查:DCT能增强模型学习简单逻辑推理的能力

    结果表明,DCT技术可以显著改善语言模型的可靠性,在不同的场景和任务中都取得了进步。

    DCT技术的未来展望🔭

    尽管DCT已展示出巨大的潜力,但这项技术还有很多值得进一步探索的方向:

    • 更复杂的推理任务🎯
    • 优化种子文档的选择📑
    • 结合多样化的微调目标💡
    • 提高跨语言和跨领域泛化能力🌏
    • 增强模型的可解释性🔍
    • 关注技术的安全性和伦理性🛡
    • 与其他方法相结合👥

    我相信,随着相关研究的深入,DCT必将大幅提升语言模型的智能水平,使其生成的内容更加准确可靠。这项突破性技术给语言模型的发展带来了新的曙光。让我们一起期待DCT后续的研究进展吧!

  • AI技术的新突破:复旦研究团队大幅提升模型上下文理解能力

    当我们在浩瀚的信息海洋中航行时,AI技术的飞速发展无疑是我们的罗盘和风帆。最近,复旦大学和上海人工智能实验室的研究团队带来了一股劲风,他们的新发现让AI模型在理解长篇上下文方面能力大幅跃升,这对自然语言处理(NLP)领域可谓是一场革命。

    💡RoPE位置编码的魔法

    首先,我们得知道一个概念——RoPE(Rotary Position Embedding)。简而言之,位置编码就是在AI模型中嵌入位置信息的一种技术,而RoPE则是一种特殊的位置编码方式。它透过旋转的方式,将位置信息编入模型。你可以想象成,每一个单词都通过旋转一个角度来表示其在句子中的位置,这样模型就能理解单词之间的顺序关系。

    🚀上下文长度暴涨至100万tokens

    复旦的研究团队发现,通过微调RoPE位置编码中的一个超参数——旋转角底数(base),可以显著提升模型的上下文长度。简单来说,就是让AI能够一口气理解长达100万tokens(语言处理中的基本单位)的内容。想象一下,这就好比原本阅读能力仅限于一篇短文的AI,突然能够流畅地阅读整部《红楼梦》。

    🔍RoPE外推缩放法则

    研究团队还提出了一套RoPE外推的缩放法则。这套法则能够帮助我们预测模型在不同长度的文本上的表现,并据此调整旋转角底数来提升模型的外推能力。这就像是为AI模型装上了一个可以根据不同海域调整的舵,无论是平静湖面还是波涛汹涌的大海,它都能稳稳地航行。

    🌟LLaMA2模型的革新

    复旦的研究不仅理论上让人兴奋,还在实践中展现了成果。他们的这项技术被用于LLaMA2模型,将其上下文长度从原本的1.6万tokens扩展到了100万tokens,这为处理更复杂的语言任务提供了可能。

    📚更多潜力的解锁

    这项技术的潜力是巨大的。在自然语言处理领域,无论是机器翻译、文本摘要还是问答系统,长篇上下文的理解能力都是关键。复旦研究团队的这一突破,为我们打开了新的大门,让AI在理解和生成自然语言方面,更加像人类。

    🔗研究资源链接

    对这项技术感兴趣的朋友,可以通过以下链接进一步探索:

  • FP8-LM: Training FP8 Large Language Models 探索FP8低精度训练:大型语言模型(LLMs)的新篇章

    这篇论文探索了使用8位浮点数(FP8)来有效训练大型语言模型(LLM)。论文的主要贡献和要点总结如下:

    1. 提出了一个新的FP8混合精度训练框架,可以分阶段地引入8位梯度、优化器状态和分布式训练,逐步发挥FP8的优势,降低训练成本。
    2. 在这个框架下,实现了8位梯度交流、8位优化器和8位并行训练。具体来说:
    • 为FP8梯度交流设计了自动缩放技术,解决了低位交流中的上下溢问题。
    • 实现了FP8优化器,通过精度解耦找到哪些变量更适合低精度表达。
    • 在张量并行、流水线并行和序列并行中支持FP8,降低激活传递的通信量。
    1. 在7B到175B参数规模的GPT模型上验证了该FP8训练方案的效果。结果显示,相比BF16训练,FP8训练可以显著降低GPU内存占用(29%~39%)、权重相关通信量(63%~65%),并提高吞吐量。模型性能不受影响。
    2. 将FP8训练应用到GPT模型的微调上,包括教学调整和强化学习。结果同样展现出计算和内存上的节约。
    3. 通过大量的分析实验对FP8训练的设计选择进行了验证,为后续研究提供了指导性结论。
    4. 本文是第一个将FP8计算、存储和通信全面渗透到大模型训练 entire pipeline 的工作,可视为推动下一代低精度训练系统的重要一步。

    本文对利用FP8进行大规模语言模型的高效低精度训练做出了重要探索,在减少训练成本方面展现出令人鼓舞的潜力。论文的贡献具有重要的理论和实践价值。

  • Human-in-the-Loop Policy Optimization for Preference-Based Multi-Objective Reinforcement Learning

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

    A: 这篇论文旨在解决多目标强化学习(MORL)中的一个重要问题:如何在决策者(DM)有限的偏好信息下,通过人机交互的方式,有效地优化出符合DM偏好的策略。具体来说,论文提出了一个名为CBOB的框架,该框架通过以下三个方面来解决上述问题:

    1. 种子策略生成:通过分解多目标优化问题,生成一组近似帕累托前沿(Pareto front)的种子策略,为后续的偏好学习提供起点。
    2. 偏好信息学习:通过DM与算法的交互,收集DM对策略的偏好反馈,学习出能够反映DM偏好的模型。
    3. 策略优化:利用学习到的偏好信息,指导策略优化过程,使得优化过程更加倾向于DM感兴趣的策略。

    论文的核心贡献在于提出了一个能够在没有先验偏好信息的情况下,通过与DM的交互来学习其偏好,并将这些偏好信息用于指导策略优化的方法。这种方法在处理具有高维状态和动作空间的复杂环境中特别有效,并且其模块化的设计允许在不同配置下灵活应用。

    Q: 有哪些相关研究?

    A: 这篇论文涉及的相关研究领域包括多目标强化学习(MORL)、偏好学习、人机交互以及多目标优化。以下是一些与这些领域相关的研究:

    1. 多目标强化学习 (MORL):
      • 线性标量化方法,如[5, 6],通过加权不同目标函数来简化多目标问题。
      • 多策略MORL方法,如[7-9],通过分解问题并分别解决子问题来发现帕累托最优策略。
      • 交互式MORL,如[10],通过与决策者(DM)的交互来学习其偏好。
    2. 偏好学习:
      • 偏好学习在逆强化学习(IRL)中的应用,如[27-29],通过观察演示来学习奖励函数。
      • 偏好学习在MORL中的应用,如[17, 34, 35],通过DM的反馈来学习效用函数。
    3. 人机交互:
      • 人机交互在MORL中的应用,如[13, 25],通过与DM的互动来学习其偏好。
      • 在进化多目标优化和多准则决策(MCDM)中的应用,如[36-45],通过偏好信息来指导优化过程。
    4. 多目标优化:
      • 多目标进化算法(MOEA),如[47-55],通过分解方法来处理多目标优化问题。
      • 多目标优化在实际问题中的应用,如[36-45],通过偏好信息来指导优化过程。

    这些研究为理解多目标强化学习、偏好学习以及人机交互在决策过程中的作用提供了理论基础和实践经验。论文提出的CBOB框架结合了这些领域的研究成果,旨在通过人机交互来优化策略,使其更符合决策者的偏好。

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

    A: 论文提出了一个名为CBOB(Concurrent Bayesian Optimization-Based Multi-Objective Reinforcement Learning)的框架来解决在多目标强化学习(MORL)中如何通过人机交互来优化策略的问题。CBOB框架包含三个核心模块:

    1. 种子策略生成(Seeding)
      • 使用多目标进化算法(MOEA/D)的分解方法来生成一组种子策略,这些策略近似于帕累托前沿(Pareto front),为后续的偏好学习提供起点。
    2. 偏好信息学习(Preference Elicitation)
      • 设计了一个交互界面,让决策者(DM)对策略进行比较并提供反馈。
      • 使用高斯过程(GP)作为回归模型来学习DM的偏好信息,该模型能够根据DM的反馈来评估策略的质量。
    3. 策略优化(Policy Optimization)
      • 利用学习到的偏好信息来指导策略优化过程,使用近端策略优化(PPO)算法来优化策略。
      • 在优化过程中,通过调整权重向量来引导策略搜索,使得优化过程更加倾向于DM感兴趣的策略区域。

    CBOB框架通过迭代地在偏好信息学习模块和策略优化模块之间进行交互,直到满足停止条件。这个过程允许算法逐步学习DM的偏好,并优化出符合DM偏好的策略。通过在MuJoCo环境和多微电网系统设计问题上的实验,论文证明了CBOB框架的有效性和竞争力。

    Q: 论文做了哪些实验?

    A: 论文在两个不同的领域进行了实验,以验证所提出的CBOB框架的有效性。这些实验包括:

    1. MuJoCo环境
      • 选择了七个MuJoCo环境中的强化学习任务,包括Ant-v2, HalfCheetah-v2, Hopper-v2, Humanoid-v2, Swimmer-v2, Walker2d-v2和Hopper-v3。
      • 这些任务涵盖了不同的目标函数和搜索空间,用于测试CBOB在不同环境下的性能。
    2. 多微电网系统设计(MMSD)问题
      • MMSD问题是一个复杂的多目标优化问题,涉及三个目标:电力网的效用价值、微电网的总效用价值以及系统的总能量存储。
      • 这个环境用于测试CBOB在实际工程问题中的应用效果。

    在这些实验中,论文将CBOB与以下算法进行比较:

    • 常规MORL算法:包括RA, PGMORL和MOIA,这些算法不考虑DM的偏好信息。
    • 偏好基MORL算法:包括MORL-Adaptation, META-MORL, MOMPO和MORAL,这些算法旨在通过学习DM的偏好来优化策略。

    实验使用以下性能指标来评估算法:

    • 近似精度(Approximation Accuracy):衡量最优非支配策略与DM偏好策略之间的接近程度。
    • 平均精度(Average Accuracy):衡量所有非支配策略与DM偏好策略之间的平均接近程度。

    通过这些实验,论文展示了CBOB在不同环境下的性能,并与现有的MORL算法进行了比较。实验结果表明,CBOB能够有效地学习DM的偏好,并优化出符合DM偏好的策略。

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

    A: 论文提出了一个创新的框架CBOB,用于在多目标强化学习中结合人类偏好进行策略优化。尽管实验结果表明CBOB在多个环境中表现出了有效性,但仍有许多潜在的研究方向可以进一步探索:

    1. 交互式偏好学习
      • 研究更多样化的偏好表达方式,例如模糊偏好、动态偏好等。
      • 开发更高效的用户交互界面和机制,以降低用户的认知负担并提高交互效率。
    2. 算法的泛化能力
      • 在更复杂、高维的环境中测试CBOB的性能,例如具有非凸Pareto前沿的问题。
      • 研究CBOB在不同类型强化学习任务(如离散动作空间、部分可观察环境)中的适用性。
    3. 偏好模型的改进
      • 探索使用其他类型的模型(如神经网络)来学习偏好信息。
      • 研究如何结合先验知识和在线学习来提高偏好模型的准确性。
    4. 策略优化算法的适应性
      • 研究如何将CBOB与其他策略优化算法(如Q-learning、Actor-Critic方法)相结合。
      • 探索在策略优化过程中如何平衡探索与利用,以加速收敛到最优策略。
    5. 约束条件的处理
      • 在多目标优化问题中考虑约束条件,特别是在约束条件部分可观测的情况下。
      • 开发新的算法来处理具有约束的多目标强化学习问题。
    6. 可解释性和透明度
      • 研究如何提高策略的可解释性,使DM能够理解并信任AI生成的策略。
      • 探索如何将偏好学习的结果与人类价值观和道德标准相结合。
    7. 实际应用
      • 将CBOB框架应用于实际的多目标决策问题,如智能电网管理、机器人控制等。
      • 研究如何将CBOB与其他领域(如自然语言处理、软件工程)中的问题结合起来。

    这些研究方向不仅能够推动多目标强化学习领域的发展,还有助于实现更智能、更人性化的AI系统。

  • TinyGPT-V: Efficient Multimodal Large Language Model via Small Backbones

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

    A: 这篇论文试图解决的主要问题是开发一个既高效又强大的多模态大型语言模型(MLLM),可以在不需要大量计算资源的情况下进行训练和推理。具体来说,论文提出了一个名为TinyGPT-V的模型,它结合了一个小的但有效的语言模型(Phi-2)和预训练的视图模块(BLIP-2或CLIP),以在各种视觉语言任务上实现与更大模型相当的性能,同时只需要24GB的GPU进行训练,8GB的GPU或CPU进行推理。论文的主要贡献是提出了一种新的多模态大型语言模型的构建范式,即使用小的骨干网络(small backbones)来实现高效的多模态理解和生成。论文的目标是推动设计成本效益高、效率高且性能优越的MLLMs,以在广泛的现实世界场景中应用。

    Q: 有哪些相关研究?

    A: 这篇论文提到了以下几类相关研究:

    1. 大型语言模型:论文提到了GPT-2、BERT等早期成功的语言模型,以及后来的更大模型如GPT-3、Chinchilla、OPT、BLOOM等。特别是Phi模型及其改进版Phi-2,这些模型在较小规模下实现了与更大模型相当的性能。
    2. 多模态语言模型:论文提到了VisualGPT、Frozen等早期将视觉输入与语言模型结合的工作,以及后来的Flamingo、BLIP-2等更先进的架构。还有LLaVA、MiniGPT-4等开源的多模态模型,它们通过指令微调等技术在视觉问答等任务上取得了很好的效果。
    3. 小型多模态模型:论文提出了TinyGPT-V,这是一个计算效率高的多模态模型,可以在有限的计算资源下进行训练和部署。与之相比,其他多模态模型如LLaVA-v1.5-13B、MiniGPT-v2等需要更多的计算资源。
    4. 训练稳定化技术:为了解决小规模多模态模型训练中的稳定性问题,论文采用了LayerNorm、RMSNorm、Query-Key Normalization等技术。这些技术在其他工作中也有应用,如LoRA方法。
    5. 多任务学习:论文提出了一种多任务指令模板来指导模型的训练,这借鉴了LLaMA-2的对话模板。多任务学习在其他模型如BLIP-2、MiniGPT-4中也有应用。

    总体来说,这篇论文在大型语言模型、多模态模型、模型训练稳定化技术等方面的现有研究基础上,提出了一种新的计算高效的多模态模型构建方式。

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

    A: 论文通过以下几个关键点来解决开发计算高效且功能强大的多模态大型语言模型(MLLM)的问题:

    1. 使用小型但有效的语言模型:论文选择了Phi-2作为语言模型的骨干网络。Phi-2是一个较小的模型,但已经证明在许多自然语言处理任务中可以与大25倍的模型相媲美。这样可以显著减少模型参数数量和计算需求,同时保持强大的语言理解能力。
    2. 预训练的视图模块:论文利用了BLIP-2或CLIP中的预训练视觉编码器。这些编码器已经在大规模的图像-文本数据集上进行了训练,能够捕捉丰富的视觉特征。通过冻结这些预训练参数,只需要对较小的线性投影层进行训练以适配语言模型,进一步降低了训练负担。
    3. 多阶段训练过程:论文提出了一个多阶段的训练过程,包括预热训练、预训练、指令微调以及多任务学习。这种分阶段的方法允许模型逐步适应多模态输入,并在每个阶段专注于特定的学习目标,提高了训练效率和最终性能。
    4. 训练稳定化技术:为了解决小规模多模态模型训练中的稳定性问题,论文采用了LayerNorm、RMSNorm和Query-Key Normalization等技术。这些技术有助于防止梯度消失或爆炸,并允许更稳定的优化过程。
    5. 多任务指令模板:通过使用包含任务特定标记的统一指令模板,论文的方法可以明确地处理不同的视觉语言任务,减少了训练过程中的歧义,并允许更准确的任务执行。
    6. 量化和设备兼容性:论文指出TinyGPT-V的参数可以通过量化处理,使其适合在只有8GB内存的设备上进行推理,显著扩大了模型的可用性。

    通过上述方法,论文成功地在有限的计算资源下训练了一个多模态大型语言模型TinyGPT-V,该模型在多个视觉语言任务上展现出了与更大模型相竞争的性能。这代表了在设计成本效益高、效率高且功能强大的MLLMs方面的显著进步。

    Q: 论文做了哪些实验?

    A: 论文中进行了以下实验来评估和验证TinyGPT-V模型的性能:

    1. 训练过程:论文详细描述了TinyGPT-V模型的四个阶段训练过程,包括每个阶段的数据集、学习率调度、训练损失等。通过逐步训练,模型从对图像模态输入的初步理解,到能够生成自然语言描述,再到执行多模态任务。
    2. 评估数据集:论文使用了多个视觉问答数据集来评估TinyGPT-V的性能,包括GQA、VSR、IconQA、VizWiz和Hateful Memes等。这些数据集涵盖了不同类型的视觉理解和推理任务。
    3. 结果比较:论文将TinyGPT-V的性能与其他几种最先进的多模态语言模型进行了比较,如BLIP-2、LLaVA、Shikra、InstructBLIP和MiniGPT-4。比较了各模型在不同基准测试中的准确率和零样本学习能力。
    4. 消融研究:为了验证模型中各个组件的重要性,论文进行了消融研究,即逐个移除模型的关键部分(如LoRA模块、输入层归一化、RMSNorm、Query-Key归一化等),观察训练损失的变化。这有助于理解每个组件在防止梯度消失和维持低损失中的作用。

    通过这些实验,论文展示了TinyGPT-V在参数效率和多模态任务性能方面的优势,证明了所提方法的有效性。

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

    A: 基于这篇论文,有以下几个可能的进一步探索方向:

    1. 模型压缩和优化:尽管TinyGPT-V已经比许多其他模型参数更少,但仍有可能通过知识蒸馏、网络剪枝等技术进一步压缩模型大小,同时尽量保持其性能。
    2. 增强的预训练数据:论文使用了现有的一些图像-文本对数据集进行预训练。研究更多样化、更大规模或特定领域的预训练数据集可能有助于模型学习更强的通用视觉表示。
    3. 多模态理解的深度:虽然TinyGPT-V在多个视觉问答数据集上表现良好,但可以进一步探索模型在更复杂的多模态推理任务上的性能,例如需要更长的推理链或更丰富视觉场景理解的任务。
    4. 实时交互能力:论文主要关注了TinyGPT-V的离线性能。研究如何使模型能够进行实时交互,例如在对话系统中自然地回应用户,将是有趣的方向。
    5. 跨模态生成任务:论文集中在视觉问答等理解任务上。可以探索模型在图像描述、图像生成等跨模态生成任务上的性能和潜力。
    6. 模型泛化性和鲁棒性:评估TinyGPT-V在面对分布变化、对抗样本或噪声输入时的鲁棒性,可以提供关于模型泛化能力的见解。
    7. 计算效率的极限:研究是否可以通过算法优化、专用硬件加速等方式进一步减少TinyGPT-V的推理延迟,使其适用于更多资源受限的环境。
    8. 多语言和多文化能力:探索模型在处理多语言和不同文化视觉内容时的表现,以及如何通过多语言预训练来提升这些能力。

    通过这些方向的探索,可以持续改进TinyGPT-V及其同类模型,扩展它们的应用范围并解决实际世界中的更多问题。

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

    A: 这篇论文介绍了TinyGPT-V,这是一个计算效率高且功能强大的多模态大型语言模型(MLLM)。以下是论文的主要内容总结:

    背景:现有的多模态大型语言模型(如GPT-4V)在视觉和语言任务上表现出色,但它们通常是闭源的,需要大量计算资源。相比之下,一些开源的MLLM(如LLaVA和MiniGPT-4)在某些任务上超越了GPT-4V,但它们仍然需要大量计算资源。因此,需要开发既高效又强大的MLLM。

    贡献:论文提出了TinyGPT-V,它只需要24GB GPU进行训练,8GB GPU或CPU进行推理。TinyGPT-V结合了小型但强大的语言模型Phi-2和预训练的视图模块(BLIP-2或CLIP)。它有28亿参数,可以通过量化适应于在8GB设备上部署和推理。

    方法

    • 模型架构:TinyGPT-V包括一个视觉编码器(基于ViT)、线性投影层和一个语言模型骨干网络(Phi-2)。为了提高训练稳定性,论文采用了LayerNorm、RMSNorm和Query-Key Norm等技术。
    • 多任务指令模板:使用MiniGPT-v2的特定任务标记来指导模型处理不同的视觉语言任务,如视觉问答、图像描述等。
    • 训练阶段:TinyGPT-V的训练分为四个阶段,包括预热训练、预训练、指令微调和多任务学习。

    实验:论文在多个视觉问答数据集上评估了TinyGPT-V,结果显示它在参数少得多的情况下与拥有130亿参数的模型表现相当。此外,通过消融研究,论文验证了模型中每个组件的重要性。

    结论:TinyGPT-V代表了在设计成本效益高、效率高且功能强大的MLLM方面的显著进步。论文的工作有助于推动更多适用于现实世界场景的紧凑型MLLM的发展。

    论文还提出了一种新的构建多模态大型语言模型的范式,即使用小型骨干网络,并开源了代码和训练权重以促进进一步研究。

  • PromptFlow运行遇到pydantic导入报错

    pip install pydantic==1.10
    执行上面的指令安装 1.10 系列版本的 pydantic即可。
    开源库的各种版本依赖关系是一个非常容易出错的点。
    
    

    例如如果遇到这样的报错:

    pf -v
    Traceback (most recent call last):
      File "C:\anaconda3\lib\runpy.py", line 196, in _run_module_as_main
        return _run_code(code, main_globals, None,
      File "C:\anaconda3\lib\runpy.py", line 86, in _run_code
        exec(code, run_globals)
      File "C:\Users\linke\AppData\Roaming\Python\Python310\Scripts\pf.exe\__main__.py", line 4, in <module>
      File "C:\Users\linke\AppData\Roaming\Python\Python310\site-packages\promptflow\__init__.py", line 14, in <module>
        from ._sdk._pf_client import PFClient
      File "C:\Users\linke\AppData\Roaming\Python\Python310\site-packages\promptflow\_sdk\_pf_client.py", line 15, in <module>
        from .operations import RunOperations
      File "C:\Users\linke\AppData\Roaming\Python\Python310\site-packages\promptflow\_sdk\operations\__init__.py", line 7, in <module>
        from ._run_operations import RunOperations
      File "C:\Users\linke\AppData\Roaming\Python\Python310\site-packages\promptflow\_sdk\operations\_run_operations.py", line 29, in <module>
        from promptflow._sdk.operations._local_storage_operations import LocalStorageOperations
      File "C:\Users\linke\AppData\Roaming\Python\Python310\site-packages\promptflow\_sdk\operations\_local_storage_operations.py", line 34, in <module>
        from promptflow.batch._result import BatchResult
      File "C:\Users\linke\AppData\Roaming\Python\Python310\site-packages\promptflow\batch\__init__.py", line 6, in <module>
        from ._base_executor_proxy import AbstractExecutorProxy, APIBasedExecutorProxy
      File "C:\Users\linke\AppData\Roaming\Python\Python310\site-packages\promptflow\batch\_base_executor_proxy.py", line 19, in <module>
        from promptflow.executor._result import AggregationResult, LineResult
      File "C:\Users\linke\AppData\Roaming\Python\Python310\site-packages\promptflow\executor\__init__.py", line 6, in <module>
        from .flow_executor import FlowExecutor
      File "C:\Users\linke\AppData\Roaming\Python\Python310\site-packages\promptflow\executor\flow_executor.py", line 22, in <module>
        from promptflow._core.openai_injector import inject_openai_api
      File "C:\Users\linke\AppData\Roaming\Python\Python310\site-packages\promptflow\_core\openai_injector.py", line 11, in <module>
        import openai
      File "C:\Users\linke\AppData\Roaming\Python\Python310\site-packages\openai\__init__.py", line 8, in <module>
        from . import types
      File "C:\Users\linke\AppData\Roaming\Python\Python310\site-packages\openai\types\__init__.py", line 5, in <module>
        from .edit import Edit as Edit
      File "C:\Users\linke\AppData\Roaming\Python\Python310\site-packages\openai\types\edit.py", line 6, in <module>
        from .._models import BaseModel
      File "C:\Users\linke\AppData\Roaming\Python\Python310\site-packages\openai\_models.py", line 18, in <module>
        import pydantic
      File "pydantic\__init__.py", line 2, in init pydantic.__init__
      File "pydantic\dataclasses.py", line 43, in init pydantic.dataclasses
        # | <blank> | No action: no method is added.          |
      File "C:\Users\linke\AppData\Roaming\Python\Python310\site-packages\pydantic\class_validators.py", line 2, in <module>
        from ._migration import getattr_migration
      File "C:\Users\linke\AppData\Roaming\Python\Python310\site-packages\pydantic\_migration.py", line 4, in <module>
        from .version import version_short
    ImportError: cannot import name 'version_short' from 'pydantic.version' (C:\Users\linke\AppData\Roaming\Python\Python310\site-packages\pydantic\version.cp310-win_amd64.pyd)

  • YAYI2 模型

    YAYI2 模型是一款开源大语言模型。它采用了超过 2 万亿 Tokens 的高质量、多语言语料进行预训练[1]。YAYI2-30B 是 YAYI2 模型的一个版本,它是基于 Transformer 架构的大语言模型,参数规模为 30B。该模型通过百万级指令进行微调,并借助人类反馈强化学习方法,以更好地使模型与人类价值观对齐[2]

    以下是 YAYI2-30B 模型的一些细节:

    • n_layers: 64
    • n_heads: 64
    • hidden_size: 7168
    • vocab_size: 81920
    • sequence length: 4096[2]

    要使用 YAYI2-30B 模型,您需要满足以下要求:

    • Python 3.8 及以上版本
    • PyTorch 2.0.1 及以上版本
    • 建议使用 CUDA 11.7 及以上版本
    • 运行 BF16 或 FP16 模型需要至少 80GB 显存(例如 1xA100)[2]

    您可以使用 Hugging Face 的 Transformers 库来快速开始使用 YAYI2-30B 模型。下面是一个快速开始的示例代码:

    from transformers import AutoModelForCausalLM, AutoTokenizer
    
    tokenizer = AutoTokenizer.from_pretrained("wenge-research/yayi2-30b", trust_remote_code=True)
    model = AutoModelForCausalLM.from_pretrained("wenge-research/yayi2-30b", device_map="auto", trust_remote_code=True)
    
    inputs = tokenizer('The winter in Beijing is', return_tensors='pt')
    inputs = inputs.to('cuda')
    
    pred = model.generate(
        **inputs,
        max_new_tokens=256,
        eos_token_id=tokenizer.eos_token_id,
        do_sample=True,
        repetition_penalty=1.2,
        temperature=0.4,
        top_k=100,
        top_p=0.8
    )
    
    print(tokenizer.decode(pred.cpu(), skip_special_tokens=True))

    YAYI2-30B 模型在多个基准数据集上进行了评测,包括语言理解、学科知识、数学推理、逻辑推理和代码生成等方面的表现。与其他规模相近的开源模型相比,YAYI2-30B 模型展现出了显著的性能提升[2]

    评测结果如下(部分数据集):

    • 知识理解:80.9
    • 数学:80.5
    • 逻辑推理:62.0
    • 代码生成:45.8[2]

    请注意,使用 YAYI2-30B 模型和数据需要遵循雅意 YAYI2 模型社区许可协议。如果您希望将 YAYI2-30B 模型用于商业用途,请参考雅意 YAYI2 模型商用许可协议[2]


    Learn more:

    1. GitHub – wenge-research/YAYI2: YAYI 2 是中科闻歌研发的新一代开源大语言模型,采用了超过 2 万亿 Tokens 的高质量、多语言语料进行预训练。(Repo for YaYi 2 Chinese LLMs)
    2. wenge-research/yayi2-30b · Hugging Face
    3. YAYI2-30B(YAYI2-30B)详细信息 | 名称、简介、使用方法,开源情况,商用授权信息 | 数据学习 (DataLearner)
  • 解析 Transformer 模型 | Way to AGI

    📚 导读:在这篇博客文章中,我们将深入探讨 Transformer 模型。Transformer 是一种神经网络结构,它在自然语言处理领域取得了重大突破。我们将了解 Transformer 的工作原理,为什么它如此强大,并看看它在翻译、文本生成和其他语言任务中的应用。让我们一起来了解这个令人惊叹的模型!


    大家好!在本篇文章中,我们将深入探讨一种引领自然语言处理领域的重要模型——Transformer!Transformer 模型的出现为我们实现通用人工智能(AGI)提供了新的可能性。它在翻译、文本生成和其他语言任务中表现出色,被广泛应用于各个领域。让我们一起来揭开这个神秘而强大的模型的面纱。

    1. 从锤子到钉子

    你是否曾经听说过这样一句话:“当你手中只有一把锤子时,所有东西看起来都像钉子。”在机器学习领域,我们似乎找到了一把神奇的“锤子”——Transformer 模型。实际上,对于 Transformer 模型而言,一切都像是钉子。它可以用于文本翻译、写诗、写文章,甚至生成计算机代码。在 Dale Markowitz 的文章中,他介绍了一些基于 Transformer 的令人惊叹的研究成果,如 AlphaFold 2、GPT-3、BERT、T5、Switch、Meena 等强大的自然语言处理模型。这些模型的功能非常强大,深受研究人员和开发者的喜爱。

    2. 传统方法的局限性

    在介绍 Transformer 之前,让我们先了解一下传统方法的局限性。在语言处理任务中,如翻译、文本摘要、文本生成等,长期以来都没有找到合适的方法。这一点非常不幸,因为语言是人类交流的主要方式。在 2017 年之前,我们使用深度学习模型来理解文本的方法主要是基于循环神经网络(RNN)。RNN 的工作原理是按顺序处理文本中的每个单词,然后输出相应的结果。然而,RNN 存在一些问题。

    首先,RNN 很难处理冗长的文本序列,如长段落或文章。当处理到文本的结尾时,RNN 往往会忘记开头发生了什么。例如,基于 RNN 的翻译模型可能很难记住长段落主语的性别。此外,RNN 很难训练,容易受到梯度消失/爆炸问题的影响。由于 RNN 是按顺序处理单词的,因此很难实现并行化,无法充分利用硬件加速训练速度,也无法使用更多的数据进行训练。

    3. Transformer 的出现

    那么,当 Transformer 模型出现时,它是如何解决上述问题的呢?Transformer 是由谷歌和多伦多大学的研究人员于 2017 年开发的,最初设计用于翻译任务。与之前的循环神经网络不同,Transformer 可以高效地实现并行化处理文本序列,从而解决了 RNN 的一些问题。

    4. Transformer 的工作原理

    Transformer 模型的核心思想是自注意力机制(self-attention mechanism)。它允许模型在处理每个单词时,能够关注整个输入序列的其他部分。这种机制使得模型能够更好地理解单词之间的依赖关系和上下文信息。

    具体而言,Transformer 模型包含了编码器(encoder)和解码器(decoder)两个部分。编码器负责将输入文本编码成一个语义表示,而解码器则将这个语义表示解码成输出文本。编码器和解码器都由多个堆叠的层组成,每个层都有自注意力机制和前馈神经网络组成。

    自注意力机制的计算过程可以简单概括为以下三个步骤:

    1. 计算注意力分数:为了计算第 i 个位置的注意力,模型会计算当前位置与其他所有位置的相关度分数。这些分数决定了模型在编码或解码过程中关注哪些位置的信息。
    2. 计算注意力权重:通过对注意力分数进行归一化处理,得到关注每个位置的权重。这些权重决定了模型对不同位置的关注程度。
    3. 加权求和:将每个位置的特征向量与对应的注意力权重相乘,并进行加权求和。这样可以将所有位置的信息整合到一个语义表示中。

    通过堆叠多个编码器和解码器层,Transformer 模型能够逐渐提取更加丰富和高级的语义信息。这使得模型能够更好地理解输入文本,并生成准确和连贯的输出文本。

    5. Transformer 的应用

    Transformer 模型在自然语言处理领域的应用非常广泛。除了翻译任务之外,它还被用于文本生成、问答系统、情感分析、命名实体识别等各种语言处理任务中。Transformer 模型的强大性能和可扩展性使得它成为当前最先进的自然语言处理模型之一。

    结语

    在本文中,我们深入探讨了 Transformer 模型的工作原理和应用。作为一种新颖而强大的神经网络结构,Transformer 模型通过自注意力机制解决了传统方法的一些问题,并在自然语言处理领域取得了令人瞩目的成果。它不仅在翻译任务中表现出色,还在文本生成和其他语言任务中展现出巨大潜力。相信随着技术的不断进步,Transformer 模型将在未来的人工智能发展中发挥更加重要的作用。

    感谢大家阅读本篇文章!如果你对 Transformer 模型还有任何疑问或者想要了解更多相关信息,欢迎在评论区留言。我们期待与大家继续探讨和分享关于人工智能的知识。谢谢!🤖🚀

  • 热点新闻:KwaiAgents – 基于大型语言模型的革命性信息搜索代理系统!

    🎉🎉🎉热点新闻:KwaiAgents – 基于大型语言模型的革命性信息搜索代理系统!🤖🔍

    你是否曾经想过机器如何能够具备人类的思考、规划和高效信息检索等能力?现在,不再需要猜测了!大型语言模型(LLMs)的最新进展为机器展示了强大的能力,即使参数数量有限。在本博客文章中,我们将深入探讨KwaiAgents的激动人心世界,这是一个基于LLMs的革命性信息搜索代理系统。让我们一起探索KwaiAgents如何利用尖端技术提供全面回答,并在该领域中超越其他自动代理。

    🧠人类级别的能力之威力

    受好奇心驱使,人类一直渴望探索和理解周围的世界。尽管我们的大脑无法处理和记忆大量信息,但我们在批判性思维和利用可用工具与世界进行交互和解释方面卓有成效。这种独特的认知和机智使得我们能够高效地找到答案。但是,如果机器也可以做到这一点呢?

    💡介绍KwaiAgents

    KwaiAgents是一个通用的信息搜索代理系统,利用LLMs的强大能力。这些代理具备基于LLMs的认知核心,使其能够理解用户的查询、行为准则,甚至参考外部文档。但这还不是全部!KwaiAgents还具备从内部记忆中更新和检索信息、使用时间感知的搜索浏览工具进行规划和执行操作,并最终提供全面回答的能力。

    🔍释放LLMs的威力

    为了确保KwaiAgents的卓越性能,该系统利用比GPT-4更不先进的LLMs。但不要被这个误导了!元代理调整(MAT)框架在对这些LLMs进行微调方面起着关键作用,确保即使在许多代理系统中,开源的7B或13B模型也能表现出色。通过广泛的基准测试和人类评估,KwaiAgents已经证明了其在其他自动代理系统方面的优越性,展示了精调LLMs的增强通用代理能力。

    🌐The Web Conference:展示KwaiAgents的潜力

    KwaiAgents不仅仅是一个理论概念。该系统已经在2024年5月13日至17日在新加坡举办的The Web Conference上进行了展示。这个备受赞誉的会议为展示KwaiAgents和LLMs的先进性提供了平台。KwaiAgents团队致力于推动人工智能的发展,并创造一个机器可以无缝互动和协助人类进行信息搜索的未来。

    📚开源供公众使用

    为了鼓励研究人员、开发人员和人工智能爱好者的合作和创新,KwaiAgents已经在GitHub上发布了系统代码、模型、训练数据和基准测试的精简版本。这一举措旨在推动KwaiAgents奠定的基础的探索和发展,推动信息搜索代理系统的发展。

    🏆KwaiAgents vs.全球

    通过全面的实验,KwaiAgents展现出了卓越的性能,超越了几个开源代理系统。这一成就特别值得注意,因为即使是较小的开源LLMs(7B或13B),也展示了信息搜索任务所需的通用代理能力。KwaiAgents在自主代理领域确实树立了新的标杆。

    要阅读有关KwaiAgents的完整研究论文,深入了解这个开创性系统的复杂细节,您可以在arXiv Vanity上找到它。

    🌟信息搜索代理的未来

    KwaiAgents代表了信息搜索代理发展的重大飞跃。通过利用LLMs的力量,KwaiAgents展示了其具备批判性思维、战略规划和提供全面回答的能力。随着我们不断挖掘LLMs的潜力并微调其能力,未来为信息搜索代理提供了无限的可能性,这些代理可以辅助和增强人类智慧。

    那么,你准备好与KwaiAgents踏上旅程,见证大型语言模型的变革力量了吗?信息搜索代理的未来已经到来,而且令人兴奋无比!🚀🤖💡