模型:

togethercomputer/Pythia-Chat-Base-7B

英文

随意尝试我们的 OpenChatKit feedback app

Pythia-Chat-Base-7B-v0.16

TLDR:Pythia-Chat-Base-7B-v0.16是OpenChatKit的一部分(代码可在 here 找到)。它是基于EleutherAI的Pythia 7B经过微调的7B参数语言模型,使用100%碳负载计算完成了超过4000万次指令。

Pythia-Chat-Base-7B-v0.16基于ElutherAI的Pythia-7B模型,并通过关注对话式互动的数据进行了微调。我们的微调集中在问答、分类、抽取和摘要等多个任务上。我们使用4300万条高质量对话指令对模型进行了微调。我们与LAION和Ontocord.ai合作,他们协助筛选构建了数据集。你可以在LAION的博客文章 here 中了解更多关于此过程及该数据集的详情。

除了上述微调,Pythia-Chat-Base-7B-v0.16还经过了少量反馈数据的进一步微调。这个过程使该模型能够更好地适应人类在对话中的偏好。

Pythia-Chat-Base-7B-v0.16的一个显著特点是,由于量化技术,它能够在一块12GB的GPU上进行推理。这有助于保持对话能力,同时使模型能够更广泛地适用于各种用户和硬件配置。

模型细节

  • 开发者:Together Computer。
  • 模型类型:语言模型。
  • 语言:英语。
  • 许可证:Apache 2.0。
  • 模型描述:一个开源的7B参数聊天模型,基于EleutherAI的Pythia进行微调,通过100%碳负载计算完成了超过4000万次指令。
  • 更多信息的资源: GitHub Repository

快速开始

GPU推理

需要配备24GB内存的GPU。

from transformers import AutoTokenizer, AutoModelForCausalLM

# init
tokenizer = AutoTokenizer.from_pretrained("togethercomputer/Pythia-Chat-Base-7B-v0.16")
model = AutoModelForCausalLM.from_pretrained("togethercomputer/Pythia-Chat-Base-7B-v0.16", torch_dtype=torch.float16)
model = model.to('cuda:0')

# infer
inputs = tokenizer("<human>: Hello!\n<bot>:", return_tensors='pt').to(model.device)
outputs = model.generate(**inputs, max_new_tokens=10, do_sample=True, temperature=0.8)
output_str = tokenizer.decode(outputs[0])
print(output_str)

Int8格式的GPU推理

需要配备12GB内存的GPU。

from transformers import AutoTokenizer, AutoModelForCausalLM

# init
tokenizer = AutoTokenizer.from_pretrained("togethercomputer/Pythia-Chat-Base-7B-v0.16")
model = AutoModelForCausalLM.from_pretrained("togethercomputer/Pythia-Chat-Base-7B-v0.16", device_map="auto", load_in_8bit=True)

# infer
inputs = tokenizer("<human>: Hello!\n<bot>:", return_tensors='pt').to(model.device)
outputs = model.generate(**inputs, max_new_tokens=10, do_sample=True, temperature=0.8)
output_str = tokenizer.decode(outputs[0])
print(output_str)

CPU推理

from transformers import AutoTokenizer, AutoModelForCausalLM

# init
tokenizer = AutoTokenizer.from_pretrained("togethercomputer/Pythia-Chat-Base-7B-v0.16")
model = AutoModelForCausalLM.from_pretrained("togethercomputer/Pythia-Chat-Base-7B-v0.16", torch_dtype=torch.bfloat16)

# infer
inputs = tokenizer("<human>: Hello!\n<bot>:", return_tensors='pt').to(model.device)
outputs = model.generate(**inputs, max_new_tokens=10, do_sample=True, temperature=0.8)
output_str = tokenizer.decode(outputs[0])
print(output_str)

模型优势

OpenChatKit在许多任务上具有出色的性能。这包括:

  • 在上下文中进行摘要和问题回答。
  • 实体抽取。
  • 分类。

此外,模型在少样本提示方面表现良好。对于分类和实体抽取,模型在少样本情况下表现得更好,如在大多数HELM任务中一样。如果您想尝试使用少样本提示与模型进行交互,请点击 Contact us

模型的局限性

话虽如此,我们在一些领域仍有进一步的工作要做,并且需要您的帮助!其中一些方面包括:

  • 基于知识的封闭问题和回答:聊天机器人可能会幻觉并给出错误的结果。请务必事实核实,并如有可能提供带有纠正信息的反馈。
  • 编码任务:聊天机器人在编写代码方面的训练语料库规模不够,无法出色地编写代码。我们欢迎提供额外的数据集来改进这一点!
  • 重复:有时聊天机器人会重复其回答。我们正在努力改进这一点,但在此期间,您可以点击刷新按钮开始新的对话。
  • 上下文切换:如果在对话过程中改变话题,聊天机器人通常无法自动切换,并会继续给出与先前话题相关的答案。
  • 创造性写作和较长的答案:聊天机器人不能生成长篇的创意文本,如文章或故事。

我们非常期待与您合作,通过您的反馈意见、增加数据集和提高准确性来解决这些局限性。

使用

直接使用

该模型旨在用于研究目的。可能的研究领域和任务包括:

  • 安全部署可能会生成有害内容的模型。
  • 探索和理解对话模型或语言模型的限制和偏见。
  • 生成艺术品并在设计和其他艺术过程中使用。
  • 在教育或创意工具中应用。
  • 对话模型或语言模型的研究。

以下是不包括的用途的描述。

不在范围内的使用

OpenChatKit社区提供Pythia-Chat-Base-7B-v0.16作为构建聊天机器人的开源工具。社区不对模型的任何误用、恶意使用或超出范围的使用负责。最终用户有责任确保以负责任和道德的方式使用模型。

不在范围内的使用

Pythia-Chat-Base-7B-v0.16是专为聊天机器人应用而设计的,可能在其预期范围之外的其他用例中表现不佳。例如,它可能不适用于安全关键应用或对个人或社会产生重大影响的决策。重要的是要考虑模型的局限性,并仅将其用于预期的目的。

误用和恶意使用

Pythia-Chat-Base-7B-v0.16是专为聊天机器人应用而设计的,不应用于任何其他目的。严禁对模型进行任何形式的误用,例如用于从事非法或不道德的活动,这违背了OpenChatKit社区项目的原则。

滥用该模型生成对个人残忍的内容属于对该模型的误用。这包括但不限于以下行为:

  • 生成假新闻、错误信息或宣传。
  • 宣传仇恨言论、歧视或对个人或群体的暴力。
  • 未经个人或组织同意而冒充他人或组织。
  • 进行网络欺凌或骚扰。
  • 诽谤内容。
  • 垃圾邮件或骗局。
  • 未经适当授权分享保密或敏感信息。
  • 违反模型或用于训练模型的数据的使用条款。
  • 创建用于恶意目的的自动化机器人,例如传播恶意软件、网络钓鱼欺诈或垃圾邮件。

限制

Pythia-Chat-Base-7B-v0.16和其他基于语言模型的聊天机器人一样,有一些限制需要考虑。例如,模型可能无法始终提供准确或相关的答案,特别是对于复杂、模糊或超出其训练数据范围的问题。因此,我们欢迎个人和组织的贡献,并鼓励共同努力创造一个更强大和包容性的聊天机器人。

训练

训练数据

请参阅 togethercomputer/OpenDataHub

训练程序

  • 硬件:8个A100 GPU。
  • 优化器: 8bit-AdamW
  • 梯度积累:4。
  • 批次:4 x 4 x 16 x 2048 = 524288个标记。
  • 学习率:热身阶段为1e-5,持续100个步骤,然后保持不变。

社区

请加入我们的 Together Discord