Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

想请教一下如何检索excel文件 #191

Open
leezpeng opened this issue Mar 30, 2024 · 7 comments
Open

想请教一下如何检索excel文件 #191

leezpeng opened this issue Mar 30, 2024 · 7 comments

Comments

@leezpeng
Copy link

我尝试把excel转成json格式放进向量数据库,但是检索效果很差。放进prompt里又太长了。想问一下怎么实现对excel文件的问答

@tpoisonooo
Copy link
Collaborator

tpoisonooo commented Mar 30, 2024

方便给个例子么?

我这边也是把表格 pack 成 json,不出 bug 的话,精度和普通文本没区别才对。

关于 prompt 太长

  • 我们在论文(arxiv 2401.08772)里,基于 llama2 实现了不训练 40k context length 优化
  • 现在用的 local internlm2、 remote kimi 模型都支持 200k 上下文

完全可以满足长文本需求

@tpoisonooo
Copy link
Collaborator

希望给个文件 + 问题,我测一下。

@leezpeng
Copy link
Author

好的。
2023年分数线.xlsx
例如这个表格,我将其转换成json格式以后放进Chroma数据库中,这个数据库除了这个表格以外还有其他很多关于学校信息的内容。当我询问“学校23年分数线是多少”的时候,数据库检索到的信息并不包括这个表格的json格式。我个人猜测是json内容大部分都是符号,数字,和query的相似度太低导致无法检索到?

关于prompt太长:我们最开始把json放进prompt里交给大模型(我们使用的是文心4.0的接口),虽然他回答的很好,但表格很多,全放进prompt里面的话响应时间太长,费用也太高。所以我们想到把json放进向量数据库中检索的方法,于是产生了上述的问题。

非常感谢您的解答!

@tpoisonooo
Copy link
Collaborator

https://openxlab.org.cn/apps/detail/tpoisonooo/huixiangdou-web

账号: 20240329版本测试
密码:123

image

  1. 好答案来自好问题。 “学校23年分数线是多少” 这句有效信息量是 “23年 / 分数线 ”,没提先进制造学院。
    如果其他文档也包含 23年分数线,肯定优先用其他文档。

  2. 按豆哥的处理逻辑,我们弄成了 json 形式; text2vec 也能命中这个文档

  3. 这里答复 517。 你的文档里 517 是最高分、566 是最低分。 模型按逻辑来

@leezpeng
Copy link
Author

感谢您的回复。此外还有一个问题想要询问,就是数据库在检索时会将json段落“截断”,导致模型无法识别这个表格。我该怎么做才能让数据库在检索的时候不要把json给切断呢?非常感谢!
image

@tpoisonooo
Copy link
Collaborator

这个切断不影响。

  1. text2vec / rerank 模型表达能力有限,你不可能保证整个 json 就在一个 chunk 内部。
  2. rerank 的作用是找到目标文件,然后靠 longcontext 读整个文件,而不只是一个 chunk。 只读一小片必然丢失上下文导致幻觉

@tpoisonooo
Copy link
Collaborator

碰到大文件,一个 json 几十 MB 很正常。

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

2 participants