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®.
- ¿Quieres ir directamente a las instrucciones de instalación? Ve a la sección Instalar Qiskit Code Assistant.
- Si tienes comentarios o deseas contactar con el equipo de desarrollo, usa el canal de Qiskit en Slack Workspace o los repositorios públicos de GitHub relacionados.
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 commits de Python y datos de 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:
-
Navega a la página del modelo de Qiskit deseado en Hugging Face.
-
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:
-
Instala la CLI de Hugging Face
-
Inicia sesión en tu cuenta de Hugging Face
huggingface-cli login -
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
-
Descarga la aplicación Ollama
-
Instala el archivo descargado
-
Abre la aplicación Ollama instalada
informaciónLa 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/. -
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.
-
Asegúrate de que la aplicación Ollama esté en ejecución.
-
Ve a la página del modelo deseado y copia la URL. Por ejemplo, https://huggingface.co/Qiskit/Qwen2.5-Coder-14B-Qiskit-GGUF.
-
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.
-
Crea un
Modelfilecon 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 0PARAMETER top_k 1 -
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-filenotaEste 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- Muestra la lista de modelos en tu ordenador -
ollama rm Qwen2.5-Coder-14B-Qiskit- Elimina el modelo -
ollama show Qwen2.5-Coder-14B-Qiskit- Muestra la información del modelo -
ollama stop Qwen2.5-Coder-14B-Qiskit- Detiene un modelo que se está ejecutando actualmente -
ollama ps- Muestra qué modelos están 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 ofrece más control y flexibilidad para ejecutar el modelo GGUF localmente, y es ideal para usuarios que deseen integrar el modelo local en sus flujos de trabajo y aplicaciones Python.
-
Instala
llama-cpp-python -
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 agregar 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
Usa la biblioteca llama.cpp
Otra alternativa es usar llama.cpp, una biblioteca de código abierto para realizar inferencia de LLM en una CPU con una configuración mínima.
Proporciona control de bajo nivel sobre la ejecución del modelo y normalmente 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:
-
Instala llama.cpp usando brew, nix o winget
-
Ejecuta con Docker: Consulta la documentación de Docker del equipo de
llama.cpp -
Descarga binarios preconstruidos desde la página de versiones
-
Compila desde el código fuente clonando este repositorio
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 \{#use-a-local-model-file}
llama-cli -m my_model.gguf -cnv
# Or download and run a model directly from Hugging Face \{#or-download-and-run-a-model-directly-from-hugging-face}
llama-cli -hf Qiskit/Qwen2.5-Coder-14B-Qiskit-GGUF -cnv
También puedes iniciar un servidor de 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 usando opciones de línea de comandos. Por ejemplo, puedes proporcionar un prompt de "sistema" inicial usando la opción -p/--prompt. En modo conversación (-cnv), este prompt inicial actúa como el mensaje del sistema. De lo contrario, simplemente puedes anteponer cualquier instrucción deseada a tu texto de prompt. También puedes ajustar los parámetros de muestreo, por ejemplo: temperatura (--temp), top-k (--top-k), top-p (--top-p), penalización de 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 del sistema proporcionado en nuestros repositorios HF GGUF: prompt del 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. Instala la extensión
Abre VS Code, ve a Extensiones (Cmd+Shift+X), busca Continue e instálala.
2. Abre 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. Configura el modelo
Agrega 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 Qiskit esté disponible en el panel de chat (conversaciones en la barra lateral, preguntas y respuestas en línea) y para comandos de edición en línea.
4. Test it
-
Chat: Abre el panel de Continue en la barra lateral y haz una pregunta (por ejemplo, "¿Cómo creo un circuito parametrizado en Qiskit?")
-
Edición en línea: Selecciona un bloque de código, presiona
Cmd+I(Mac) oCtrl+I(Linux/Windows)
Conectar manualmente Jupyter AI (JupyterLab)
Jupyter AI (JupyterLab)
Nota: Estas instrucciones cubren Jupyter AI v2.x.
1. Instala Jupyter AI y el proveedor Ollama
pip install "jupyter-ai<3" langchain-ollama
Fijar la versión con "jupyter-ai<3" garantiza que obtengas la 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. Configura 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:
-
En Language model, selecciona Ollama como proveedor.
-
Ingresa
mistral-small-3.2-24b-qiskitcomo el nombre del modelo. -
No se necesita una clave de API para Ollama (deja el campo vacío).
-
Haz clic en la flecha hacia atrás para comenzar a chatear.
3. Usa el comando mágico %%ai
El comando mágico %%ai te permite consultar el modelo directamente en las celdas del notebook.
%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)
De forma predeterminada, 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: Configura el campo "Base API URL" en el panel de configuración de IA.
Conectar manualmente OpenCode (Terminal)
OpenCode (Terminal)
1. Instala OpenCode
curl -fsSL https://opencode.ai/install | bash
2. Configura el modelo Qiskit
Crea un archivo opencode.json en la raíz de tu proyecto (o ~/.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. Selecciona el modelo
Inicia OpenCode en el directorio de tu proyecto:
opencode
Dentro de la TUI, ejecuta el comando /models y selecciona Qiskit Code Assistant de la lista.
4. Test it
Haz una pregunta directamente en el chat, por ejemplo: "Define un circuito de Bell y ejecútalo usando QiskitRuntimeService"
Modelos disponibles
Modelos actuales
Estos son los modelos recomendados más recientes para usar con Qiskit Code Assistant:
-
Qiskit/mistral-small-3.2-24b-qiskit - Publicado en octubre de 2025
-
Qiskit/Qwen2.5-Coder-14B-Qiskit - Publicado en junio de 2025
-
qiskit/granite-3.3-8b-qiskit - Publicado en junio de 2025
-
qiskit/granite-3.2-8b-qiskit - Publicado en junio de 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:
-
mistral-small-3.2-24b-qiskit-GGUF – Publicado en octubre de 2025
Entrenado con datos de Qiskit hasta la versión 2.1
-
Qiskit/Qwen2.5-Coder-14B-Qiskit-GGUF – Publicado en junio de 2025
Entrenado con datos de Qiskit hasta la versión 2.0
-
qiskit/granite-3.3-8b-qiskit-GGUF – Publicado en junio de 2025
Entrenado con datos de Qiskit hasta la versión 2.0
-
qiskit/granite-3.2-8b-qiskit-GGUF – Publicado en junio de 2025
Entrenado con datos de Qiskit hasta la versión 2.0
Los modelos de código abierto de Qiskit Code Assistant están disponibles en formato safetensors o formato de archivo GGUF y se pueden descargar desde Hugging Face como se explica a continuación.
Versiones de Qiskit usadas para el entrenamiento
| Modelo | Métricas de benchmark | Fecha de lanzamiento | Versión de Qiskit usada para el entrenamiento | |||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|
| QiskitHumanEval-Hard | QiskitHumanEval | HumanEval | ASDiv | MathQA | SciQ | MBPP | IFEval | CrowsPairs (English) | TruthfulQA (MC1 acc) | |||
| mistral-small-3.2-24b-qiskit | 32.45 | 47.02 | 77.49 | 3.77 | 49.68 | 97.50 | 64.00 | 48.44 | 67.08 | 39.41 | enero de 2026 | 2.2 |
| Qwen2.5-Coder-14B-Qiskit | 25.17 | 49.01 | 91.46 | 4.21 | 53.90 | 97.00 | 77.60 | 49.64 | 65.18 | 37.82 | junio de 2025 | 2.0 |
| granite-3.3-8b-qiskit | 14.57 | 27.15 | 62.80 | 0.48 | 38.66 | 93.30 | 52.40 | 59.71 | 59.75 | 39.05 | junio de 2025 | 2.0 |
| granite-3.2-8b-qiskit | 9.93 | 24.50 | 57.32 | 0.09 | 41.41 | 96.30 | 51.80 | 60.79 | 66.79 | 40.51 | junio de 2025 | 2.0 |
| granite-8b-qiskit-rc-0.10 | 15.89 | 38.41 | 59.76 | — | — | — | — | — | — | — | febrero de 2025 | 1.3 |
| granite-8b-qiskit | 17.88 | 44.37 | 53.66 | — | — | — | — | — | — | — | noviembre de 2024 | 1.2 |
Nota: Todos los modelos que aparecen en la tabla de benchmarks se evaluaron utilizando su respectivo prompt del sistema, definido en su modelo de Hugging Face.
Modelos obsoletos
Estos modelos ya no se mantienen activamente, pero siguen disponibles:
-
qiskit/granite-8b-qiskit-rc-0.10 - Publicado en febrero de 2025 (obsoleto)
-
qiskit/granite-8b-qiskit - Publicado en noviembre de 2024 (obsoleto)
Más información y citas
Para obtener más información sobre Qiskit Code Assistant, Qiskit HumanEval o los benchmarks Qiskit HumanEval Hard, y citarlos en tus publicaciones científicas, revisa 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},
}