Closed fanqiNO1 closed 6 months ago
@fanqiNO1 Hi 原代码确实存在这一问题,您的描述、分析及修改后的代码是正确的。
非常感谢,请问是否方便提交一个PR来修正这一问题?
关于 system_text
这一情况,也是需要进行优化的。我们可以使用“括号+单引号”来定义system字符串,而非现在所使用的“三引号”。
谢谢答复!我会尽快把 PR 提交上来。
@fanqiNO1 Hi 原代码确实存在这一问题,您的描述、分析及修改后的代码是正确的。
非常感谢,请问是否方便提交一个PR来修正这一问题?
关于
system_text
这一情况,也是需要进行优化的。我们可以使用“括号+单引号”来定义system字符串,而非现在所使用的“三引号”。
PR 已经提交上来了,位于 PR #419
当我在试着手动转换 damo/MSAgent-Bench dev.jsonl 的第一条数据时,遇到了空可用工具的情况,执行代码如下:
输出后的文件数据为:
可见,可使用的工具为空字典。
原始数据为:
经过排查,发现是
extract_json_objects
函数,https://github.com/InternLM/xtuner/blob/main/xtuner/dataset/map_fns/dataset_map_fns/msagent_map_fn.py#L45 。在成功发现可解析的 json 部分后,无论是否其含有 name 和 description 字段,都会跳过这一部分,尽管这一部分可能嵌套包含着所需的数据。原始
extract_json_objects
函数部分如下:打断点后,可以发现代码得到的所有 result 为:
可见,检索到可解析的 json 部分后就完全跳过了这一部分。
修改后逻辑约为:
即,只有完全解析到了 name 与 description 字段,才会跳过这一部分。
此外,
system_text
字符串内部的空格(代码缩进)导致了输出的结果存在大量空白。(不确定是否会对训练过程产生影响)I would like to fix this bug and create a PR!