微信扫码
与创始人交个朋友
我要投稿
GraphRAG索引消耗Token巨大,所以你可能会问?新增文件后,我之前的文件会不会重新索引一次啊?什么情况下会利用缓存呢?本文带你一探究竟。
GraphRAG默认使用文件缓存,配置如下。当然你也可以考虑使用Azure云端的缓存。
cache:
type: file # or blob
base_dir: "cache"
# connection_string: <azure_blob_storage_connection_string>
# container_name: <azure_blob_storage_container_name>
缓存放在cache目录下,并根据流程分为实体提取、总结描述、社区报告和文本嵌入四个部分,所以缓存基本涵盖了所有涉及LLM调用或者Embedding调用的部分。
缓存的文件名类似 chat-0a0edbed8a583fd6ef2647112f565bd9
create_community_report-chat-v2-0a8d6dcd76f6d92edb9388681da40d1d
,tag和hash值组合而成。缓存的内容是什么呢?其实就LLM的请求输入和响应输出,或者是embedding API的调用回复。
{
"result": "(\"entity\"<|>\"Retrieval-Augmented Generation\"<|>\"technique\"<|>...<|COMPLETE|>",
"input": "-Goal-\nGiven a text document ...",
"parameters": {
"model": "deepseek-chat",
"temperature": 0,
"frequency_penalty": 0,
"presence_penalty": 0,
"top_p": 0.99,
"max_tokens": 4096,
"n": 1
}
}
那么何时缓存会生效?修改哪些部分会影响缓存呢?让我们看GraphRAG中如下代码,它是为缓存文件生成文件名,也就是上文看到文件名。
def create_hash_key(operation: str, prompt: str, parameters: dict) -> str:
"""Compute cache key from prompt and associated model and settings.
Args:
prompt (str): The prompt run through the language model.
llm_string (str): The language model version and settings.
Returns
-------
str: The cache key.
"""
llm_string = _llm_string(parameters)
return f"{operation}-{_hash(prompt + llm_string)}"
从这份代码上,我们能够了解到,有两个影响hash值的生成
这是实际运行过程中打印的参数
tag: chat
llm_string: {'model': 'llama3-70b-8192', 'temperature': 0.0, 'frequency_penalty': 0.0, 'presence_penalty': 0.0, 'top_p': 0.99, 'max_tokens': 2000, 'n': 1}
[('frequency_penalty', 0.0), ('max_tokens', 2000), ('model', 'llama3-70b-8192'), ('n', 1), ('presence_penalty', 0.0), ('temperature', 0.0), ('top_p', 0.99)]
所以当你
换一个LLM,或者修改LLM的参数,都会导致重新索引
加入新的文件,只会索引该文件,已经索引的文件不会重新索引。
修改现有文件,可能导致整个文件重新索引,或者是部分,因为修改文件,如果只是部分chunk改变,那么只会是这部分chunk需要重新索引。
因此,如果你的单个文档较大,并且可能会经常修改,可以考虑将其拆分,以充分利用缓存,节省你的Money。
53AI,企业落地应用大模型首选服务商
产品:大模型应用平台+智能体定制开发+落地咨询服务
承诺:先做场景POC验证,看到效果再签署服务协议。零风险落地应用大模型,已交付160+中大型企业
2024-11-15
RAG技术全解析:从基础到前沿,掌握智能问答新动向
2024-11-15
RAG在未来会消失吗?附RAG的5种切分策略
2024-11-15
HtmlRAG:利用 HTML 结构化信息增强 RAG 系统的知识检索能力和准确性
2024-11-15
打造自己的RAG解析大模型:表格数据标注的三条黄金规则
2024-11-13
RAGCache:让RAG系统更高效的多级动态缓存新方案
2024-11-13
Glean:企业AI搜索,估值46亿美元,ARR一年翻4倍
2024-11-12
从安装到配置,带你跑通GraphRAG
2024-11-12
蚂蚁 KAG 框架核心功能研读
2024-07-18
2024-07-09
2024-05-05
2024-07-09
2024-05-19
2024-06-20
2024-07-07
2024-07-07
2024-07-08
2024-07-09
2024-11-06
2024-11-06
2024-11-05
2024-11-04
2024-10-27
2024-10-25
2024-10-21
2024-10-21