英文

RedPajama-INCITE-7B-Instruct

RedPajama-INCITE-7B-Instruct由Together和来自开源AI社区的领导者共同开发,包括Ontocord.ai、ETH DS3Lab、AAI CERC、蒙特利尔大学、魁北克AI研究所MILA、斯坦福大学基础模型研究中心(CRFM)、斯坦福大学Hazy Research研究小组和LAION。

该模型是在 GPT-JT 的数据上进行了少样本应用的微调,排除了与HELM核心场景重叠的任务。

模型详情

  • 开发者:Together Computer。
  • 模型类型:语言模型
  • 语言:英语
  • 许可证:Apache 2.0
  • 模型描述:一种具有6.9B参数的预训练语言模型。

快速入门

请注意,该模型需要transformers版本>=4.25.1。

GPU推理

这需要一块16GB内存的GPU。

import torch
import transformers
from transformers import AutoTokenizer, AutoModelForCausalLM

MIN_TRANSFORMERS_VERSION = '4.25.1'

# check transformers version
assert transformers.__version__ >= MIN_TRANSFORMERS_VERSION, f'Please upgrade transformers to version {MIN_TRANSFORMERS_VERSION} or higher.'

# init
tokenizer = AutoTokenizer.from_pretrained("togethercomputer/RedPajama-INCITE-7B-Instruct")
model = AutoModelForCausalLM.from_pretrained("togethercomputer/RedPajama-INCITE-7B-Instruct", torch_dtype=torch.float16)
model = model.to('cuda:0')
# infer
prompt = "Q: The capital of France is?\nA:"
inputs = tokenizer(prompt, return_tensors='pt').to(model.device)
input_length = inputs.input_ids.shape[1]
outputs = model.generate(
    **inputs, max_new_tokens=128, do_sample=True, temperature=0.7, top_p=0.7, top_k=50, return_dict_in_generate=True
)
token = outputs.sequences[0, input_length:]
output_str = tokenizer.decode(token)
print(output_str)
"""
Paris
"""

GPU Int8推理

这需要一块12GB内存的GPU。

要进行int8的推理,请确保已安装accelerate和bitandbytes。您可以使用以下命令安装它们:

pip install accelerate
pip install bitsandbytes

然后可以按照以下方式进行int8推理:

import torch
import transformers
from transformers import AutoTokenizer, AutoModelForCausalLM

MIN_TRANSFORMERS_VERSION = '4.25.1'

# check transformers version
assert transformers.__version__ >= MIN_TRANSFORMERS_VERSION, f'Please upgrade transformers to version {MIN_TRANSFORMERS_VERSION} or higher.'

# init
tokenizer = AutoTokenizer.from_pretrained("togethercomputer/RedPajama-INCITE-7B-Instruct")
model = AutoModelForCausalLM.from_pretrained("togethercomputer/RedPajama-INCITE-7B-Instruct", device_map='auto', torch_dtype=torch.float16, load_in_8bit=True)

# infer
prompt = "Q: The capital of France is?\nA:"
inputs = tokenizer(prompt, return_tensors='pt').to(model.device)
input_length = inputs.input_ids.shape[1]
outputs = model.generate(
    **inputs, max_new_tokens=128, do_sample=True, temperature=0.7, top_p=0.7, top_k=50, return_dict_in_generate=True
)
token = outputs.sequences[0, input_length:]
output_str = tokenizer.decode(token)
print(output_str)
"""
Paris
"""

CPU推理

import torch
import transformers
from transformers import AutoTokenizer, AutoModelForCausalLM

MIN_TRANSFORMERS_VERSION = '4.25.1'

# check transformers version
assert transformers.__version__ >= MIN_TRANSFORMERS_VERSION, f'Please upgrade transformers to version {MIN_TRANSFORMERS_VERSION} or higher.'

# init
tokenizer = AutoTokenizer.from_pretrained("togethercomputer/RedPajama-INCITE-7B-Instruct")
model = AutoModelForCausalLM.from_pretrained("togethercomputer/RedPajama-INCITE-7B-Instruct", torch_dtype=torch.bfloat16)
# infer
prompt = "Q: The capital of France is?\nA:"
inputs = tokenizer(prompt, return_tensors='pt').to(model.device)
input_length = inputs.input_ids.shape[1]
outputs = model.generate(
    **inputs, max_new_tokens=128, do_sample=True, temperature=0.7, top_p=0.7, top_k=50, return_dict_in_generate=True
)
token = outputs.sequences[0, input_length:]
output_str = tokenizer.decode(token)
print(output_str)
"""
Paris
"""

请注意,由于LayerNormKernelImpl未实现fp16用于CPU,我们在CPU推理中使用bfloat16。

用途

直接使用

下面描述了被排除使用的情况。

滥用、恶意使用和超出范围的使用

最终用户有责任确保以负责任和道德的方式使用模型。

超出范围的使用

RedPajama-INCITE-7B-Instruct是一种语言模型,可能在其预期范围之外的其他用例中表现不佳。例如,它可能不适用于安全关键应用或对个人或社会产生重大影响的决策。重要的是考虑模型的局限性,并仅根据其预期目的使用它。

滥用和恶意使用

RedPajama-INCITE-7B-Instruct是为语言建模而设计的。严禁滥用模型,例如将其用于非法或不道德的活动,这与该项目的原则相违背。

滥用该模型以产生对个人残忍的内容是不当使用该模型。这包括但不限于:

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

局限性

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

训练

训练数据

请参阅 togethercomputer/RedPajama-Data-1T

训练过程

  • 硬件:8个A100
  • 优化器:Adam
  • 梯度累积:1
  • 令牌数:10亿个令牌
  • 学习率:1e-5

社区

加入我们的 Together Discord