Skip to main content
IBM Quantum Platform

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®.

Note

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 :

    1. Accedi alla pagina del modello Qiskit desiderato su Hugging Face.
    2. 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:

    1. Installa l'interfaccia a riga di comando (CLI) di Hugging Face

    2. Accedi al tuo account Hugging Face

      huggingface-cli login
      
    3. 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-python pacchetto.

    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
    1. Scarica l 'app Ollama

    2. Installa il file scaricato

    3. Avvia l'applicazione Ollama installata

      Info

      L'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/.

    4. 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``params predefiniti sono già inclusi nel modello disponibile su Hugging Face Hub.

    1. Assicurati che l'applicazione Ollama sia in esecuzione.

    2. Vai alla pagina del modello desiderato e copia l' URL Ad esempio, https://huggingface.co/Qiskit/Qwen2.5-Coder-14B-Qiskit-GGUF.

    3. 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-Qiskit modello o uno qualsiasi degli altri modelli ufficiali GGUF attualmente hf.co/Qiskit/mistral-small-3.2-24b-qiskit-GGUF raccomandati oppure hf.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.

    1. Crea un Modelfile inserendo 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
      
    2. 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-file
      
      Note

      Questa 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-Qiskit modello 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-Qiskit
    

    Alcuni comandi utili:

    • ollama list - Elenca i modelli presenti sul tuo computer
    • ollama rm Qwen2.5-Coder-14B-Qiskit - Elimina il modello
    • ollama show Qwen2.5-Coder-14B-Qiskit - Mostra le informazioni sul modello
    • ollama stop Qwen2.5-Coder-14B-Qiskit - Arrestare un modello attualmente in esecuzione
    • ollama ps - Elenca i modelli attualmente caricati
  • Un'alternativa all'applicazione Ollama è il llama-cpp-python pacchetto, 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 ".

    1. Installa llama-cpp-python
    2. 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"]
  • Utilizza la llama.cpp libreria

    Un'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.cpp sul tuo computer:

    Una volta installato, è possibile utilizzare llama.cpp per 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-GGUF
    Parametri avanzati

    Con questo llama-cli programma è possibile controllare la generazione del modello tramite opzioni da riga di comando. Ad esempio, è possibile specificare un prompt iniziale "di sistema" utilizzando il -p/--prompt flag. 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 42

    Per 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 (o config.json nelle 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:11434

    In 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) o Ctrl+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-ollama

    Il "jupyter-ai<3" pin ti garantisce l'acquisto di un v2.x Il langchain-ollama pacchetto è 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:

    1. Nella sezione " Modello linguistico ", seleziona Ollama come provider.
    2. Inserisci mistral-small-3.2-24b-qiskit come nome del modello.
    3. Per Ollama non è necessaria alcuna chiave API (lascia il campo vuoto).
    4. Clicca sulla freccia indietro per iniziare a chattare.
    3. Utilizza il comando magico %%ai

    Questa %%ai funzionalità ti permette di interrogare il modello direttamente nelle celle del notebook.

    %load_ext jupyter_ai_magics

    Quindi in una cella:

    %%ai ollama:mistral-small-3.2-24b-qiskit
    Write a function that implements Grover's algorithm using Qiskit
    4. 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 | bash
    2. Configurare il modello Qiskit

    Crea un opencode.json file nella directory principale del progetto (o ~/.config/opencode/opencode.json per 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 OpenCode nella directory del tuo progetto:

    opencode

    All'interno di TUI, esegui il /models comando 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 :

  1. Qiskit/mistral-small-3.2-24b-qiskit - Pubblicato nell'ottobre 2025
  2. Qiskit/Qwen2.5-Coder-14B-Qiskit - Pubblicato nel giugno 2025
  3. qiskit/granite-3.3-8b-qiskit - Pubblicato nel giugno 2025
  4. 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:

  1. mistral-small-3.2-24b-qiskit-GGUF – Pubblicato nell'ottobre 2025;
    addestrato con dati Qiskit fino alla versione 2.1

  2. Qiskit/Qwen2.5-Coder-14B-Qiskit-GGUF – Pubblicato nel giugno 2025
    ; addestrato con dati Qiskit fino alla versione 2.0

  3. qiskit/granite-3.3-8b-qiskit-GGUF – Pubblicato nel giugno 2025;
    addestrato con dati Qiskit fino alla versione 2.0

  4. 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-HardQiskitHumanEvalHumanEvalASDivMathQASciQMBPPIFEvalCrowsPairs (inglese)TruthfulQA (account MC1 )  
mistral-small-3.2-24b-qiskit32.4547.0277.493.7749.6897.5064.0048.4467.0839.41Gennaio 20262.2
Qwen2.5-Coder-14B-Qiskit25.1749.0191.464.2153.9097.0077.6049.6465.1837.82Giugno 20252.0
granite-3.3-8b-qiskit14.5727.1562.800.4838.6693.3052.4059.7159.7539.05Giugno 20252.0
granite-3.2-8b-qiskit9.9324.5057.320.0941.4196.3051.8060.7966.7940.51Giugno 20252.0
granite-8b-qiskit-rc-0.1015.8938.4159.76Febbraio 20251.3
granite-8b-qiskit17.8844.3753.66Novembre 20241.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:

  1. qiskit/granite-8b-qiskit-rc-0.10 - Pubblicato nel febbraio 2025 (versione obsoleta)
  2. 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},
}
Questa pagina è stata utile?
Segnala un bug, un errore di battitura o richiedi contenuti su GitHub.