Assistente codice Qiskit
Qiskit Code Assistant Gli LLM mirano a rendere l'informatica quantistica più accessibile ai nuovi utenti di Qiskit e a migliorare l'esperienza di programmazione per gli utenti attuali. È stato addestrato utilizzando milioni di token di testo provenienti da Qiskit SDK, anni di esempi di codice Qiskit e le funzionalità di IBM Quantum®. Qiskit Code Assistant può semplificare il tuo flusso di lavoro di sviluppo quantistico fornendo suggerimenti generati da modelli di linguaggio di grandi dimensioni (LLM) basati su IBM, Granite e altri modelli open source, che integrano le ultime caratteristiche e funzionalità disponibili su IBM®.
- Vuoi passare direttamente alle istruzioni di installazione? Vai alla sezione "Installazione di Qiskit Code Assistant ".
- Se avete feedback o volete contattare il team di sviluppatori, utilizzate il canale Slack Workspace di Qiskit o i relativi repository pubblici GitHub.
Il modello linguistico di grandi dimensioni (LLM) alla base di Qiskit Code Assistant
Per fornire suggerimenti di codice, Qiskit Code Assistant utilizza un modello linguistico di grandi dimensioni (LLM). In questo caso, Qiskit Code Assistant si basa attualmente sul modello mistral-small-3.2-24b-qiskit, costruito sul modello Mistral-Small-3.2-24B-Qiskit. Il mistral-small-3.2-24b-qiskit modello migliora le capacità di generazione Mistral-Small-3.2-24B-Instruct-2506 del codice del modello per Qiskit attraverso un pre-addestramento esteso e una messa a punto su dati Qiskit di alta qualità, nonché commit e chat dell' Python. Per ulteriori informazioni sulla famiglia di modelli Mistral AI, consultare la documentazione Mistral AI. Per ulteriori dettagli sui modelli .*-qiskit , consultare Qiskit Code Assistant : Addestramento di LLM per la generazione di codice di calcolo quantistico.
I nostri LLM specializzati per Qiskit sono disponibili anche come modelli open-source. Controllate tutti i modelli disponibili sul sito https://huggingface.co/Qiskit.
I benchmark Qiskit HumanEval e Qiskit HumanEval Hard
Per testare il mistral-small-3.2-24b-qiskit e altri modelli, abbiamo collaborato con Qiskit Advocates ed esperti per creare dei benchmark basati sull'esecuzione chiamati Qiskit HumanEval (QHE) e Qiskit HumanEval Hard (QHE Hard), e li abbiamo eseguiti sui modelli. Questi benchmark sono simili a HumanEval e includono diversi problemi di codice complessi da risolvere, tutti basati sulle librerie ufficiali Qiskit.
I benchmark sono composti da circa 150 test, ciascuno dei quali è costituito da una definizione di funzione, seguita da una stringa di documentazione che descrive in dettaglio il compito che il modello deve risolvere. Ogni esempio include anche una soluzione canonica di riferimento, oltre a test unitari, per valutare la correttezza delle soluzioni generate. Ci sono tre livelli di difficoltà per i test: base, intermedio e difficile. Il benchmark Qiskit HumanEval Hard è una variante del benchmark HumanEval Qiskit, ma rimuove le informazioni relative alle importazioni di codice, quindi l'LLM deve individuare il metodo corretto o le importazioni di classe. Secondo i nostri test e i risultati iniziali, questa modifica rende il set di dati molto più impegnativo per gli LLM.
I set di dati per Qiskit HumanEval e Qiskit HumanEval Hard sono disponibili sui seguenti siti web: Qiskit HumanEval e Qiskit HumanEval. È possibile contribuire allo sviluppo di questi benchmark presso il repository GitHub.
Installa Qiskit Code Assistant
Scopri come installare, configurare e utilizzare qualsiasi modello di " Qiskit Code Assistant " sul tuo computer.
Segui questi passaggi per scaricare qualsiasi modello relativo a " Qiskit Code Assistant " dal sito web Hugging Face :
- Accedi alla pagina del modello Qiskit desiderato su Hugging Face.
- Vai alla scheda " File e versioni" e scarica i file dei modelli Safetensors o GGUF.
Per scaricare uno dei modelli disponibili su Qiskit Code Assistant utilizzando l'interfaccia CLI di Hugging Face, procedere come segue:
-
Installa l'interfaccia a riga di comando (CLI) di Hugging Face
-
Accedi al tuo account Hugging Face
huggingface-cli login -
Scarica il modello che preferisci dall'elenco precedente
huggingface-cli download <HF REPO NAME> <MODEL PATH> --local-dir <LOCAL PATH>
-
Esistono diversi modi per implementare e interagire con il modello scaricato da Qiskit Code Assistant. Questa guida illustra come utilizzare Ollama nei seguenti modi: tramite l'integrazione Applicazione Ollama con Hugging Face Hub o il modello locale, oppure con il
llama-cpp-pythonpacchetto.Come utilizzare l'applicazione Ollama
L'applicazione Ollama offre una soluzione semplice per eseguire i modelli di linguaggio di grandi dimensioni (LLM) in locale. È facile da usare, grazie a un'interfaccia a riga di comando che rende l'intero processo di configurazione, la gestione dei modelli e l'interazione piuttosto semplici. È l'ideale per sperimentare rapidamente e per gli utenti che preferiscono avere meno dettagli tecnici da gestire.
Installa Ollama
-
Scarica l 'app Ollama
-
Installa il file scaricato
-
Avvia l'applicazione Ollama installata
InfoL'applicazione funziona correttamente quando l'icona di Ollama compare nella barra dei menu del desktop. Puoi anche verificare se il servizio è in esecuzione andando su
http://localhost:11434/. -
Prova Ollama nel tuo terminale e avvia l'esecuzione dei modelli. Ad esempio:
ollama run hf.co/Qiskit/Qwen2.5-Coder-14B-Qiskit
Configura Ollama utilizzando l'integrazione con Hub Hugging Face
L'integrazione con l'Hub Ollama/ Hugging Face offre la possibilità di interagire con i modelli ospitati sull'Hub Hugging Face senza dover creare un nuovo file di modello né scaricare manualmente i file GGUF o safetensors. I file
template``paramspredefiniti sono già inclusi nel modello disponibile su Hugging Face Hub.-
Assicurati che l'applicazione Ollama sia in esecuzione.
-
Vai alla pagina del modello desiderato e copia l' URL Ad esempio, https://huggingface.co/Qiskit/Qwen2.5-Coder-14B-Qiskit-GGUF.
-
Dal terminale, esegui il comando:
ollama run hf.co/Qiskit/Qwen2.5-Coder-14B-Qiskit
È possibile utilizzare il
hf.co/Qiskit/Qwen2.5-Coder-14B-Qiskitmodello o uno qualsiasi degli altri modelli ufficiali GGUF attualmentehf.co/Qiskit/mistral-small-3.2-24b-qiskit-GGUFraccomandati oppurehf.co/Qiskit/granite-3.3-8b-qiskit-GGUF.Configurare Ollama utilizzando un modello GGUF scaricato manualmente dall' Qiskit Code Assistant
Se hai scaricato manualmente un modello GGUF, ad esempio https://huggingface.co/Qiskit/Qwen2.5-Coder-14B-Qiskit-GGUF, e desideri provare diversi modelli e parametri, puoi seguire questi passaggi per caricarlo nella tua applicazione Ollama locale.
-
Crea un
Modelfileinserendo il seguente contenuto e assicurati di sostituire<PATH-TO-GGUF-FILE>con il percorso effettivo del modello che hai scaricato.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 -
Esegui il seguente comando per creare un'istanza di modello personalizzata basata sul file
Modelfile.ollama create Qwen2.5-Coder-14B-Qiskit -f ./path-to-model-fileNoteQuesta operazione potrebbe richiedere un po' di tempo, poiché Ollama deve leggere il file del modello, inizializzare l'istanza del modello e configurarla in base alle specifiche fornite.
Esegui manualmente il modello " Qiskit Code Assistant " scaricato su Ollama
Una volta configurato il
Qwen2.5-Coder-14B-Qiskitmodello in Ollama, esegui il seguente comando per avviare il modello e interagire con esso nel terminale (in modalità chat).ollama run Qwen2.5-Coder-14B-QiskitAlcuni comandi utili:
ollama list- Elenca i modelli presenti sul tuo computerollama rm Qwen2.5-Coder-14B-Qiskit- Elimina il modelloollama show Qwen2.5-Coder-14B-Qiskit- Mostra le informazioni sul modelloollama stop Qwen2.5-Coder-14B-Qiskit- Arrestare un modello attualmente in esecuzioneollama ps- Elenca i modelli attualmente caricati
-
Un'alternativa all'applicazione Ollama è il
llama-cpp-pythonpacchetto, che consiste in un binding per Pythonllama.cpp. L'esecuzione locale del modello GGUF offre maggiore controllo e flessibilità ed è l'ideale per gli utenti che desiderano integrare il modello locale nei propri flussi di lavoro e nelle applicazioni di tipo " Python ".- Installa
llama-cpp-python - Interagisci con il modello dall'interno della tua applicazione utilizzando
llama_cpp. Ad esempio:
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"]È inoltre possibile aggiungere al modello dei parametri di generazione del testo per personalizzare l'inferenza:
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"]- Installa
Utilizza la
llama.cpplibreriaUn'altra alternativa è quella di utilizzare
llama.cpp, una libreria open source che consente di eseguire l'inferenza LLM su una CPU con una configurazione minima. Fornisce un controllo di basso livello sull'esecuzione del modello e viene solitamente eseguito dalla riga di comando, indicando un file di modello GGUF locale.Esistono diversi modi per installarlo
llama.cppsul tuo computer:- Installa llama.cpp utilizzando brew, nix o winget
- Corri con Docker: Guarda oltre il Docker documentazione a cura del
llama.cppteam - Scarica i file binari precompilati dalla pagina delle versioni
- Compila dal codice sorgente clonando questo repository
Una volta installato, è possibile utilizzare
llama.cppper interagire con i modelli GGUF in modalità conversazione come segue:# 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È inoltre possibile avviare un server API OpenAI-compatible per il modello nel modo seguente:
llama-server -hf Qiskit/Qwen2.5-Coder-14B-Qiskit-GGUFParametri avanzati
Con questo
llama-cliprogramma è possibile controllare la generazione del modello tramite opzioni da riga di comando. Ad esempio, è possibile specificare un prompt iniziale "di sistema" utilizzando il-p/--promptflag. In modalità conversazione (-cnv), questo messaggio iniziale funge da messaggio di sistema. In alternativa, puoi semplicemente anteporre qualsiasi istruzione desideri al testo del prompt. È inoltre possibile regolare i parametri di campionamento, ad esempio: temperatura (--temp), top-k (--top-k), top-p (--top-p), penalità di ripetizione (--repeat-penalty) e il seme da utilizzare (--seed). Di seguito è riportato un esempio di chiamata che utilizza queste opzioni: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 42Per garantire il corretto funzionamento dei nostri modelli Qiskit, consigliamo di utilizzare il prompt di sistema fornito nei nostri repository HF GGUF: prompt di sistema per mistral-small-3.2-24b-qiskit-GGUF, Qwen2.5-Coder-14B-Qiskit-GGUF, granite-3.3-8b-qiskit-GGUF e granite-3.2-8b-qiskit-GGUF.
Continua (VS Code)
1. Installa l'estensione
Apri VS Code, vai su Estensioni (
Cmd+Shift+X), cerca Continue e installalo.2. Aprire il file di configurazione
Fai clic sull'icona Continua nella barra laterale, quindi fai clic sull'icona a forma di ingranaggio oppure apri la tavolozza dei comandi (
Cmd+Shift+P) ed esegui Continua: Apri file di configurazione.Questo si apre
~/.continue/config.yaml(oconfig.jsonnelle versioni precedenti).3. Configurare il modello
Aggiungi quanto segue a
config.yaml:models: - name: Qiskit Code Assistant provider: ollama model: mistral-small-3.2-24b-qiskit apiBase: http://localhost:11434In questo modo, il modello Qiskit sarà disponibile nel pannello della chat (conversazioni nella barra laterale, domande e risposte in linea) e per i comandi di modifica in linea.
4. Provalo
-
Chat: apri il pannello "Continua" nella barra laterale e fai una domanda (ad es. "Come si crea un circuito parametrizzato in Qiskit?")
-
Modifica in linea: seleziona un blocco di codice, premi
Cmd+I(Mac) oCtrl+I( Linux /Windows)
-
Jupyter AI ( JupyterLab )
Nota: queste istruzioni riguardano Jupyter AI v2.x.
1. Installa Jupyter AI e il provider Ollama
pip install "jupyter-ai<3" langchain-ollamaIl
"jupyter-ai<3"pin ti garantisce l'acquisto di un v2.x Illangchain-ollamapacchetto è necessario affinché Jupyter AI riconosca Ollama come provider. Senza di esso, Ollama non apparirà nel pannello delle impostazioni.Quindi riavvia JupyterLab.
2. Configurare il modello di chat
Apri JupyterLab e clicca sull 'icona della chat nella barra laterale a sinistra. Nel pannello delle impostazioni:
- Nella sezione " Modello linguistico ", seleziona Ollama come provider.
- Inserisci
mistral-small-3.2-24b-qiskitcome nome del modello. - Per Ollama non è necessaria alcuna chiave API (lascia il campo vuoto).
- Clicca sulla freccia indietro per iniziare a chattare.
3. Utilizza il comando magico
%%aiQuesta
%%aifunzionalità ti permette di interrogare il modello direttamente nelle celle del notebook.%load_ext jupyter_ai_magicsQuindi in una cella:
%%ai ollama:mistral-small-3.2-24b-qiskit Write a function that implements Grover's algorithm using Qiskit4. Host Ollama personalizzato (facoltativo)
Per impostazione predefinita, Jupyter AI si connette a
http://127.0.0.1:11434. Se il tuo server Ollama è in esecuzione su un indirizzo o una porta diversi:Nell'interfaccia utente della chat: imposta il campo " URL API di base" nel pannello delle impostazioni dell'IA.
OpenCode (Terminale)
1. Installa OpenCode
curl -fsSL https://opencode.ai/install | bash2. Configurare il modello Qiskit
Crea un
opencode.jsonfile nella directory principale del progetto (o~/.config/opencode/opencode.jsonper una configurazione globale):{ "$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. Seleziona il modello
Esegui il comando
OpenCodenella directory del tuo progetto:opencodeAll'interno di TUI, esegui il
/modelscomando e seleziona " Qiskit Code Assistant " dall'elenco.4. Provalo
Poni una domanda direttamente nella chat, ad esempio: "Definisci un circuito di Bell ed eseguilo utilizzando QiskitRuntimeService"" "
Modelli disponibili
Modelli attuali
Questi sono gli ultimi modelli consigliati per l'uso con Qiskit Code Assistant :
- Qiskit/mistral-small-3.2-24b-qiskit - Pubblicato nell'ottobre 2025
- Qiskit/Qwen2.5-Coder-14B-Qiskit - Pubblicato nel giugno 2025
- qiskit/granite-3.3-8b-qiskit - Pubblicato nel giugno 2025
- qiskit/granite-3.2-8b-qiskit - Pubblicato nel giugno 2025
Modelli GGUF (consigliati per ambienti personali/computer portatili)
I modelli in formato GGUF sono ottimizzati per l'uso locale e richiedono minori risorse di calcolo:
-
mistral-small-3.2-24b-qiskit-GGUF – Pubblicato nell'ottobre 2025;
addestrato con dati Qiskit fino alla versione 2.1 -
Qiskit/Qwen2.5-Coder-14B-Qiskit-GGUF – Pubblicato nel giugno 2025
; addestrato con dati Qiskit fino alla versione 2.0 -
qiskit/granite-3.3-8b-qiskit-GGUF – Pubblicato nel giugno 2025;
addestrato con dati Qiskit fino alla versione 2.0 -
qiskit/granite-3.2-8b-qiskit-GGUF – Pubblicato nel giugno 2025;
addestrato con dati Qiskit fino alla versione 2.0
I modelli Open Source dell' Qiskit Code Assistant e sono disponibili su Safetensors è un formato di file progettato specificamente per archiviare i pesi e i tensori dei modelli di apprendimento automatico in modo sicuro ed efficiente. o GGUF è un formato binario progettato per consentire il caricamento e il salvataggio rapidi dei modelli, nonché per garantire una buona leggibilità. e possono essere scaricati dal sito Hugging Face come spiegato di seguito.
Versioni di Qiskit utilizzate per l'addestramento
Modello | Indicatori di riferimento | Data di rilascio | Addestrato sulla versione di Qiskit | |||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|
| QiskitHumanEval-Hard | QiskitHumanEval | HumanEval | ASDiv | MathQA | SciQ | MBPP | IFEval | CrowsPairs (inglese) | TruthfulQA (account MC1 ) | |||
| 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 | Gennaio 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 | Giugno 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 | Giugno 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 | Giugno 2025 | 2.0 |
| granite-8b-qiskit-rc-0.10 | 15.89 | 38.41 | 59.76 | — | — | — | — | — | — | — | Febbraio 2025 | 1.3 |
| granite-8b-qiskit | 17.88 | 44.37 | 53.66 | — | — | — | — | — | — | — | Novembre 2024 | 1.2 |
Nota: tutti i modelli elencati nella tabella di benchmark sono stati valutati utilizzando il rispettivo prompt di sistema, definito nel modello " Hugging Face ".
Modelli obsoleti
Questi modelli non vengono più aggiornati attivamente, ma rimangono disponibili:
- qiskit/granite-8b-qiskit-rc-0.10 - Pubblicato nel febbraio 2025 (versione obsoleta)
- qiskit/granite-8b-qiskit - Pubblicato nel novembre 2024 (versione obsoleta)
Ulteriori informazioni e citazioni
Per ulteriori informazioni sui benchmark Qiskit Code Assistant Qiskit HumanEval, o Qiskit HumanEval Hard e per citarli nelle vostre pubblicazioni scientifiche, consultate questi riferimenti consigliati:
@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},
}