Instructions to use adolfo123456/logibot-slm with libraries, inference providers, notebooks, and local apps. Follow these links to get started.
- Libraries
- Transformers
How to use adolfo123456/logibot-slm with Transformers:
# Use a pipeline as a high-level helper from transformers import pipeline pipe = pipeline("text-generation", model="adolfo123456/logibot-slm") messages = [ {"role": "user", "content": "Who are you?"}, ] pipe(messages)# pip install -U transformers accelerate # Load model directly from transformers import AutoTokenizer, AutoModelForCausalLM tokenizer = AutoTokenizer.from_pretrained("adolfo123456/logibot-slm") model = AutoModelForCausalLM.from_pretrained("adolfo123456/logibot-slm", device_map="auto") messages = [ {"role": "user", "content": "Who are you?"}, ] inputs = tokenizer.apply_chat_template( messages, add_generation_prompt=True, tokenize=True, return_dict=True, return_tensors="pt", ).to(model.device) outputs = model.generate(**inputs, max_new_tokens=256) print(tokenizer.decode(outputs[0][inputs["input_ids"].shape[-1]:])) - PEFT
How to use adolfo123456/logibot-slm with PEFT:
Task type is invalid.
- Notebooks
- Google Colab
- Kaggle
- Local Apps Settings
- vLLM
How to use adolfo123456/logibot-slm with vLLM:
Install from pip and serve model
# Install vLLM from pip: pip install vllm # Start the vLLM server: vllm serve "adolfo123456/logibot-slm" # Call the server using curl (OpenAI-compatible API): curl -X POST "http://localhost:8000/v1/chat/completions" \ -H "Content-Type: application/json" \ --data '{ "model": "adolfo123456/logibot-slm", "messages": [ { "role": "user", "content": "What is the capital of France?" } ] }'Use Docker
docker model run hf.co/adolfo123456/logibot-slm
- SGLang
How to use adolfo123456/logibot-slm with SGLang:
Install from pip and serve model
# Install SGLang from pip: pip install sglang # Start the SGLang server: python3 -m sglang.launch_server \ --model-path "adolfo123456/logibot-slm" \ --host 0.0.0.0 \ --port 30000 # Call the server using curl (OpenAI-compatible API): curl -X POST "http://localhost:30000/v1/chat/completions" \ -H "Content-Type: application/json" \ --data '{ "model": "adolfo123456/logibot-slm", "messages": [ { "role": "user", "content": "What is the capital of France?" } ] }'Use Docker images
docker run --gpus all \ --shm-size 32g \ -p 30000:30000 \ -v ~/.cache/huggingface:/root/.cache/huggingface \ --env "HF_TOKEN=<secret>" \ --ipc=host \ lmsysorg/sglang:latest \ python3 -m sglang.launch_server \ --model-path "adolfo123456/logibot-slm" \ --host 0.0.0.0 \ --port 30000 # Call the server using curl (OpenAI-compatible API): curl -X POST "http://localhost:30000/v1/chat/completions" \ -H "Content-Type: application/json" \ --data '{ "model": "adolfo123456/logibot-slm", "messages": [ { "role": "user", "content": "What is the capital of France?" } ] }' - Docker Model Runner
How to use adolfo123456/logibot-slm with Docker Model Runner:
docker model run hf.co/adolfo123456/logibot-slm
logibot-slm — destilación en pequeño (taller, CPU)
Modelo de juguete de ~3,6 M de parámetros, entrenado en CPU como parte del taller de destilación del curso Tópicos Avanzados en Inteligencia Artificial 2 (Magíster, UAI). Un "profesor" genera pares pregunta-respuesta sobre logística de un centro de distribución ficticio (Austral Retail, Pudahuel: robots AMR, muelles, baterías, pasillos) y un "estudiante" pequeño aprende a imitarlos con LoRA.
No es un modelo de producción. Aprende a repetir el estilo y el contenido de un dominio ficticio con muy pocos datos. No sirve como asistente general ni para decisiones operacionales reales.
Qué es exactamente
| Ítem | Valor |
|---|---|
| Estudiante | Llama diminuto inicializado desde cero: 4 capas, hidden_size 256, vocabulario BPE de 1.455 tokens, 3.647.232 parámetros (no es SmolLM2) |
| Profesor | Simulado (modo offline --sin-internet del taller): 162 respuestas simuladas, costo US$ 0. Para este modelo no se usó ningún LLM comercial. La misma metodología también se corrió en línea (Colab) con un LLM de OpenAI como profesor; esa corrida es otro modelo, descrita en la sección «Corrida relacionada» más abajo |
| Método | LoRA r=16, alpha=32, dropout=0.05, todos los proyectores de atención y MLP + embed_tokens y lm_head entrenables |
| Datos | 80 pares pregunta-respuesta (200 pasos = 10 épocas × 20 lotes de 4). No se publica el dataset |
| Entrenamiento | 10 épocas, lr 3e-3, semilla 42, CPU; pérdida 7,3471 → 0,0845 |
Resultados (examen fijo de 12 preguntas, nunca vistas en el entrenamiento)
| Base sin entrenar | Destilado | |
|---|---|---|
| Nota media (1–10) | 1,00 | 6,08 |
| Aprobación (nota ≥ 7) | 0 % | 75 % (9 de 12) |
La nota la pone el juez automático del taller en modo offline, que compara palabras clave con la respuesta de referencia
(comentarios del tipo "Faltan ideas clave: …"); no es un evaluador humano ni un LLM. Con 12 preguntas el margen de error
es grande. Fallas: 2 de las 12 respuestas obtuvieron nota 1 y otra nota 2 (por ejemplo, ante "heurística de relajación"
responde sobre otro concepto del dominio). Curva de pérdida y notas por tema en resultados.png y entrenamiento_log.jsonl.
Reproducibilidad. Los 6,08 y 75 % son el resultado registrado por la corrida del taller. Al volver a generar las 12 respuestas con los pesos de este repo (mismo prompt, lotes de 8, decodificación determinista,
repetition_penalty=1.15, 70 tokens; CPU, float32,transformers5.7.0,peft0.21.2) y puntuarlas con el mismo juez offline, se obtuvo nota media 3,17 y 1 de 12 aprobadas, y ninguna respuesta coincidió con el registro. No se determinó la causa. Lee el 6,08 como lo registrado por la corrida, no como una propiedad reproducida de estos pesos.
Corrida relacionada: SmolLM2 con profesor real (Colab)
La misma metodología se corrió en Colab (GPU A100 según el notebook del taller) con un LLM de OpenAI como profesor, datos en
inglés y SmolLM2-135M-Instruct como estudiante. Resultado sobre 20 preguntas de examen: nota media 1,70 → 2,25 y
aprobación 0 %; no aprendió el dominio. Su adaptador se publica como resultado negativo en
adolfo123456/logibot-slm-smollm2-colab.
Las cifras de esta card (6,08 y 75 %) corresponden solo al modelo diminuto con profesor simulado y no son comparables con esa corrida.
Cómo usarlo
El modelo se entrenó con este prompt de sistema y se evaluó con generación determinista y repetition_penalty=1.15.
Sin esa penalización el modelo entra en bucles de repetición.
from transformers import AutoModelForCausalLM, AutoTokenizer
REPO = "adolfo123456/logibot-slm"
tok = AutoTokenizer.from_pretrained(REPO)
m = AutoModelForCausalLM.from_pretrained(REPO) # modelo fusionado (base + LoRA)
msgs = [
{"role": "system", "content": "Eres un asistente experto de operaciones y despacho para supervisores y robots AMR en el centro de distribución Pudahuel de Austral Retail. Responde de forma clara, técnica y concisa en español de Chile."},
{"role": "user", "content": "¿Qué ventajas tiene el algoritmo A* para la zona de muelles?"},
]
ids = tok.apply_chat_template(msgs, add_generation_prompt=True, return_tensors="pt", return_dict=True)
out = m.generate(**ids, max_new_tokens=120, do_sample=False, repetition_penalty=1.15)
print(tok.decode(out[0][ids["input_ids"].shape[1]:], skip_special_tokens=True))
Solo el adaptador (peft)
El estudiante base es un modelo diminuto propio, no está en el Hub como modelo aparte: viene en la subcarpeta base_tiny/.
Se descarga el repo a una carpeta local y se carga desde ahí. No uses PeftModel.from_pretrained(base, REPO, subfolder="adapter")
directo desde el Hub: en Windows peft arma la ruta remota con \ y no encuentra el archivo.
from huggingface_hub import snapshot_download
from transformers import AutoModelForCausalLM, AutoTokenizer
from peft import PeftModel
local = snapshot_download("adolfo123456/logibot-slm") # ≈ 34 MB
base = AutoModelForCausalLM.from_pretrained(f"{local}/base_tiny")
tok = AutoTokenizer.from_pretrained(f"{local}/base_tiny")
m = PeftModel.from_pretrained(base, f"{local}/adapter")
Estructura del repo
model.safetensors, config.json, tokenizer* modelo fusionado (base_tiny + adaptador)
adapter/ adaptador LoRA (adapter_model.safetensors ≈ 4 MB + adapter_config.json)
base_tiny/ estudiante sin entrenar
resultados.png, entrenamiento_log.jsonl evidencia del entrenamiento
Límites y uso responsable
- Dominio y empresa ficticios; los datos son sintéticos y no contienen información personal.
- Tamaño y datos mínimos: alucina, se corta a media frase y confunde conceptos cercanos.
- Entrega académica. Sin garantías.
- Downloads last month
- -
