
「고양이가 물고기를 먹는다」를 양자 회로로 변환하기 ── QNLP(양자 자연 언어 처리) 입문 ~ Transformer와는 다른 계통의
요약
QNLP(양자 자연 언어 처리)의 개념과 lambeq 라이브러리를 활용한 문장의 양자 회로 변환 원리를 설명합니다. 통계적 학습 기반의 LLM과 달리 문법 구조를 계산의 골격으로 사용하는 새로운 언어 이해 접근 방식을 다룹니다.
핵심 포인트
- 문법 구조를 양자 회로로 직접 변환하는 QNLP 방식 소개
- LLM과 달리 의미 구성의 논리적 흐름을 추적 가능한 설명 가능성 제공
- 양자 중첩을 이용한 고차원 데이터의 효율적 처리 가능성
- 의료, 금융, 바이오 등 판단 근거가 중요한 분야에서의 활용 기대
이 기사는,
가상의 대학인 「권봉(けんぽう) 공과대학교」의 연구실을 무대로 한 하나의 대화편입니다. 등장인물은 자연 언어 처리(NLP)에 흥미를 갖기 시작한
학부생과, 범주론(Category Theory)·양자 계산(Quantum Computing)을 전공하는 젊은 전임 강사 두 명입니다. 인물과 대학은 허구이지만, 다루는 내용(이론·라이브러리·실험)은 모두 실재하는 연구와 기술에 기반하고 있습니다. 출처는 기사 끝에 정리하였습니다.
상정 독자는,
고등학교 수학은 많이 잊어버렸지만, 매일 Python 코드를 읽고 쓰는 엔지니어·데이터 사이언티스트·머신러닝 엔지니어·AI 리서처 여러분입니다. 어려운 용어는 처음 등장할 때 쉽게 풀어서 설명하겠습니다. 수식이 나와도 그냥 건너뛰어도 괜찮도록 작성했습니다.
**QNLP(양자 자연 언어 처리, Quantum Natural Language Processing)**란, 「고양이가 물고기를 먹는다」와 같은 문장을 양자 회로(Quantum Circuit)로 변환하여, 양자 컴퓨터 위에서 의미를 계산하는 기술입니다.
lambeq
(람벡)이라는 Python 라이브러리를 통해 실제로 문장을 양자 회로로 변환할 수 있습니다.
Transformer나 LLM이 「대량의 텍스트로부터 의미를 통계적으로 학습하는」 것에 반해, QNLP는 「문법 구조 그 자체를 계산의 골격으로 이용합니다」
── 같은 「언어를 다루는 것」이라도 발상이 완전히 다른 계보입니다.
문법의 배선도와 양자 회로가 동일한 수학적 구조를 가진다는 점을 이용하여, 문장을 그대로 양자 회로로 옮깁니다.
이는 「양자판 Transformer」도 「LLM의 대체재」도 아닌, 또 다른 언어 이해 접근 방식입니다.
- 문장의 분류(예: 해당 문장이 「요리 이야기」인지 「IT 이야기」인지 판정하는 것)
- 감성 분석(긍정적인지 부정적인지)
- 간단한 태스크에서는, 기존의 고전적 방법론과 대등한 결과가 이미 소규모 양자 하드웨어 상에서 나타나고 있습니다.
기대되는 실용적 이점 ── 산업계가 주목하는 「두 가지 축」
-
의미가 「어떤 단어로부터 문법에 따라 어떻게 구성되었는가」가 배선도(도표)로서 남는다.
-
LLM의 「왜 그런 답이 나왔는지 알 수 없는」 블랙박스성과 대조적으로, 의미 구성의 논리적 흐름을 도표로 추적할 수 있다. 의료·신약 개발·법무·금융 등 「판단의 근거」가 요구되는 하이 스테이크(High-stakes) 분야에서 가치가 기대된다 (실제로 제약 대기업 Merck가 평가 중).
-
범주론적 양자역학의 창시자인 Bob Coecke 등은 이를 **「합성적 해석 가능성(compositional interpretability)」**이라 부르며, 설명 가능한 AI(XAI)의 이론적 틀로까지 일반화하고 있다 (2024).
-
양자 비트(Qubit)는 「중첩(Superposition)」을 통해, 1개의 양자 비트로 여러 상태를 동시에 유지할 수 있으며, $n$개의 양자 비트로 $2^n$ 차원이라는 지수적으로 큰 공간을 다룰 수 있다.
-
문장의 의미와 같은 고차원 데이터를 적은 수의 양자 비트로 표현할 가능성이 있어, 향후 양자 하드웨어가 발전하면 대용량 데이터의 고속 처리에서 우위를 점할 수 있을 것으로 기대된다.
-
예를 들어 BBC는 1,500만 점 이상의 거대 아카이브(고전 컴퓨팅으로는 검색이 너무 무거운 규모) 검색에의 응용을 UCL·Quantinuum과 함께 탐구하고 있다.
-
응용 분야로는 그 외에도 **대화·텍스트 마이닝·번역·음성 합성·언어 생성·바이오인포매틱스(Bioinformatics)**가 꼽히고 있다.
-
나아가 최근에는, 「계산을 틀리지 않고 버그가 숨어들지 않는 AI」를 형식 검증(Formal Verification)·정리 증명(Theorem Proving)으로 보증하고 싶다는 사회 인프라·자율 주행·드론 등 안전이 최우선인 분야의 니즈와, QNLP의 설명 가능성·합성적 구조가 향후 연결될 수 있다는 논의도 시작되고 있다 (상세 내용은 본문 「제9막」에서 후술).
-
중심에 있는 곳은 양자 컴퓨팅 기업인 Quantinuum이다 (옥스퍼드에 전임 「Quantum NLP & 합성적 양자 지능」 연구 그룹의 치프 사이언티스트 Bob Coecke와 AI 책임자 Stephen Clark가 있음).
-
대학에서는 옥스퍼드 대학교, 유니버시티 칼리지 런던(UCL, Mehrnoosh Sadrzadeh), 미국의 노트르담 대학교·인디애나 대학교 등 명문 대학에 연구 그룹이나 스터디 그룹이 있다. 일본에서도 츄부 대학교(양자 측정론으로 저명한 오자와 마사나오 씨)가 Quantinuum과 양자 AI·인지에 관한 공동 연구를 수행하고 있다.
-
산업·공공과의 연계도 시작되고 있으며,
영국 방송 협회(BBC)가 UCL·Quantinuum과 함께 거대 아카이브(1,500만 점 초과) 검색에 QNLP를 응용할 방안을 모색하는 컨소시엄을 구성하고 있다(영국 왕립 공학 아카데미가 출자). -
전담 연구 그룹, 국제 회의, 상용 도구(lambeq), 산업 컨소시엄이 갖춰지고 있는,
「여명기이지만, 산학에서 본격적으로 일어서기 시작한」 단계이다. -
아직
연구 단계이며, 현재의 대규모 언어 모델(LLM)과 성능을 겨루는 수준은 아니다. 양자 하드웨어 또한 노이즈가 많은 소규모 세대(NISQ)이다. -
그럼에도 불구하고, 「언어와 양자가 동일한 수학으로 연결된다」는 발견의 깊이와 산학의 진지함 덕분에,
긴 안목으로 보았을 때 성장해 나갈 분야로서 주목받고 있다.
참고로, 현시점의 QNLP는
어디까지나 연구 단계이며, LLM을 대체할 기술이 아니다.
이 기사의 목적은 성능 비교가 아니라, 「왜 문법과 양자가 연결되는가」를 납득하는 것이다.
이하, 그 메커니즘과 의미를
대화 형식으로 차근차근 풀어가 보겠다.
학부생:
교수님, 갑자기 핵심부터 여쭙겠습니다만 ── 「문장을 양자 회로로 만든다」는 것이 구체적으로 무엇을 어떻게 한다는 건가요?
「고양이가 물고기를 먹는다」와 같은 문장이 어떻게 회로가 되는지 전혀 이미지가 떠오르지 않습니다.
강사:
좋은 접근이다.
구체적인 예로 단번에 넘어가 보자.
영어 문장인 "skillful programmer prepares software"
(숙련된 프로그래머가 소프트웨어를 준비한다)를 예로 들겠다.
세 단계로 나누어 생각해 볼까.
먼저, 각 단어에 「역할」을 할당하는 거야.
programmer와 software는 명사, prepares는 동사, skillful은 명사를 수식하는 형용사지.
그리고 「주어 ← 동사 → 목적어」, 「형용사 → 명사」라는 연결 관계를
선으로 이은 도표로 만든다.
이것은 평소 의식하지 못하는 「문장의 골격」을 배선도(Wiring diagram)로서 눈에 보이는 형태로 만든 것이다.
학부생:
문장을 일단 「부품과 배선의 도표」로 만드는 거군요.
강사:
그렇다.
다음으로, 배선도의 각 단어에 내용을 채워 넣을 거야!
programmer라는 명사 단어를 몇 개의 큐비트(Qubit) 상태로 나타낸다.
prepares라는 동사 단어는 주어와 목적어 큐비트를 얽히게(Entangle) 하여 하나의 상태로 묶는 조작으로 나타낸다.
형용사는 명사의 상태를 약간 변형하는 조작이다.
학부생:
명사가 「데이터」이고, 동사가 「데이터를 묶는 조작」이군요.
프로그램의 값과 함수의 관계와 매우 흡사합니다.
강사:
정확하다.
학부생:
……어라. 잠시만요.
**「서로 다른 영역이 동일한 구조를 공유하고 있다」**는 건 ── 혹시 그것, **커리-하워드 대응 (Curry-Howard correspondence)**과 같은 이야기인가요?
논리의 증명과 프로그램이 동일한 구조라는 그것 말입니다.
그리고 전혀 다른 분야 사이에 본질적으로 동일한 구조를 찾아내는 범주론 (Category Theory) 그 자체와도요.
……아니, 그렇게 말하니 형님의 전공인 **랭글랜즈 프로그램 (Langlands Program)**과도 어딘가 연결되어 있는 것 아닌가요?
강사:
……예리한 감각이구나. 게다가 거의 맞았다. 간단히만 답하마.
먼저 네가 방금 말한 「명사 = 값, 동사 = 함수」 ── 그것은 우연이 아니다.
커리-하워드 대응은 「논리의 증명」과 「프로그램」이 동일한 구조를 가진다는 발견이다.
여기에 범주론을 더한 **커리-하워드-람벡 대응 (Curry-Howard-Lambek correspondence)**이라는 삼각 대응도 존재하지.
학부생:
람벡……어라, 그 이름 아까 lambeq 부분에서 들었는데.
강사:
그래, 같은 Joachim Lambek이다.
QNLP의 문법(Pregroup grammar)을 만든 사람과 이 대응에 이름을 남긴 사람은 동일 인물이야.
논리·프로그램·범주론·그리고 언어 ── 이들이 동일한 골격을 가진다는 이야기의 바로 결절점에 있었던 사람이지.
학부생:
그럼 랭글랜즈는요?
강사:
그 부분은 신중하게 말해야겠구나.
랭글랜즈 프로그램이 QNLP나 커리-하워드와 「동형(Isomorphic)이다」라고 말하는 것은 과장이다.
직접적인 수학적 동형 관계가 있는 것은 아니니까.
다만 ── 「전혀 별개로 보이는 분야(수론과 기하학)가, 깊은 곳에서 대응하고 있다」라는, 장대한 가교를 놓는 정신에 있어서는, 매우 닮았다고는 말할 수 있다.
실제로, 커리-하워드-람베크(Curry-Howard-Lambek)를 「언어와 논리의 작은 랭글랜즈(Langlands)」에 비유하는 사람도 있을 정도다.
어디까지나 정신적인 친척, 이라는 거리감이지.
학부생:
정신적인 친척. 그렇군요, 그 정도의 표현이 딱 적당하네요.
강사:
그렇다. 이 이야기는 깊이 파고들면 한 줄기가 아니라 여러 편의 기사를 쓸 수 있는 거대한 광맥이지.
이 기사의 마지막에 있는 「관련 주제」에서, 지도만 살짝 살펴보자.
본격적인 해설은 나중에 다른 Qiita 기사에서 자세히 다루기로 할게.
지금 그린 배선도에 따라, 이러한 양자 상태와 조작을 연결해 나가면, 문장 전체가 **하나의 양자 회로 (Quantum Circuit)**가 된다.
그것을 양자 컴퓨터(또는 일반 PC 상의 시뮬레이터)로 실행하고 측정하면, 문장의 의미에 대응하는 상태를 얻을 수 있는 거야.
학부생:
$「문장 → 배선도 → 양자 회로 → 실행」$.
하나의 흐름이 되는군요!
이거, 정말 코드로 작성할 수 있나요?
강사:
놀랍게도, 제대로 코드로 작성할 수 있다.
Quantinuum 사가 공개하고 있는 lambeq (람베크)라는 Python 라이브러리가 바로 이 3단계를 수행해 주지.
pip install lambeq를 하고 문장을 전달하면, 구문 분석(Parsing)을 해서 배선도로 만들고, 양자 회로로 변환해 준다.
"skillful programmer prepares software"라고 입력하면, 그에 대응하는 양자 회로가 그대로 나온다.
학부생:
일본어로도 가능한가요?
강사:
메커니즘상으로는 가능하다.
이론(나중에 이야기할 DisCoCat라는 프레임워크)은 특정 언어에 얽매이지 않기 때문이지.
다만 구현 측면에서는, 문장을 배선도로 만드는 "구문 분석기 (Parser)"가 언어별로 필요해.
lambeq에 표준으로 포함된 것은 영어용이라서, 일본어에 사용하려면 일본어용 파서(예를 들어 DepCCG)를 별도로 준비해서 연결해야 한다.
실제로 힌디어와 같은 영어 이외의 언어에 적용한 연구도 나오고 있어.
병목 현상 (Bottleneck)은 양자 측이 아니라, "그 언어의 문법을 읽는 도구"가 얼마나 잘 갖춰져 있는가에 달려 있다
── 이것은 기존의 자연어 처리 (NLP)와 같은 사정이지. (이 점은 나중에 제7막에서도 자세히 다룰 거야.)
학부생:
그렇군요. 그래서 가장 듣고 싶은 건데 ── 그것이 가능해지면, 무엇이 좋은가요?
지금은 LLM이 무엇이든 다 해주잖아요?
강사:
현상과 기대를 나누어 대답하마.
먼저, QNLP를 사용하여 지금 실제로 할 수 있는 것은 주로 **문장 분류 (Sentence Classification)**다.
예를 들어, 어떤 문장이 「요리에 관한 이야기」인지 「IT에 관한 이야기」인지를 판정하는 것이다.
혹은 감성 분석 (Sentiment Analysis) ── 그 문장이 긍정적인지 부정적인지.
이러한 이진 분류 (Binary Classification) 태스크에서, 간단한 것이라면 이미 기존의 고전적 기법과 대등한 결과가 소규모 양자 하드웨어 상에서 나타나고 있다.
학부생:
대등하다는 것은, 아직 「이기지는 못했다」는 뜻이군요.
강사:
그 부분은 과장하지 않겠다.
지금의 LLM과 성능을 겨룰 단계는 아니다.
양자 하드웨어도 노이즈가 많은 소규모 세대니까.
그래서 QNLP가 가진 가치는 「속도」나 「정밀도」보다 다른 축에 있다.
기대되는 실용적 이점은 크게 두 가지가 있다.
하나는, 설명 가능한 AI (XAI).
QNLP에서는 문장의 의미가 「어떤 단어로부터, 문법에 따라 어떻게 구성되었는지」가 배선도로서 명확하게 남는다. LLM이 「왜 그런 답이 나왔는지 알기 어려운」 블랙박스인 것과 대조적이지.
의미가 구성되는 논리적 경로가 보인다.
이것은 의료나 신약 개발, 법무와 같이 「판단의 근거」가 요구되는 분야에서 효과를 발휘한다.
실제로 제약 대기업인 Merck가 일찍부터 lambeq를 높게 평가하며, "QNLP는 설명 가능한 AI로 가는 길을 연다. 의료에서는 정확성과 동시에 설명 책임이 결정적으로 중요하다"라고 언급한 바 있다.
학부생:
의미의 구성이 그림으로서 설명될 수 있군요.
확실히 의료 세계에서는 「왜 이렇게 판단했는지 말할 수 없는 AI」는 무섭겠네요.
강사:
또 하나는 양자의 대용량·고속 계산성이다.
양자 비트 (Qubit)는 「중첩 (Superposition)」을 통해, 1개(1 큐비트)만으로도 여러 상태를 동시에 가질 수 있다.
이러한 양자 비트 (Qubit)가 $n$개 있다면 $2^n$가지라는, 지수적으로 큰 공간을 다룰 수 있다.
문장의 의미와 같은 고차원 데이터를 적은 수의 양자 비트로 표현할 수 있을 가능성이 있다.
그렇기에 향후 양자 하드웨어 (Quantum Hardware)가 발전한다면, 거대한 데이터 처리에서 유리해질 수 있을 것이라 기대되고 있다.
예를 들어, BBC는 1,500만 점을 넘는 거대 아카이브 ── 고전 컴퓨터 (Classical Computer)로는 검색이 너무 무거울 정도의 규모 ── 의 콘텐츠 발견 (Content Discovery)이나 아카이브 검색에 QNLP를 사용할 수 없을지, UCL·Quantinuum과 협력하여 탐색하고 있다.
학부생:
방송국의 거대 아카이브 검색이라니…… 그것은 매우 생생한 응용 사례네요.
강사:
응용 분야로 이름이 거론되는 것은 그 외에도 대화 시스템, 텍스트 마이닝 (Text Mining), 번역, 음성 합성, 언어 생성, 바이오인포매틱스 (Bioinformatics) 등이다. 모두 아직은 '미래의 가능성'이지만, 연구의 깃발은 세워져 있다. 게다가 한 가지 더 ── "절대로 틀려서는 안 되는 AI"를 만든다는 커다란 과제와도 이 설명 가능성 (Explainability)은 연결된다. 이것은 후반부(제9막)에서 자세히 이야기하자.
학부생:
솔직히 QNLP라는 말은 처음 듣습니다. 이것, 어느 정도 진지하게 진행되고 있는 건가요? 일부 사람들의 취미라고 할 만한 규모는 아니죠?
강사:
취미 수준이 아니야.
중심에 있는 것은 양자 컴퓨팅 기업인 Quantinuum이다.
옥스퍼드에 "Quantum NLP & 합성 양자 지능 (Synthetic Quantum Intelligence)"이라는 전임 연구 그룹을 두고 있으며, 이를 이끄는 것은 범주론적 양자역학 (Categorical Quantum Mechanics)의 창시자인 Bob Coecke, AI 책임자는 Stephen Clark야.
대학에서는 옥스퍼드 대학교 (University of Oxford), UCL (Mehrnoosh Sadrzadeh), 미국의 **노트르담 대학교 (University of Notre Dame)**나 인디애나 대학교 (Indiana University) 등에 연구 그룹이 있다.
일본에서도 양자 측정론 (Quantum Measurement Theory)으로 세계적으로 유명한 오자와 마사나오(小澤正直) 씨가 있는 **츄부 대학교 (Chubu University)**가 Quantinuum과 양자 AI·인지 공동 연구를 진행하고 있다.
학부생:
대학뿐만 아니라 기업, 그리고 방송국까지 말이죠.
강사:
그렇단다.
Quantinuum이라는 상용 플레이어,
lambeq라는 공개 도구,
BBC를 포함한 산업 컨소시엄 (영국 왕립 공학 아카데미가 출자),
그리고 QNLP를 테마로 한 국제 회의나 워크숍도 열리고 있어.
아직 태동기이지만, '논문 속의 공상'이 아니라 산학이 진심으로 일으켜 세우고 있는 분야란다.
학부생:
앞으로 메이저가 될까요?
강사:
그것은 누구도 단언할 수 없어 ── 양자 하드웨어가 어디까지 발전하느냐에 달려 있으니까.
하지만 나는 이렇게 보고 있어.
"언어"와 "양자"라는, 전혀 무관해 보이는 것이 동일한 수학적 골격을 공유하고 있다.
그 발견의 깊이와 산학의 진지함을 고려하면, 설령 미래의 주역이 되지 않더라도 쫓아갈 가치가 있는 질문이야.
── 자, 여기까지가 QNLP의 전체상에 대한 설명이다.
다음 제2막부터는 왜 문법과 양자가 "같은 형태"가 되는지, 그 심장부를 천천히 풀어가 보자.
자연어 처리 (NLP)라고 하면, 이제는 Transformer와 대규모 언어 모델 (LLM)의 전성기입니다.
하지만 그것과는 완전히 다른 계통에서, "문장의 의미를 양자 컴퓨터로 계산한다"라는, 조금 믿기 어려운 접근법이 자라나고 있다는 사실을 알고 계십니까?
만약을 위해, 먼저 오해를 하나 풀어두겠습니다.
QNLP는 "양자판 Transformer"가 아닙니다.
오히려 Transformer와는 다른 발상에서 태어난, 또 다른 언어 이해의 계보입니다.
LLM이 대량의 텍스트로부터 "통계적으로" 의미를 배운다면, QNLP는 문법 구조 그 자체를 계산의 골격으로 사용합니다
── 경쟁 관계라기보다, 관점이 다른 것입니다.
그 이름을 **양자 자연 언어 처리 (QNLP, Quantum Natural Language Processing)**라고 합니다.
그리고 그것을 구동하기 위한 Python 라이브러리인 **lambeq (람벡)**가 이미 무료로 공개되어 있습니다.
pip install을 하여 문장을 집어넣으면, 그 문장이 양자 회로 (Quantum Circuit)로 변환되어 나옵니다.
(기본적으로는 영어가 잘 작동하지만, 구조 자체는 언어를 가리지 않습니다 ── 이 점은 나중에 자세히 다루겠습니다).
"문장이, 양자 회로가 된다."
글자 그대로만 보면 마법 같지만, 그 이면에는 문법과 양자가 동일한 수학적 형태를 띠고 있다는 아름다운 발견이 있습니다.
이 기사에서는 그 구조를 그림과 코드로 풀어내고, 마지막에는 "현재의 LLM과는 무엇이 다른가"까지 대화를 통해 따라가 보겠습니다.
학부생:
교수님.
"문장을 양자 회로로 만든다"는 말을 듣고 처음에는 의구심이 들었습니다.
문장이란 그저 단어들의 나열 아닌가요?
그게 어떻게 "회로" 같은 구조가 될 수 있는 거죠?
강사:
좋은 의문이다.
열쇠는 "문법"에 있어.
평소에는 의식하지 못하지만, 문장에는 단어들을 연결하는 보이지 않는 뼈대가 있지?
"고양이가 물고기를 먹는다"라는 문장을 생각해 보자.
학부생:
주어가 "고양이", 목적어가 "물고기", 동사가 "먹는다"인 거죠?
강사:
그렇지.
여기서 동사 "먹는다"에 주목해 주길 바란다.
"먹는다"는 단독으로는 공중에 떠 있는 상태야.
왼쪽에서 주어를, 오른쪽에서 목적어를 받아서 비로소 "문장 전체의 의미"를 반환하지.
이거, 프로그래머인 네게는 익숙한 형태 아닌가?
학부생:
아…… 인수를 2개 받는 함수군요.
eat(고양이, 물고기)
같은 거 말이죠.
강사:
바로 그거다.
네 그 직관은 사실 수학적으로 거의 정확해.
동사는 "두 개의 입력을 받아서 하나의 출력을 반환하는 부품"이고,
명사는 "값 그 자체"지.
즉, **문법이란 부품들 사이의 "배선도"**인 셈이야.
어떤 단어가 어떤 단어와 어떻게 연결되어 의미를 만드는가
── 그 배선의 규칙이 바로 문법의 정체다.
학부생:
문법을 "배선도"로 본다니…… 생각도 못 해봤습니다.
강사:
이 관점을 수학적으로 엄밀하게 정식화한 것이 바로 프리그룹 문법 (pregroup grammar) 이라는 것이지.
언어학자 요아힘 람베크 (Joachim Lambek) 가 만든 체계야.
방금 말한 lambeq라는 라이브러리의 이름은 이 사람에 대한 오마주란다.
읽는 법도 "람베크"지.
학부생:
라이브러리 이름에 사람 이름이 숨겨져 있었군요.
강사:
프리그룹 문법에서는 각각의 단어에 "타입 (type)"을 할당한다.
명사에는 명사의 타입을,
동사에는 "왼쪽에서 명사, 오른쪽에서 명사를 받아서 문장을 반환하는 타입"을
부여하지.
그리고 **인접한 타입들이 잘 "상쇄(cancel out)"되면
그렇게 하면 ── 데이터의 타입과 함수의 타입 간의 정합성을 컴파일 시점에 엄격하게 검증하는 함수형 프로그래밍 언어 (Functional Programming Language) ── Haskell 이나 Idris 같은 언어들과, QNLP는 궁합이 좋은가요?
타입으로 올바름을 보장한다는 발상이 매우 닮아 보여서요.
강사:
날카로운 지점이네.
사상(思想)의 차원에서는 확실히 맞닿아 있어.
방금 이름이 나온 Joachim Lambek은 사실 타입 이론 (Type Theory) 분야에서도 중요한 업적을 남겼지.
프리그룹 문법 (Pregroup Grammar)의 "타입이 서로 상쇄되어 문장이 성립한다"는 생각과, 함수형 언어의 "타입이 맞아야 비로소 프로그램이 통과된다"는 생각은, 동일한 범주론적 타입 (Categorical Type)의 발상을 친척처럼 공유하고 있거든.
Haskell의 **타입 시스템 (Type System)**이 **범주론 (Category Theory, 모나드 등)**과 깊게 결합되어 있는 것도 같은 뿌리에서 나온 거야.
학부생:
그럼, QNLP를 Haskell이나 Idris로 작성하는 것이 자연스럽다는 뜻인가요?
강사:
그 부분은 솔직하게 구분하자.
"수학적 발상이 비슷하다"는 것과 "그 언어로 구현했을 때 유리하다"는 것은 별개의 문제야.
실제 lambeq는 Python으로 작성되어 있어.
── 머신러닝이나 양자 계산 라이브러리들이 Python에 집중되어 있기 때문이지.
Haskell이나 Idris의 **강력한 타입 검사 (Type Checking)**는 "문법의 타입이 올바르게 조합되어 있는가"를 컴파일 시점에 보장한다는 용도에는 개념적으로 매우 적합해.
따라서 "타입으로 문법의 올바름을 보장하는 QNLP 처리계를 의존 타입 언어 (Dependent Type Language)로 작성한다"는 연구 방향은 논리적으로 흥미롭고 가능성이 있어.
하지만, 현재 주류 구현이 그렇게 되어 있다는 사실은 없어.
학부생:
그렇군요. "궁합이 좋은 발상"이기는 하지만, "현재 실제로 그렇게 만들어지고 있는 것"은 아니다라는 말씀이시죠.
강사:
그런 거리감이 적당해.
── 이 부분도 방금 말한 **커리-하워드 대응 (Curry-Howard Correspondence)**과 이어지는 이야기인데,
"타입", "증명", "프로그램", "문법"이 깊은 곳에서 동일한 구조를 공유하고 있어.
그 거대한 지도에 대한 이야기는 마지막 "관련 주제"에서 다시 한번 다루도록 하자.
학부생:
자연어 (영어, 일본어 등)의 문법이 배선도라는 것은 이해했습니다. 하지만 그것이 왜 "양자"로 이어지는 건가요? 논의가 비약하고 있다는 느낌이 듭니다.
강사:
이 부분이 이 분야에서 가장 아름다운 지점이야.
결론부터 말할게.
문법의 배선도와 양자 세계의 "조립 방식"이, 범주론의 관점에서 보면 완전히 같은 형태를 띠고 있어.
학부생:
같은 형태라니... 무슨 의미인가요?
강사:
먼저 양자 쪽을 보자.
양자 컴퓨터에서는 몇 개의 **양자 비트 (Qubit)**가 **"얽힘 (Entanglement)"**이라는 현상으로 결합하여 하나의 상태를 만들어.
여러 부품이 선으로 연결되어 하나의 통합된 상태가 되는 것
── 이 "부품을 선으로 연결하여 합성하는" 방식이, 아까 말한 문법의 배선도와 딱 맞아떨어져.
학부생:
문법도 **"부품을 선으로 연결하여 합성"**하고,
양자도 **"부품을 선으로 연결하여 합성"**한다.
확실히 말로 설명하니 같네요.
강사:
우연의 일치가 아니야. 수학적으로 양쪽 모두 "동일한 종류의 범주 (Category)"가 된다는 사실이 증명되어 있어. 어려운 이름으로는 "콤팩트 폐쇄 범주 (Compact Closed Category)"나 "리짓 모노이달 범주 (Rigid Monoidal Category)"라고 불러. 범주 (Category)라는 것은 대략 "부품 (대상, Object)과 부품을 잇는 화살표 (사상, Morphism)로 이루어진 세계"를 말해. 그리고 "모노이달 (Monoidal)"이라는 것은 ──
학부생:
또 모르는 용어가 나왔어요. 모노이달 범주.
강사:
긴장할 필요 없어. "부품을 세로로 연결하거나 가로로 나열하여, 그림으로 조립할 수 있는 세계"라고 생각하면 돼. 프로그래머의 감각으로 말하자면 이렇지. 함수를 세로로 연결하는 것이 합성 (Composition) ( f 다음에 g를 실행하는 것),
데이터를 가로로 나열하는 것이 튜플 (Tuple) ( (a, b) ). 이 **"세로로 연결하기 · 가로로 나열하기"**라는 두 가지 연산이 갖춰진 세계를 수학에서는 "모노이달 범주"라고 불러. 그뿐이야.
학부생:
세로와 가로로 무언가를 조립하는 세계라니, 의외로 소박하네요.
강사:
맞아. 그리고 결정적인 것은, 문법의 세계도, 양자의 세계도, 둘 다 이 「세로와 가로로 조립하는 세계 (모노이달 범주)」로 되어 있다는 점이야. 그릇의 모양이 같다면, 한쪽에서 성립하는 도식을 다른 쪽의 도식으로 읽어낼 수 있어. 그러니까 ──
학부생:
아. 문법의 배선도를 그대로 양자 회로의 배선도로 읽어낼 수 있다는 뜻인가요?
강사:
바로 그거야.
문법이라는 배선도를 설계도로 삼아, 양자 회로를 조립한다. 이것이 QNLP의 심장부야.
학부생:
배선도를 읽어내는 것까지는 이해했습니다.
하지만, 「의미」는 어디에서 오는 건가요?
배선도는 뼈대뿐이잖아요?
「고양이」나 「물고기」가 무엇을 의미하는지는 별도로 필요할 것 같은데요.
강사:
날카롭네. 거기서 또 다른 재료 ── 「단어 의미 벡터 (word meaning vector)」가 필요해.
이것은 네가 NLP에서 익숙하게 접했던 단어 임베딩 (word embedding)과 같은 발상이야.
「고양이」라는 단어를 수치 벡터로 나타내는 거지. 의미가 가까운 단어는 가까운 벡터가 돼.
학부생:
word2vec 같은, 그쯤의 이야기군요.
그렇다면 이해가 가요.
강사:
그래, 익숙한 그거야.
QNLP의 아이디어를 한마디로 말하면 이렇다.
「단어의 의미 (벡터)」를 「문법의 배선도」를 따라 조합한다.
배선도가 「어떻게 조합할 것인가」에 대한 절차서가 되고,
단어 벡터가 「무엇을 조합할 것인가」에 대한 내용물이 되는 거지.
양자를 합치면, 문장 전체의 의미가 하나의 상태로서 계산되는 거야.
학부생:
AI 자동 생성 콘텐츠
본 콘텐츠는 Qiita AI의 원문을 AI가 자동으로 요약·번역·분석한 것입니다. 원 저작권은 원저작자에게 있으며, 정확한 내용은 반드시 원문을 확인해 주세요.
원문 바로가기