RyuBcn commited on
Commit
83401ba
·
verified ·
1 Parent(s): 8ebcc15

Update app.py

Browse files
Files changed (1) hide show
  1. app.py +36 -21
app.py CHANGED
@@ -1,6 +1,7 @@
1
- import torch
2
- from transformers import AutoTokenizer, pipeline, AutoModel, AutoModelForCausalLM, BitsAndBytesConfig
3
- MODEL = "ecastera/eva-mistral-catmacaroni-7b-spanish"
 
4
  quantization_config = BitsAndBytesConfig(
5
  load_in_4bit=True,
6
  load_in_8bit=False,
@@ -9,21 +10,35 @@ quantization_config = BitsAndBytesConfig(
9
  bnb_4bit_compute_dtype="float16",
10
  bnb_4bit_use_double_quant=True,
11
  bnb_4bit_quant_type="nf4")
12
- model = AutoModelForCausalLM.from_pretrained(
13
- MODEL,
14
- load_in_8bit=True,
15
- low_cpu_mem_usage=True,
16
- torch_dtype=torch.float16,
17
- quantization_config=quantization_config,
18
- offload_state_dict=True,
19
- offload_folder="./offload",
20
- trust_remote_code=True,
21
- )
22
- tokenizer = AutoTokenizer.from_pretrained(MODEL)
23
- print(f"Loading complete {model} {tokenizer}")
24
- prompt = "Soy Eva una inteligencia artificial y pienso que preferiria ser "
25
- inputs = tokenizer(prompt, return_tensors="pt").to("cuda")
26
- outputs = model.generate(**inputs, do_sample=True, temperature=0.4, top_p=1.0, top_k=50,
27
- no_repeat_ngram_size=3, max_new_tokens=100, pad_token_id=tokenizer.eos_token_id)
28
- text_out = tokenizer.batch_decode(outputs, skip_special_tokens=True)
29
- print(text_out)
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ from huggingface_hub import InferenceClient
2
+ client = InferenceClient(
3
+ "ecastera/eva-mistral-catmacaroni-7b-spanish"
4
+ )
5
  quantization_config = BitsAndBytesConfig(
6
  load_in_4bit=True,
7
  load_in_8bit=False,
 
10
  bnb_4bit_compute_dtype="float16",
11
  bnb_4bit_use_double_quant=True,
12
  bnb_4bit_quant_type="nf4")
13
+
14
+ generate_kwargs = dict(
15
+ temperature=0.1,
16
+ max_new_tokens=256,
17
+ top_p=top_p,
18
+ repetition_penalty=repetition_penalty,
19
+ do_sample=True,
20
+ seed=42,
21
+ )
22
+
23
+
24
+ prompt2 = '[INST] Para esta frase "' + prompt + '" ' + """ extrae las palabras clave relacionadas
25
+ con la asociación Ancera, que son esenciales para realizar búsquedas efectivas en la
26
+ base de datos de Ancera. Concéntrate en los siguientes elementos como palabras clave:
27
+ cargos dentro de la asociación: Por ejemplo, presidenta, vicepresidente, etc.
28
+ Conceptos clave o áreas de interés relacionadas con Ancera: Por ejemplo, objetivos, ventajas, junta directiva, etc.
29
+ Referencias temporales específicas si están directamente relacionadas con los conceptos clave: Por ejemplo, el año en cuestión para los objetivos.
30
+ Ignora detalles contextuales como acciones, descripciones extensas, y enfócate únicamente en las palabras clave mencionadas. Las palabras clave extraídas serán utilizadas para buscar información relevante en la base de datos de Ancera.
31
+
32
+ Te doy dos ejemplos:
33
+
34
+ Frase: "Haz un resumen en 100 palabras de cuáles deberían ser los objetivos de Ancera para 2024"
35
+ Respuesta: "objetivos, Ancera, 2024"
36
+
37
+ Frase: "Haz un resumen en 50 palabras de las ventajas de ser miembro de Ancera"
38
+ Respuesta: "ventaja, miembro"
39
+
40
+ Haz lo mismo para la frase que te he dicho y sólo muestra las palabras clave no des detalles o explicaciones extra, escribe el resultado en el mismo formato que los dos ejemplos, no hagas listas, no escribas la frase, ciñete al formato de respesta [/INST]"""
41
+ #Ahora responde SOLO con las palabras clave a esta
42
+ response = client.text_generation(prompt2, **generate_kwargs, stream=False, details=True, return_full_text=False)
43
+ output = response.generated_text
44
+ print(output)