HPAI-BSC/Llama3-Aloe-8B-Alpha

HPAI-BSC
Pregunta y respuesta

Aloe es una nueva familia de modelos de lenguaje para el sector de la salud que es altamente competitivo con todos los modelos abiertos previos de su rango y alcanza resultados de última generación en su tamaño utilizando estrategias avanzadas de unión de modelos y promptings. Aloe obtiene puntajes altos en métricas que miden la ética y la veracidad, gracias a un esfuerzo combinado de red teams y alineación. Se compartirán detalles completos del entrenamiento, configuraciones de unión de modelos y todos los datos de entrenamiento, incluyendo datos generados sintéticamente. Además, se compartirá el repositorio de prompts utilizado en este trabajo para producir resultados de última generación durante la inferencia. Aloe viene con una evaluación de riesgos específica para el sector salud para contribuir a un uso y despliegue seguros de estos sistemas.

Como usar

Para empezar a utilizar el modelo, puede ejecutar inferencias conversacionales utilizando la abstracción del pipeline de Transformers, o aprovechando las clases Auto con la función generate(). Aquí hay ejemplos de ambos métodos.

import transformers
import torch

model_id = "HPAI-BSC/Llama3-Aloe-8B-Alpha"

pipeline = transformers.pipeline(
"text-generation",
model=model_id,
model_kwargs={"torch_dtype": torch.bfloat16},
device_map="auto",
)

messages = [
{"role": "system", "content": "Eres un asistente médico experto llamado Aloe, desarrollado por el Grupo de Inteligencia Artificial de Altas Prestaciones en el Centro de Supercomputación de Barcelona (BSC). Debes ser un asistente útil, respetuoso y honesto."},
{"role": "user", "content": "Hola."},
]

prompt = pipeline.tokenizer.apply_chat_template(
messages, 
tokenize=False, 
add_generation_prompt=True
)

terminators = [
pipeline.tokenizer.eos_token_id,
pipeline.tokenizer.convert_tokens_to_ids("")
]

outputs = pipeline(
prompt,
max_new_tokens=256,
eos_token_id=terminators,
do_sample=True,
temperature=0.6,
top_p=0.9,
)
print(outputs[0]["generated_text"][len(prompt):])
from transformers import AutoTokenizer, AutoModelForCausalLM
import torch

model_id = "HPAI-BSC/Llama3-Aloe-8B-Alpha"

tokenizer = AutoTokenizer.from_pretrained(model_id)
model = AutoModelForCausalLM.from_pretrained(
model_id,
torch_dtype=torch.bfloat16,
device_map="auto",
)

messages = [
{"role": "system", "content": "Eres un asistente médico experto llamado Aloe, desarrollado por el Grupo de Inteligencia Artificial de Altas Prestaciones en el Centro de Supercomputación de Barcelona (BSC). Debes ser un asistente útil, respetuoso y honesto."},
{"role": "user", "content": "Hola"},
]

input_ids = tokenizer.apply_chat_template(
messages,
add_generation_prompt=True,
return_tensors="pt").to(model.device)

terminators = [
tokenizer.eos_token_id,
tokenizer.convert_tokens_to_ids("")
]

outputs = model.generate(
input_ids,
max_new_tokens=256,
eos_token_id=terminators,
do_sample=True,
temperature=0.6,
top_p=0.9,
)
response = outputs[0][input_ids.shape[-1]:]
print(tokenizer.decode(response, skip_special_tokens=True))

Funcionalidades

Modelo de lenguaje competitivo en el sector de la salud
Resultados de última generación en su tamaño
Puntajes altos en ética y veracidad
Estrategias avanzadas de unión de modelos y prompting
Involucra datos de entrenamiento sintéticos

Casos de uso

Investigación
Construcción de mejores modelos fundacionales para el sector de la salud