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.
· 12 min leer

Explora con IA

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

Autor

Aashi Dutt

Soy experta Google Developers en ML (Gen AI), triple experta en Kaggle y embajadora de Women Techmakers, con más de tres años de experiencia en el sector tecnológico. Cofundé una startup de salud en 2020 y actualmente curso un máster en informática en Georgia Tech, con especialización en aprendizaje automático.

Temas

Relacionado

Tutorial

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