Views
No views yet
1from transformers import AutoTokenizer, AutoModelForCausalLM, BitsAndBytesConfig, TrainingArguments, GenerationConfig
2import torch
3model_name = "4i-ai/Llama-2-13b-alpaca-es"
4
5
6#Tokenizer
7
8tokenizer = AutoTokenizer.from_pretrained(model_name, use_fast=True)
9
10def create_and_prepare_model():
11 compute_dtype = getattr(torch, "float16")
12 bnb_config = BitsAndBytesConfig(
13 load_in_4bit=True,
14 bnb_4bit_quant_type="nf4",
15 bnb_4bit_compute_dtype=compute_dtype,
16 bnb_4bit_use_double_quant=True,
17 )
18 model = AutoModelForCausalLM.from_pretrained(
19 model_name, quantization_config=bnb_config, device_map={"": 0}
20 )
21 return model
22model = create_and_prepare_model()
23
24def generate(instruction, input=None):
25 #Format the prompt to look like the training data
26 if input is not None:
27 prompt = "### Instruction:\n"+instruction+"\n\n### Input:\n"+input+"\n\n### Response:\n"
28 else :
29 prompt = "### Instruction:\n"+instruction+"\n\n### Response:\n"
30
31
32 inputs = tokenizer(prompt, return_tensors="pt")
33 input_ids = inputs["input_ids"].cuda()
34
35 generation_output = model.generate(
36 input_ids=input_ids,
37 repetition_penalty=1.5,
38 generation_config=GenerationConfig(temperature=0.1, top_p=0.75, top_k=40, num_beams=20), #hyperparameters for generation
39 return_dict_in_generate=True,
40 output_scores=True,
41 max_new_tokens=150, #maximum tokens generated, increase if you want longer asnwer (up to 2048 - the length of the prompt), generation "looks" slower for longer response
42
43 )
44 for seq in generation_output.sequences:
45 output = tokenizer.decode(seq, skip_special_tokens=True)
46 print(output.split("### Response:")[1].strip())
47
48generate("Háblame de la superconductividad.")
49print("-----------")
50generate("Encuentra la capital de España.")
51print("-----------")
52generate("Encuentra la capital de Portugal.")
53print("-----------")
54generate("Organiza los números dados en orden ascendente.", "2, 3, 0, 8, 4, 10")
55print("-----------")
56generate("Compila una lista de 5 estados de EE. UU. ubicados en el Oeste.")
57print("-----------")
58generate("Compila una lista de 2 estados de EE. UU. ubicados en el Oeste.")
59print("-----------")
60generate("Compila una lista de 10 estados de EE. UU. ubicados en el Este.")
61print("-----------")
62generate("¿Cuál es el color de una fresa?")
63print("-----------")
64generate("¿Cuál es el color de la siguiente fruta?", "fresa")
65print("-----------")
66La superconductividad es un fenómeno físico en el que los materiales pueden conducir corrientes eléctricas a bajas temperaturas sin pérdida de energía debido a la resistencia. Los materiales superconductores son capaces de conducir corrientes eléctricas a temperaturas mucho más bajas que los materiales normales. Esto se debe a que los electrones en los materiales superconductores se comportan de manera cooperativa, lo que les permite conducir corrientes eléctricas sin pérdida de energía. Los materiales superconductores tienen muchas aplicaciones
-----------
La capital de España es Madrid.
-----------
La capital de Portugal es Lisboa.
-----------
0, 2, 3, 4, 8, 10
-----------
1. California
2. Oregón
3. Washington
4. Nevada
5. Arizona
-----------
California y Washington.
-----------
1. Maine
2. Nuevo Hampshire
3. Vermont
4. Massachusetts
5. Rhode Island
6. Connecticut
7. Nueva York
8. Nueva Jersey
9. Pensilvania
10. Delaware
-----------
El color de una fresa es rojo brillante.
-----------
El color de la fresa es rojo.
-----------