Views
No views yet

text-davinci-003 engine. This instruction data can be used to conduct instruction-tuning for language models and make the language model follow instruction better.text-davinci-003 engine to generate the instruction data instead of davinci.text-davinci-003.1import torch
2from peft import PeftModel, PeftConfig
3from transformers import AutoModelForCausalLM, AutoTokenizer, GenerationConfig
4
5peft_model_id = "mrm8488/Alpacoom"
6config = PeftConfig.from_pretrained(peft_model_id)
7model = AutoModelForCausalLM.from_pretrained(config.base_model_name_or_path, return_dict=True, load_in_8bit=True, device_map={"":0})
8tokenizer = AutoTokenizer.from_pretrained("bigscience/bloom-7b1")
9
10model = PeftModel.from_pretrained(model, peft_model_id)
11model.eval()
12
13# Based on the inference code by `tloen/alpaca-lora`
14def generate_prompt(instruction, input=None):
15 if input:
16 return f"""Below is an instruction that describes a task, paired with an input that provides further context. Write a response that appropriately completes the request.
17### Instruction:
18{instruction}
19### Input:
20{input}
21### Response:"""
22 else:
23 return f"""Below is an instruction that describes a task. Write a response that appropriately completes the request.
24### Instruction:
25{instruction}
26### Response:"""
27
28def generate(
29 instruction,
30 input=None,
31 temperature=0.1,
32 top_p=0.75,
33 top_k=40,
34 num_beams=4,
35 **kwargs,
36):
37 prompt = generate_prompt(instruction, input)
38 inputs = tokenizer(prompt, return_tensors="pt")
39 input_ids = inputs["input_ids"].cuda()
40 generation_config = GenerationConfig(
41 temperature=temperature,
42 top_p=top_p,
43 top_k=top_k,
44 num_beams=num_beams,
45 **kwargs,
46 )
47 with torch.no_grad():
48 generation_output = model.generate(
49 input_ids=input_ids,
50 generation_config=generation_config,
51 return_dict_in_generate=True,
52 output_scores=True,
53 max_new_tokens=256,
54 )
55 s = generation_output.sequences[0]
56 output = tokenizer.decode(s)
57 return output.split("### Response:")[1].strip().split("Below")[0]
58
59instruction = "Tell me about alpacas"
60
61print("Instruction:", instruction)
62print("Response:", generate(instruction))@misc {manuel_romero_2023,
author = { {Manuel Romero} },
title = { Alpacoom (Revision 874f989) },
year = 2023,
url = { https://huggingface.co/mrm8488/Alpacoom },
doi = { 10.57967/hf/0449 },
publisher = { Hugging Face }
}