graphrag 自动提示调优 ⚙️提示词优化

自动提示调优 ⚙️

GraphRAG提供了创建领域适应提示的能力,用于生成知识图谱。这一步骤是可选的,但强烈建议运行它,因为它在执行索引运行时会带来更好的结果。

这些提示是通过加载输入数据,将其分割成块(文本单元),然后运行一系列LLM调用和模板替换来生成的。我们建议使用脚本提供的默认值,但在此页面上,您将找到每个参数的详细信息,以防您想进一步探索和调整提示调优算法。

图1:自动调优概念图
先决条件

在运行自动调优之前,请确保您已经使用graphrag.index --init命令初始化了工作区。这将创建必要的配置文件和默认提示。有关初始化过程的更多信息,请参阅初始化文档。

用法

您可以通过命令行运行主脚本,并使用各种选项:

python -m graphrag.prompt_tune [--root ROOT] [--domain DOMAIN] [--method METHOD] [--limit LIMIT] [--language LANGUAGE] \
[--max-tokens MAX_TOKENS] [--chunk-size CHUNK_SIZE] [--n-subset-max N_SUBSET_MAX] [--k K] \
[--min-examples-required MIN_EXAMPLES_REQUIRED] [--no-entity-types] [--output OUTPUT]
命令行选项
  • --config(必需):配置文件的路径。这是加载数据和模型设置所必需的。
  • --root(可选):数据项目根目录,包括配置文件(YML、JSON或.env)。默认为当前目录。
  • --domain(可选):与输入数据相关的领域,例如“太空科学”、“微生物学”或“环境新闻”。如果留空,将从输入数据中推断领域。
  • --method(可选):选择文档的方法。选项有allrandomautotop。默认是random
  • --limit(可选):使用randomtop选择时加载的文本单元数量。默认是15。
  • --language(可选):用于输入处理的语言。如果与输入语言不同,LLM将进行翻译。默认是空字符串,表示将自动从输入中检测。
  • --max-tokens(可选):提示生成的最大token数。默认是2000。
  • --chunk-size(可选):用于从输入文档生成文本单元的token大小。默认是200。
  • --n-subset-max(可选):使用auto选择方法时嵌入的文本块数量。默认是300。
  • --k(可选):使用auto选择方法时选择的文档数量。默认是15。
  • --min-examples-required(可选):实体提取提示所需的最小示例数量。默认是2。
  • --no-entity-types(可选):使用无类型实体提取生成。当您的数据涵盖大量主题或高度随机时,我们建议使用此选项。
  • --output(可选):保存生成提示的文件夹。默认是“prompts”。
示例用法
python -m graphrag.prompt_tune --root /path/to/project --config /path/to/settings.yaml --domain "environmental news" \
--method random --limit 10 --language English --max-tokens 2048 --chunk-size 256 --min-examples-required 3 \
--no-entity-types --output /path/to/output

或者,使用最小配置(建议):

python -m graphrag.prompt_tune --root /path/to/project --config /path/to/settings.yaml --no-entity-types
文档选择方法

自动调优功能会摄取输入数据,然后将其分割成块大小参数大小的文本单元。之后,它使用以下选择方法之一来选择一个样本以用于提示生成:

  • random:随机选择文本单元。这是默认且推荐选项。
  • top:选择前n个文本单元。
  • all:使用所有文本单元进行生成。仅在数据集较小时使用;通常不推荐此选项。
  • auto:在低维空间中嵌入文本单元,并选择与质心最近的k个邻居。当您有一个大数据集并希望选择一个代表性样本时,这很有用。
修改环境变量

运行自动调优后,您应该修改以下环境变量(或配置变量),以便在索引运行时使用新的提示。注意:请确保更新生成提示的正确路径,在此示例中我们使用默认的“prompts”路径。

GRAPHRAG_ENTITY_EXTRACTION_PROMPT_FILE = "prompts/entity_extraction.txt"
GRAPHRAG_COMMUNITY_REPORT_PROMPT_FILE = "prompts/community_report.txt"
GRAPHRAG_SUMMARIZE_DESCRIPTIONS_PROMPT_FILE = "prompts/summarize_descriptions.txt"

或者在您的yaml配置文件中:

entity_extraction:
  prompt: "prompts/entity_extraction.txt"

summarize_descriptions:
  prompt: "prompts/summarize_descriptions.txt"

community_reports:
  prompt: "prompts/community_report.txt"

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

需要重新演唱

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值