发布历史#

v0.3.3 (即将发布)#

新增功能#

  • 引入了 IndirectAttackSimulator,用于模拟对您的 AI 系统进行的 XPIA(跨域提示注入攻击)越狱攻击。

  • 引入了 IndirectAttackEvaluator,用于评估对话或问答上下文中是否存在 XPIA(跨域提示注入攻击),这些攻击通过引发被操纵的内容、入侵并试图收集超出您的 AI 系统范围的信息来中断正常的预期功能。

  • 添加了一个新的评估器(ProtectedMaterialEvaluator)和相关的对抗性内容模拟器枚举类型(AdversarialScenario.ADVERSARIAL_CONTENT_PROTECTED_MATERIAL),用于受保护材料,该评估器确定给定输入是否包含受知识产权法保护的材料。

  • 添加了四个数学评估器:BleuScoreEvaluatorGleuScoreEvaluatorMeteorScoreEvaluatorRougeScoreEvaluator,用于通过与参考文本进行比较来评估生成文本的质量。

修复的 Bug#

  • 修复了评估器以接受(非 Azure)Open AI 配置。

重大变更#

  • AdversarialSimulator 中的 jailbreak 参数替换为 _jailbreak_type 参数,以支持多种越狱类型。我们建议使用 JailbreakAdversarialSimulator 类进行 UPIA 越狱,以及使用 IndirectAttackSimulator 类进行 XPIA 越狱,而不是直接编辑此参数。

改进#

  • JailbreakAdversarialSimulator 重命名为 DirectAttackSimulator

  • 默认将 PF_EVALS_BATCH_USE_ASYNC 环境变量设置为 True,以启用异步批处理运行支持异步的内置评估器,从而提高性能。

  • AdversarialSimulator 类现在支持模拟提示的随机化,以及通过两个新参数:randomize_orderrandomization_seed 来实现随机化的种子设置以保持一致性。默认情况下启用随机化。子类 DirectAttackSimulator 始终使用 randomization_seed 来同步子模拟器,即使未提供种子。

v0.3.2 (2024-08-13)#

新增功能#

  • 引入了 JailbreakAdversarialSimulator,用于需要同时运行越狱和非越狱对抗性模拟的客户。更多信息请参见 /promptflow/evals/synthetic/README.md#jailbreak-simulator 中的 README.md。

  • 通过 PF_BATCH_TIMEOUT_SEC 环境变量公开了批处理评估运行超时。此变量可用于单独为每个评估器和目标设置批处理评估的超时,而不是针对整个 API 调用。

错误修复#

  • 大型模拟导致 jinja 异常,此问题已修复。

  • 修复了使用多个评估器时,相对数据路径不适用于评估 API 的问题。

改进#

  • 将内置评估器转换为基于异步的实现,利用异步批处理运行来提高性能。引入了 PF_EVALS_BATCH_USE_ASYNC 环境变量来启用/禁用异步批处理运行,默认为 False。

  • 评估器与模拟器在签名、传递凭据方面保持一致。

  • AdversarialSimulator 在响应中返回有害内容的 category

  • 减少了基于 GPT 的评估器中出现 NaNs 的几率。

v0.3.1 (2024-07-09)#

  • 此版本包含次要错误修复和改进。

v0.3.0 (2024-05-17)#

  • promptflow-evals 包的初始版本。