Update README.md
Browse files
README.md
CHANGED
@@ -14,44 +14,69 @@ tags:
|
|
14 |
- spanish
|
15 |
---
|
16 |
|
17 |
-
|
18 |
|
19 |
-
|
20 |
|
21 |
-
|
22 |
|
|
|
23 |
|
24 |
-
|
|
|
|
|
|
|
25 |
|
26 |
```python
|
27 |
import torch
|
28 |
|
29 |
from transformers import AutoModelForCausalLM, AutoTokenizer
|
30 |
-
|
31 |
from conversation import get_default_conv_template
|
32 |
|
33 |
-
# MiniChat
|
34 |
tokenizer = AutoTokenizer.from_pretrained("HirCoir/minichat-3b-sorah", use_fast=False)
|
35 |
-
# GPU.
|
36 |
-
model = AutoModelForCausalLM.from_pretrained("HirCoir/minichat-3b-sorah", use_cache=True, device_map="auto", torch_dtype=torch.float16).eval()
|
37 |
-
# CPU.
|
38 |
-
# model = AutoModelForCausalLM.from_pretrained("HirCoir/minichat-3b-sorah", use_cache=True, device_map="cpu", torch_dtype=torch.float16).eval()
|
39 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
40 |
conv = get_default_conv_template("minichat")
|
41 |
|
42 |
-
|
|
|
|
|
|
|
43 |
conv.append_message(conv.roles[0], question)
|
44 |
conv.append_message(conv.roles[1], None)
|
|
|
|
|
45 |
prompt = conv.get_prompt()
|
46 |
input_ids = tokenizer([prompt]).input_ids
|
|
|
|
|
47 |
output_ids = model.generate(
|
48 |
torch.as_tensor(input_ids).cuda(),
|
49 |
do_sample=True,
|
50 |
temperature=0.7,
|
51 |
-
max_new_tokens=1024
|
52 |
)
|
53 |
output_ids = output_ids[0][len(input_ids[0]):]
|
54 |
output = tokenizer.decode(output_ids, skip_special_tokens=True).strip()
|
55 |
-
|
56 |
-
#
|
57 |
-
|
|
|
|
|
|
14 |
- spanish
|
15 |
---
|
16 |
|
17 |
+
# MiniChat-2-3B-Sorah
|
18 |
|
19 |
+

|
20 |
|
21 |
+
MiniChat-2-3B-Sorah es un modelo de lenguaje basado en MiniChat-1.5-3B y ajustado con datos de instrucci贸n y preferencia.
|
22 |
|
23 |
+
El modelo MiniChat-1.5-3B-Sorah complementa el modelo de voz Sorah, que fue creado por el proyecto Piper. El modelo Sorah est谩 en proceso de entrenamiento y mejoras, por lo que su acceso no es p煤blico, pero puedes encontrar m谩s informaci贸n en el [repositorio de Sorah Neuronal](https://huggingface.co/HirCoir/piper-sorah-neuronal).
|
24 |
|
25 |
+
|
26 |
+
El modelo MiniChat-2-3B-Sorah supera a Vicuna-7B y se acerca a LLaMA-2-Chat-7B en MT-Bench.
|
27 |
+
|
28 |
+
A continuaci贸n, se muestra un ejemplo de c贸digo para usar Sorah basado en MiniChat-2-3B:
|
29 |
|
30 |
```python
|
31 |
import torch
|
32 |
|
33 |
from transformers import AutoModelForCausalLM, AutoTokenizer
|
|
|
34 |
from conversation import get_default_conv_template
|
35 |
|
36 |
+
# Cargar MiniChat-2-3B-Sorah
|
37 |
tokenizer = AutoTokenizer.from_pretrained("HirCoir/minichat-3b-sorah", use_fast=False)
|
|
|
|
|
|
|
|
|
38 |
|
39 |
+
# Configuraci贸n para GPU
|
40 |
+
model = AutoModelForCausalLM.from_pretrained(
|
41 |
+
"HirCoir/minichat-3b-sorah",
|
42 |
+
use_cache=True,
|
43 |
+
device_map="auto",
|
44 |
+
torch_dtype=torch.float16
|
45 |
+
).eval()
|
46 |
+
|
47 |
+
# Configuraci贸n para CPU (opcional)
|
48 |
+
# model = AutoModelForCausalLM.from_pretrained(
|
49 |
+
# "HirCoir/minichat-3b-sorah",
|
50 |
+
# use_cache=True,
|
51 |
+
# device_map="cpu",
|
52 |
+
# torch_dtype=torch.float16
|
53 |
+
# ).eval()
|
54 |
+
|
55 |
+
# Crear una conversaci贸n
|
56 |
conv = get_default_conv_template("minichat")
|
57 |
|
58 |
+
# Ejemplo de pregunta
|
59 |
+
question = "Como te llamas?"
|
60 |
+
|
61 |
+
# A帽adir la pregunta a la conversaci贸n
|
62 |
conv.append_message(conv.roles[0], question)
|
63 |
conv.append_message(conv.roles[1], None)
|
64 |
+
|
65 |
+
# Obtener el prompt
|
66 |
prompt = conv.get_prompt()
|
67 |
input_ids = tokenizer([prompt]).input_ids
|
68 |
+
|
69 |
+
# Generar respuesta
|
70 |
output_ids = model.generate(
|
71 |
torch.as_tensor(input_ids).cuda(),
|
72 |
do_sample=True,
|
73 |
temperature=0.7,
|
74 |
+
max_new_tokens=1024
|
75 |
)
|
76 |
output_ids = output_ids[0][len(input_ids[0]):]
|
77 |
output = tokenizer.decode(output_ids, skip_special_tokens=True).strip()
|
78 |
+
|
79 |
+
# La respuesta se almacena en 'output'
|
80 |
+
# Salida: "def common_elements(arr1, arr2):\n if len(arr1) == 0:\n return []\n if len(arr2) == 0:\n return arr1\n\n common_elements = []\n for element in arr1:\n if element in arr2:\n common_elements.append(element)\n\n return common_elements"
|
81 |
+
# Una conversaci贸n multivuelta se puede realizar a帽adiendo preguntas continuamente a `conv`.
|
82 |
+
```
|