Skip to content

Conversation

@xiaohangguo
Copy link
Contributor

@xiaohangguo xiaohangguo commented Dec 29, 2023

TODO LIST

  • Class Packer update
  • 构造测例验证可行性
  • 打印细节进行检查
  • intern repo、check custom data模块同步修改
  • confige 添加启用配置项
  • 代码审查

任务目标

1.如果是最后一轮对话的 "input" 部分恰好等于 max_length,则将该轮对话的 "input" 和 "output" 一起移到下一个样本的开头。

2.如果是 "output" 部分中某个部分恰好等于 max_length,则按照默认行为处理,即将 "output" 放在下一个样本的开头。


测试样例

假设max_length=512

多轮对话,两条语料。
1.

{
    "conversation": [
        {
            "system": "System1",
            "input": "这是一个测试对话的开始。内容从0开始计数,直到第127个字符。",
            "output": "这是对话的回应部分。内容从第128个字符开始,一直到第509个字符,紧接着是对下一轮对话的开始。"
        },
        {
            "input": "这是第二轮对话的输入,内容从第510个字符开始,一直到第512个字符,然后超出最大长度,超出部分从第513个字符开始,一直到第530个字符。",
            "output": "这是对超出长度的回应。内容从第513个字符开始,一直到最后。"
        }
    ]
}
{
    "conversation": [
        {
            "system": "System1",
            "input": "这是另一个测试对话的开始。内容从0开始计数,直到第127个字符。",
            "output": "这是对话的回应部分。内容从第128个字符开始,一直到第500个字符,紧接着是对下一轮对话的开始。"
        },
        {
            "input": "这是第二轮对话的输入,内容从第501个字符开始,一直到第510个字符,然后超出最大长度,超出部分从第511个字符开始,一直到第530个字符。",
            "output": "这是对超出长度的回应。内容从第511个字符开始,一直到第512个字符,然后是超出部分,从第513个字符开始,一直到最后。"
        }
    ]
}
@xiaohangguo xiaohangguo changed the title [WIP] Ensure Full Conversation Data Dec 29, 2023
@xiaohangguo
Copy link
Contributor Author

TODO LIST

  • Class Packer update
  • 构造测例验证可行性
  • 打印细节进行检查
  • intern repo、check custom data模块同步修改
  • confige 添加启用配置项
  • 代码审查

任务目标

1.如果是最后一轮对话的 "input" 部分恰好等于 max_length,则将该轮对话的 "input" 和 "output" 一起移到下一个样本的开头。

2.如果是 "output" 部分中某个部分恰好等于 max_length,则按照默认行为处理,即将 "output" 放在下一个样本的开头。

测试样例

假设max_length=512

多轮对话,两条语料。 1.

{
    "conversation": [
        {
            "system": "System1",
            "input": "这是一个测试对话的开始。内容从0开始计数,直到第127个字符。",
            "output": "这是对话的回应部分。内容从第128个字符开始,一直到第509个字符,紧接着是对下一轮对话的开始。"
        },
        {
            "input": "这是第二轮对话的输入,内容从第510个字符开始,一直到第512个字符,然后超出最大长度,超出部分从第513个字符开始,一直到第530个字符。",
            "output": "这是对超出长度的回应。内容从第513个字符开始,一直到最后。"
        }
    ]
}
{
    "conversation": [
        {
            "system": "System1",
            "input": "这是另一个测试对话的开始。内容从0开始计数,直到第127个字符。",
            "output": "这是对话的回应部分。内容从第128个字符开始,一直到第500个字符,紧接着是对下一轮对话的开始。"
        },
        {
            "input": "这是第二轮对话的输入,内容从第501个字符开始,一直到第510个字符,然后超出最大长度,超出部分从第511个字符开始,一直到第530个字符。",
            "output": "这是对超出长度的回应。内容从第511个字符开始,一直到第512个字符,然后是超出部分,从第513个字符开始,一直到最后。"
        }
    ]
}

2.如果是 "output" 部分中某个部分恰好等于 max_length,则按照默认行为处理,即将 "output" 放在下一个样本的开头。
这个需求是不是有问题?如果shuffle了以后虽然也能正常计算output 的loss,但是上下文关系好像乱了,对训练是不是一个负作用?

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

1 participant