Qiskit Code Assistant
Qiskit Code Assistant LLM은 새로운 Qiskit 사용자들에게 양자 컴퓨팅을 보다 쉽게 접근할 수 있도록 하고, 기존 사용자들의 코딩 경험을 향상시키는 것을 목표로 해요. Qiskit SDK의 수백만 개의 텍스트 토큰, 수년간의 Qiskit 코드 예제, 그리고 IBM Quantum® 기능을 활용하여 훈련되었어요. Qiskit Code Assistant는 IBM®의 최신 기능과 기능성을 통합한 IBM Granite 및 기타 오픈 소스 모델을 기반으로 LLM이 생성한 제안을 제공함으로써 양자 개발 워크플로우를 지원해요.
- 설치 지침으로 바로 이동하고 싶으신가요? Qiskit Code Assistant 설치 섹션으로 이동하세요.
- 피드백이 있거나 개발팀에 문의하고 싶으시면 Qiskit Slack Workspace 채널 또는 관련 공개 GitHub 저장소를 이용해 주세요.
Qiskit Code Assistant의 대규모 언어 모델(LLM)
코드 제안을 제공하기 위해 Qiskit Code Assistant는 대규모 언어 모델(LLM)을 사용해요. 현재 Qiskit Code Assistant는 Mistral-Small-3.2-24B-Qiskit 모델을 기반으로 구축된 mistral-small-3.2-24b-qiskit 모델을 사용해요. mistral-small-3.2-24b-qiskit 모델은 고품질 Qiskit 데이터, Python 커밋 및 채팅에 대한 확장 사전 훈련과 미세 조정을 통해 Mistral-Small-3.2-24B-Instruct-2506 모델의 Qiskit 코드 생성 능력을 향상시켜요. Mistral AI 모델 패밀리에 대한 자세한 내용은 Mistral AI 문서를 참조하세요. .*-qiskit 모델에 대한 자세한 내용은 Qiskit Code Assistant: Training LLMs for generating Quantum Computing Code를 확인하세요.
Qiskit에 특화된 LLM은 오픈 소스 모델로도 제공돼요. https://huggingface.co/Qiskit 에서 모든 사용 가능한 모델을 확인하세요.
Qiskit HumanEval 및 Qiskit HumanEval Hard 벤치마크
mistral-small-3.2-24b-qiskit 및 기타 모델을 테스트하기 위해, 저희는 Qiskit Advocates 및 전문가들과 협력하여 Qiskit HumanEval(QHE) 및 Qiskit HumanEval Hard(QHE Hard)라는 실행 기반 벤치마크를 만들고 모델에 적용했어요. 이 벤치마크들은 공식 Qiskit 라이브러리를 기반으로 한 여러 도전적인 코드 문제를 포함하는 HumanEval과 유사해요.
벤치마크는 약 150개의 테스트로 구성되어 있으며, 각 테스트는 함수 정의로 시작하고 모델이 해결해야 하는 작업을 자세히 설명하는 독스트링이 뒤따라요. 각 예제에는 생성된 솔루션의 정확성을 평가하기 위한 참조 표준 솔루션과 단위 테스트도 포함되어 있어요. 테스트의 난이도는 기초, 중급, 고급의 세 단계로 나뉘어요. Qiskit HumanEval Hard 벤치마크는 Qiskit HumanEval의 변형이지만, 코드 임포트와 관련된 정보를 제거하여 LLM이 올바른 메서드나 클래스 임포트를 스스로 파악해야 해요. 저희의 테스트와 초기 결과에 따르면, 이 변경으로 인해 LLM에게 데이터셋이 훨씬 더 도전적이 돼요.
Qiskit HumanEval 및 Qiskit HumanEval Hard 데이터셋은 다음 웹사이트에서 확인할 수 있어요: Qiskit HumanEval 및 Qiskit HumanEval. GitHub 저장소에서 이 벤치마크의 개발에 기여할 수 있어요.
Qiskit Code Assistant 설치
로컬 머신에서 Qiskit Code Assistant 모델을 설치, 구성 및 사용하는 방법을 알아봐요.
Hugging Face 웹사이트에서 다운로드
Hugging Face 웹사이트에서 Qiskit Code Assistant 관련 모델을 다운로드하려면 다음 단계를 따르세요:
- Hugging Face에서 원하는 Qiskit 모델 페이지로 이동하세요.
- Files and Versions 탭으로 이동하여 safetensors 또는 GGUF 모델 파일을 다운로드하세요.
Hugging Face CLI를 사용하여 다운로드
Hugging Face CLI를 사용하여 사용 가능한 Qiskit Code Assistant 모델을 다운로드하려면 다음 단계를 따르세요:
-
Hugging Face 계정에 로그인
huggingface-cli login -
이전 목록에서 원하는 모델 다운로드
huggingface-cli download <HF REPO NAME> <MODEL PATH> --local-dir <LOCAL PATH>
Ollama를 통해 로컬에 Qiskit Code Assistant 모델 수동 배포
다운로드한 Qiskit Code Assistant 모델을 배포하고 상호 작용하는 방법은 여러 가지가 있어요. 이 가이드는 Ollama 사용을 다음과 같이 설명해요: Hugging Face Hub 통합 또는 로컬 모델을 사용하는 Ollama 애플리케이션, 또는 llama-cpp-python 패키지를 사용해요.
Ollama 애플리케이션 사용
Ollama 애플리케이션은 LLM을 로컬에서 실행하는 간단한 솔루션을 제공해요. CLI를 통해 전체 설정 프로세스, 모델 관리 및 상호 작용을 상당히 간단하게 만들어 사용하기 쉬워요. 빠른 실험과 기술적인 세부 사항을 적게 다루고 싶은 사용자에게 이상적이에요.
Ollama 설치
-
Ollama 애플리케이션 다운로드
-
다운로드한 파일 설치
-
설치된 Ollama 애플리케이션 실행
정보데스크톱 메뉴 바에 Ollama 아이콘이 나타나면 애플리케이션이 성공적으로 실행 중이에요.
http://localhost:11434/로 이동하여 서비스가 실행 중인지 확인할 수도 있어요. -
터미널에서 Ollama를 사용해 보고 모델 실행을 시작하세요. 예를 들어:
ollama run hf.co/Qiskit/Qwen2.5-Coder-14B-Qiskit
Hugging Face Hub 통합을 사용한 Ollama 설정
Ollama/Hugging Face Hub 통합은 새 modelfile을 만들거나 GGUF 또는 safetensors 파일을 수동으로 다운로드하지 않고도 Hugging Face Hub에 호스팅된 모델과 상호 작용하는 방법을 제공해요. 기본 template 및 params 파일은 이미 Hugging Face Hub의 모델에 포함되어 있어요.
-
Ollama 애플리케이션이 실행 중인지 확인하세요.
-
원하는 모델 페이지로 이동하여 URL을 복사하세요. 예: https://huggingface.co/Qiskit/Qwen2.5-Coder-14B-Qiskit-GGUF
-
터미널에서 다음 명령을 실행하세요:
ollama run hf.co/Qiskit/Qwen2.5-Coder-14B-Qiskit
hf.co/Qiskit/Qwen2.5-Coder-14B-Qiskit 모델 또는 현재 권장되는 다른 GGUF 공식 모델인 hf.co/Qiskit/mistral-small-3.2-24b-qiskit-GGUF 또는 hf.co/Qiskit/granite-3.3-8b-qiskit-GGUF를 사용할 수 있어요.
수동으로 다운로드한 Qiskit Code Assistant GGUF 모델로 Ollama 설정
https://huggingface.co/Qiskit/Qwen2.5-Coder-14B-Qiskit-GGUF와 같은 GGUF 모델을 수동으로 다운로드했고 다른 템플릿과 매개변수로 실험하고 싶다면, 다음 단계에 따라 로컬 Ollama 애플리케이션에 로드할 수 있어요.
-
다음 내용을 입력하여
Modelfile을 만들고<PATH-TO-GGUF-FILE>을 다운로드한 모델의 실제 경로로 업데이트하세요.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 -
Modelfile을 기반으로 사용자 정의 모델 인스턴스를 만들려면 다음 명령을 실행하세요.ollama create Qwen2.5-Coder-14B-Qiskit -f ./path-to-model-file참고이 과정은 Ollama가 모델 파일을 읽고, 모델 인스턴스를 초기화하고, 제공된 사양에 따라 구성하는 데 시간이 걸릴 수 있어요.
Ollama에서 수동으로 다운로드한 Qiskit Code Assistant 모델 실행
Ollama에서 Qwen2.5-Coder-14B-Qiskit 모델을 설정한 후, 다음 명령을 실행하여 모델을 시작하고 터미널에서 상호 작용하세요(채팅 모드).
ollama run Qwen2.5-Coder-14B-Qiskit
유용한 명령어:
ollama list- 컴퓨터의 모델 목록 표시ollama rm Qwen2.5-Coder-14B-Qiskit- 모델 삭제ollama show Qwen2.5-Coder-14B-Qiskit- 모델 정보 표시ollama stop Qwen2.5-Coder-14B-Qiskit- 현재 실행 중인 모델 중지ollama ps- 현재 로드된 모델 목록 표시
llama-cpp-python 패키지를 통해 로컬에 Qiskit Code Assistant 모델 수동 배포
Ollama 애플리케이션의 대안으로 llama-cpp-python 패키지가 있으며, 이는 llama.cpp의 Python 바인딩이에요. GGUF 모델을 로컬에서 실행하는 데 더 많은 제어와 유연성을 제공하며, 로컬 모델을 워크플로우 및 Python 애플리케이션에 통합하려는 사용자에게 이상적이에요.
llama-cpp-python설치llama_cpp를 사용하여 애플리케이션 내에서 모델과 상호 작용하세요. 예를 들어:
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"]
추론을 사용자 정의하기 위해 모델에 텍스트 생성 매개변수를 추가할 수도 있어요:
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"]
llama.cpp를 통해 로컬에 Qiskit Code Assistant 모델 수동 배포
llama.cpp 라이브러리 사용
또 다른 대안은 llama.cpp를 사용하는 것으로, 최소한의 설정으로 CPU에서 LLM 추론을 수행하는 오픈 소스 라이브러리예요.
모델 실행에 대한 저수준 제어를 제공하며, 일반적으로 로컬 GGUF 모델 파일을 가리키는 명령줄에서 실행돼요.
llama.cpp를 머신에 설치하는 방법에는 여러 가지가 있어요:
- brew, nix, 또는 winget을 사용하여 llama.cpp 설치
- Docker로 실행:
llama.cpp팀의 Docker 문서 참조 - 릴리스 페이지에서 사전 빌드된 바이너리 다운로드
- 이 저장소를 클론하여 소스에서 빌드
설치 후, llama.cpp를 사용하여 다음과 같이 대화 모드에서 GGUF 모델과 상호 작용할 수 있어요:
# 로컬 모델 파일 사용
llama-cli -m my_model.gguf -cnv
# 또는 Hugging Face에서 직접 모델 다운로드 및 실행
llama-cli -hf Qiskit/Qwen2.5-Coder-14B-Qiskit-GGUF -cnv
다음과 같이 모델의 OpenAI 호환 API 서버를 시작할 수도 있어요:
llama-server -hf Qiskit/Qwen2.5-Coder-14B-Qiskit-GGUF
고급 매개변수
llama-cli 프로그램을 사용하면 명령줄 옵션을 통해 모델 생성을 제어할 수 있어요. 예를 들어, -p/--prompt 플래그를 사용하여 초기 “시스템” 프롬프트를 제공할 수 있어요. 대화 모드(-cnv)에서 이 초기 프롬프트는 시스템 메시지로 작동해요. 그렇지 않으면 원하는 지시사항을 프롬프트 텍스트 앞에 추가하면 돼요. 샘플링 매개변수도 조정할 수 있어요 - 예: 온도(--temp), 상위 k(--top-k), 상위 p(--top-p), 반복 페널티(--repeat-penalty), 사용할 시드(--seed). 다음은 이러한 옵션을 사용하는 예시 호출이에요:
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
Qiskit 모델의 올바른 기능을 보장하기 위해, HF GGUF 저장소에서 제공하는 시스템 프롬프트를 사용하는 것을 권장해요: mistral-small-3.2-24b-qiskit-GGUF, Qwen2.5-Coder-14B-Qiskit-GGUF, granite-3.3-8b-qiskit-GGUF, 및 granite-3.2-8b-qiskit-GGUF의 시스템 프롬프트.
Continue (VS Code) 수동 연결
Continue (VS Code)
1. 확장 프로그램 설치
VS Code를 열고, 확장 프로그램(Cmd+Shift+X)으로 이동하여 Continue를 검색한 후 설치하세요.
2. 설정 열기
사이드바에서 Continue 아이콘을 클릭한 후 기어 아이콘을 클릭하거나, 명령 팔레트(Cmd+Shift+P)를 열고 Continue: Open Config File을 실행하세요.
그러면 ~/.continue/config.yaml(또는 구버전의 경우 config.json)이 열려요.
3. 모델 구성
config.yaml에 다음을 추가하세요:
models:
- name: Qiskit Code Assistant
provider: ollama
model: mistral-small-3.2-24b-qiskit
apiBase: http://localhost:11434
이렇게 하면 Qiskit 모델이 채팅 패널(사이드바 대화, 인라인 Q&A)과 인라인 편집 명령에서 사용 가능해져요.
4. 테스트
- 채팅: 사이드바에서 Continue 패널을 열고 질문을 해보세요 (예: "Qiskit에서 매개변수화된 회로를 어떻게 만드나요?")
- 인라인 편집: 코드 블록을 선택하고
Cmd+I(Mac) 또는Ctrl+I(Linux/Windows)를 누르세요
Jupyter AI (JupyterLab) 수동 연결
Jupyter AI (JupyterLab)
참고: 이 지침은 Jupyter AI v2.x를 다뤄요.
1. Jupyter AI 및 Ollama 공급자 설치
pip install "jupyter-ai<3" langchain-ollama
"jupyter-ai<3" 핀은 v2.x를 얻도록 보장해요. langchain-ollama 패키지는 Jupyter AI가 Ollama를 공급자로 감지하는 데 필요해요. 이 패키지 없이는 Ollama가 설정 패널에 표시되지 않아요.
그런 다음 JupyterLab을 재시작하세요.
2. 채팅 모델 구성
JupyterLab을 열고 왼쪽 사이드바에서 채팅 아이콘을 클릭하세요. 설정 패널에서:
- Language model 아래에서 공급자로 Ollama를 선택하세요.
- 모델 이름으로
mistral-small-3.2-24b-qiskit을 입력하세요. - Ollama에는 API 키가 필요하지 않아요(필드를 비워 두세요).
- 뒤로 화살표를 클릭하여 채팅을 시작하세요.
3. %%ai 매직 명령어 사용
%%ai 매직은 노트북 셀에서 직접 모델에 쿼리할 수 있게 해줘요.
%load_ext jupyter_ai_magics
그런 다음 셀에서:
%%ai ollama:mistral-small-3.2-24b-qiskit
Write a function that implements Grover's algorithm using Qiskit
4. 사용자 정의 Ollama 호스트 (선택 사항)
기본적으로 Jupyter AI는 http://127.0.0.1:11434에 연결돼요. Ollama 서버가 다른 주소나 포트에서 실행 중인 경우:
채팅 UI에서: AI 설정 패널의 "Base API URL" 필드를 설정하세요.
OpenCode (터미널) 수동 연결
OpenCode (터미널)
1. OpenCode 설치
curl -fsSL https://opencode.ai/install | bash
2. Qiskit 모델 구성
프로젝트 루트에 opencode.json 파일을 만드세요(또는 전역 구성의 경우 ~/.config/opencode/opencode.json):
{
"$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. 모델 선택
프로젝트 디렉토리에서 OpenCode를 시작하세요:
opencode
TUI 내에서 /models 명령을 실행하고 목록에서 Qiskit Code Assistant를 선택하세요.
4. 테스트
채팅에서 직접 질문해 보세요. 예: "Define a Bell circuit and run it using QiskitRuntimeService"
사용 가능한 모델
현재 모델
Qiskit Code Assistant와 함께 사용하도록 최신 권장되는 모델들이에요:
- Qiskit/mistral-small-3.2-24b-qiskit - 2025년 10월 출시
- Qiskit/Qwen2.5-Coder-14B-Qiskit - 2025년 6월 출시
- qiskit/granite-3.3-8b-qiskit - 2025년 6월 출시
- qiskit/granite-3.2-8b-qiskit - 2025년 6월 출시
GGUF 모델 (개인 환경/노트북에 권장)
GGUF 형식 모델은 로컬 사용에 최적화되어 있으며 더 적은 컴퓨팅 리소스를 필요로 해요:
-
mistral-small-3.2-24b-qiskit-GGUF – 2025년 10월 출시
Qiskit 버전 2.1까지의 데이터로 훈련됨 -
Qiskit/Qwen2.5-Coder-14B-Qiskit-GGUF – 2025년 6월 출시
Qiskit 버전 2.0까지의 데이터로 훈련됨 -
qiskit/granite-3.3-8b-qiskit-GGUF – 2025년 6월 출시
Qiskit 버전 2.0까지의 데이터로 훈련됨 -
qiskit/granite-3.2-8b-qiskit-GGUF – 2025년 6월 출시
Qiskit 버전 2.0까지의 데이터로 훈련됨
오픈 소스 Qiskit Code Assistant 모델은 safetensors 또는 GGUF 파일 형식으로 제공되며, 아래에서 설명하는 것처럼 Hugging Face에서 다운로드할 수 있어요.
훈련에 사용된 Qiskit 버전
| Model | Benchmark Metrics | Release date | Trained on Qiskit version | |||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|
| 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 | January 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 | June 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 | June 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 | June 2025 | 2.0 |
| granite-8b-qiskit-rc-0.10 | 15.89 | 38.41 | 59.76 | — | — | — | — | — | — | — | February 2025 | 1.3 |
| granite-8b-qiskit | 17.88 | 44.37 | 53.66 | — | — | — | — | — | — | — | November 2024 | 1.2 |
참고: 벤치마크 표에 나열된 모든 모델은 Hugging Face 모델에 정의된 각각의 시스템 프롬프트를 사용하여 평가되었어요.
더 이상 지원되지 않는 모델
이 모델들은 더 이상 적극적으로 유지 관리되지 않지만 계속 사용할 수 있어요:
- qiskit/granite-8b-qiskit-rc-0.10 - 2025년 2월 출시 (더 이상 지원되지 않음)
- qiskit/granite-8b-qiskit - 2024년 11월 출시 (더 이상 지원되지 않음)
추가 정보 및 인용
Qiskit Code Assistant, Qiskit HumanEval 또는 Qiskit HumanEval Hard 벤치마크에 대해 더 알아보고, 과학 출판물에서 인용하려면 다음 권장 인용 자료를 참조하세요:
@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},
}