More than code

More Than Code
The efficiency of your iteration of reading, practicing and thinking decides your understanding of the world.
  1. 首页
  2. 未分类
  3. 正文

ToG2

2025年3月11日 178点热度 0人点赞 0条评论

前几天看了港中深的graphrag,看到ToG实现的还相对挺复杂的,所以有兴趣再重新读一下ToG2的代码


基本思路从这里就可以看出来:
* ToG1是让模型在图上自行探索,每次探索一跳的子图,然后让模型做prune实体/关系,最终得到结果
* ToG2相比于ToG1的点在于做entity prune的时候,会加上context来对entity打分。然后在每次reason的时候,也会带上这次得分高的chunk context

看实现的话,核心在:
* para_rank_topk中,这里会把每个实体对应的chunk,都和问题计算一个相关性得分
* 这里有多种方法,比如bm25, colbert, bi encoder, cross encoder
* 保留得分最高的topk个chunk,然后综合计算得分
* 每一个实体的得分是对应的chunk的得分加上一个排名的衰减,排名越高相对得分就越高
*
* 这里相关的chunk也会被放到实体的信息中返回出去,然后再做rerank,用于强化模型后续的问答

这里有一个值得思考的点,就是如果图上面是混合了提取出来的关系图,以及原始的chunk/doc的话,是不是用ToG1的思路就可以自动做到ToG2的事情了。

更延伸一点,究竟是关系图单独使用,然后我们手动附加chunk信息,还是让模型自己去探索。
* 可能又是一个bitter lesson的问题了

还有一个可以想的点,是每一轮问答,针对一条链单独做处理呢,还是这个多跳的过程是一起处理的呢。多跳一起处理的话,可能还涉及到上下文长度的问题,可能很容易就拉到过多的上下文了。

标签: 暂无
最后更新:2025年3月11日

sheep

think again

点赞
< 上一篇
下一篇 >

文章评论

取消回复

COPYRIGHT © 2021 heavensheep.xyz. ALL RIGHTS RESERVED.

THEME KRATOS MADE BY VTROIS