LongRoPE2: Near-Lossless LLM Context Window Scaling - ICML 2025
RoPE是什么?简单来说是为了让LLM理解token的相对位置从而更好理解句意。 LLM学习记录(五)--超简单的RoPE理解方式 - 知乎
LoneRoPE?解决RoPE长文本的编码问题。
太过于理论了,而且对于外接api无用,暂时搁置
KG-Agent: An Efficient Autonomous Agent Framework for Complex Reasoning over Knowledge Graph - ACL 2025
KG-Agent:面向知识图谱复杂推理的高效自主智能体框架
为了解决知识图谱(Knowledge Graph,KG)和大模型LLM结合之后的系统能够处理复杂问题,甚至是非知识图谱领域内的问题的解答,本文设计了KG-Agent解决。
KG-Agent组成:LLM、多功能工具箱、基于KG的处理器、知识记忆模块。优点:只需要依靠7b的LLM就能实现自我迭代
多功能工具箱:给LLM提供分析KG的工具函数库。包含三类工具
1、提取工具:实现LLM从KG中提取信息,如查找关系(get_relation) 、头/尾实体(get_head_entity/get_tail_entity) 、特定限制或类别的实体(get_entity_by_type/get_entity_by_constraint)
2、逻辑工具:实现LLM对KG的基本操作,如实体计数(count)、实体集合求交(intersect)、实体集合并集(union)、条件验证(judge),以及将当前实体集合作为最终答案终止推理流程(end)
3、语义工具:实现LLM对KG的高级操作,如关系检索 (retrieve_relation)和实体消歧(disambiguate_entity)
模型微调:为了实现高效推理过程以及小型大模型接入,我们使用基于知识图谱的问答数据集(KGQA)来微调。
1、提取推理链条。从KG中抽取一部分实体对应关系组成KGQA数据集放在SQL数据库中。使用BFS广度优先算法遍历根节点,梳理生成所有的约束条件,最后输出标准推理链条。
2、生成推理程序。将推理链条拆分为切分成一组顺序执行的<当前实体,关系,邻接实体>三元组片段,然后使用多功能工具箱中的函数来转换为工具调用代码。

输入输出关系建设:一条 KGQA 样本对应一条完整推理程序: y₁ → y₂ → y₃ → ... → yₙ=end() 每一个yₜ = 当前单步工具调用(输出)。 算法通过迭代模拟Agent在线推理循环,逐步骤构造t=1~n的(xₜ, yₜ)训练样本。
输入包含 4 部分:
自然语言问题:全程不变,全局固定;
工具箱完整定义:告知模型可用工具、入参、输出(系统 prompt);
当前 KG 信息:上一步工具执行后返回的实体 / 关系集合(环境观测);
历史推理程序:y1∼yt−1y_1\sim y_{t-1}所有已经执行过的工具代码(交互历史)。
输出yty_{t}为要执行的单个函数,最后一步输出end停止推理。

迭代拆分 4 组训练样本:
t=1:x={问题,工具说明,空历史,实体 m.02xt6q} → y=y1
t=2:x={问题,工具说明,历史 =[y1], y1 返回的 relations} → y=y2
t=3:x={问题,工具说明,历史 =[y1,y2], y2 返回队伍集合} → y=y3
t=4:x={问题,工具说明,历史 =[y1,y2,y3], 2011 筛选后队伍} → y=y4
模型调优:使用监督微调SFT。每条完整推理轨迹是一组时序序列:{<x1,y1>,<x2,y2>,...,<xn,yn>}\{<x_1,y_1>,<x_2,y_2>,...,<x_n,y_n>\}
模型使用交叉熵损失函数,函数如下:
L=−∑k=1mlogPr(yk∣x,y<k)\mathcal{L}=-\sum_{k=1}^{m} \log \operatorname{Pr}\left(y_{k} \mid x, y_{<k}\right)
m:当前输出单步工具代码 y 的 token 总数;
yky_k:输出序列第 k 个 token;
y<ky_{<k}:当前输出中,第 k 个 token 之前所有已生成 token;
x:当前步全部输入上下文;
含义:给定输入上下文与已生成前缀,最大化下一步代码 token 的预测概率,只对输出y计算损失,输入x不参与梯度更新。
运行完整顺序:
1、知识记忆初始化:自然语言问题、工具箱定义、当前KG信息、历史思考代码。
2、工具选择:基于当前知识记忆,将四部分内容(问题、工具定义、当前KG信息、历史代码)按固定prompt模板拼接,输入微调后的 LLM,LLM输出工具调用函数。
3、执行并更新:执行输出函数代码,并同步修改知识记忆:调用代码保存到历史代码中,新实体/关系信息保存到当前KG信息中。
4、判断并结束:判断输出是否为end(),若不是则返回到第二步。若输出为end(实体集合),则括号内的实体集合作为最终答案输出。