HPAI-BSC/Llama3-Aloe-8B-Alpha
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