조금전(20년 3월) Tensorflow Quantum이 발표되었다. IBM나 Azure, Amazon이 여러가지 공개를 하고 있던 터라서 Google쪽도 유사 활동을 하지 않을까 싶었는데, Tensorflow Quantum이라는 S/W 라이브러리 배포 형태로 발표를 했다.
Tensorflow Quantum이라는 이름으로 Tensorflow와 같이 쓸 수 있는 library와, 타사에서 제공하는 양자 회로를 제작하고 실행할 수 있는 Cirq라는 오픈소스 프로젝트를 동시에 소개하고 있는게 주요 내용이다.
우선 먼저 Cirq를 소개해보자. 문건 상으로는 아직 정식 Google Product이 아니라고 소개하고 있고 버전도 알파이다. 프로젝트 자체는 별로 특이할 것 없이 양자 회로를 코딩하고 시뮬레이션할 수 있는 Python 라이브러리다. 구글이 만드는 Bristlecone(72 qubit, 기존 54 qubit Sycamore의 다음버전인가보다)이라는 양자컴퓨터 상에서 향후에 작동을 확인할 수 있다고 이야기하고 있다. Tensorflow 를 CPU/GPU/TPU에서 돌릴 수 있듯이 Cirq는 이 Bristlecone이라는 장치에서 구동할 수 있다는 이야기다. 물론 예제 코딩을 보면 PC에서 시뮬레이션 기능도 포함되어 있다.
아래 해당 github( https://github.com/quantumlib/Cirq )을 방문해보면 앞서 IBM/Azure에서 소개해한 양자게이트 S/W Framework들과 다르지 않다는 것을 알 수 있다. 큐빗을 선언하고 회로를 구성하고 시뮬레이션하면 결과를 알려준다. 회로를 프린트하는 기능도 있다. (스크린샷 맨 하단) 이 양자 게이트에 대해서 궁금하신 분들은 IBM 개발툴 설명 ( https://infoengineer.tistory.com/22 ) 을 읽어보기를 추천한다. 각 양자 게이트의 세부와 함께 제일 잘 설명되어 있다.
나중에는 simulator가 아니라, bristlecone(72qubit quantum computer)을 통해 동작하게 되겠다. 구글이 공개한 사진이라도 봐두자.
그러면 Tensorflow Quantum은 무엇일까? 구글이 이야기하는 NISQ(Noisy Intermediate-Scale Quantum)라는 것은, 어차피 양자 컴퓨터의 개별 qubit이 에러때문에 과거에 기대했던 엄청난 고성능을 기대하기 어려운 상황에 대한 대안이다. 즉 이러한 에러(결잃음,decoherence)에도 불구하고 이를 활용할 수 있도록 구성해야 한다고 주장하고 있다. 이것을 NISQ Computing era라고 한다. 이를 위해서 NISQ Computing을 머신러닝과 접목할 수 있게 만든 것이 Tensorflow Quantum이다(머신러닝 외에도 몇가지 추가 응용 분야가 나열되어 있긴 하다). 물론 GPU/TPU도 같이 써야 한다. 그러니 Hybrid quantum classical machine learning library라고 설명한다.
NISQ 상황하에서 이런 S/W Framework을 계속 발전시켜야 실제 양자 컴퓨터의 혜택을 극대화할 수 있다는 말하고 있다. 아래 비디오의 6분 부터이다.
https://www.youtube.com/watch?v=16ZfkPRVf2w
양자컴퓨터가 지향하는 바는 오류없는(결잃음) 양자 컴퓨터인데, 아직은 멀었고 이런 결잃음이 약간 있는 양자 컴퓨터로도 뭔가 할 수 있지 않느냐에 대한 가이드로 이 Cirq와 Tensorflow Quantum을 내놓았다는 이야기다.
아래가 TensorFlow Quantum의 공식 페이지이고, Tensorflow Quantum이 이러한 NISQ시대(오류 보정없는 적당한 qubit 규모의 양자 컴퓨터)의 하이브리드 머신러닝 라이브러리임을 나타내고 있다.
동일 페이지 다른 화면의 NISQ 기반의 양자 머신러닝 개념을 설명한 페이지이다.
좀 아쉽지만 Tutorial상에 머신 러닝 예시들이 존재하는데 더 확인이 필요하다.
(MNIST 문제중에 3과 6만 발췌하여 저해상도로 만들어서 위 양자 하이브리드 머신러닝을 돌려주는 예시가 존재한다)
일단 구글도 Tensorflow와 Cirq를 통해 양자컴퓨팅 관련 S/W Framework을 시작했다고 볼 수 있겠다. 타 사업자대비 조금 다른 점은 단순히 양자게이트에 의한 회로 뿐 아니라, 머신러닝을 결합해서 우선 시작했다는 점이겠다.
다만 양자컴퓨터와 머신러닝의 결합으로 정말 Noise가 존재하는 퀀텀 컴퓨터를 잘 활용할 수 있게 될지는 그 이론적인 배경이나, 실제 그러한 것들이 가능한지 좀더 지켜봐야하겠다. 사실은 IBM이 제공하는 양자컴퓨터 들도 이 노이즈 문제가 있다(error correction은 하지 않음, 대개 절대온도 0도 수준의 냉각과 셋팅 후 수십 마이크로 초가 지나면 노이즈가 심해지는 상태로 흔히들 이야기한다) 이러한 상황에서 좀더 이러한 양자컴퓨터의 가치를 끌어올리려는 노력이 아닌가 싶기도 하다.
제시된 MNIST예제나 Tensorflow Quantum이 지향하는 바는 앞단에 데이터를 Quantum State Set(Quantum Data)으로 변환해서 집어넣은 후에, 후 단의 고전적인 머신러닝을 통해 Quantum State Set들이 Quantum Gate들을 통과한 후의 결과를 보정하는 듯한 구조로 되어 있는데, 실제로 이러한 앞부분이 얼마나 효과적으로 작동할 수 있게 개선할 수 있는지는 아직 필자로서는 이해가 부족하다.
'양자컴퓨터' 카테고리의 다른 글
양자 컴퓨터를 일반인도 이해하기 위한 간단한 설명과 한국어 동영상 소개 (0) | 2024.01.20 |
---|---|
양자컴퓨터? 양자로 대체 어떻게 빠른 계산을 하는 것인가요? (2) | 2020.12.10 |
양자컴퓨터에서 코딩이란 무엇인가? (MS Azure Quantum 사례) (0) | 2020.02.01 |
양자컴퓨터에서 코딩이란 무엇인가? (IBM사례) (0) | 2020.01.05 |
양자 컴퓨터 과연 지금 나와있을까? (0) | 2019.12.01 |