Saltar al contenido principal

Qiskit Code Assistant

Los LLMs de Qiskit Code Assistant tienen como objetivo hacer la computación cuántica más accesible para los nuevos usuarios de Qiskit y mejorar la experiencia de programación para los usuarios actuales. Ha sido entrenado con millones de tokens de texto del SDK de Qiskit, años de ejemplos de código Qiskit y características de IBM Quantum®. Qiskit Code Assistant puede ayudar en tu flujo de trabajo de desarrollo cuántico ofreciendo sugerencias generadas por LLM basadas en modelos IBM Granite y otros modelos de código abierto, que incorporan las últimas características y funcionalidades de IBM®.

Notas

El modelo de lenguaje grande (LLM) detrás de Qiskit Code Assistant

Para proporcionar sugerencias de código, Qiskit Code Assistant utiliza un modelo de lenguaje grande (LLM). En este caso, Qiskit Code Assistant actualmente se apoya en el modelo mistral-small-3.2-24b-qiskit, construido sobre el modelo Mistral-Small-3.2-24B-Qiskit. El modelo mistral-small-3.2-24b-qiskit mejora las capacidades de generación de código para Qiskit del modelo Mistral-Small-3.2-24B-Instruct-2506 mediante preentrenamiento extendido y ajuste fino con datos de Qiskit de alta calidad, así como confirmaciones de Python y chat. Para más información sobre la familia de modelos Mistral AI, consulta la documentación de Mistral AI. Para más detalles sobre los modelos .*-qiskit, consulta Qiskit Code Assistant: Training LLMs for generating Quantum Computing Code.

Nuestros LLMs especializados para Qiskit también están disponibles como modelos de código abierto. Consulta todos los modelos disponibles en https://huggingface.co/Qiskit.

Los benchmarks Qiskit HumanEval y Qiskit HumanEval Hard

Para probar mistral-small-3.2-24b-qiskit y otros modelos, colaboramos con Qiskit Advocates y expertos para crear los benchmarks basados en ejecución llamados Qiskit HumanEval (QHE) y Qiskit HumanEval Hard (QHE Hard), y los ejecutamos sobre los modelos. Estos benchmarks son similares a HumanEval, e incluyen múltiples problemas de código desafiantes a resolver, todos basados en las bibliotecas oficiales de Qiskit.

Los benchmarks están compuestos por aproximadamente 150 pruebas, cada una elaborada a partir de una definición de función seguida de un docstring que detalla la tarea que el modelo debe resolver. Cada ejemplo también incluye una solución canónica de referencia, así como pruebas unitarias para evaluar la corrección de las soluciones generadas. Hay tres niveles de dificultad para las pruebas: básico, intermedio y difícil. El benchmark Qiskit HumanEval Hard es una variación del Qiskit HumanEval, pero elimina la información relacionada con las importaciones de código, por lo que el LLM debe determinar las importaciones correctas de métodos o clases. Este cambio hace que el dataset sea mucho más desafiante para los LLMs, según nuestras pruebas y resultados iniciales.

Los datasets de Qiskit HumanEval y Qiskit HumanEval Hard están disponibles en estos sitios web: Qiskit HumanEval y Qiskit HumanEval. Puedes contribuir al desarrollo de estos benchmarks en el repositorio de GitHub.

Instalar Qiskit Code Assistant

Aprende cómo instalar, configurar y usar cualquiera de los modelos de Qiskit Code Assistant en tu máquina local.

Descargar desde el sitio web de Hugging Face

Sigue estos pasos para descargar cualquier modelo relacionado con Qiskit Code Assistant desde el sitio web de Hugging Face:

  1. Navega a la página del modelo de Qiskit deseado en Hugging Face.
  2. Ve a la pestaña Files and Versions y descarga los archivos del modelo en formato safetensors o GGUF.
Descargar usando la CLI de Hugging Face

Para descargar cualquiera de los modelos disponibles de Qiskit Code Assistant usando la CLI de Hugging Face, sigue estos pasos:

  1. Instala la CLI de Hugging Face

  2. Inicia sesión en tu cuenta de Hugging Face

    huggingface-cli login
  3. Descarga el modelo que prefieras de la lista anterior

    huggingface-cli download <HF REPO NAME> <MODEL PATH> --local-dir <LOCAL PATH>
Desplegar manualmente los modelos de Qiskit Code Assistant en local mediante Ollama

Hay múltiples formas de desplegar e interactuar con el modelo de Qiskit Code Assistant descargado. Esta guía muestra cómo hacerlo con Ollama: bien con la aplicación Ollama usando la integración con Hugging Face Hub o un modelo local, o bien con el paquete llama-cpp-python.

Usar la aplicación Ollama

La aplicación Ollama ofrece una solución sencilla para ejecutar los LLMs localmente. Es fácil de usar, con una CLI que simplifica todo el proceso de configuración, gestión de modelos e interacción. Es ideal para experimentación rápida y para usuarios que quieren manejar menos detalles técnicos.

Instalar Ollama
  1. Descarga la aplicación Ollama

  2. Instala el archivo descargado

  3. Lanza la aplicación Ollama instalada

    información

    La aplicación funciona correctamente cuando el icono de Ollama aparece en la barra de menú del escritorio. También puedes verificar que el servicio está en ejecución accediendo a http://localhost:11434/.

  4. Prueba Ollama en tu terminal y comienza a ejecutar modelos. Por ejemplo:

    ollama run hf.co/Qiskit/Qwen2.5-Coder-14B-Qiskit
Configurar Ollama usando la integración con Hugging Face Hub

La integración Ollama/Hugging Face Hub proporciona una forma de interactuar con modelos alojados en Hugging Face Hub sin necesidad de crear un nuevo modelfile ni descargar manualmente los archivos GGUF o safetensors. Los archivos template y params predeterminados ya están incluidos para el modelo en Hugging Face Hub.

  1. Asegúrate de que la aplicación Ollama esté en ejecución.

  2. Ve a la página del modelo deseado y copia la URL. Por ejemplo, https://huggingface.co/Qiskit/Qwen2.5-Coder-14B-Qiskit-GGUF.

  3. Desde tu terminal, ejecuta el comando:

    ollama run hf.co/Qiskit/Qwen2.5-Coder-14B-Qiskit

Puedes usar el modelo hf.co/Qiskit/Qwen2.5-Coder-14B-Qiskit o cualquiera de los otros modelos GGUF oficiales actualmente recomendados: hf.co/Qiskit/mistral-small-3.2-24b-qiskit-GGUF o hf.co/Qiskit/granite-3.3-8b-qiskit-GGUF.

Configurar Ollama con un modelo GGUF de Qiskit Code Assistant descargado manualmente

Si has descargado manualmente un modelo GGUF como https://huggingface.co/Qiskit/Qwen2.5-Coder-14B-Qiskit-GGUF y quieres experimentar con diferentes plantillas y parámetros, puedes seguir estos pasos para cargarlo en tu aplicación Ollama local.

  1. Crea un Modelfile con el siguiente contenido y asegúrate de actualizar <PATH-TO-GGUF-FILE> con la ruta real de tu modelo descargado.

    FROM <PATH-TO-GGUF-FILE>
    TEMPLATE """{{ if .System }}
    System:
    {{ .System }}

    {{ end }}{{ if .Prompt }}Question:
    {{ .Prompt }}

    {{ end }}Answer:
    ```python{{ .Response }}
    """

    PARAMETER stop "Question:"
    PARAMETER stop "Answer:"
    PARAMETER stop "System:"
    PARAMETER stop "```"

    PARAMETER temperature 0
    PARAMETER top_k 1
  2. Ejecuta el siguiente comando para crear una instancia de modelo personalizada basada en el Modelfile.

    ollama create Qwen2.5-Coder-14B-Qiskit -f ./path-to-model-file
    nota

    Este proceso puede tardar algún tiempo mientras Ollama lee el archivo del modelo, inicializa la instancia del modelo y lo configura según las especificaciones proporcionadas.

Ejecutar el modelo de Qiskit Code Assistant descargado manualmente en Ollama

Una vez que el modelo Qwen2.5-Coder-14B-Qiskit esté configurado en Ollama, ejecuta el siguiente comando para lanzarlo e interactuar con él en la terminal (en modo chat).

ollama run Qwen2.5-Coder-14B-Qiskit

Algunos comandos útiles:

  • ollama list - Listar los modelos en tu ordenador
  • ollama rm Qwen2.5-Coder-14B-Qiskit - Eliminar el modelo
  • ollama show Qwen2.5-Coder-14B-Qiskit - Mostrar información del modelo
  • ollama stop Qwen2.5-Coder-14B-Qiskit - Detener un modelo que está en ejecución
  • ollama ps - Listar los modelos cargados actualmente
Desplegar manualmente los modelos de Qiskit Code Assistant en local mediante el paquete llama-cpp-python

Una alternativa a la aplicación Ollama es el paquete llama-cpp-python, que es un enlace de Python para llama.cpp. Te proporciona mayor control y flexibilidad para ejecutar el modelo GGUF localmente, y es ideal para usuarios que desean integrar el modelo local en sus flujos de trabajo y aplicaciones Python.

  1. Instala llama-cpp-python
  2. Interactúa con el modelo desde tu aplicación usando llama_cpp. Por ejemplo:
from llama_cpp import Llama

model_path = <PATH-TO-GGUF-FILE>

model = Llama(
model_path,
seed=17,
n_ctx=10000,
n_gpu_layers=37, # to offload in gpu, but put 0 if all in cpu
)

input = 'Generate a quantum circuit with 2 qubits'
raw_pred = model(input)[“choices”][0][“text”]

También puedes añadir parámetros de generación de texto al modelo para personalizar la inferencia:

generation_kwargs = {
“max_tokens”: 512,
“echo”: False, # Echo the prompt in the output
“top_k”: 1
}

raw_pred = model(input, **generation_kwargs)[“choices”][0][“text”]
Desplegar manualmente los modelos de Qiskit Code Assistant en local mediante llama.cpp

Usar la biblioteca llama.cpp

Otra alternativa es usar llama.cpp, una biblioteca de código abierto para realizar inferencia con LLM en una CPU con una configuración mínima. Proporciona control de bajo nivel sobre la ejecución del modelo y generalmente se ejecuta desde la línea de comandos, apuntando a un archivo de modelo GGUF local.

Hay varias formas de instalar llama.cpp en tu máquina:

Una vez instalado, puedes usar llama.cpp para interactuar con modelos GGUF en modo conversación de la siguiente manera:

# Use a local model file
llama-cli -m my_model.gguf -cnv

# Or download and run a model directly from Hugging Face
llama-cli -hf Qiskit/Qwen2.5-Coder-14B-Qiskit-GGUF -cnv

También puedes lanzar un servidor API compatible con OpenAI para el modelo de la siguiente manera:

llama-server -hf Qiskit/Qwen2.5-Coder-14B-Qiskit-GGUF
Parámetros avanzados

Con el programa llama-cli, puedes controlar la generación del modelo mediante opciones de línea de comandos. Por ejemplo, puedes proporcionar un prompt “de sistema” inicial usando el indicador -p/--prompt. En modo conversación (-cnv), este prompt inicial actúa como mensaje del sistema. De lo contrario, puedes simplemente anteponer cualquier instrucción deseada al texto de tu prompt. También puedes ajustar los parámetros de muestreo; por ejemplo: temperatura (--temp), top-k (--top-k), top-p (--top-p), penalización por repetición (--repeat-penalty) y la semilla a usar (--seed). A continuación se muestra un ejemplo de invocación usando estas opciones:

llama-cli -hf Qiskit/Qwen2.5-Coder-14B-Qiskit-GGUF \
-p “You are a friendly assistant.” -cnv \
--temp 0.7 \
--top-k 50 \
--top-p 0.95 \
--repeat-penalty 1.1 \
--seed 42

Para garantizar el correcto funcionamiento de nuestros modelos Qiskit, recomendamos usar el prompt de sistema proporcionado en nuestros repositorios HF GGUF: prompt de sistema para mistral-small-3.2-24b-qiskit-GGUF, Qwen2.5-Coder-14B-Qiskit-GGUF, granite-3.3-8b-qiskit-GGUF y granite-3.2-8b-qiskit-GGUF.

Conectar manualmente Continue (VS Code)

Continue (VS Code)

1. Instalar la extensión

Abre VS Code, ve a Extensiones (Cmd+Shift+X), busca Continue e instálala.

2. Abrir la configuración

Haz clic en el icono de Continue en la barra lateral, luego haz clic en el icono de engranaje, o abre la paleta de comandos (Cmd+Shift+P) y ejecuta Continue: Open Config File.

Esto abre ~/.continue/config.yaml (o config.json en versiones anteriores).

3. Configurar el modelo

Añade lo siguiente a config.yaml:

models:
- name: Qiskit Code Assistant
provider: ollama
model: mistral-small-3.2-24b-qiskit
apiBase: http://localhost:11434

Esto hace que el modelo de Qiskit esté disponible en el panel de chat (conversaciones en la barra lateral, preguntas y respuestas en línea) y para los comandos de edición en línea.

4. Probarlo
  • Chat: Abre el panel de Continue en la barra lateral y haz una pregunta (por ejemplo, “How do I create a parameterized circuit in Qiskit?”)
  • Edición en línea: Selecciona un bloque de código y pulsa Cmd+I (Mac) o Ctrl+I (Linux/Windows)
Conectar manualmente Jupyter AI (JupyterLab)

Jupyter AI (JupyterLab)

Nota: Estas instrucciones corresponden a Jupyter AI v2.x.

1. Instalar Jupyter AI y el proveedor de Ollama
pip install “jupyter-ai<3” langchain-ollama

El pin ”jupyter-ai<3” garantiza que obtengas la versión v2.x. El paquete langchain-ollama es necesario para que Jupyter AI detecte Ollama como proveedor. Sin él, Ollama no aparecerá en el panel de configuración.

Luego reinicia JupyterLab.

2. Configurar el modelo de chat

Abre JupyterLab y haz clic en el icono de chat en la barra lateral izquierda. En el panel de configuración:

  1. En Language model, selecciona Ollama como proveedor.
  2. Introduce mistral-small-3.2-24b-qiskit como nombre del modelo.
  3. No se necesita clave de API para Ollama (deja el campo vacío).
  4. Haz clic en la flecha atrás para empezar a chatear.
3. Usar el comando mágico %%ai

La magia %%ai te permite consultar el modelo directamente en las celdas del cuaderno.

%load_ext jupyter_ai_magics

Luego en una celda:

%%ai ollama:mistral-small-3.2-24b-qiskit
Write a function that implements Grover's algorithm using Qiskit
4. Host de Ollama personalizado (opcional)

Por defecto, Jupyter AI se conecta a http://127.0.0.1:11434. Si tu servidor Ollama se ejecuta en una dirección o puerto diferente:

En la interfaz de chat: Establece el campo “Base API URL” en el panel de configuración de IA.

Conectar manualmente OpenCode (Terminal)

OpenCode (Terminal)

1. Instalar OpenCode
curl -fsSL https://opencode.ai/install | bash
2. Configurar el modelo de Qiskit

Crea un archivo opencode.json en la raíz de tu proyecto (o en ~/.config/opencode/opencode.json para una configuración global):

{
“$schema”: “https://opencode.ai/config.json”,
“provider”: {
“ollama”: {
“npm”: “@ai-sdk/openai-compatible”,
“name”: “Ollama (local)”,
“options”: {
“baseURL”: “http://localhost:11434/v1”
},
“models”: {
“mistral-small-3.2-24b-qiskit”: {
“name”: “Qiskit Code Assistant”
}
}
}
}
}
3. Seleccionar el modelo

Lanza OpenCode en el directorio de tu proyecto:

opencode

Dentro del TUI, ejecuta el comando /models y selecciona Qiskit Code Assistant de la lista.

4. Probarlo

Haz una pregunta directamente en el chat, por ejemplo: “Define a Bell circuit and run it using QiskitRuntimeService”

Modelos disponibles

Modelos actuales

Estos son los últimos modelos recomendados para usar con Qiskit Code Assistant:

  1. Qiskit/mistral-small-3.2-24b-qiskit - Released October 2025
  2. Qiskit/Qwen2.5-Coder-14B-Qiskit - Released June 2025
  3. qiskit/granite-3.3-8b-qiskit - Released June 2025
  4. qiskit/granite-3.2-8b-qiskit - Released June 2025

Modelos GGUF (recomendados para entornos personales/portátiles)

Los modelos en formato GGUF están optimizados para uso local y requieren menos recursos computacionales:

  1. mistral-small-3.2-24b-qiskit-GGUF – Released October 2025
    Trained with Qiskit data up to version 2.1

  2. Qiskit/Qwen2.5-Coder-14B-Qiskit-GGUF – Released June 2025
    Trained with Qiskit data up to version 2.0

  3. qiskit/granite-3.3-8b-qiskit-GGUF – Released June 2025
    Trained with Qiskit data up to version 2.0

  4. qiskit/granite-3.2-8b-qiskit-GGUF – Released June 2025
    Trained with Qiskit data up to version 2.0

Los modelos de código abierto de Qiskit Code Assistant están disponibles en formato safetensors o GGUF y pueden descargarse desde Hugging Face como se explica a continuación.

Versiones de Qiskit usadas para el entrenamiento

Model     Benchmark Metrics    Release dateTrained on Qiskit version
 QiskitHumanEval-HardQiskitHumanEvalHumanEvalASDivMathQASciQMBPPIFEvalCrowsPairs (English)TruthfulQA (MC1 acc)  
mistral-small-3.2-24b-qiskit32.4547.0277.493.7749.6897.5064.0048.4467.0839.41January 20262.2
Qwen2.5-Coder-14B-Qiskit25.1749.0191.464.2153.9097.0077.6049.6465.1837.82June 20252.0
granite-3.3-8b-qiskit14.5727.1562.800.4838.6693.3052.4059.7159.7539.05June 20252.0
granite-3.2-8b-qiskit9.9324.5057.320.0941.4196.3051.8060.7966.7940.51June 20252.0
granite-8b-qiskit-rc-0.1015.8938.4159.76February 20251.3
granite-8b-qiskit17.8844.3753.66November 20241.2

Nota: Todos los modelos listados en la tabla de benchmarks fueron evaluados usando su prompt de sistema respectivo, definido en su modelo de Hugging Face.

Modelos obsoletos

Estos modelos ya no reciben mantenimiento activo pero siguen estando disponibles:

  1. qiskit/granite-8b-qiskit-rc-0.10 - Released February 2025 (deprecated)
  2. qiskit/granite-8b-qiskit - Released November 2024 (deprecated)

Más información y citas

Para aprender más sobre Qiskit Code Assistant, los benchmarks Qiskit HumanEval o Qiskit HumanEval Hard, y citarlos en tus publicaciones científicas, consulta estas citas recomendadas:

@misc{2405.19495,
Author = {Nicolas Dupuis and Luca Buratti and Sanjay Vishwakarma and Aitana Viudes Forrat and David Kremer and Ismael Faro and Ruchir Puri and Juan Cruz-Benito},
Title = {Qiskit Code Assistant: Training LLMs for generating Quantum Computing Code},
Year = {2024},
Eprint = {arXiv:2405.19495},
}
@misc{2406.14712,
Author = {Sanjay Vishwakarma and Francis Harkins and Siddharth Golecha and Vishal Sharathchandra Bajpe and Nicolas Dupuis and Luca Buratti and David Kremer and Ismael Faro and Ruchir Puri and Juan Cruz-Benito},
Title = {Qiskit HumanEval: An Evaluation Benchmark For Quantum Code Generative Models},
Year = {2024},
Eprint = {arXiv:2406.14712},
}
@misc{2508.20907,
Author = {Nicolas Dupuis and Adarsh Tiwari and Youssef Mroueh and David Kremer and Ismael Faro and Juan Cruz-Benito},
Title = {Quantum Verifiable Rewards for Post-Training Qiskit Code Assistant},
Year = {2025},
Eprint = {arXiv:2508.20907},
}