模型:
nlpcloud/instruct-gpt-j-fp16
这个模型证明了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版本之间的任何区别。