Views
No views yet
1from peft import PeftModel
2from transformers import AutoModelForCausalLM, LlamaTokenizer, GenerationConfig
3
4config = PeftConfig.from_pretrained("irlab-udc/cabuxa-7b")
5model = AutoModelForCausalLM.from_pretrained("huggyllama/llama-7b", device_map="auto")
6model = PeftModel.from_pretrained(model, "irlab-udc/cabuxa-7b")
7tokenizer = LlamaTokenizer.from_pretrained("huggyllama/llama-7b")
8
9# This function builds the prompt in Alpaca format
10def generate_prompt(instruction, input=None):
11 if input:
12 return f"""Abaixo está unha instrución que describe unha tarefa, xunto cunha entrada que proporciona máis contexto.
13 Escribe unha resposta que responda adecuadamente a entrada.
14 ### Instrución:
15 {instruction}
16 ### Entrada:
17 {input}
18 ### Resposta:"""
19 else:
20 return f"""Abaixo está unha instrución que describe unha tarefa.
21 Escribe unha resposta que responda adecuadamente a entrada.
22 ### Instrución:
23 {instruction}
24 ### Resposta:"""
25
26
27def evaluate(instruction, input=None):
28 prompt = generate_prompt(instruction, input)
29 inputs = tokenizer(prompt, return_tensors="pt")
30 input_ids = inputs["input_ids"].cuda()
31 generation_output = model.generate(
32 input_ids=input_ids,
33 generation_config=GenerationConfig(do_sample=True),
34 return_dict_in_generate=True,
35 output_scores=True,
36 max_new_tokens=256,
37 )
38 for s in generation_output.sequences:
39 output = tokenizer.decode(s)
40 print("Resposta:", output.split("### Resposta:")[1].strip())
41
42evaluate("Cal é a fórmula química da auga?")
43evaluate(
44 "Convence ao lector por que é importante un determinado tema.",
45 "Por que é esencial priorizar o sono?",
46)Resposta: A fórmula química da auga é H₂O.
Resposta: O sono é esencial para todos os humanos, pero tamén é unha ferramenta importante para lograr obxectivos, aumentar a productividade, maximizar os beneficios do soño e mantenerse saudable.LoraConfig config was used during training:TrainingArguments config was used during training:bitsandbytes quantization config was used during training:| Epoch | Loss |
|---|---|
| 0.98 | 2.6109 |
| 1.97 | 2.0596 |
| 2.95 | 1.5092 |
| 3.93 | 1.379 |
| 4.92 | 1.2849 |
| 5.9 | 1.208 |
| 6.88 | 1.1508 |
| 7.86 | 1.117 |
| 8.85 | 1.0873 |
| 9.83 | 1.0666 |
| 10.81 | 1.0513 |
| 11.8 | 1.0365 |
| 12.78 | 1.0253 |
| 13.76 | 1.0169 |
| 14.75 | 1.0118 |
| 15.73 | 1.0035 |
| 16.71 | 0.9968 |
| 17.7 | 0.9983 |
| 18.68 | 0.9924 |
| 19.66 | 0.9908 |