Ir al contenido principal

Manual para Ejecutar GPT-OSS-20B Localmente con Python

Manual para Ejecutar GPT-OSS-20B Localmente con Python

1. Requisitos previos

  • PC con al menos 16 GB de RAM (ideal con GPU NVIDIA, pero también funciona en CPU).
  • Sistema operativo Linux (o Windows con ajustes).
  • Python 3.8+ instalado.
  • Conexión a Internet para descargar modelos y dependencias.

2. Preparar entorno virtual y dependencias

python -m venv venv
source venv/bin/activate      # En Windows: venv\Scripts\activate
pip install --upgrade pip
pip install transformers torch huggingface_hub

Nota: Si no usás GPU NVIDIA, para evitar descargar librerías CUDA pesadas, instalá PyTorch para CPU solamente:

pip uninstall torch
pip cache purge
pip install torch --index-url https://download.pytorch.org/whl/cpu

3. Script para inferencia interactiva

Archivo: gpt_oss_20b_interactive.py

import time
from transformers import pipeline

model_id = "openai/gpt-oss-20b"
pipe = pipeline(
    "text-generation",
    model=model_id,
    torch_dtype="auto",
    device_map="auto"
)

pregunta = input("¿Cuál es tu pregunta? ")

messages = [
    {"role": "system", "content": "Eres un asistente útil."},
    {"role": "user", "content": pregunta}
]

start_time = time.time()
output = pipe(messages, max_new_tokens=100)
elapsed_time = time.time() - start_time

print(f"\nRespuesta: {output[0]['generated_text']}")
print(f"\nTiempo de ejecución: {elapsed_time:.2f} segundos")

4. Ejecutar el script

python gpt_oss_20b_interactive.py

El script pedirá que ingreses la pregunta directamente y te devolverá la respuesta junto con el tiempo que tardó en generarla.

5. Extender a servidor web con FastAPI

Instalar dependencias:

pip install fastapi uvicorn transformers torch

Código básico main.py

from fastapi import FastAPI
from pydantic import BaseModel
from transformers import pipeline

model_id = "openai/gpt-oss-20b"
pipe = pipeline(
    "text-generation",
    model=model_id,
    torch_dtype="auto",
    device_map="auto"
)

app = FastAPI()

class Message(BaseModel):
    role: str
    content: str

@app.post("/generate")
async def generate_text(messages: list[Message], max_new_tokens: int = 100):
    formatted_messages = [{"role": m.role, "content": m.content} for m in messages]
    output = pipe(formatted_messages, max_new_tokens=max_new_tokens)
    return {"generated_text": output[0]["generated_text"]}

Ejecutar servidor:

uvicorn main:app --reload

Luego enviar POST a http://localhost:8000/generate con JSON:

{
  "messages": [
    {"role": "system", "content": "Eres un asistente útil."},
    {"role": "user", "content": "¿Cuál es la capital de Paraguay?"}
  ],
  "max_new_tokens": 100
}

6. Verificar características del sistema (Linux)

  • free -h — Memoria RAM
  • df -h — Espacio en disco
  • lscpu — Información CPU
  • lspci | grep -i vga — Verificar GPU

7. Consideraciones

  • El modelo GPT-OSS-20B puede correr con 16 GB RAM pero rinde mejor con GPU.
  • Si no tienes GPU, la ejecución será más lenta.
  • Puedes usar otros modelos más pequeños si tu hardware es limitado.
  • Puedes agregar swap en Linux para compensar la falta de RAM, aunque con impacto en rendimiento.
  • Usar entorno virtual para aislar dependencias.

Si querés, te puedo ayudar a armar scripts para pasar la pregunta por parámetro o para desplegar en producción con Docker.

Comentarios

Entradas populares de este blog

Instalación y Configuración de MySQL 5.7 en Ubuntu 24.04 LTS

Instalar MySQL 5.7 en Ubuntu 24.04 1. Descargar e instalar MySQL Copiar mkdir ~/mysql57 cd ~/mysql57 wget https://cdn.mysql.com/archives/mysql-5.7/mysql-5.7.44-linux-glibc2.12-x86_64.tar.gz tar -zxvf mysql-5.7.44-linux-glibc2.12-x86_64.tar.gz sudo mv mysql-5.7.44-linux-glibc2.12-x86_64 /usr/local/mysql sudo ln -s /usr/local/mysql/bin/mysql /usr/local/bin/mysql 2. Instalar dependencias necesarias IMPORTANTE: Se descargan las versiones nuevas de las librerías y se las vincula con las librerías que necesita MySQL. Copiar sudo apt update # Reemplazo de libaio sudo apt install libaio1t64 # Reemplazo de libtinfo y ncurses sudo apt install libtinfo6 libncurses6 Copiar # Crear los enlaces simbólicos sudo ln -sf /usr/lib/x86_64-linux-gnu/libaio.so.1t64 /usr/lib/libaio.so.1 sudo ln -sf /usr/lib/x86_64-linux-gnu/libtinfo.so.6 /usr/lib/x86_64-linux-gnu/libtinfo.so.5 sudo ln -sf /usr/lib/x86_64-linux-gnu/libncurses.so.6 /usr/lib/x86_64...

Instalar DeepSeek R1 1.5B en Ubuntu 24.04 sin GPU

Instalar DeepSeek en tu sistema sin GPU, pasos: Especificaciones del Entorno de Pruebas Componente Detalle SO Ubuntu Cinnamon 24.04 LTS x86_64 Kernel 6.8.0-51-generic CPU Intel i7-6820HQ (8 núcleos) @ 3.600GHz GPUs AMD ATI Radeon HD 8830M / R7 250 / R7 M465X Intel HD Graphics 530 RAM 15.882 GB (3.716 GB en uso) Resolución 1440x810 Escritorio Cinnamon 6.0.4 1. Instalar Git LFS sudo apt-get install git-lfs git lfs install 2. Clonar el repositorio cd /opt sudo mkdir deepseek && sudo chown $USER:$USER deepseek cd deepseek git clone https://huggingface.co/deepseek-ai/DeepSeek-R1-Distill-Qwen-1.5B 3. Crear y activar un entorno virtual python -m ve...

Instalar Jasper Studio 6.21 para Ubuntu 24.04

Instalar js-studiocomm_6.21.3 en Ubuntu 24.4 Para instalar Jaspersoft Studio en Ubuntu 24.4, sigue estos pasos: 1. Descargar Jasper Studio Descarga la versión js-studiocomm_6.21.3 desde el siguiente enlace: Jaspersoft Studio 6.21.3 2. Crear el directorio de instalación mkdir /opt/jasperstudio 3. Mover el archivo descargado mv /dir_descarga/js-studiocomm_6.21.3_linux_x86_64.tgz /opt/jasperstudio/ cd /opt/jasperstudio 4. Extraer el archivo tar -xvzf js-studiocomm_6.21.3_linux_x86_64.tgz cd js-studiocomm_6.21.3 5. Ejecutar Jaspersoft Studio ./Jaspersoft\ Studio 6. Crear acceso directo en el escritorio Para facilitar el acceso, crea un archivo .desktop en el escritorio: gedit ~/Escritorio/jaspersoft-studio.desktop En el archivo jaspersoft-studio.desktop , agrega lo siguiente: [Desktop Entry] Version=1.0 Ty...