graphrag icon indicating copy to clipboard operation
graphrag copied to clipboard

[Bug]: <title>幻觉严重怎么解决,回答出来的跟原文完全不一样

Open Anthonyfhd opened this issue 1 year ago • 13 comments

Describe the bug

我用的是一些法律条例作为输入,本来GraphRag就是为了减少幻觉,提高准确度。

Steps to reproduce

No response

Expected Behavior

No response

GraphRAG Config Used

No response

Logs and screenshots

No response

Additional Information

  • GraphRAG Version:
  • Operating System:
  • Python Version:
  • Related Issues:

Anthonyfhd avatar Jul 24 '24 07:07 Anthonyfhd

Dealing with hallucinations is a complex topic with many solutions. What model are you using?

jgbradley1 avatar Jul 24 '24 12:07 jgbradley1

我使用的是Qwen2:7b

Anthonyfhd avatar Jul 25 '24 08:07 Anthonyfhd

Try to set max_gleanings to 0. I meet this issue, when I upgrade to v0.2.0. set max_gleanings to 0 fix my problem.

shengkui avatar Jul 26 '24 07:07 shengkui

使用qwen2-72b ,多个文件中其中几个文件的回答正确,有几个文件的回答全是幻觉(如只用1个文件也没问题),感觉实体没有提取到,用了max_gleanings to 0也没用, encoding_model: cl100k_base要用吗?

xxll88 avatar Jul 28 '24 14:07 xxll88

设置 max_gleanings 确实解决不了问题,我换了个测试文档就发现了。 尝试通过修改提示词来减轻幻觉,没有生效。幻觉是 LLM 的问题,当前应该没法完全解决。

shengkui avatar Jul 29 '24 06:07 shengkui

我这边的问题依靠 Prompt Tuning 解决了,graphrag 自动优化提示词比我手动修改的效果要好。 但是这只是我这边测试数据的情况,其它文档则未必了。

shengkui avatar Jul 29 '24 07:07 shengkui

我的情况是vllm加载qwen72,global回答还可以,local明显不对,不清楚原因,为什么要用vllm呢,因为index它太快了,难以置信,这样graphrag才有使用场景,但vllm local search明显不对,1个文件没问题能准确找到相关内容,2个文件以上local search 就找不到相关内容,回答就是幻觉 global能答对,说明整个index过程到最后create_final_documents,all workflow都没有问题 为什么local 找不到相关内容,local search 源码需要调整吗?

xxll88 avatar Jul 29 '24 11:07 xxll88

我的情况是vllm加载qwen72,global回答还可以,local明显不对,不清楚原因,为什么要用vllm呢,因为index它太快了,难以置信,这样graphrag才有使用场景,但vllm local search明显不对,1个文件没问题能准确找到相关内容,2个文件以上local search 就找不到相关内容,回答就是幻觉 global能答对,说明整个index过程到最后create_final_documents,all workflow都没有问题 为什么local 找不到相关内容,local search 源码需要调整吗?

你有遇到JSONDecodeError: Expecting value: line 1 column 1 (char 0} 问题吗,我的llm是qwen2-7b, infer-engine也是vllm

james2v avatar Jul 30 '24 08:07 james2v

我的情况是vllm加载qwen72,global回答还可以,local明显不对,不清楚原因,为什么要用vllm呢,因为index它太快了,难以置信,这样graphrag才有使用场景,但vllm local search明显不对,1个文件没问题能准确找到相关内容,2个文件以上local search 就找不到相关内容,回答就是幻觉 global能答对,说明整个index过程到最后create_final_documents,all workflow都没有问题 为什么local 找不到相关内容,local search 源码需要调整吗?

你有遇到JSONDecodeError: Expecting value: line 1 column 1 (char 0} 问题吗,我的llm是qwen2-7b, infer-engine也是vllm

我看每次index日志里最后/community_reports 阶段/是会出现几次: File "miniconda3/envs/autogen/lib/python3.11/json/decoder.py", line 355, in raw_decode raise JSONDecodeError("Expecting value", s, err.value) from None json.decoder.JSONDecodeError: Expecting value: line 1 column 1 (char 0), 我估计是LLM 生成的json由于格式不对,导致decode error,json 格式无非是括号,逗号不匹配之类的问题,也许LLM精度不太够, 我qwen72是gptq int4量化的,我已经设置model_supports_json: false ,不知道decode error后llm会重新生成json,还是跳过 但all workflow能正常完成,对结果似乎影响不大

xxll88 avatar Jul 30 '24 22:07 xxll88

我的情况是vllm加载qwen72,global回答还可以,local明显不对,不清楚原因,为什么要用vllm呢,因为index它太快了,难以置信,这样graphrag才有使用场景,但vllm local search明显不对,1个文件没问题能准确找到相关内容,2个文件以上local search 就找不到相关内容,回答就是幻觉 global能答对,说明整个index过程到最后create_final_documents,all workflow都没有问题 为什么local 找不到相关内容,local search 源码需要调整吗?

你有遇到JSONDecodeError: Expecting value: line 1 column 1 (char 0} 问题吗,我的llm是qwen2-7b, infer-engine也是vllm

我也遇到过,在community report生成的过程中,我换了几种开源大模型都不太理想,还是qwen2:7b比较符合

Anthonyfhd avatar Jul 31 '24 01:07 Anthonyfhd

我的情况是vllm加载qwen72,global回答还可以,local明显不对,不清楚原因,为什么要用vllm呢,因为index它太快了,难以置信,这样graphrag才有使用场景,但vllm local search明显不对,1个文件没问题能准确找到相关内容,2个文件以上local search 就找不到相关内容,回答就是幻觉 global能答对,说明整个index过程到最后create_final_documents,all workflow都没有问题 为什么local 找不到相关内容,local search 源码需要调整吗?

你有遇到JSONDecodeError: Expecting value: line 1 column 1 (char 0} 问题吗,我的llm是qwen2-7b, infer-engine也是vllm

我也遇到过,在community report生成的过程中,我换了几种开源大模型都不太理想,还是qwen2:7b比较符合

我看了log.json,是因为发现是 request.time.out问题,导致后面create_report 发现,里面有些东西是null,最终导致的bug,感觉要对setting.yaml配置好,看来很吃llm的推理速度以及生成的质量

james2v avatar Jul 31 '24 01:07 james2v

我现在的测试下来,qwen2:72b model_supports_json: false 效果较好 ,log中有少量JSONDecodeErro,换了了llama3.1 70B和Mistral-Large-Instruct-2407-123B-exl2 效果都不行,要么log有大量出错或者回答错误,要么慢,超过2小时,我就放弃不试了 接下来是关注重点: 只有openai embedding 能正确 local search ,global search 效果也较好 两种本地local embedding方式1、llama.cpp 无需改源码  2、ollama embedding 需要改源码  local search 都找不到内容,回答幻觉 ,global search 效果尚可 结论:目前采用 qwen2/vllm +openai embedding 方式 ,index速度快(10个txt 文件一共800K ,index时间含convartiates 40-50分钟),local/global search 效果都不错, local search 28秒, global seach 1分钟15秒 特别是global seach 时间太长,只能适合多文档决策分析,不适合日常使用场景, local search 和rag差别不大。

xxll88 avatar Jul 31 '24 01:07 xxll88

我的情况是vllm加载qwen72,global回答还可以,local明显不对,不清楚原因,为什么要用vllm呢,因为index它太快了,难以置信,这样graphrag才有使用场景,但vllm local search明显不对,1个文件没问题能准确找到相关内容,2个文件以上local search 就找不到相关内容,回答就是幻觉 global能答对,说明整个index过程到最后create_final_documents,all workflow都没有问题 为什么local 找不到相关内容,local search 源码需要调整吗?

你有遇到JSONDecodeError: Expecting value: line 1 column 1 (char 0} 问题吗,我的llm是qwen2-7b, infer-engine也是vllm

这个问题是query阶段默认streaming=True导致的,改成False即可

handsome-fish avatar Aug 02 '24 07:08 handsome-fish

Routing to #657

natoverse avatar Aug 08 '24 23:08 natoverse

similar issue. The local search in graphRAG doesn't answer content from input text files.

JamieVC avatar Sep 19 '24 01:09 JamieVC