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

[WIP] [Feature]Ensure Full Conversation Data #287

Open
wants to merge 21 commits into
base: main
Choose a base branch
from

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 [WIP] [Feature]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
Projects
None yet
Development

Successfully merging this pull request may close these issues.

None yet

1 participant