IT博客汇
  • 首页
  • 精华
  • 技术
  • 设计
  • 资讯
  • 扯淡
  • 权利声明
  • 登录 注册

    LLM基底模型的记忆测试

    admin发表于 2024-03-02 08:50:51
    love 0

    hMC022

    最近开始研究Agent记忆这块,现在的大模型都是有指定的窗口限制,比如gpt3.5 8k token 的窗口。理论上在这个窗口内的聊天信息,gpt都应该了如指掌,现在gpt4-128k,那么在这128k内它真的是什么都记住了?基于此才有这篇文章的存在。

    在 github上看到这个项目 https://github.com/gkamradt/LLMTest_NeedleInAHaystack 做了这样的一个测试。

    GPT-4-128 Context Testing

    测试

    1. 在一个长篇背景中(称为“needle”),将一个随机的事实或陈述(称为“haystack”)放在中间
    2. 请模型检索此陈述
    3. 迭代不同的文档深度(即放置haystack的位置)和上下文长度,以衡量性能

    将 haystack放在不同的位置就是用来测试模型的记忆能力,比如放在最开始和最后LLM输出的结果就是不一样,那么就验证了首尾存在着差异。

    目前代码只支持OpenAI和Anthropic分析的代码。

    如果运行并且 save_results = True ,那么这个脚本将会生成一个 result/ 目录,并填充评估信息。由于可能存在并发请求,每个新的测试将会保存为多个文件。

    我已经将原始测试结果放在 /original_results 中。由于我升级了脚本,所以数据格式可能与您的脚本结果不匹配。

    关键参数:

    • - 将放置在您的上下文(“干草堆”)中的陈述或事实
    • haystack_dir – 包含要作为背景上下文加载的文本文件的目录。仅支持文本文件。
    • 在背景环境中找到您的答案的问题
    • 您可能希望对相同的长度/深度组合运行多次测试,如果是这样,请更改版本号
    • 迭代的上下文长度列表的起始点
    • 迭代上下文长度列表的结束点
    • - 在您的最小值和最大值之间迭代的间隔数量
    • - 文档深度的起始点。应为大于0的整数。
    • - 文档深度的结束点。应为整数 < 100。
    • - 在您的最小/最大点之间执行的迭代次数
    • - 确定要迭代的深度分布。可以选择’linear’(线性)或’sigmoid’(S型)。
    • model_provider – ‘OpenAI’ 或 ‘Anthropic’
    • model_name – 您想要测试的模型名称。应与需要传递给API的确切值匹配。例如: gpt-4-1106-preview
    • - 是否要将结果保存到文件中。无论如何,结果都将在对象中临时保存。是/否
    • 是否要将您的上下文保存到文件中。警告:这些文件会变得非常长。是/否

      其他参数:

    • context_lengths – 一组自定义的上下文长度。如果设置了,将覆盖 context_lengths_min 、最大值和间隔的设定值。

    • - 一个自定义的文档深度长度集合。如果设置了,它将覆盖 document_depth_percent_min 、最大值和间隔的设定值。
    • openai_api_key – 必须提供。用于评估的GPT-4。可以在创建对象时传递,也可以作为环境变量传递。
    • - 仅在测试人类模型时需要。可以在创建对象时传递,也可以作为环境变量传递。
    • - 默认值:1。如果您希望并行运行更多请求,请将其设置为更高的值。请注意速率限制。
    • - 每个输入中要减去的上下文量,以考虑系统消息和输出令牌。目前可以更智能地处理,但现在使用的是固定值。默认为200个令牌。
    • - 默认值:无,如果您希望减慢请求的速度,请设置以秒为单位的时间
    • - 默认值:True,是否打印测试完成时的状态信息

    结果可视化

    LLMNeedleInHaystackVisualization.ipynb 包含了生成数据透视表可视化的代码。然后将数据透视表转移到 Google 幻灯片中进行自定义注释和格式设置。请查看 Google 幻灯片版本。在此处查看创建此可视化的概述。

    OpenAI的GPT-4-128K(2023年11月8日发布)

    在64k以内可以确定全部记得所有的内容,在这之后其实都会存在部分位置无法记住的情况。

    GPT-4-128 Context Testing

    Anthropic的Claude 2.1(运行于2023年11月21日)

    GPT-4-128 Context Testing



沪ICP备19023445号-2号
友情链接