Qiskit Aer란? 실제 양자컴퓨터 없이 무료로 양자회로 실행·노이즈 실험하는 방법

Qiskit은 양자회로를 만들고 다루는 개발도구이고, Qiskit Aer는 그 회로를 일반 PC에서 실행하고 노이즈까지 재현하는 시뮬레이터입니다. 이번 글에서는 두 도구의 차이부터 Aer 설치, 첫 회로 실행, 오류 실험까지 직접 따라해봅니다.

Qiskit Aer로 실제 양자컴퓨터 없이 양자회로와 노이즈를 시뮬레이션하는 방법
Qiskit으로 회로를 만들고 Aer에서 이상적인 실행과 노이즈 시뮬레이션을 각각 수행할 수 있습니다.

Qiskit을 설치한 뒤 첫 양자회로를 실행해봤다면 이런 의문이 생길 수 있습니다. “이미 Qiskit으로 회로가 실행되는데 Qiskit Aer는 왜 따로 필요한 걸까?”

Qiskit Aer는 양자컴퓨터 하드웨어가 없어도 일반 PC에서 양자회로를 실행할 수 있도록 만든 고성능 오픈소스 시뮬레이터입니다. 단순히 이상적인 양자회로를 실행하는 것뿐 아니라 실제 양자컴퓨터에서 발생할 수 있는 측정오류, 게이트 오류, T1·T2 완화와 같은 노이즈를 모델링할 수 있다는 점이 핵심입니다.

이번 글에서는 Qiskit과 Qiskit Aer의 차이를 먼저 확인하고, Windows에서 Qiskit Aer를 설치한 뒤 Bell 상태 회로를 실행해보겠습니다. 이후 같은 회로에 의도적으로 측정오류를 추가해 이상적인 시뮬레이션과 노이즈 시뮬레이션의 차이도 직접 확인합니다.

이번 글에서 직접 해볼 것

  • Qiskit Aer가 어떤 도구인지 확인하기
  • Qiskit과 Qiskit Aer의 역할 구분하기
  • 공식 다운로드·설치 페이지 확인하기
  • 기존 Qiskit 가상환경에 Aer 추가하기
  • Aer 설치 버전 확인하기
  • AerSimulator로 Bell 상태 실행하기
  • 1,024번 측정 결과 확인하기
  • 10% 측정오류를 직접 추가하기
  • 이상적인 결과와 노이즈 결과 비교하기
  • 기존 T1·노이즈 실험으로 연결하기

Qiskit Aer란?

Qiskit Aer는 Qiskit으로 작성한 양자회로를 일반 컴퓨터에서 시뮬레이션하기 위한 오픈소스 패키지입니다.

여기서 중요한 점은 실제 양자컴퓨터가 PC 안에서 작동하는 것은 아니라는 것입니다. CPU나 GPU 같은 고전 컴퓨터의 계산자원을 이용해 양자상태와 양자회로의 동작을 수학적으로 계산합니다.

따라서 실제 QPU를 사용하기 전에 회로가 의도한 대로 만들어졌는지 확인하거나, 오류가 없는 이상적인 결과와 노이즈가 포함된 결과를 비교하는 용도로 유용합니다.

항목Qiskit Aer
종류오픈소스 양자회로 시뮬레이터
실행 장비일반 PC의 CPU 또는 지원환경의 GPU
실제 QPU 필요필요 없음
인터넷 연결설치 후 로컬 실행은 필수 아님
이상적인 회로 실행가능
노이즈 추가가능
측정 오류 실험가능
T1·T2 오류 모델가능
실제 하드웨어 대체불가능

Qiskit과 Qiskit Aer는 무엇이 다를까?

앞선 글에서는 Qiskit의 StatevectorSampler를 이용해 PC에서 첫 양자회로를 실행했습니다. 그렇다면 Aer가 없어도 시뮬레이션이 가능한데 굳이 설치할 이유가 있을까요?

가장 쉽게 구분하면 Qiskit은 양자회로를 만들고 다루는 개발도구이고, Qiskit Aer는 그 회로를 다양한 방식으로 시뮬레이션하고 노이즈를 넣어 실험하는 전문 실행환경입니다.

도구주요 역할사용 예
Qiskit양자회로 생성·변환·기본 실행H, X, CX 게이트로 회로 구성
StatevectorSampler이상적인 로컬 회로 실행첫 양자회로 확인
Qiskit Aer고성능 시뮬레이션많은 shots 반복실행
Aer NoiseModel오류와 노이즈 재현측정오류·게이트오류·T1/T2
실제 QPU실제 물리적 큐비트 실행IBM Quantum 하드웨어 실험

어떤 상황에서 Qiskit Aer를 쓰면 좋을까?

  • 실제 양자컴퓨터를 사용하기 전에 회로를 검증하고 싶을 때
  • 수천·수만 번 반복측정을 PC에서 빠르게 해보고 싶을 때
  • 이상적인 양자회로의 기준 결과가 필요할 때
  • 실제 QPU 결과와 시뮬레이터 결과를 비교하고 싶을 때
  • 측정오류와 게이트오류를 직접 만들어보고 싶을 때
  • T1 에너지 완화와 T2 위상감쇠를 실험하고 싶을 때
  • NoiseModel을 이용한 오류·노이즈 연구를 하고 싶을 때

Qiskit Aer는 어디에서 다운로드할까?

Qiskit Aer 역시 일반 Windows 프로그램처럼 exe 설치파일을 다운로드하는 방식이 아닙니다. Python 패키지 형태로 배포되기 때문에 Qiskit을 설치했던 Python 환경에 pip를 이용해 추가합니다.

공식 페이지

2026년 9월 확인 기준 Qiskit Ecosystem에 표시된 Qiskit Aer 최신 릴리스는 0.17.2입니다. 버전은 계속 변경될 수 있으므로 실제 설치 시 PyPI와 공식 문서에서 최신 버전을 확인하는 것이 좋습니다.

Qiskit으로 회로를 만든 뒤 Qiskit Aer에서 이상적 실행과 노이즈 실행으로 나누는 구조
Qiskit으로 회로를 만들고 Aer에서 이상적인 실행과 노이즈 시뮬레이션을 각각 수행할 수 있습니다.

1단계: 기존 Qiskit 작업폴더로 이동하기

앞선 Windows Qiskit 설치 글에서 만든 작업폴더를 그대로 사용하겠습니다. 파일 탐색기에서 qiskit-practice 폴더를 열고 주소 표시줄에 powershell을 입력한 뒤 Enter를 누르세요. 열린 창에서 아래 명령으로 현재 경로를 확인합니다. 폴더 위치는 PC마다 다르므로 C: 드라이브 바로 아래에 있다고 가정하지 않습니다.

(이전글) Qiskit이란? 무료로 설치해서 첫 양자회로 실행하기

pwd
dir -Force

2단계: 가상환경 활성화하기

Qiskit을 설치했던 같은 가상환경에 Qiskit Aer를 추가하는 것이 좋습니다.

.\.venv\Scripts\Activate.ps1

정상적으로 활성화되었다면 PowerShell 앞부분에 (.venv)가 표시됩니다. 아래 경로 부분은 실제 작업폴더 위치에 따라 달라집니다.

(.venv) PS C:\qiskit-practice>

PowerShell 실행정책 때문에 활성화가 되지 않는다면 가상환경 내부의 Python을 직접 지정해도 됩니다.

.\.venv\Scripts\python.exe --version

3단계: Qiskit Aer 설치하기

가상환경을 활성화한 상태라면 다음 명령 하나로 설치할 수 있습니다.

python -m pip install qiskit-aer

가상환경을 활성화하지 않았다면 다음처럼 가상환경의 Python을 직접 사용할 수 있습니다.

.\.venv\Scripts\python.exe -m pip install qiskit-aer

pip는 운영체제와 Python 버전에 맞는 Qiskit Aer 패키지와 필요한 의존성을 자동으로 설치합니다.

Windows 가상환경에서 qiskit-aer를 설치하고 버전을 확인하는 순서
기존 Qiskit 가상환경에서 qiskit-aer 패키지를 추가하면 바로 AerSimulator를 사용할 수 있습니다.

4단계: Qiskit Aer 설치 확인하기

설치가 끝났다면 아래 명령으로 import가 정상적으로 되는지 확인합니다.

python -c "import qiskit_aer; print(qiskit_aer.__version__)"

버전 번호가 출력되면 설치가 완료된 것입니다.

패키지 정보를 자세히 확인하려면 다음 명령을 사용할 수 있습니다.

python -m pip show qiskit-aer

5단계: AerSimulator가 제공하는 실행방법 확인하기

Qiskit Aer는 하나의 단순한 시뮬레이션 방식만 제공하는 것이 아닙니다. 설치환경에서 사용할 수 있는 시뮬레이션 방법과 장치를 직접 확인할 수 있습니다.

from qiskit_aer import AerSimulator

print("사용 가능한 방식:")
print(AerSimulator().available_methods())

print("사용 가능한 장치:")
print(AerSimulator().available_devices())

환경에 따라 statevector, density_matrix, stabilizer, matrix_product_state 등 여러 시뮬레이션 방법이 표시될 수 있습니다.

6단계: 첫 AerSimulator 회로 만들기

이번에는 두 큐비트가 서로 연관된 Bell 상태를 만들어보겠습니다. 이상적인 Bell 상태에서는 측정결과가 00 또는 11로 나타납니다.

메모장이나 VS Code에서 다음 코드를 작성합니다.

from qiskit import QuantumCircuit, transpile
from qiskit_aer import AerSimulator

# 2큐비트 회로
qc = QuantumCircuit(2)

# 첫 번째 큐비트를 중첩상태로
qc.h(0)

# 두 큐비트를 얽힘 상태로
qc.cx(0, 1)

# 전체 측정
qc.measure_all()

# Qiskit Aer 시뮬레이터
simulator = AerSimulator()

# 시뮬레이터에 맞게 회로 변환
compiled_circuit = transpile(qc, simulator)

# 1,024회 실행
result = simulator.run(
    compiled_circuit,
    shots=1024,
    seed_simulator=42
).result()

counts = result.get_counts()

print(qc.draw())
print(counts)

파일 이름은 다음과 같이 저장합니다.

aer_first_simulation.py

7단계: AerSimulator 실행하기

앞에서 활성화한 PowerShell 창을 그대로 사용합니다. 새 창을 열었다면 1~2단계대로 파일이 저장된 qiskit-practice 폴더를 열고 가상환경을 다시 활성화하세요.

파일이 있는지 확인합니다.

dir

목록에 aer_first_simulation.py가 있다면 실행합니다.

python .\aer_first_simulation.py

이상적인 Bell 상태에서는 00과 11만 나타나는 것이 정상입니다.

출력 사전에서 00과 11 옆의 정수는 각 결과가 측정된 횟수입니다. 두 횟수의 합은 1,024이며, 각각 정확히 512회일 필요는 없습니다.

정확한 측정횟수보다 중요한 것은 01과 10이 나타나지 않고 00과 11이 비슷한 비율로 측정되는 구조입니다.

왜 00과 11만 나올까?

첫 번째 큐비트에 H 게이트를 적용하면 0과 1의 중첩상태가 만들어집니다. 이어서 CNOT 게이트를 적용하면 두 큐비트가 서로 연관된 Bell 상태를 만들 수 있습니다.

|00> → H → CX → (|00> + |11>) / √2

따라서 측정하면 00 또는 11 가운데 하나가 나타납니다. 이상적인 시뮬레이터에서는 01과 10이 발생하지 않습니다.

Aer가 중요한 이유: 노이즈를 직접 넣어볼 수 있다

지금까지의 결과만 본다면 일반적인 이상적 시뮬레이터와 크게 다르게 느껴지지 않을 수 있습니다. Qiskit Aer의 장점이 본격적으로 드러나는 부분은 노이즈 모델입니다.

이번에는 측정 결과가 10% 확률로 잘못 기록되는 간단한 ReadoutError를 만들어 같은 회로를 다시 실행해보겠습니다.

8단계: 측정오류 10% 직접 추가하기

from qiskit import QuantumCircuit, transpile
from qiskit_aer import AerSimulator
from qiskit_aer.noise import NoiseModel, ReadoutError

# Bell 상태 회로
qc = QuantumCircuit(2)
qc.h(0)
qc.cx(0, 1)
qc.measure_all()

# -----------------------------
# 측정 오류 모델
# -----------------------------

# 실제 0 → 90%는 0, 10%는 1로 잘못 측정
# 실제 1 → 90%는 1, 10%는 0으로 잘못 측정
readout_error = ReadoutError([
    [0.9, 0.1],
    [0.1, 0.9]
])

noise_model = NoiseModel()

noise_model.add_all_qubit_readout_error(
    readout_error
)

# 노이즈 시뮬레이터 생성
noisy_simulator = AerSimulator(
    noise_model=noise_model
)

compiled_circuit = transpile(
    qc,
    noisy_simulator
)

result = noisy_simulator.run(
    compiled_circuit,
    shots=1024,
    seed_simulator=42
).result()

counts = result.get_counts()

print(counts)

노이즈를 넣으면 무엇이 달라질까?

이상적인 Bell 상태에서는 00과 11만 관측됐습니다.

이상적인 결과

00
11

하지만 각 큐비트의 측정에 10% 오류를 적용하면 일부 측정에서 비트 하나가 잘못 읽히면서 01 또는 10도 나타날 수 있습니다.

노이즈 적용 후

00
01 ← 오류로 발생 가능
10 ← 오류로 발생 가능
11

이 과정을 통해 실제 양자컴퓨터에서 결과가 이상적인 이론값과 달라질 수 있는 이유를 PC에서도 일부 재현할 수 있습니다.

Qiskit Aer Bell 상태의 이상적 결과와 10퍼센트 측정오류 결과 비교
이상적인 Bell 상태에서는 00·11만 나타나지만 측정오류를 추가하면 01·10도 관측될 수 있습니다.

Qiskit Aer에서 만들 수 있는 오류는 더 많다

ReadoutError는 가장 단순하게 이해하기 좋은 예입니다. Aer의 noise 모듈에는 더 다양한 오류 모델이 있습니다.

기능의미활용
ReadoutError측정값이 잘못 읽히는 오류측정 정확도 실험
pauli_errorPauli X·Y·Z 오류비트·위상 오류 실험
depolarizing_error상태가 무작위로 흐트러지는 오류게이트 노이즈 연구
thermal_relaxation_errorT1·T2에 따른 상태완화큐비트 기억상실 실험
NoiseModel여러 오류를 하나로 구성실제 장치에 가까운 환경 구성

실제 양자컴퓨터와 Aer는 같은 결과를 낼까?

그렇지는 않습니다. Qiskit Aer에서 노이즈를 추가하더라도 실제 QPU의 모든 물리적 현상을 완벽하게 복제하는 것은 아닙니다.

실제 양자컴퓨터에는 큐비트마다 다른 오류율, 시간에 따른 캘리브레이션 변화, 큐비트 간 상호작용, 제어신호 오류와 환경노이즈 등 매우 다양한 요인이 존재합니다.

Aer의 노이즈 시뮬레이션은 이러한 문제를 연구하고 회로의 민감도를 확인하는 강력한 도구지만 실제 하드웨어 실험을 완전히 대체하는 것은 아닙니다.

Qiskit Aer와 실제 QPU는 이렇게 사용하면 편하다

  1. Qiskit으로 회로를 작성합니다.
  2. 이상적인 AerSimulator에서 정상결과를 확인합니다.
  3. NoiseModel을 추가해 오류에 얼마나 민감한지 확인합니다.
  4. 필요하면 실제 장치 특성을 반영한 노이즈 모델을 사용합니다.
  5. 마지막으로 실제 IBM QPU에서 같은 회로를 실행합니다.
  6. 시뮬레이터와 실제 결과 차이를 비교합니다.

AerSimulator 실행 중 자주 만나는 오류

오류가능한 원인확인 방법
No module named qiskit_aerAer 미설치 또는 다른 Python 사용python -m pip show qiskit-aer
qiskit은 되는데 Aer import 실패서로 다른 가상환경 설치where.exe python 확인
Python 파일을 찾지 못함PowerShell 현재 폴더가 다름pwd / dir / cd 확인
오래된 예제코드 오류Qiskit API 버전 차이현재 Aer 공식 문서 확인
GPU 시뮬레이션 안 됨지원 OS·CUDA 환경 문제CPU 기본 실행부터 확인

GPU 버전은 처음부터 설치해야 할까?

일반적인 입문 실습이라면 필요하지 않습니다. CPU 기반 qiskit-aer로 동전 던지기, Bell 상태, 노이즈 실험, T1·T2 실험을 충분히 진행할 수 있습니다.

Qiskit Aer는 GPU 가속 기능도 지원하지만 공식 문서에서는 별도의 GPU 패키지와 CUDA 환경을 요구합니다. 특히 GPU 패키지는 운영체제와 하드웨어 조건을 확인해야 하므로 처음에는 일반 qiskit-aer부터 사용하는 것을 권장합니다.

Qiskit Aer를 설치했다면 이 실험을 해보자

특히 T1 상태 변화 실험에서는 Qiskit Aer의 thermal_relaxation_error를 이용해 시간이 지날수록 |1⟩ 상태가 |0⟩으로 완화되는 현상을 PC에서 직접 시뮬레이션할 수 있습니다.

이번 실습 핵심 정리

  • Qiskit Aer는 실제 QPU 없이 양자회로를 실행하는 오픈소스 시뮬레이터입니다.
  • Qiskit과 별도의 qiskit-aer 패키지로 설치합니다.
  • AerSimulator를 이용해 이상적인 회로를 실행할 수 있습니다.
  • Bell 상태에서는 이상적인 조건에서 00과 11만 나타납니다.
  • NoiseModel을 추가하면 측정오류와 게이트오류 등을 재현할 수 있습니다.
  • ReadoutError를 적용하면 원래 없던 01과 10이 측정될 수 있습니다.
  • T1·T2 노이즈와 실제 장치 근사모델까지 확장할 수 있습니다.
  • 시뮬레이터는 실제 양자컴퓨터를 완전히 대체하지 않습니다.

공식 다운로드 및 참고자료

※ Qiskit과 Qiskit Aer는 각각 업데이트되므로 설치 가능한 버전과 API는 시간이 지나면서 변경될 수 있습니다. 실제 설치와 코드 작성 시 공식 문서의 현재 버전을 함께 확인하는 것이 좋습니다.

Andrew Shin

양자컴퓨팅을 처음 접하는 사람도 이해할 수 있도록 복잡한 개념과 기술을 쉽게 풀어 설명합니다. 기초 원리부터 큐비트, 양자게이트, 하드웨어, 실제 활용 분야와 최신 기술 흐름까지 신뢰할 수 있는 자료를 바탕으로 정리합니다.

문의: jyamee01@gmail.com

댓글 남기기