--- language: - en - zh - es license: apache-2.0 library_name: transformers widget: - text: [|User|] Hola [|Assistant|] - text: [|User|] Que es Python? [|Assistant|] - text: [|User|] Hi [|Assistant|] tags: - unsloth - Sorah - spanish - HirCoir --- # MiniChat-2-3B-Sorah ![Sorah](sorah.jpeg) 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](https://huggingface.co/HirCoir/piper-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: ```python 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`. ```