Saltar al contenido principal

Cómo configurar y ejecutar QwQ 32B localmente con Ollama

Aprende a instalar, configurar y ejecutar QwQ-32B localmente con Ollama y a crear una sencilla aplicación Gradio.
Actualizado 10 mar 2025  · 12 min de lectura

QwQ-32B es el modelo de razonamiento de Qwen, y está diseñado para sobresalir en tareas complejas de resolución de problemas y razonamiento. A pesar de tener sólo 32.000 millones de parámetros, el modelo alcanza un rendimiento comparable al del modelo mucho mayor DeepSeek-R1que tiene 671.000 millones de parámetros.

En este tutorial, te guiaré en la configuración y ejecución local de QwQ-32B utilizando Ollama, una herramienta que simplifica la inferencia LLM local. Esta guía incluye: 

  • Ejecución mediante terminal o IDE: Incluye fragmentos de código concisos para ejecutar QwQ-32B a través del terminal o de un IDE de tu elección.
  • Demostración práctica: Construir un proyecto práctico de demostración que utilice las capacidades de pensamiento estructurado de QwQ-32B.

¿Por qué ejecutar QwQ-32B localmente?

A pesar de su tamaño, QwQ-32B puede ser cuantificado para que funcione eficazmente en hardware de consumo. Ejecutar QwQ-32B localmente te proporciona un control total sobre la ejecución del modelo sin depender de servidores externos. He aquí algunas ventajas de ejecutar QwQ-32B localmente:

  • Privacidad y seguridad: Ningún dato sale de tu sistema.
  • Acceso ininterrumpido: Evita los límites de tarifa, el tiempo de inactividad o las interrupciones del servicio.
  • Rendimiento: Consigue respuestas más rápidas con la inferencia local, evitando la latencia de la API.
  • Personalización: Modifica los parámetros, afina las indicaciones e integra el modelo en las aplicaciones locales.
  • Rentabilidad: Elimina las tarifas API ejecutando el modelo localmente.
  • Disponibilidad offline: Trabaja sin conexión a Internet una vez descargado el modelo.

Configurar el QwQ-32B localmente con Ollama

Ollama simplifica la ejecución local de los LLM al gestionar las descargas, la cuantización y la ejecución de los modelos.

Paso 1: Install Ollama

Descarga e instala Ollama desde sitio web oficial.

Descargar Ollama

Una vez finalizada la descarga, instala la aplicación Ollama como harías con cualquier otra aplicación. 

Paso 2: Descarga y ejecuta QwQ-32B

Probemos la configuración y descarguemos nuestro modelo. Inicia el terminal y escribe el siguiente comando para descargar y ejecutar el modelo QwQ-32B:

ollama run qwq:32b

Descarga del modelo Qwen QwQ 32B a través de Ollama

QwQ-32B es un modelo grande. Si tu sistema tiene recursos limitados, puedes optar por versiones cuantizadas más pequeñas. Por ejemplo, a continuación, utilizamos la versión Q4_K_M, que es un modelo de 19,85 GB que equilibra rendimiento y tamaño:

ollama run qwq:Q4_K_M

qwq-32b versiones cuantizadas

Fuente: Cara de abrazo

Puedes encontrar más modelos cuantizados aquí.

Paso 3: Ejecutando QwQ-32B en segundo plano

Para ejecutar QwQ-32B continuamente y servirlo a través de una API, inicia el servidor Ollama:

ollama serve

Esto hará que el modelo esté disponible para las aplicaciones que se tratan en la siguiente sección.

Utilización local del QwQ-32B

Ahora que QwQ-32B está configurado, vamos a explorar cómo interactuar con él.

Paso 1: Ejecutar la inferencia mediante CLI

Una vez descargado el modelo, puedes interactuar con el modelo QwQ-32B directamente en el terminal:

ollama run qwq
How many r's are in the word "strawberry”?

Modelo QwQ 32b ejecutándose en terminal

La respuesta modelo suele ser su respuesta de pensamiento (encapsulada en fichas ) seguida de la respuesta final.

Paso 2: Acceder al QwQ-32B a través de la API

Para integrar QwQ-32B en aplicaciones, puedes utilizar la API de Ollama con curl. Ejecuta el siguiente comando curl en tu terminal.

curl -X POST http://localhost:11434/api/chat -H "Content-Type: application/json" -d '{
  "model": "qwq",
  "messages": [{"role": "user", "content": "Explain Newton second law of motion"}], 
  "stream": false
}'

curl es una herramienta de línea de comandos nativa de Linux, pero también funciona en macOS. Permite a los usuarios hacer peticiones HTTP directamente desde el terminal, lo que la convierte en una herramienta excelente para interactuar con las API.

Ejecutar el modelo QwQ 32b mediante el comando curl

Nota: Asegúrate de colocar correctamente las comillas y de seleccionar el puerto localhost correcto para evitar errores en dquote.

Paso 3: Ejecutar QwQ-32B con Python

Podemos ejecutar Ollama en cualquier entorno de desarrollo integrado (IDE). Puedes instalar el paquete Ollama Python utilizando el siguiente código: 

pip install ollama

Una vez instalado Ollama, utiliza el siguiente script para interactuar con el modelo:

import ollama
response = ollama.chat(
    model="qwq",
    messages=[
        {"role": "user", "content": "Explain Newton's second law of motion"},
    ],
)
print(response["message"]["content"])

La función ollama.chat() toma el nombre del modelo y una indicación del usuario, procesándolo como un intercambio conversacional. A continuación, el script extrae e imprime la respuesta del modelo.

Ejecutar el modelo QwQ 32b utilizando Python

Ejecutar localmente una aplicación de razonamiento lógico con QwQ-32B

Podemos crear un sencillo asistente de razonamiento lógico utilizando QwQ-32B y Gradio, que aceptará preguntas introducidas por el usuario y generará respuestas lógicas estructuradas. Esta aplicación utilizará el enfoque de pensamiento por pasos de QwQ-32B para proporcionar respuestas claras y bien razonadas, lo que la hará útil para la resolución de problemas, la tutoría y la toma de decisiones asistida por IA.

Paso 1: Requisitos previos

Antes de sumergirnos en la implementación, asegurémonos de que tenemos instaladas las siguientes herramientas y bibliotecas:

  • Python 3.8+
  • Gradio: Crear una interfaz web fácil de usar.
  • Ollama: Una biblioteca para acceder localmente a los modelos

Ejecuta los siguientes comandos para instalar las dependencias necesarias:

pip install gradio ollama

Una vez instaladas las dependencias anteriores, ejecuta los siguientes comandos de importación:

import gradio as gr
import ollama
import re

Paso 2: Consulta de QwQ 32B con Ollama

Ahora que ya tenemos nuestras dependencias, construiremos una función de consulta para pasar nuestra pregunta al modelo y obtener una respuesta estructurada.

def query_qwq(question):
    response = ollama.chat(
        model="qwq",
        messages=[{"role": "user", "content": question}]
    )
    full_response = response["message"]["content"]
    # Extract the <think> part and the final answer
    think_match = re.search(r"<think>(.*?)</think>", full_response, re.DOTALL)
    think_text = think_match.group(1).strip() if think_match else "Thinking process not explicitly provided."
    final_response = re.sub(r"<think>.*?</think>", "", full_response, flags=re.DOTALL).strip()
    return think_text, final_response

La función query_qwq() interactúa con el modelo Qwen QwQ-32B a través de Ollama, enviando una pregunta proporcionada por el usuario y recibiendo una respuesta estructurada. Extrae dos componentes clave:

  1. Proceso de pensamiento: Incluye los pasos de razonamiento del modelo (extraídos de las etiquetas <think>...</think>).
  2. Respuesta final:  Este campo incluye la respuesta final estructurada tras el razonamiento. (excluyendo la sección <pensar>)

Esto aísla los pasos de razonamiento y la respuesta final por separado, garantizando la transparencia en la forma en que el modelo llega a sus conclusiones.

Paso 3: Crear la interfaz de Gradio

Ahora que tenemos configurada la función principal, construiremos la interfaz de usuario de Gradio.

interface = gr.Interface(
    fn=query_qwq,
    inputs=gr.Textbox(label="Ask a logical reasoning question"),
    outputs=[gr.Textbox(label="Thinking Process"), gr.Textbox(label="Final Response")],
    title="QwQ-32B Powered: Logical Reasoning Assistant",
    description="Ask a logical reasoning question and the assistant will provide an explanation."
)
interface.launch(debug = True)

Esta interfaz de Gradio configura un asistente de razonamiento lógico que recibe una pregunta de razonamiento lógico introducida por el usuario a través de la función gr.Textbox() y la procesa utilizando la función query_qwq(). Por último, la función interface.launch() inicia la aplicación Gradio con la depuración activada, lo que permite el seguimiento de errores y registros en tiempo real para la resolución de problemas.

Demostración de QwQ 32b con gradio

Conclusión

Ejecutar QwQ-32B localmente con Ollama permite una inferencia del modelo privada, rápida y rentable. Con este tutorial, podrás explorar sus capacidades de razonamiento avanzado en tiempo real. Este modelo puede utilizarse para aplicaciones de tutoría asistida por IA, resolución de problemas basada en la lógica, etc.


Aashi Dutt's photo
Author
Aashi Dutt
LinkedIn
Twitter

Soy una Google Developers Expert en ML(Gen AI), una Kaggle 3x Expert y una Women Techmakers Ambassador con más de 3 años de experiencia en tecnología. Cofundé una startup de tecnología sanitaria en 2020 y estoy cursando un máster en informática en Georgia Tech, especializándome en aprendizaje automático.

Temas

Aprende IA con estos cursos

programa

Developing AI Applications

23hrs hr
Learn to create AI-powered applications with the latest AI developer tools, including the OpenAI API, Hugging Face, and LangChain.
Ver detallesRight Arrow
Comienza el curso
Ver másRight Arrow
Relacionado

tutorial

RAG Con Llama 3.1 8B, Ollama y Langchain: Tutorial

Aprende a crear una aplicación RAG con Llama 3.1 8B utilizando Ollama y Langchain, configurando el entorno, procesando documentos, creando incrustaciones e integrando un recuperador.
Ryan Ong's photo

Ryan Ong

12 min

tutorial

Ajuste fino de LLaMA 2: Guía paso a paso para personalizar el modelo de lenguaje grande

Aprende a ajustar Llama-2 en Colab utilizando nuevas técnicas para superar las limitaciones de memoria y computación y hacer más accesibles los grandes modelos lingüísticos de código abierto.
Abid Ali Awan's photo

Abid Ali Awan

12 min

tutorial

Guía de torchchat de PyTorch: Configuración local con Python

Aprende a configurar el torchat de PyTorch localmente con Python en este tutorial práctico, que proporciona orientación paso a paso y ejemplos.
François Aubry's photo

François Aubry

tutorial

Guía para principiantes de LlaMA-Factory WebUI: Ajuste de los LLM

Aprende a afinar los LLM en conjuntos de datos personalizados, evaluar el rendimiento y exportar y servir modelos sin problemas utilizando el marco de trabajo de bajo/ningún código de LLaMA-Factory.
Abid Ali Awan's photo

Abid Ali Awan

12 min

tutorial

DCLM-7B de Apple: Configuración, Ejemplo de uso, Ajuste fino

Empieza a utilizar el gran modelo de lenguaje DCLM-7B de Apple y aprende a configurarlo, utilizarlo y ajustarlo para tareas específicas.
Dimitri Didmanidze's photo

Dimitri Didmanidze

9 min

tutorial

Tutorial FLAN-T5: Guía y puesta a punto

Una guía completa para afinar un modelo FLAN-T5 para una tarea de respuesta a preguntas utilizando la biblioteca de transformadores, y ejecutando la inferencia optmizada en un escenario del mundo real.
Zoumana Keita 's photo

Zoumana Keita

15 min

Ver másVer más