英文

描述

这个模型证明了GPT-J在经过适当微调后可以作为“指导”模型完美地工作。它是一个fp16版本,可以轻松地在像NVIDIA Tesla T4这样的入门级GPU上部署模型。想了解更多关于NLP Cloud的信息吗? Have a look at our platform here

我们使用由 Stanford Alpaca team 创建的一组指导数据集对GPT-J进行了微调。您可以在 here 找到原始数据集。

为了与 Mesh Transformer Jax 在TPU上的GPT-J微调格式匹配,数据集进行了一些调整。 Here is the final dataset we used

基本GPT-J模型需要少量样本学习才能正确理解您的需求。 See more details here about how to properly use few-shot learning 。例如,假设您希望使用GPT-J进行拼写更正。以下是您需要使用的示例提示:

I love goin to the beach.
Correction: I love going to the beach.
###
Let me hav it!
Correction: Let me have it!
###
It have too many drawbacks.
Correction: It has too many drawbacks.
###
I do not wan to go
Correction:

现在,通过Instruct GPT-J,您可以用自然语言提问,就像一个人一样:

Correct spelling and grammar from the following text.
I do not wan to go\n

返回如下结果:

I do not want to go.

您还可以在此模型上完全使用少量样本学习,以进行非常高级的用例。

如何使用模型?

使用fp16版本的文本生成流水线中的模型,您可以执行以下操作:

from transformers import pipeline
import torch

generator = pipeline(model="nlpcloud/instruct-gpt-j-fp16", torch_dtype=torch.float16, device=0)

prompt = "Correct spelling and grammar from the following text.\nI do not wan to go\n"

print(generator(prompt))

您还可以使用generate()函数。您可以执行以下操作:

from transformers import AutoTokenizer, AutoModelForCausalLM
import torch

tokenizer = AutoTokenizer.from_pretrained('nlpcloud/instruct-gpt-j-fp16')
generator = AutoModelForCausalLM.from_pretrained("nlpcloud/instruct-gpt-j-fp16",torch_dtype=torch.float16).cuda()

prompt = "Correct spelling and grammar from the following text.\nI do not wan to go\n"

inputs = tokenizer(prompt, return_tensors='pt')
outputs = generator.generate(inputs.input_ids.cuda())

print(tokenizer.decode(outputs[0]))

输入格式的特别注意事项

由于此模型的微调方式,您应始终在指示的末尾使用换行符。

例如,以下指令可能无法正常工作:

Correct spelling and grammar from the following text.\nI do not wan to go

但是这个可以:

Correct spelling and grammar from the following text.\nI do not wan to go\n

硬件要求

这个模型是我们微调模型的fp16版本,在像NVIDIA Tesla T4这样具有16GB VRAM的GPU上效果非常好。

我们没有在质量方面注意到fp32和fp16版本之间的任何区别。