CLQA를 위한 파운데이션 모델: LMPNN과 UltraQuery
📍 현재 위치: 5부 · 복합 논리 질의 응답 — 18장. 퍼지·무학습 CLQA는 질의 훈련을 걷어냈습니다: 하나의 보정된 채점기 위에 놓인 퍼지 실행기가 질의별 매개변수 없이 모든 질의 유형에 답했습니다. 이 장은 마지막 의존성, 곧 어휘 그 자체를 걷어냅니다.
지금까지 이 부의 모든 모델은 하나의 조용한 가정을 공유해 왔습니다. 질의에 답하는 그래프가 곧 훈련한 그래프라는 가정입니다. 관계 이름 하나만 바꾸어도 기계 장치 전체가 무너지는데, 그 안 어딘가에 개체마다 혹은 관계마다 한 행씩을 가진 학습된 표가 놓여 있고, 새로운 기호에는 행이 없기 때문입니다. 추론을 위한 파운데이션 모델(foundation model)은, 이 용어가 기계 학습의 다른 곳에서 지니는 의미 그대로(재훈련 없이 여러 하류 설정에 적용되는 하나의 사전 훈련된 모델), 개체와 관계를 한 번도 본 적 없는 그래프 위에서 질의에 답해야 합니다. 이 요구는 앞의 모든 장이 기대어 온 바로 그 설계 요소 하나를 금지합니다. 이 장은 이 분야가 내디딘 두 걸음을 따라 걷습니다. LMPNN(Logical Message Passing Neural Network, 논리 메시지 전달 신경망)은 사전 훈련된 임베딩을 고정하고 그 위의 가벼운 추론기만을 훈련하며, ULTRA는 각 관계를 다른 관계들 사이에서 차지하는 구조적 위치로 표현함으로써 기호에 묶인 매개변수를 통째로 버립니다. 이어서 동반 모듈 ultra_lite.py가 이 주장을 토이 규모에서 실행하고 숫자를 커밋합니다. 학계 세계에서만 훈련된 채점기가, 어휘가 전혀 겹치지 않는 병원 세계의 질의에, 경사 갱신 없이 우연을 훨씬 웃도는 수준으로 답합니다.
이십 년 동안 한 도시에서만 일해 온 형사를 상상해 보십시오. 그 도시에 대해 물으면 그녀를 당해 낼 사람이 없습니다. 어느 가문이 어느 구역을 잡고 있는지, 누가 누구에게 빚을 졌는지, 모든 이름을 알고 있기 때문입니다. 그런데 그녀를 낯선 도시로 전근시키면 이름들이 사라지고, 그녀의 지식은 쓸모가 없어집니다. 다른 형사는 애초에 이름을 외운 적이 없습니다. 그녀는 역할의 패턴을 배웠습니다. 많은 사람이 보고를 올리는 사람은 두목처럼 행동하고, 같은 사람들이 계속 나타나는 장소는 본부처럼 행동합니다. 무엇이라고 불리든 말입니다. 그녀는 어느 도시에 떨어뜨려 놓아도 첫날부터 사건을 풀기 시작하는데, 역할이란 어디에 도착하든 처음부터 다시 계산할 수 있기 때문입니다. 지금까지의 모든 임베딩 모델은 첫 번째 형사입니다. 이 장은 두 번째 형사를 만들고, 그런 다음 그녀를 정직하게 시험합니다. 학계 세계에서 훈련하고, 이름이 단 하나도 겹치지 않는 병원 세계에 배치하고, 측정합니다.
이 장에서 다루는 내용
- 어휘 감사: 5부의 각 모델이 새 그래프를 만났을 때 정확히 무엇이 부서지는지(개체 행, 관계 행, 미리 계산된 인접 행렬, 각각 이름을 붙여서), 그리고 앞선 각 모델을 격자에 배치한 세 가지 평가 체제(변환적, 개체에 대해 귀납적, 개체와 관계에 대해 귀납적)를 다룹니다. 마지막 칸은 이 연구 흐름 이전에는 비어 있었습니다.
- 반걸음 LMPNN: 엣지가 원자인 질의 그래프, 고정된 ComplEx 방식 채점기로부터 유도한 닫힌 형식의 메시지(코시–슈바르츠 논증을 전 과정 풀어서), 그리고 조그맣게 훈련된 추론기가 고정된 표에 전적으로 기댄다는 발견을 다룹니다. 그 표는 여전히 한 그래프의 어휘입니다.
- ULTRA의 관계의 관계 그래프: 우리 학계 그래프 위에서 직접 계산한 네 가지 구조적 메타 관계(머리-머리, 머리-꼬리, 꼬리-머리, 꼬리-꼬리), 손으로 푼 자카드 트레이스, 그리고 "어휘 독립"을 구호가 아닌 기계적 성질로 만드는 불변성 논증을 다룹니다.
- 열두 개의 숫자로 이루어진 투영기: 구조적 특징 위에 홉마다 게이트를 둔 원천 시드 2홉 전파를 다루며, 모든 경사를 연쇄 법칙으로 유도하고 유한 차분과 까지 대조 검증하며, 학계 세계에서만 훈련합니다.
- 제로샷 실험: 병원 세계의 스키마, 고정 채점기 프로토콜, 그리고 커밋된 세 갈래 표(무작위 0.2198, 제로샷 0.8333, 대상 훈련 0.7500)를 인공물까지 포함해 꼼꼼히 읽습니다.
- 축소판 UltraQuery: 앞 장의 퍼지 실행기를 제로샷 채점기의 보정된 행렬 위에서 돌려, 한 번도 본 적 없는 그래프에서 2p와 2i 질의에 답하고 그 1위 답이 골드 하드 정답임을 확인하며, 실제 시스템이 고쳐야 했던 다중 원천의 미묘한 문제도 다룹니다.
- 이 부의 평결: 추론 파운데이션 모델이 무엇이고(전이되는 약 177k개의 매개변수), 무엇이 아닌지(어떤 도메인의 내용에 대한 모델도 아님), 그리고 이 연구 흐름이 왜 기호 엔진이 언제나 지녔던 성질을 신경 기둥 안에서 재발견하는 일인지 다룹니다.
어휘 감사: 모든 모델이 소유한 것
무언가에 감탄하기 전에 먼저 감사부터 실행합시다. 이 부가 만든 각 모델에 대해 한 가지 질문을 던집니다. 그 매개변수 가운데 어느 것이 훈련 그래프의 기호로 색인되어 있는가? 그 매개변수들이 곧 모델의 어휘이며, 새 그래프가 무효로 만드는 것이 정확히 그것들입니다.
| 모델 | 어휘에 묶인 구성 요소 | 새 그래프가 부수는 것 |
|---|---|---|
| GQE, Query2Box, BetaE | 개체마다 하나, 관계마다 하나씩의 학습된 행 | 모든 행: 새 개체나 새 관계에는 행이 없습니다 |
| CQD, LMPNN | 고정된 사전 훈련 임베딩 표(개체 행과 관계 행) [1] | 표 전체: 고정되었다고 이식 가능한 것은 아닙니다 |
| GNN-QE(Graph Neural Network Query Executor) | 개체 행은 없지만(퍼지 집합이 그래프 위에 삽니다), 투영기 안에 학습된 관계 임베딩 [2] | 새 관계에는 임베딩이 없습니다; 새 개체는 괜찮습니다 |
| QTO | 변환적으로 훈련된 채점기로 채운, 관계마다 하나씩 미리 계산된 신경 인접 행렬 | 두 색인 집합 모두: 행렬의 모양 자체가 말 그대로 옛 어휘로 정해져 있습니다 |
여기서 은 훈련 그래프의 개체 수이므로, QTO의 행렬에는 개체 을 위한 자리조차 없습니다. 이 표는 하나의 위계를 드러내며, 이 분야는 그것을 세 가지 평가 체제(evaluation regime)라고 부릅니다. 변환적(transductive) 체제에서는 시험 질의가 모델이 훈련한 바로 그 그래프 위를 다닙니다. 같은 개체, 같은 관계이고, 오직 질문의 대상이 되는 특정 엣지만이 새롭습니다. GQE(Graph Query Embedding)에서 QTO(Query Computation Tree Optimization)와 LMPNN에 이르는 모든 것이 여기에 삽니다. 개체에 대해 귀납적(inductive over entities)인 체제에서는 시험 시점의 그래프에 훈련에서 본 적 없는 개체가 들어 있지만, 모든 관계는 본 것들입니다. NBFNet(Neural Bellman-Ford Networks) 계열의 모델들이 이 칸에 도달하는데, 개체가 아니라 관계를 매개변수화하고 개체 표현은 전파로 그 자리에서 계산하기 때문입니다(이 근간 구조는 아래에서 정식으로 만납니다). 개체와 관계에 대해 귀납적(inductive over entities and relations)인 체제에서는 시험 시점의 어느 것도 훈련에서 본 적이 없습니다. 새 개체, 새 관계, 새 그래프입니다. ULTRA와 그 질의 응답 확장인 UltraQuery 이전에는 어떤 단일 사전 훈련 모델도 그 칸에 도달하지 못했습니다. 본 적 없는 관계를 다루는 링크 예측기는 존재했지만(하나만 들면 InGram이 ULTRA가 평가받는 벤치마크 그래프 여럿을 공급합니다), 저마다 자신의 대상 그래프 위에서 훈련되어야 했습니다. 복합 질의 응답에 대해서는 그 칸이 정말로 비어 있었습니다. 앞선 모든 질의 응답 아키텍처가 적어도 훈련 시점에 고정된 관계 어휘를 요구했기 때문에, 어떤 훈련된 CLQA 모델도 거기에 적용조차 될 수 없었습니다 [3][2].
| 체제 | 시험 시점에 본 적 없는 것 | 5부의 거주자 |
|---|---|---|
| 변환적 | 질의되는 엣지 말고는 없음 | GQE, Query2Box, BetaE, CQD, GNN-QE, QTO, LMPNN |
| 귀납적(개체) | 개체 | NBFNet 방식 투영기 |
| 귀납적(개체 + 관계) | 개체와 관계 | ULTRA 이전에는 단일 사전 훈련 모델 없음; UltraQuery 이전에는 CLQA 모델 자체가 없음 [3][2] |
이 빈칸은 벤치마킹의 진기한 구경거리가 아닙니다. 그것은 훈련된 산출물과 파운데이션 모델의 차이입니다. 산출물은 자신이 암기한 세계에 대한 질문에 답하고, 파운데이션 모델은 재사용 가능한 능력을 한 번도 본 적 없는 세계로 가지고 갑니다. 이 장의 나머지는 "지식 그래프 위에서 논리 질의에 답한다"라는 능력이, 그 능력을 배운 어휘로부터 어떻게 분리되었는지의 이야기입니다.
한 그림으로 본 이 장: 감사가 드러낸 빈칸, 이름을 구조적 역할로 대체하여 그 칸을 채우는 관계의 관계 그래프, 그리고 커밋된 학계-병원 전이 표.
저자가 AI의 도움을 받아 직접 제작한 원본 도해.
LMPNN: 반걸음
LMPNN은 낭비에 대한 관찰에서 시작합니다. 앞 장들의 변환적 CLQA(complex logical query answering, 복합 논리 질의 응답) 모델들은 저마다 맞춤형 질의 인코더를 처음부터 훈련했지만, 이 일에서 가장 어려운 부분, 곧 어떤 단일 엣지가 그럴듯한지를 아는 일은, 기성품 사전 훈련 지식 그래프 임베딩이 이미 잘하는 바로 그것입니다. 그래서 LMPNN은 사전 훈련된 임베딩을 고정하고, 복합 질의에 답하기 위해 그 위에 얼마나 적은 기계 장치만 훈련하면 되는지를 묻습니다 [1].
그 계산의 대상은 질의 그래프(query graph)입니다. 질의의 원자들을 이름표 붙은 그래프로 그린 것으로, 노드는 상수(앵커 개체), 존재 한정된 변수들, 그리고 하나의 자유 변수이고, 엣지는 원자 그 자체로서 각각 관계 하나와 경우에 따라 부정 플래그를 지닙니다. "세인트 루크에서 일하며 디아즈에게 지도받는 사람은 누구인가"라는 2i 질의는 하나의 자유 변수 노드로 들어가는 두 개의 엣지가 됩니다. LMPNN은 이 그래프 위에서 메시지 전달을 실행합니다. 매 라운드마다 모든 원자-엣지가 자신의 각 끝점에게, 다른 쪽 끝점의 현재 표현과 고정된 채점기를 근거로, 그 끝점이 어떤 모습이어야 하는지에 대한 추정을 보냅니다.
결정적인 수는 이 메시지들이 학습되는 것이 아니라 고정된 채점기로부터 닫힌 형식으로 유도된다는 점입니다. CQD(Continuous Query Decomposition)가 이미 고정된 ComplEx 표를 우리 손에 쥐여 주었으니, ComplEx 방식의 경우를 봅시다. ComplEx는 모든 개체와 관계에 차원 (임베딩 차원, 곧 복소 좌표의 개수)의 복소 벡터(complex vector)를 배정합니다. 머리, 관계, 꼬리를 로 쓰고, 는 좌표 의 켤레 복소수(허수부의 부호를 뒤집은 것), 는 실수부를 나타냅니다. 원자 하나의 점수는
원자 의 머리가 알려져 있고 를 묻는다고 합시다. 길이가 고정된 모든 벡터 가운데, 어떤 꼬리 표현이 이 점수를 가장 크게 만들까요? 알려진 부분을 하나의 벡터 , 곧 좌표가 인 원소별 곱으로 모읍니다. 각 좌표를 실수부와 허수부로 나누어 , 로 씁니다. 항 하나를 곱해서 풀면,
이므로 합의 실수부는 입니다. 이는 실수부를 허수부 위에 쌓아 얻은 길이 의 두 실수 벡터의 평범한 내적과 정확히 같습니다. 그러면 1권이 최급강하를 증명할 때 썼던 바로 그 코시–슈바르츠 부등식이 이 내적을 두 길이의 곱으로 상한 짓고, 등호는 정확히 두 벡터가 평행할 때 성립합니다. 노름이 고정된 모든 후보 꼬리 가운데 점수를 최대로 만드는 것은
이것이 메시지입니다. 원자 가 노드 에게 "고정된 채점기에 따르면 가장 그럴듯한 너는 방향 이다"라고 말하는 것이며, 원소별 곱 한 번으로 계산되고, 탐색도 학습된 매개변수도 없습니다. LMPNN 논문은 역방향, 부정된 원자, 그리고 다른 고정 채점기들에 대한 유사한 닫힌 형식들을 표로 정리해 둡니다 [1]. 실제로 훈련되는 것은 의도적으로 작습니다. 각 노드에서 들어오는 메시지들을 다음 표현으로 집계하는 공유된 다층 퍼셉트론 하나, 그리고 고정된 행이 없는 노드들을 초기화하는 데 쓰는 학습된 벡터 두 개(존재 변수용 하나, 자유 변수용 하나)입니다. 몇 라운드가 지나면 자유 변수의 최종 표현을 같은 고정 채점기로 모든 개체와 대조해 점수를 매깁니다. 원 논문의 절제 실험이 보고하는 분업은 한쪽으로 크게 기울어 있습니다. 답의 품질은 고정된 임베딩의 품질을 따라가며, 하중을 떠받치는 것은 그 임베딩이고, 훈련된 네트워크는 그 위의 가벼운 어댑터입니다 [1].
이 반걸음을 감사 기준으로 정직하게 채점해 봅시다. 어휘로 색인된 훈련 매개변수: 없습니다. 추론기 자체는 그래프가 바뀌어도 살아남을 것입니다. 그러나 위의 모든 메시지는 에서 시작했고, 와 은 고정된 표의 행들입니다. 어휘는 사라진 것이 아니라 고정된 구성 요소 안으로 옮겨 갔을 뿐입니다. LMPNN에게 병원 그래프를 건네면 mentors의 행도, adams의 행도 없고, 보낼 메시지도 없습니다. 추론기는 이식 가능하지만, 엣지를 지각하는 눈은 그렇지 않습니다. 온걸음은 표 그 자체를 없애야 합니다.
ULTRA: 관계들 사이의 위치로 기술되는 관계
관계를 학습된 행으로 표현할 수 없다면, 무엇으로 표현할 수 있을까요? ULTRA의 답은 이렇습니다. 같은 그래프의 다른 관계들에 대한 상대적 위치로 표현한다는 것입니다. 두 관계는 그 엣지 집합들이 끝점을 공유할 때마다 구조적으로 상호작용하며, 순서 있는 관계쌍 이 끝점을 공유하는 방식은 정확히 네 가지입니다. -엣지의 머리로 나타나는 개체들의 집합을 , 꼬리로 나타나는 집합을 이라고 씁니다. 네 가지 메타 관계(meta-relation)는 다음과 같습니다. 머리-머리(head-to-head)는 이 과 만나는 경우(두 관계가 공통의 개체에서 출발합니다), 머리-꼬리(head-to-tail)는 이 과 만나는 경우, 꼬리-머리(tail-to-head)는 이 과 만나는 경우(가 도착하는 곳에서 이 출발합니다), 꼬리-꼬리(tail-to-tail)는 이 과 만나는 경우입니다. 이제 노드가 관계들이고 엣지가 이 네 가지 동시 출현 유형인 새로운 그래프, 곧 관계의 관계 그래프(relation-of-relations graph)를 짓습니다. 그러면 관계의 표현은 이 그래프에서의 이웃으로부터, 질의를 조건으로 하여, 이름을 결코 만지지 않는 작은 네트워크가 계산해 냅니다 [3].
학계 세계가 이 구성을 구체적으로 만들어 줍니다. 관계 advises와 관계 affiliated는 머리 개체를 공유합니다. bob은 carol을 지도하고 bob은 mit에 소속되어 있으므로, bob은 두 머리 집합 모두에 속합니다. 그것이 두 관계-노드 사이의 머리-머리 엣지입니다. 마찬가지로 advises는 carol에 도착하고 affiliated는 carol에서 출발하니, 꼬리-머리 엣지입니다. 동반 코드는 각 메타 관계의 강도를 자카드 중첩(Jaccard overlap)으로 계산합니다. 두 집합의 교집합 크기를 합집합 크기로 나눈 것으로, 라고 씁니다. 자카드는 규모에 무관합니다(개수가 아니라 비율을 비교합니다). 13개 개체짜리 토이 그래프와 더 큰 그래프가 하나의 매개변수 벡터를 공유할 수 있게 해 주는 것이 바로 이 성질입니다. 부호 있는 관계(signed relation, 각 기본 관계 에 그 역방향 inv_r을 더한 것으로, 전파가 엣지를 거꾸로도 걸을 수 있게 합니다)의 모든 순서쌍에 대해, 특징 행은 다섯 개의 숫자입니다. "같은 관계"인지의 지시자 하나, 그다음 네 가지 중첩입니다(ultra_lite.py 168–178행):
def jac(a: set, b: set) -> float:
return len(a & b) / len(a | b) if a | b else 0.0
feats = {}
for r in self.signed:
for rp in self.signed:
feats[(r, rp)] = np.array([
1.0 if rp == r else 0.0,
jac(heads[r], heads[rp]), jac(heads[r], tails[rp]),
jac(tails[r], heads[rp]), jac(tails[r], tails[rp])])
return feats
실제 훈련 분할 위에서 행 하나를 손으로 풀어 봅시다. 15개의 학계 훈련 엣지 위에서 , , , 입니다. 그러면 머리-머리는 (공유되는 머리 셋, 합집합에 넷)이고, 꼬리-머리는 이며, 사람과 기관을 잇는 두 중첩은 사람과 기관이 결코 겹치지 않으므로 입니다. 커밋된 실행은 정확히 이 행을, 병원 쪽 대응 행과 나란히 출력합니다:
the relation-of-relations features carry the analogy without names:
f(affiliated | advises) = [0. 0.75 0. 0.4 0. ]
f(worksAt | mentors) = [0. 0.75 0. 0.6 0. ]
[1 if same relation, then h2h, h2t, t2h, t2t Jaccard overlaps]
이 두 행을 천천히 읽어 보십시오. 이것이 이 장의 메커니즘을 축소해 담은 그림이기 때문입니다. 누구도 모델에게 worksAt이 affiliated가 맡은 역할을 맡는다고 말해 주지 않았습니다. 거의 동일한 두 특징 행이 곧 그 진술이며, 오로지 끝점 집합만으로 계산된 것입니다. "어휘 독립"이 기계적으로 뜻하는 바가 바로 이것입니다. 특징은 엣지가 어디서 출발해 어디에 도착하는지의 함수이므로, 같은 구조적 역할을 하는 두 관계는 무엇이라고 불리든 같은 특징을 받고, 의미 없는 토큰으로 이름이 바뀐 관계는 동일한 특징을 받습니다. 동반 코드는 이 문장을 실행 가능한 단언으로 격상합니다(ultra_lite.py 542–548행). 모든 병원 관계의 이름을 불투명한 토큰(rel0, rel1, ..., 시드가 고정된 뒤섞기)으로 바꾸고, 세계를 다시 짓고, 특징을 다시 계산한 다음, 고정된 채점기의 출력이 까지 일치할 것을 요구합니다. 커밋된 실행이 보고하는 최대 차이는 정확히 입니다. 실제 시스템의 이 구성은 같은 정신 위에서 더 풍부합니다. 관계의 관계 그래프 위의 그래프 신경망이 각 질의 관계에 대해 다른 모든 관계의 상대적 표현을 만들어 내고, 그 조건화된 표현들이 개체 수준 채점기를 이끕니다 [3]. 우리의 축소판은 날 것의 특징 행만 유지하고 관계 수준 네트워크는 생략합니다. 이 정직한 간극은 아래에서 결산합니다.
열두 개의 숫자로 이루어진 투영기
이제 이 특징을 소비하는 채점기 차례입니다. 설계는 실제 ULTRA가 그 위에 지어진 근간 구조인 NBFNet 방식의 원천 시드 전파입니다. 질의 의 점수를 매기려면 원천 개체 에 단위 질량을 놓고 그래프의 엣지를 따라 밀어 보내되, -질문에 대해 각 종류의 엣지가 얼마나 실어 날라야 하는지를 홉마다 학습된 게이트가 정하게 합니다 [4]. 먼저 대상들을 해독해 둡시다. 개체의 수는 (우리의 두 세계 각각에서 13)입니다. 은 의 색인 자리에만 이 하나 있는 원-핫 벡터입니다. 각 부호 있는 관계 에 대해 는 훈련 그래프에 엣지 가 있을 때 정확히 그때에만 인 인접 행렬입니다. 홉 색인은 입니다. 각 홉은 부호 있는 관계마다 게이트(gate) 하나씩을 소유합니다,
여기서 는 방금 지은 구조적 특징 행이고, 와 는 그 홉의 가중치와 편향이며, 는 1권의 로지스틱 압착 함수입니다. 전체 매개변수 벡터는 , 열두 개의 숫자이고, 그중 어느 하나도 어휘 항목으로 색인되어 있지 않습니다. 게이트들은 인접 행렬들을 홉마다 하나의 게이트 인접 행렬(gated adjacency)로 섞어 내고, 두 홉의 전파가 점수 벡터를 만들어 냅니다(ultra_lite.py 253–264행):
g1 = _gates(world, r, theta["w1"], theta["b1"])
g2 = _gates(world, r, theta["w2"], theta["b2"])
# G_k = sum_{r'} g_k(r'|r) A_{r'} (the gated adjacency of hop k)
G1 = sum(g1[rp][0] * A[rp] for rp in world.signed)
G2 = sum(g2[rp][0] * A[rp] for rp in world.signed)
x0 = np.zeros(n); x0[hi] = 1.0
y = {rp: A[rp].T @ x0 for rp in world.signed} # y_rho = A_rho^T x0
x1 = G1.T @ x0
s = G2.T @ x1 # x2: the score vector
ds_dg1 = {rp: G2.T @ y[rp] for rp in world.signed}
ds_dg2 = {rp: A[rp].T @ x1 for rp in world.signed}
return s, ds_dg1, ds_dg2, g1, g2
행렬 대수를 풀어 헤쳐 점수가 무엇인지 봅시다. 첫 홉의 항목 는 , 곧 한 걸음에 원천에서 로 흘러드는 게이트 질량의 총합입니다. 둘째 홉의 항목 는 다음과 같이 전개됩니다.
에서 로 가는 모든 2홉 경로에 대한 합이며, 각 경로에는 그 두 엣지의 게이트들의 곱이 가중치로 걸립니다. 점수는 의도적으로 순수한 2홉입니다. 직접 엣지 는 링크 예측이 채워 넣어야 할 바로 그 대상이므로 결코 자기 자신을 채점하지 않으며, 훈련 중에는 양성 엣지와 그 역방향이 전파 전에 인접 행렬에서 제거되어(NBFNet의 한 홉 제거 규율, ultra_lite.py 242–251행) 어떤 예제도 자기 자신의 답을 통해 새어 나갈 수 없습니다. 점수 하나의 비용은 희소 행렬-벡터 곱 두 번, 부호 있는 엣지 수에 선형입니다.
경사는 완전히 유도해 보일 만큼 짧습니다. 점수는 각 게이트에 대해 선형입니다. 인 에서 둘째 홉 게이트 하나로 미분하면 그 게이트의 항만 남고,
또 인 에서 첫 홉 게이트 하나는 을 만큼 흔들며, 그것을 게이트가 걸린 둘째 홉 전체가 앞으로 실어 나릅니다:
이 둘이 위 발췌문의 두 사전 항목 ds_dg1과 ds_dg2입니다. 훈련은 모든 훈련 엣지를 양방향으로(꼬리 질의 과 역방향 머리 질의 ), 3권 프로토콜의 필터링된 후보들에 대한 하나의 다중 클래스 예제로 취급합니다. 후보 점수를 소프트맥스에 통과시키고 를 최소화합니다. 소프트맥스 경사는 이 시리즈가 이미 만난 적 있는 고전적 소거입니다(시그모이드에 대해, 1권에서 한 번 그리고 의미 손실 장에서 다시 한 번). 여기서는 소프트맥스 판을 전부 풀어 보입니다. 라고 쓰는데, 아래 첨자 는 후보 개체 하나를 가리키고, 색인 는 정규화 합에서 필터링된 모든 후보 위를 달리며, 의 밑 는 후보 색인이 아니라 지수 상수입니다. 는 원-핫 정답 지시자로, 정답 자리에서만 , 그 밖에서는 이고, 정답의 점수는 로 쓸 수 있습니다. 이므로 손실은 로 전개되고, 첫째 항을 미분하면 입니다. 그러면
시그모이드 자신의 도함수 와 를 써서 세 고리를 연쇄로 이으면:
그리고 는 맨 뒤의 만 뺀 같은 식입니다. 안쪽 훈련 루프는 이 공식을 그대로 옮겨 적은 것입니다(ultra_lite.py 324–335행):
ex = np.exp(sc - sc.max())
p = ex / ex.sum()
loss += -float(np.log(p[ti]))
dLds = p.copy()
dLds[ti] -= 1.0 # dL/ds = p - y
for rho in world.signed:
for k, d, g in (("1", d1, g1), ("2", d2, g2)):
gv, f = g[rho]
# chain rule: dL/dg = (p-y).ds/dg, then sigma' = g(1-g)
dLdg = float(dLds @ d[rho][cand]) * gv * (1.0 - gv)
grad[f"w{k}"] += dLdg * f
grad[f"b{k}"] += dLdg
15개 엣지짜리 학계 분할의 방향 질의 30개에 대해 학습률 , 300 에포크의 전체 배치 경사 하강을 돌리면 커밋된 트레이스가 나옵니다:
[2] training on the academic world only (12 parameters, 300 epochs, 1-vs-all log-loss)
epoch mean -ln p(answer)
1 2.4793
50 2.4690
150 2.4591
300 2.4480
theta: w1 = [ 0.76 -0.089 -0.585 -0.255 0.577] b1 = -0.424
w2 = [ 0.374 -0.409 0.046 0.193 1.333] b2 = -0.619
[3] gradient audit: all 12 hand partials vs central differences
max |hand - FD| = 3.41e-11 (< 1e-06)
정직한 읽기 두 가지입니다. 첫째, 손실은 2.4793에서 2.4480으로 겨우 움직이는데, 이는 구조적인 현상입니다. 점수가 게이트 걸린 경로 질량들의 작은 합이라서 각 질의가 순위를 매기는 열 개에서 열두 개의 필터링된 후보들 위에서 소프트맥스가 균등 분포에 가깝게 머물고(열두 개에 대한 균등 추측의 비용은 ), 열두 개의 매개변수로는 답을 암기하라고 시켜도 암기할 수 없습니다. 훈련이 바꾸는 것은 후보들의 순서이며, 손실은 그것을 희미하게, 순위 지표는 결정적으로 기록합니다. 둘째, 이 규모에서는 훈련된 가중치를 읽어 낼 수 있습니다. 홉 1의 가장 큰 가중치는 같은 관계 지시자()와 꼬리-꼬리 중첩()에 놓여 있고, 홉 2는 꼬리-꼬리()에 가장 세게 기대는데, 이는 "-질문은 -엣지들이 질량을 내려놓는 곳에 질량을 내려놓는 엣지들을 따라 마무리하라"라고 읽힙니다. 손으로 유도한 열두 개의 편도함수 하나하나가 진짜 2홉짜리 질의 위에서 중심 유한 차분과 대조 검증되어 까지 일치합니다(ultra_lite.py 503–525행). 그리고 실제 시스템과의 거리는 숨기지 않고 명시합니다. 실제 ULTRA는 관계 그래프와 개체 그래프 모두 위에서 비매개변수 DistMult 메시지, 합 집계, 그리고 관계 표현에 대한 학습된 계층별 변환을 갖춘 조건부 메시지 전달을 실행하며, 15개 엣지짜리 토이 하나가 아니라 여러 지식 그래프 위에서 한꺼번에 사전 훈련됩니다 [3][4]. 축소판이 보존하는 것은 하중을 떠받치는 성질인 어휘 독립성과 계산의 모양입니다.
제로샷 실험
지금까지는 전부 아키텍처였고, 여기가 반증 가능한 핵심입니다. 동반 코드는 모듈 안에 두 번째 세계, 병원을 정의합니다. 의사가 의사를 지도하고, 다른 보고서를 참조하는 보고서를 쓰고, 병원에서 일하며, 보고서는 전문 분야를 다룹니다(ultra_lite.py 102–122행):
HOSPITAL_TRAIN: list[tuple[str, str, str]] = [
("adams", "mentors", "baker"), ("adams", "mentors", "chen"),
("chen", "mentors", "diaz"), ("diaz", "mentors", "evans"),
("baker", "wrote", "rep1"), ("chen", "wrote", "rep2"),
("evans", "wrote", "rep3"),
("rep2", "references", "rep1"), ("rep3", "references", "rep2"),
("adams", "worksAt", "mercy"), ("baker", "worksAt", "mercy"),
("chen", "worksAt", "stluke"), ("diaz", "worksAt", "stluke"),
("rep1", "covers", "cardio"), ("rep2", "covers", "neuro"),
("rep3", "covers", "trauma"),
]
# Held out, chosen so each is 2-hop reachable on the train graph (a scorer
# that has learned structural patterns CAN find them; one that has not,
# cannot) — the mentor's hospital, the co-written report, the reference
# closure:
HOSPITAL_TEST: list[tuple[str, str, str]] = [
("evans", "worksAt", "stluke"), # via inv_mentors . worksAt
("diaz", "wrote", "rep3"), # via mentors . wrote
("rep3", "references", "rep1"), # via references . references
]
이 스키마는 의도적으로 학계 세계와 유사하되 동형은 아닙니다. 역할의 대응은 분명하고(지도교수 관계 대신 멘토 관계, 논문 대신 보고서, 기관 대신 병원, 주제 대신 전문 분야), 어휘는 완전히 서로소입니다. 개체 이름도 관계 이름도 단 하나 겹치지 않습니다. 그러나 모양은 중요한 지점에서 다릅니다. 학계 훈련 그래프의 지도 사슬은 경로입니다. alice에서 bob, carol, erin으로 이어집니다. 병원의 멘토십 나무는 뿌리에서 갈라져, adams가 baker와 chen을 모두 지도합니다. 학계의 두 인용은 사슬을 이루지만, 병원의 세 참조 엣지는 제외해 둔 rep3에서 rep1로 가는 엣지를 포함하면 삼각형으로 닫힙니다. 학계 인접 패턴을 그저 암기했을 뿐인 모델이라면 여기서 맞춰 볼 것이 아무것도 없을 것입니다. 오직 "역할들이 이런 식으로 함께 나타난다"라는 종류의 구조적 규칙성만이 넘어올 수 있습니다. 제외해 둔 세 엣지 각각은 병원 훈련 그래프 위에서 2홉으로 도달 가능하므로, 어떤 구조적 역할을 걸어야 하는지 배운 채점기는 그것들을 찾을 수 있고, 배우지 못한 채점기는 찾을 수 없습니다.
프로토콜은 제로샷의 정의를 문자 그대로 실행한 것입니다. 병원 그래프 위에서 구조적 특징을 다시 계산하고(특징은 그 그래프의 끝점 집합만의 함수입니다), 고정된 학계 훈련 를 적용하며, 어떤 종류의 경사 갱신도 하지 않습니다. 평가는 3권의 필터링된 순위 매김을 더 단단하게 만든 것입니다. 제외해 둔 각 엣지를 양방향으로 질의하고, 참으로 알려진 경쟁자들을 필터링해 제거하며, 동점인 점수들은 기댓값 순위 로 기여하는데, 여기서 는 집합의 원소 개수를 세고 는 필터링된 경쟁 개체들 위를 달립니다. 그래서 모든 것을 0으로 채점하는 퇴화된 채점기는 1위를 가장하지 못하고 우연 수준에 떨어집니다(ultra_lite.py 348–380행). 보고되는 지표는 필터링된 MRR(mean reciprocal rank, 평균 역순위)로, 질의마다 정답 순위 분의 1을 구해 평균한 값입니다. 동일한 프로토콜 아래 세 채점기가 달립니다. 고정된 무작위 기준선, 제로샷 전이, 그리고 병원 자신의 16개 엣지로 직접 훈련한 참조 모델입니다. 커밋된 표는 다음과 같습니다:
[4] zero-shot link prediction on the hospital world (filtered ranks: tail, head;
ties at expected rank, so a constant scorer cannot fake rank 1)
held-out edge random zero-shot trained-on-target
(evans, worksAt, stluke) [3, 2] [1, 2] [1, 2]
(diaz, wrote, rep3) [12, 11] [2, 1] [2, 2]
(rep3, references, rep1) [5, 9] [1, 1] [1, 1]
filtered MRR 0.2198 0.8333 0.7500
이 세 숫자를 그것이 담고 있는 발견으로 읽어 봅시다. 무작위는 에 앉아 있습니다. 개체가 13개이고 필터링이 강하게 걸리는 상황에서 우연은 무시할 수 없는 수준이며, 바로 이것이 기준선을 가정으로 때우지 말고 같은 프로토콜 아래에서 실제로 돌려야 하는 이유입니다. 제로샷은 에 앉아 있고, 여섯 개의 방향 질의 가운데 네 개가 1위로 순위 매겨졌습니다. 모듈은 그 여유를 mrr_zs > mrr_rnd + 0.3으로 단언하므로, 전이 주장은 장식이 아니라 하중을 떠받칩니다(ultra_lite.py 535–536행). 그 두 열 사이의 간극이 이 장의 논제를 숫자로 만든 것입니다. 한 세계에 맞춰진 열두 개의 숫자가 기호 하나 겹치지 않는 세계로 옮겨 가서도 빠진 엣지들이 어디 있는지 알고 있었습니다. 셋째 열은 가장 조심스럽게 읽어야 합니다. 이 토이 규모에서는 대상 훈련 참조 모델()이 실제로 제로샷 전이보다 아래에 떨어지는데, 모듈은 이것이 인공물이라고 소리 내어 말합니다. 병원의 16개 엣지가 이 열두 개의 매개변수에게 학계의 15개 엣지보다 약간 더 나쁜 커리큘럼일 뿐, 더 어려운 시험이어서가 아닙니다. 벤치마크 규모에서 발표된 순서 관계는 조심스럽게 말해야 하는데, 그 가운데 하나가 똑같은 역전을 보여 주기 때문입니다. 각 대상 그래프에 맞춰 훈련된 최고 성적의 보고된 기준선들에 맞서면 제로샷 ULTRA가 평균적으로 이미 이깁니다. 발표된 평가 스위트 전체에서 평균 MRR 0.395 대 0.344이므로, 고정된 전이가 그래프별로 훈련된 모델들을 이기는 일은 이상 현상이 아니라 그 논문의 대표 발견입니다. 상한선처럼 행동하는 비교는 사전 훈련 모델 자체를 미세 조정하는 쪽인데, 이는 평균을 0.422로 끌어올려 제로샷 위에 머뭅니다. 이 미세 조정 대 고정 쌍이 우리의 대상 훈련 열에 가장 가까운 벤치마크 규모의 유사물이며, 추가 훈련이 여전히 확실하게 도움이 되는 곳입니다 [3]. 어느 규모에서든 인공물이 아닌 것은 정말로 중요한 순서, 곧 모델이 한 번도 본 적 없는 그래프 위에서 제로샷이 우연을 결정적으로 웃돈다는 사실입니다.
축소판 UltraQuery: 복합 질의, 제로샷으로
귀납적 링크 예측기 하나가 곧 논리곱 질의에 답해 주는 것은 아직 아닙니다. UltraQuery의 수는 아키텍처의 절약입니다. 앞 장이 지은 퍼지 집합 실행기(개체들 위의 퍼지 소속 벡터, 보정된 1홉 채점기로서의 관계 투영, t-노름으로서의 교집합)를 그대로 가져다가, 투영 슬롯에 귀납적 투영기를 꽂는 것입니다 [2]. 다른 것은 아무것도 바뀌지 않습니다. 실행기는 원래부터 어휘에 무관했고, 이제는 투영기도 그렇습니다.
동반 코드는 병원 세계 위에서 같은 두 단계를 따릅니다. 먼저 제로샷 채점기의 보정된 행렬(calibrated matrices)을 짓습니다. 부호 있는 관계마다 모든 원천 행을 채점하고, 각 행을 자신의 최댓값으로 나누어 로 정규화한 다음(점수가 음이 아닌 게이트 경로 질량들의 합이므로 정당한 조작입니다), 모든 관측된 훈련 엣지를 정확히 로 고정합니다. 증명 가능한 답이 공짜로 실려 가도록 앞 장에서 재사용한 QTO의 조리법입니다(ultra_lite.py 426–435행):
M = {}
for r in world.signed:
rows = []
for h in world.entities:
s = score_vec_and_grads(world, h, r, theta)[0]
m = float(s.max())
rows.append(s / m if m > 0 else s)
M[r] = np.vstack(rows)
M[r][world.A[r] > 0] = 1.0 # pin observed edges
return M
그다음이 실행기 자체인데, 통틀어 열네 줄입니다. 앵커는 원-핫 소속 벡터이고, 투영은 최댓값-곱 퍼지 상 이며(각 후보 꼬리는 가장 좋은 원천의 소속에 그 원천이 그 홉에 대해 갖는 보정된 신뢰도를 곱한 값을 물려받습니다), 교집합은 원소별 곱 t-노름입니다(ultra_lite.py 443–456행). 커밋된 질의 두 개가 이것을 시험하는데, 각각 골드 정답이 제외해 둔 엣지를 반드시 필요로 하도록 골랐습니다. 골드 집합은 CLQA 장들의 정확한 기호 실행기인 query_dag.eval_query에서 나오며, 이 실행기는 어떤 엣지 집합에 대해서도 일반적이라 병원 세계에서도 수정 없이 돌아갑니다(query_dag.py 127–157행, ultra_lite.py 469–474행의 gold_sets를 거쳐 호출됩니다):
Q_2P = ("diaz", ("wrote", "references"))
# "reports referenced by what diaz wrote" — needs held-out (diaz,wrote,rep3)
Q_2I = (("stluke", ("inv_worksAt",)), ("diaz", ("mentors",)))
# "who works at stluke AND is mentored by diaz" — needs held-out
# (evans, worksAt, stluke)
[6] UltraQuery-lite: zero-shot complex queries (fuzzy executor over calibrated matrices)
2p: diaz -wrote.references->
easy (train-reachable): {} hard: ['rep1', 'rep2']
fuzzy top-3: rep1 0.687, rep2 0.687, rep3 0.571
top-1 is a gold HARD answer (asserted)
2i: [stluke -inv_worksAt->] AND [diaz -mentors->]
easy (train-reachable): {} hard: ['evans']
fuzzy top-3: evans 0.715, chen 0.283, adams 0.144
top-1 is a gold HARD answer (asserted)
두 질의 모두 쉬운 답 집합이 비어 있습니다. 병원 훈련 그래프의 기호적 순회는 아무것도 돌려주지 않으므로, 여기서 나오는 모든 정답은 채워 넣기입니다. 2i의 경우는 곱 t-노름 아래에서 깨끗하게 분해되니 짚어 볼 만합니다. 후보 chen은 세인트 루크에 확실히 있지만(관측된 엣지, 보정된 소속이 으로 고정) diaz의 지도 학생으로는 약하게만 채워 넣어지므로(으로 보정되는 2홉 질량), 곱은 입니다. 후보 evans는 diaz의 지도 학생임이 확실하고(관측됨, 으로 고정) 세인트 루크에 있음이 강하게 채워 넣어지므로(), 곱은 입니다. 논리곱은 evans를 1위에 올리는데, 정확히 골드 하드 정답이고, 모듈은 두 질의 모두에 대해 정확히 그것을 두 줄로 단언합니다(ultra_lite.py 563–564행):
assert top[0] in alla, f"{label}: top-1 {top[0]} not a gold answer"
assert top[0] in hard, f"{label}: top-1 {top[0]} not a HARD answer"
2p 질의에서는 두 골드 하드 정답 rep1과 rep2가 모든 비정답 위에서 꼭대기에 동점으로 놓입니다(각각 , 출력은 동점을 알파벳순으로 깨뜨립니다). 퍼지 질량이 rep3 같은 구조적으로 그럴듯한 비정답에도 퍼진다는 점은 정직하게 적어 둡니다. 단언이 깨끗한 분리가 아니라 순위를 검사하는 이유가 그것입니다. 발표된 논문의 미묘한 문제 하나도 정직한 한 문장을 받을 자격이 있습니다. 1홉 링크 예측을 위해 사전 훈련된 투영기는 언제나 소속이 인 단일 원천만 보아 왔는데, 복합 질의 안에서는 투영에 0이 아닌 항목이 여럿인 중간 퍼지 집합이 먹여지며, UltraQuery 논문은 이 분포 이동을 정면으로 마주해야 했고 두 가지 수선책을 내놓았습니다. 복합 질의 데이터로 투영기를 미세 조정하거나, 투영기를 고정한 채 퍼지 입력을 문턱값으로 잘라 사전 훈련 체제 쪽으로 다시 희소하게 만드는 것입니다 [2]. 우리의 축소판은 구성상 이 이동을 비켜 갑니다. 최댓값-곱 상은 보정된 행렬을 원천 하나하나에 적용할 뿐, 섞인 퍼지 벡터를 네트워크에 통과시키지 않기 때문입니다. 투영기 자체가 원천 분포를 조건으로 하는 전파인 실제 규모에서는 이 이동이 실재하며, 그 수선책이 시스템의 일부입니다.
추론 파운데이션 모델은 무엇이고, 무엇이 아닌가
실제로 무엇이 전이되었는지를 저울에 달아 보며 이 부를 닫읍시다. 발표된 ULTRA 모델은 논문의 집계 기준으로 어떤 지식 그래프에 대해서든, 통틀어 약 177k개의 매개변수를 지닙니다(공개된 체크포인트의 집계는 약 168k개입니다). 벤치마크 그래프 하나를 위한 종래의 임베딩 모델 하나는 개체 표에만 그보다 몇 자릿수 더 많은 매개변수를 쓰고, 다음 그래프를 위해 그만큼을 또 씁니다 [3]. 그 177k개의 매개변수는 어떤 사실도 인코딩하지 않습니다. 그것들이 인코딩하는 것은 증거가 흐르는 방식입니다. 던져진 질문에 상대적으로, 어떤 구조적 역할의 엣지가 질량을 실어 날라야 하며 얼마나 실어야 하는가입니다. 매개변수가 세계의 교체에서 살아남고 임베딩 표는 그러지 못하는 이유가 여기 있습니다. 표는 세계 그 자체였고, 게이트는 추론 절차입니다. 두 가지 요건이 이 주장을 단련합니다. 사전 훈련에는 구조적 다양성, 곧 모양이 다른 여러 그래프가 필요합니다. 그러지 않으면 게이트가 자신이 본 단 하나의 위상에 과적합합니다(발표된 절제 실험은 사전 훈련 그래프가 늘수록 좋아지며, 단일 그래프로 훈련한 우리의 축소판은 설계상 그 기준선 아래에 있습니다 [3]). 그리고 이 내기 전체는 구조가 신호를 지니지 않는 곳에서 실패합니다. 끝점 집합의 기하가 아무것도 알려 주지 않는 관계, 또는 새 도메인에서의 구조적 역할이 사전 훈련에서 본 어떤 역할과도 다른 관계는 게이트에게 붙잡을 것을 아무것도 주지 않습니다.
이 권의 서사는 여기서 분명히 말해 둘 가치가 있는 대칭으로 닫힙니다. 기호 실행기인 query_dag.eval_query는 병원 질의에 수정 없이 답했습니다. 집합 의미론은 애초에 이름에 의존한 적이 없기 때문입니다. 기호 엔진은 언제나 어휘로부터 자유로웠고, 아무도 그 점을 칭찬할 생각을 하지 않았습니다. 이 연구 흐름이 이룬 것은 그 성질을 신경 기둥 안에서 재발견하되, 신경 기둥이 고용된 이유를 포기하지 않은 것입니다. 커밋된 표의 요점 전체가 그것입니다. 기호 실행기는 모든 하드 정답에서 점을 받고(그 답들은 그것이 볼 수 없는 엣지를 요구합니다), 어휘로부터 자유로운 신경 채점기는 그것들을 MRR 으로 채워 넣습니다. 어휘에 대해 일반화하는 것과 빠진 구조를 채워 넣는 것, 이 둘을 동시에 쥐는 일이 파운데이션이라는 낱말을 얻어 내는 조건입니다.
아직 풀리지 않은 부분
제로샷 CLQA는 이 부가 목록으로 만든 모든 상류의 취약성을 물려받으며, 앞선 모든 모델이 지녔던 안전판, 곧 어긋남을 흡수할 수 있는 그래프별 훈련 없이 물려받습니다. 보정이 가장 분명한 사례입니다. 우리의 파이프라인은 새 그래프 위에서 점수 행들을 로 최댓값-정규화했지만, 보정된 이 병원 세계에서 학계 세계와 같은 정도의 그럴듯함을 뜻한다는 것을 무엇도 보증하지 않으며, 곱 t-노름은 그 보증 없는 숫자들을 마치 같은 단위인 양 곱합니다. 부정의 의미론도 마찬가지로 잘 여행하지 못합니다. 닫힌 세계 여집합은 모델이 아무 지분도 없는 개체 집합에 상대적이고, 보정이 어긋난 소속 벡터의 퍼지 여집합은 두 오류를 겹쳐 쌓습니다. 변환적 벤치마크들에서 문서화된 질의 은행 편향은 그래프가 바뀐다고 사라지지 않습니다. 거기서는 측정 불가능해질 뿐인데, 새 세계의 하드 정답에 이름표를 붙여 둔 사람이 아무도 없기 때문입니다. 이 모든 것보다 더 깊은 곳에 이 구성 전체가 딛고 선 가정이 놓여 있습니다. 구조가 도메인을 가로질러 일관되게 의미를 나른다는 가정입니다. 이 가정은 두 도메인이 같은 구조를 다르게 쓰는 바로 그 지점에서 실패합니다. 학계 세계에서 advises와 affiliated 사이의 머리-머리 중첩은 역할들의 무해한 동거를 신호하지만, 같은 중첩 패턴이 적대적 관계를 인코딩하는 그래프도 얼마든지 상상할 수 있으며, 고정된 게이트는 그 둘을 구별할 수 없습니다. 특징 행이 구성상 동일하기 때문입니다. 모델 내부의 양들이 우리가 필요로 하는 그 의미를 지니는가, 그리고 그것을 도대체 어떻게 검증할 것인가는 식별 가능성의 질문이며, 정확히 예정대로 5권의 개막 주제로 도착합니다.
왜 중요한가
실용적으로, 이 장은 추론기를 출하하는 것과 고객마다 추론기를 하나씩 출하하는 것의 차이입니다. 이 연구 흐름 이전 CLQA의 모든 배치 시나리오는 "먼저 당신의 그래프 위에서 임베딩을 훈련하세요"로 시작했습니다. 어휘로부터 자유로운 투영기는 새 지식 그래프 위의 질의 응답을 고정된 177k개의 매개변수를 로드하고 특징을 다시 계산하는 일로 만들며, 파운데이션 모델이라는 틀이 상표 이상의 것인 이유가 그것입니다 [3][2]. 개념적으로는 두 기둥이 이 권 내내 주고받은 질문 하나를 정리합니다. "추론"의 어느 부분이 지식이고 어느 부분이 절차인가. 커밋된 실험은 그 둘을 깨끗하게 가릅니다. 지식(18개의 학계 사실)은 명백히 전이되지 않았고, 절차(구조적 역할에 게이트를 걸고, 전파하고, t-노름으로 결합하기)는 명백히 전이되었습니다. 5권은 두 절반 모두를 밀어붙일 것입니다. 신뢰(방금 나열한 보정의 빚을 생각할 때, 제로샷 답은 언제 믿을 수 있는가)와 규모(여러 그래프에 걸친 사전 훈련이 그래프별 훈련이 사 주던 신뢰성을 사 주는가)입니다. 이 장이 앞으로 가지고 가는 정직한 장부, 곧 분위기가 아닌 단언, 동일한 프로토콜 아래의 기준선, 인공물을 인공물이라고 부르는 태도가 그 질문들을 답할 수 있게 만드는 방법입니다.
핵심 용어
- 파운데이션 모델(foundation model, 지식 그래프 추론용) — 새 지식 그래프에, 개체와 관계까지 포함하여, 재훈련 없이 적용되는 하나의 사전 훈련된 모델입니다. 어떤 매개변수도 어휘 항목으로 색인되지 않을 것을 요구합니다 [3].
- 평가 체제(evaluation regimes) — 변환적(훈련 그래프 위에서 시험), 개체에 대해 귀납적(새 개체, 아는 관계), 개체와 관계에 대해 귀납적(아무것도 공유하지 않음)의 세 가지입니다. ULTRA 이전에는 어떤 단일 사전 훈련 모델도 셋째 칸에 도달하지 못했고, UltraQuery 이전에는 어떤 CLQA 모델도 도달하지 못했습니다.
- LMPNN(Logical Message Passing Neural Network) — 고정된 사전 훈련 임베딩 위의 CLQA입니다. 각 질의 그래프 원자가 고정된 채점기로부터 유도한 닫힌 형식의 메시지를 보내고, 작은 집계 네트워크와 두 개의 변수 초기화 벡터만 훈련됩니다 [1].
- 질의 그래프(query graph) — 상수, 존재 변수, 자유 변수 위에 질의의 원자들을 이름표 붙은 그래프로 그린 것입니다. LMPNN이 메시지를 전달하는 대상입니다.
- 메타 관계(meta-relations: h2h, h2t, t2h, t2t) — 두 관계의 끝점 집합이 겹칠 수 있는 네 가지 방식(머리-머리, 머리-꼬리, 꼬리-머리, 꼬리-꼬리)입니다. 관계의 관계 그래프의 엣지 유형입니다.
- 관계의 관계 그래프(relation-of-relations graph) — 노드가 대상 그래프의 관계들이고 엣지가 메타 관계 동시 출현인 그래프입니다. 관계의 표현은 여기서의 위치이며, 이름 없이 어떤 그래프 위에서도 계산할 수 있습니다 [3].
- 자카드 중첩(Jaccard overlap) — , 동반 코드가 메타 관계의 강도로 쓰는 규모 무관한 집합 유사도입니다.
- 원천 시드 전파(source-seeded propagation) — 에 단위 질량을 놓고 게이트 인접 행렬들을 통해 밀어 보내 을 채점하는 방식으로, 각 꼬리의 점수는 그 경로들의 게이트 곱을 합한 것입니다. NBFNet의 근간 구조입니다 [4].
- 제로샷 전이(zero-shot transfer) — 새 그래프 위에서 구조적 특징을 다시 계산하고, 고정된 매개변수를 적용하며, 경사 갱신은 하지 않는 것입니다. 여기서는 무작위 바닥 에 맞선 MRR 으로 커밋되었습니다.
- 재라벨링 불변성(relabeling invariance) — 어휘 독립의 실행 가능한 의미입니다. 모든 관계의 이름을 불투명한 토큰으로 바꾸어도 어떤 점수도 바뀌지 않습니다(커밋된 최대 차이 ).
- UltraQuery — 귀납적 투영기를 퍼지 집합 질의 실행기에 꽂아 복합 질의에 제로샷으로 답하는 시스템입니다. 실제 규모에서는 미세 조정이나 입력 문턱값 처리로 다중 원천 분포 이동을 다루어야 합니다 [2].
이 장이 이끄는 곳
5부는 실행기를 이식 가능하게 만들며 닫혔지만, 질의 자체는 여전히 깨끗한 기호 DAG(directed acyclic graph, 유향 비순환 그래프)로 건네받았습니다. 다음 부는 그 호의를 거둡니다. 추론 문제가 영어로 도착합니다. 소프트 추론기는 언어 모델이 추론 엔진 그 자체가 될 수 있는지를 묻고, 자연어 규칙과 사실 위에서 RuleTaker 방식의 연역을 실행하며, 동반 코드의 ruletaker_lite.py는 같은 정직한 계측 도구(골드 증명, 통제된 깊이, 커밋된 정확도 표)를, 이번에는 어휘가 언어 전체인 추론기에 들이댑니다.
동반 코드: examples/integration/ultra_lite.py는 이 장 전체를 구현합니다: 두 세계와 그 구조적 특징(102–188행), 손으로 유도한 경사를 갖춘 게이트 2홉 채점기(211–264행), 학계 세계만의 훈련(307–342행), 더 단단해진 필터링된 MRR 프로토콜과 재라벨링 불변성 검사(348–414행), UltraQuery-lite의 보정된 행렬과 퍼지 실행기(420–474행), 그리고 유한 차분 경사 감사에서 제로샷 여유와 골드 하드 1위 답에 이르기까지 여기서 이루어진 모든 커밋된 주장을 지키는 assert들(496–567행)입니다. 기호적 골드는 examples/integration/query_dag.py의 eval_query(127–157행)에서 나오며, 병원 세계에서도 수정 없이 그대로입니다. python3 examples/integration/ultra_lite.py를 실행하면 이 장의 모든 숫자를 바이트 단위로 재현할 수 있습니다; 그 실행은 SUMMARY ultra_lite: mrr_random=0.2198 mrr_zeroshot=0.8333 mrr_trained=0.7500 grad_diff=3.4e-11 invariance=0.0e+00 fuzzy_2p_top1=rep1 fuzzy_2i_top1=evans로 끝납니다.