Sorah
Collection
Sorah projects
•
2 items
•
Updated
•
1
MiniChat-2-3B-Sorah es un modelo de lenguaje basado en MiniChat-1.5-3B y ajustado con datos de instrucción y preferencia.
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.
El modelo MiniChat-2-3B-Sorah supera a Vicuna-7B y se acerca a LLaMA-2-Chat-7B en MT-Bench.
A continuación, se muestra un ejemplo de código para usar Sorah basado en MiniChat-2-3B:
import torch
from transformers import AutoModelForCausalLM, AutoTokenizer
from conversation import get_default_conv_template
# Cargar MiniChat-2-3B-Sorah
tokenizer = AutoTokenizer.from_pretrained("HirCoir/minichat-3b-sorah", use_fast=False)
# Configuración para GPU
model = AutoModelForCausalLM.from_pretrained(
"HirCoir/minichat-3b-sorah",
use_cache=True,
device_map="auto",
torch_dtype=torch.float16
).eval()
# Configuración para CPU (opcional)
# model = AutoModelForCausalLM.from_pretrained(
# "HirCoir/minichat-3b-sorah",
# use_cache=True,
# device_map="cpu",
# torch_dtype=torch.float16
# ).eval()
# Crear una conversación
conv = get_default_conv_template("minichat")
# Ejemplo de pregunta
question = "Como te llamas?"
# Añadir la pregunta a la conversación
conv.append_message(conv.roles[0], question)
conv.append_message(conv.roles[1], None)
# Obtener el prompt
prompt = conv.get_prompt()
input_ids = tokenizer([prompt]).input_ids
# Generar respuesta
output_ids = model.generate(
torch.as_tensor(input_ids).cuda(),
do_sample=True,
temperature=0.7,
max_new_tokens=1024
)
output_ids = output_ids[0][len(input_ids[0]):]
output = tokenizer.decode(output_ids, skip_special_tokens=True).strip()
# La respuesta se almacena en 'output'
# 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"
# Una conversación multivuelta se puede realizar añadiendo preguntas continuamente a `conv`.