Cómo utilizar el nuevo modelo “open” de OpenAI desde mi terminal

39

    Llevaba tiempo esperando esto. OpenAI, por fin, ha liberado gpt-oss, su primera familia de modelos con pesos abiertos en muchos años: dos versiones, gpt-oss-120b y gpt-oss-20b, con licencia Apache 2.0 y pensados para ejecutarse en local. Ayer, 5 de agosto de 2025, publicaron la página oficial y los enlaces de descarga. Yo, que soy bastante entusiasta de tener los modelos funcionando en mi propia máquina, estaba deseando algo así: menos dependencia de servicios externos, más control y margen para cacharrear.

    No es “open-source” en el sentido más estricto (no han publicado los datos ni el proceso completo de entrenamiento), pero sí es open-weight, con una licencia permisiva y pesos descargables. Para muchos usos, eso es más que suficiente.


    ¿Qué es exactamente lo que han lanzado y por qué me interesa?

    OpenAI ha publicado dos modelos:

    • gpt-oss-120b, pensado para tareas exigentes y que requiere una GPU con unos 80 GB de VRAM.
    • gpt-oss-20b, mucho más ligero, que funciona con unos 16 GB de memoria (ideal para ordenadores de escritorio, portátiles potentes o servidores domésticos).

    Ambos admiten contexto de hasta 128k tokens, y tienen una particularidad que me parece interesante: se puede ajustar el “esfuerzo de razonamiento” (low, medium o high) simplemente con una instrucción al sistema. Esto permite modular el rendimiento y el coste según el uso.

    OpenAI presenta estos modelos como un paso intermedio: no sustituyen a los modelos hospedados (tipo GPT-4), pero sí permiten tener opciones privadas, reproducibles y controladas, que se pueden integrar en cualquier flujo local. Justo lo que quería.


    Casos de uso que tengo en mente

    • Agentes locales que puedan ejecutar código, navegar o hacer function calling sin conexión a la nube.
    • Razonamiento complejo en problemas técnicos o de código, con latencia estable.
    • Proyectos personales en los que no quiero depender de una API externa o enviar datos fuera.
    • Ajustes personalizados, sin restricciones comerciales.

    Así lo he puesto a funcionar (todo desde la terminal)

    Opción rápida: Ollama

    Si quiero probar el modelo ya, la ruta más directa es con Ollama, que permite tirar de modelos con un solo comando:

    # Modelo pequeño (recomendado para empezar)
    ollama run gpt-oss:20b
    
    # Modelo grande (si tienes una GPU potente)
    ollama run gpt-oss:120b
    

    Estos modelos ya están publicados y disponibles en la interfaz de Ollama. En el primer mensaje, puedes indicar el nivel de razonamiento, por ejemplo:

    Sistema: Reasoning: medium
    

    Listo para funcionar en segundos.


    API local compatible con OpenAI: vLLM

    Si quiero algo más versátil, levanto un servidor local compatible con la API de OpenAI usando vLLM. Esto me permite conectarme desde scripts, aplicaciones o terminal.

    Por ejemplo, en Docker:

    docker run --gpus all \
      -p 8000:8000 \
      --ipc=host \
      vllm/vllm-openai:gptoss \
      --model openai/gpt-oss-20b
    

    Y para interactuar vía HTTP:

    curl http://localhost:8000/v1/chat/completions \
      -H "Content-Type: application/json" \
      -d '{
        "model": "openai/gpt-oss-20b",
        "messages": [
          {"role": "system", "content": "Reasoning: high"},
          {"role": "user", "content": "Explícame RAG en 5 líneas."}
        ],
        "max_tokens": 300
      }'
    

    Ideal si quieres montar un entorno tipo API privada.


    Opción más flexible: Transformers (Hugging Face)

    Si prefiero escribir un script en Python, puedo usar Transformers directamente con el modelo:

    pip install -U transformers torch
    python - << 'PY'
    from transformers import pipeline
    pipe = pipeline(
        "text-generation",
        model="openai/gpt-oss-20b",
        torch_dtype="auto",
        device_map="auto"
    )
    messages = [
      {"role": "system", "content": "Reasoning: low"},
      {"role": "user", "content": "Dame un ejemplo de prompt para generar tests unitarios."}
    ]
    out = pipe(messages, max_new_tokens=256)
    print(out[0]["generated_text"][-1])
    PY
    

    Este pipeline ya soporta el formato de chat “harmony” que OpenAI recomienda para gpt-oss.


    Opción minimalista: descargar los pesos

    Si lo que quiero es solo los archivos para trastear o integrarlos de otra forma:

    huggingface-cli download openai/gpt-oss-20b --local-dir gpt-oss-20b
    huggingface-cli download openai/gpt-oss-120b --local-dir gpt-oss-120b
    

    Todos los detalles (formatos, configuraciones, cuantización, etc.) están en los model cards oficiales.


    Detalles técnicos que me guardo

    • Licencia: Apache 2.0 → permite uso comercial y ajuste fino (fine-tuning).
    • Cuantización: los pesos vienen en formato MXFP4, lo que permite usar menos memoria.
    • Requisitos orientativos:
      • 20b: funciona bien con ~16 GB de VRAM.
      • 120b: requiere ~80 GB (no es para todos los equipos, claro).
    • Contexto largo: hasta 128k tokens → útil para documentos extensos.
    • Rendimiento: OpenAI lo sitúa cerca de modelos como o3-mini o o4-mini, y bien preparado para tareas de razonamiento, programación y agentes.

    Llevaba años usando modelos cerrados de OpenAI y, aunque son buenísimos, echaba en falta algo que pudiera descargar, ejecutar, modificar… y controlar. Esto, sin ser “open-source” de verdad, se siente como un paso importante. Ahora puedo tener mis propios modelos GPT-style corriendo en casa, listos para lo que surja.

    ✉ ¿HABLAMOS?

    Hablemos

    Si compartimos intereses en inteligencia artificial, datos o desarrollo de software, estaré encantado de intercambiar ideas. También puedes escribirme para cuestiones profesionales.

    Leer el blog