大语言模型中的长文本事实性
这是我们论文"大语言模型中的长文本事实性"的官方代码发布。 此代码库包含:
- LongFact:一套包含2,280个需要长篇回答的事实性问题提示。
- 搜索增强事实性评估器(SAFE):在长文本事实性环境中自动评估模型回答。
- F1@K:使用人类偏好长度的召回率来扩展F1分数至长文本环境。
- 使用LongFact + SAFE对OpenAI和Anthropic模型进行基准测试的实验流程。
安装
首先,克隆我们的GitHub仓库。
git clone https://github.com/google-deepmind/long-form-factuality.git
然后进入新创建的文件夹。
cd long-form-factuality
接下来,使用conda
创建一个新的Python 3.10+环境。
conda create --name longfact python=3.10
激活新创建的环境。
conda activate longfact
所有外部包的要求都列在requirements.txt
中。
要安装所有包,请运行以下命令。
pip install -r requirements.txt
使用方法
LongFact
LongFact的完整提示集可在longfact/
文件夹中找到。
有关数据集的更多详细信息,请参阅longfact/
中的README。
要运行我们用于生成LongFact的数据生成流程,请使用以下命令。
有关数据生成流程的其他详细信息,请参阅data_creation/
中的README。
python -m data_creation.pipeline
SAFE
我们对SAFE的完整实现位于eval/safe/
中。
有关SAFE如何工作的更多信息,请参阅eval/safe/
中的README。
要运行评估SAFE与FActScore人工标注对比的流程,请使用以下命令。
有关此实验的其他详细信息,请参阅eval/
中的README。
python -m eval.correlation_vs_factscore
模型基准测试
要对OpenAI和Anthropic模型进行基准测试,首先将您的API密钥添加到common/shared_config.py
中(有关更多信息,请参阅common/
中的README;请确保不要公开这些密钥)。
要获取给定提示集的模型回答,请使用以下命令。
有关我们主要实验流程的其他详细信息,请参阅main/
中的README。
python -m main.pipeline
接下来,要使用SAFE评估我们主要实验流程中的提示-回答对,请使用以下命令,确保将包含要评估的提示-回答对的.json
文件路径添加到--result_path
参数中。
python -m eval.run_eval \
--result_path=
单元测试
此目录中的每个文件都有一个带有_test
后缀的对应单元测试(例如,file.py
会有file_test.py
作为单元测试)。
单个测试的运行命令显示在单元测试文件中。
要运行所有单元测试,请使用以下命令。
python -m unittest discover -s ./ -p "*_test.py"
引用本工作
如果您发现我们的代码有用,请引用我们的论文:
@misc{wei2024long,
title={Long-form factuality in large language models},
author={Wei, Jerry and Yang, Chengrun and Song, Xinying and Lu, Yifeng and Hu, Nathan and Huang, Jie and Tran, Dustin and Peng, Daiyi and Liu, Ruibo and Huang, Da and Du, Cosmo and Le, Quoc V.},
year={2024},
url={https://arxiv.org/abs/2403.18802},
}
许可和免责声明
版权所有 2024 DeepMind Technologies Limited
所有软件均根据Apache License, Version 2.0(Apache 2.0)许可; 除非符合Apache 2.0许可,否则您不得使用此文件。 您可以在以下位置获取Apache 2.0许可的副本: https://www.apache.org/licenses/LICENSE-2.0
所有其他材料均根据Creative Commons Attribution 4.0 International License(CC-BY)许可。您可以在以下位置获取CC-BY许可的副本: https://creativecommons.org/licenses/by/4.0/legalcode
除非适用法律要求或书面同意,否则根据Apache 2.0或CC-BY许可分发的所有软件和 材料均按"原样"分发,不提供任何明示或暗示的担保或条件。 有关这些许可下的特定语言管理权限和限制,请参阅许可证。
这不是官方的Google产品。