NeSy 벤치마크 스위트와 시뮬레이터
📍 현재 위치: VI부 · 벤치마크와 평가 — 16장. 일곱 난이도 축은 "더 어렵다"를 일곱 개의 독립적인 생성기 손잡이로 바꾸고 두 시스템을 한 번에 한 요인씩 측정했습니다; 이 장은 렌즈를 하나의 계측 도구에서 이 분야의 벤치마크 스위트로 넓혀, 그것들이 공유하는 네 가지 설계 공약을 추출한 뒤, 그 잣대를 이 권 자신의 다섯 계측 도구에 돌립니다.
벤치마크는 정답지가 딸린 하나의 과제입니다. 머신러닝 역사의 대부분 동안 그것으로 충분했습니다: 시험 집합을 발표하고, 고정하고, 시스템들이 그 위에서 경주하게 두는 것입니다. 앞 장은 이미 왜 고정된 숫자 하나가 추론 시스템을 과소 서술하는지를 보였습니다; 이 장은 2024년 무렵 이 분야가 수렴한, 더 튼튼한 인공물인 벤치마크 스위트(benchmark suite)에 관한 것입니다: 시드가 붙은 생성기들의 집합, 지표들의 패널, 그리고 고정된 평가 프로토콜이 하나의 도구로 함께 묶여 발송됩니다. 그 전환은 겉치레가 아닙니다. 단일 벤치마크는 하나의 과제를 측정하지만, 스위트는 하나의 방법론을 제도화하며, 현대의 신경-기호(neuro-symbolic, NeSy) 스위트들은 그 방법론이 무엇을 갖추어야 하는지에 대해 놀라울 만큼 일관되게 동의합니다. 이 장은 그것들이 공유하는 네 가지 설계 공약을 추출하고, 대표 스위트들을 그 공약에 비추어 조사한 뒤, 방법론을 다루는 장이 독자에게 마땅히 해야 할 일을 합니다: 하나를 직접 짓는 것입니다. companion의 suite_harness.py는 이 권이 지어 온 다섯 개의 측정 도구를 하나의 시드가 붙은 프로토콜 아래 다시 실행하여 하나의 통합된 성적표로 모으고, 자신이 다른 모두에게 적용하는 것과 같은 잣대로 스스로를 채점합니다.
모든 후보자를 똑같은 암기된 경로로 시험하는 운전면허 시험관을 상상해 보십시오. 일 년만 지나면 운전 학원들은 정확히 그 경로를 가르칩니다: 세 번의 회전, 한 번의 평행 주차, 오전 9시면 항상 초록불인 신호등입니다. 합격률은 치솟지만 운전 실력은 그대로입니다. 좋은 시험관이라면 대신 네 가지를 합니다. 그녀는 경로-제작 레시피로부터 후보자마다 새로운 경로를 생성하므로 암기할 것이 없습니다(그리고 그 레시피의 주사위 값을 적어 두면 어떤 경로든 정확히 그대로 재현할 수 있습니다). 그녀는 각 경로가 실제로 무엇을 시험하는지, 즉 참값을 압니다. 자신이 그 레시피를 설계했기 때문입니다. 그녀는 도착 여부보다 더 많은 것을 채점합니다: 백미러 확인, 신호 넣기, 로터리에서의 머뭇거림입니다. 그리고 그녀는 경로의 난이도를 다이얼로 조절할 수 있습니다: 야간 주행, 비, 고속도로 합류입니다. 벤치마크 스위트는 바로 그 시험관이며, 이 장은 그녀의 규정집입니다.
이 장에서 다루는 내용
- 설계의 전환: 고정된 시험 집합이 모든 것으로부터 훈련하는 한 분야를 만났을 때 무너지는 것, 즉 누출(leakage), 포화(saturation, 시험 집합이 언제 변별력을 잃는지를 정확히 말해 주는 표준오차 산술과 함께 유도됩니다), 그리고 굿하트의 법칙(Goodhart's law)입니다.
- 네 가지 공약: 시험 대상 잠재적 성질에 대한 알려진 참값 근거, 정확도를 넘어서는 지표, 통제 가능한 난이도, 그리고 시드가 붙은 절차적 생성으로, 이 장의 잣대로 미리 진술되어 이후의 모든 것을 조직하는 데 쓰입니다.
- 그 잣대에 비추어 본 조사: 정확한 지름길 계수기를 갖춘 개념-품질 스위트, 도시-논리 시뮬레이터, 절차적 패턴 커리큘럼, 시간-제약 스트림, 온톨로지에 정렬된 시각 자원으로, 각각은 하나의 공약이 제도화된 사례로 읽힙니다.
- 이 장의 인공물인 하니스:
suite_harness.py는 이 권의 다섯 계측 도구를 하나의 프로토콜 아래 다시 실행하여 단일한 성적표를 내놓으며, 모든 표제 숫자는 다시 유도되어 소유 모듈의 커밋된 값과 같음이 assert됩니다. - 이 분야의 축소판 현황으로서의 성적표: 통합된 시스템별-계측 도구별 표로, 그중 두 행은 이 권을 이루는 부(Part)들을 통해 소리 내어 읽힙니다.
- 정직한 점검표: 네 가지 공약 가운데 이 미니 스위트가 완전히, 부분적으로, 혹은 전혀 만족시키지 못하는 것이 무엇인지를 성질별로 예/아니오로 출력한 것으로, 자신을 관대하게 채점하는 벤치마크 장이라면 스스로가 자신의 반례가 되었을 것이기 때문입니다.
벤치마크에서 스위트로: 고정된 시험 집합이 죽는 세 가지 방식
고정된 시험 집합은 세 가지 서로 다른 방식으로 실패하며, 네 가지 공약이 그것들에 하나씩 답하기 때문에 그것들을 구분해 둘 가치가 있습니다.
첫 번째는 누출(leakage)입니다. 현대 시스템은 웹 규모의 말뭉치로 훈련되며, 발표된 시험 집합은 발표되었다는 바로 그 사실 때문에 웹 위에 있습니다. 시험 항목(혹은 그것을 바꿔 쓴 표현)이 훈련 분포 안으로 들어가는 순간, 벤치마크는 벤치마크 자체에 대한 재현율(recall)을 측정하게 됩니다. 점수의 그 무엇도 추론과 검색을 구분해 주지 않으며, 평가 시점의 어떤 통계적 주의도 훈련 시점에 일어난 오염을 되돌릴 수 없습니다.
두 번째는 포화(saturation)이며, 이것은 정확하게 만들 수 있습니다. 시험 집합이 개의 항목을 갖는다고 합시다(은 시험 문항의 개수입니다) 그리고 어떤 시스템이 각 문항을 독립적으로 확률 (그 시스템의 참 정확도)로 옳게 답한다고 합시다. 그러면 채점된 각 문항은 하나의 베르누이 추출(Bernoulli draw)입니다: 확률 로 값 (정답)을, 그렇지 않으면 값 을 취하는 확률 변수 입니다. 한 번의 추출의 분산은 두 줄이면 유도됩니다. 를 의 기댓값, 즉 확률로 가중된 평균이라고 쓰면 입니다; 는 과 만을 값으로 취하므로 이고, 따라서 이기도 합니다; 그리고 분산은 제곱의 기댓값에서 기댓값의 제곱을 뺀 것이므로 입니다. 측정된 정확도 는 그 번의 추출의 평균입니다. 독립인 확률 변수들의 분산은 더해지므로 번의 추출의 합은 분산 를 가지며, 그 합을 으로 나누어 평균을 만들면 분산은 으로 나뉘어(확률 변수를 상수 배로 다시 재면 그 분산은 배가 됩니다), 이 남습니다. 그러므로 그 표준오차(standard error, 추정량의 표준편차, 즉 이 분산의 제곱근)는
숫자를 넣어 봅시다. 개의 항목에서 일 때: ; 500으로 나누면 ; 그 제곱근은 , 즉 정확도 점수로 약 점입니다. 두 시스템을 비교하면 분산이 두 배가 되므로(독립인 두 추정량의 차이의 분산은 각 분산의 합입니다), 측정된 격차의 표준편차는 이고, 두 표준편차, 즉 격차를 잡음이 아니라 실재한다고 부르는 관례적 기준(순수한 잡음의 요동 가운데 약 95퍼센트가 그 안에 들어옵니다)의 해상도 문턱은 에 놓입니다. 결론을 있는 그대로 읽으면: 천장 근처에서는 500개 항목짜리 시험 집합이, 독립적으로 평가된 시스템들이라면, 서로 약 정확도점 이내에 있는 것들을 통계적으로 구별할 수 없습니다. 그 띠 안에서 일어나는 리더보드 순위 재배열은 잡음입니다. 이 산술을 정직하게 지키는 인정 하나: 두 시스템이 같은 고정된 항목들 위에서 채점될 때는 그 오류들이 상관되어 있어서, 둘이 서로 다르게 답한 항목들만을 놓고 짝지은 검정을 하면 그 띠 안쪽의 훨씬 작은 격차도 분해할 수 있으므로, 점이라는 수치는 짝짓지 않은 비교의 최악의 경우이지 단단한 바닥이 아닙니다. 포화된 벤치마크는 풀린 것이 아니라 측정을 멈춘 것입니다.
세 번째는 굿하트의 법칙(Goodhart's law)입니다: 어떤 척도가 목표가 되는 순간, 그것은 더 이상 좋은 척도가 아니게 됩니다. 모든 지표는 어떤 성질에 대한 대리물이며, 최적화 압력은 그 둘 사이의 틈을 찾아냅니다. 5권은 이미 가장 예리한 NeSy 사례를 보여 준 바 있습니다: II부는 레이블 정확도가 개념 의미를 인증할 수 없음을 증명했으므로, 레이블 정확도에 대해 최적화된 시스템은 미리 세어 둔 추론 지름길들 가운데 어느 것에든 자유롭게 안착할 수 있으며, II부의 측정된 스윕에서는 레이블-완벽한 스무 개의 시드 가운데 열다섯 개가 실제로 그렇게 했습니다. 굿하트는 허술한 지표 선택의 우연한 사고가 아닙니다; 잠재적 성질에 대해서는 그것이 정리(theorem)입니다.
이 장이 조사하는 스위트들은 그 세 가지 실패에 네 가지 설계 공약으로 답하며, 2024년에 정점을 찍은 그 물결, 즉 개념-품질 스위트 rsbench [1], 도시-논리 시뮬레이터 LogiCity [2], KANDY 패턴 커리큘럼 [3], LTLZinc 시간-제약 스트림 [4], 그리고 온톨로지에 정렬된 시각 자원 NeSy4VRD [5]를 이 하나의 잣대에 대한 변주로 읽는 것은 정당합니다:
| 공약 | 무엇을 방어하는가 | 스위트가 그것을 어떻게 실현하는가 |
|---|---|---|
| (1) 시험 대상 잠재적 성질에 대한 알려진 참값 근거 | 레이블에 대한 굿하트: 정확도는 개념이나 규칙을 증명 가능하게 인증할 수 없음 | 참값 개념 그리고 그것을 레이블에 연결하는 지식이, 생성된 모든 분할과 함께 발송됨; 레이블-완벽 실패 양상을 위한 정확한 계수기 |
| (2) 정확도를 넘어서는 지표 | 측정할 가치가 있는 실패들이 정확도에는 보이지 않음 | 개념 붕괴, 개념 보정, 증명 타당성, 일관성, 망각 |
| (3) 통제 가능한 난이도 | 포화: 고정된 집합은 천장에서 변별력을 잃음 | 추상화 모드와 구성적 분할; 단계적 커리큘럼; 지평 및 감독 세분성 손잡이 |
| (4) 시드가 붙은 절차적 생성 | 누출과 재현 불가능성을 동시에 | 생성기로부터의 무한한 새 사례; 커밋된 시드로부터의 바이트 단위 동일한 재생성 |
형식적으로, 스위트는 정적인 쌍(시험 집합, 지표)을 하나의 삼중항으로 대체합니다: 난이도 구성 (손잡이 설정)와 무작위 시드 를 완전히 레이블이 붙은 과제 사례로 사상하는 생성기 , 레이블 이상을 채점하는 지표 패널, 그리고 시스템이 사례를 어떻게 만나는지를 고정하는 프로토콜입니다. 앞 장은 이 이야기의 절반을, 손잡이 일곱 개 깊이로 지었습니다. 이 장은 그 삼중항의 나머지 부분에 관한 것이며, 어느 권이 그 삼중항을 자기 자신에게 겨눌 때 무슨 일이 일어나는지에 관한 것입니다.
한 장에 담은 이 장: 세 가지 실패 양상에 답하는 네 가지 설계 공약, 그것들을 구현하는 다섯 개의 대표 스위트, 그리고 하나의 시드가 붙은 하니스를 통해 단일한 성적표와 정직한 점검표로 모여드는 이 권 자신의 다섯 계측 도구.
저자가 AI의 도움을 받아 직접 제작한 원본 도해.
공약 (1)의 구현: 참값 개념과 정확한 지름길 계수기
개념-품질 스위트는 공약 (1)이 인프라로 지어진 것입니다 [1]. 그 전제는 이 권이 식별 가능성에서 증명한 정리입니다: 지식이 자명하지 않은 레이블-보존 재레이블링을 허용하는 한(이 스위트의 모든 과제 뒤에 있는 지식은 구성상 그러합니다), 어떤 레이블 지표도 어떤 시험 집합에서도 모델의 중간 개념이 무엇을 의미하는지를 인증할 수 없습니다. 개념을 채점하려면 벤치마크 자체가 개념 수준의 참값을 실어 날라야 하며, rsbench는 그것을 세 가지 방식으로 실어 나릅니다. 첫째, 참값 잠재 변수를 갖춘 생성기입니다: 손글씨 숫자에 대한 산술, 잠재 비트에 대한 명제 논리(패리티와 무작위 논리곱 표준형(conjunctive normal form, CNF) 식), 렌더링된 시각 장면에 걸친 과제 계열들로, 생성된 모든 예제가 레이블 뿐 아니라 참값 개념 벡터 와 개념을 레이블에 사상하는 지식 까지 지니며, 이 모두는 생성기가 그것을 만들어 냈기 때문에 구성상 알려져 있습니다. 둘째, 지름길 계수기입니다: 누구도 아무것도 훈련시키기 전에, 관측된 데이터 위의 모든 레이블을 보존하는 개념 재레이블링이 몇 개인지를 세는, 훈련이 필요 없는 검증기로, 작은 과제에서는 정확하게(모델 계수법으로), 규모에서는 -보장 근사 계수기로 셉니다. 여기서 은 상대 오차를, 는 그것을 초과할 확률을 한계 짓습니다. 셋째, 레이블과 개념을 별도로 채점하는 지표 패널입니다: 개념 정확도, 개념 붕괴, 그리고 평범한 레이블 정확도와 나란한 개념 수준 보정 오차입니다.
이 권의 II부는 이미 이 스위트를 축소판으로 지었고, 지름길 측정이 그 모든 조각을 살펴보았습니다; 여기서는 그것이 공약 (1)의 표본으로서 자리를 얻으므로, 짐을 떠받치는 수학만을 되짚어 봅니다. 계수기의 목표량은 , 즉 관측된 모든 세계에서 레이블을 보존하는 결정적 재레이블링 (개념 세계들의 집합 에서 자기 자신으로 가는 사상)의 개수입니다. 그 제약이 각 세계의 상(image)을 독립적으로 건드리므로, 그 개수는 세계별로 인수분해됩니다(rsbench_lite.py 164–192행):
여기서 는 관측된 지지집합(observed support, 훈련에서 실제로 나타나는 개념 세계들의 집합; 위의 무작위 시드 와 구별하기 위한 대문자 입니다)이며, 첫 번째 곱은 관측된 세계들에 걸쳐 있고(각각은 자신의 레이블 클래스 안 어디로든 보내질 수 있습니다), 두 번째 곱은 관측되지 않은 세계들에 걸쳐 있으며(어떤 훈련 지점도 그것을 제약하지 않으므로 각각은 정말로 어디로든 보내질 수 있습니다), 세로 막대 는 집합의 원소 개수를 셉니다. 비트 패리티 과제에서는 이 인자들이 깔끔하게 닫힙니다: 첫 번째 비트를 뒤집는 것은 짝수-패리티 세계와 홀수-패리티 세계 사이의 일대일 짝짓기이므로, 각 레이블 클래스는 정확히 개 세계의 절반, 즉 개를 담고 있으며,
companion의 생성기(rsbench_lite.py 123–159행)는 지지집합을 support_frac이라는 손잡이로 노출하며, 커밋된 표는 그 닫힌 형식을 정확히 따라갑니다. 에서 개 세계 전부가 관측되면 입니다; 으로 낮추면 이고; 에서는 입니다. 커밋된 실행은 정확히 그 숫자들을 인쇄하며, 이는 에서 개 사상 전부에 대한 말 그대로의 전수 조사에 대비해 인증됩니다(rsbench_lite.py 195–206행):
task k support frac N_opt reasoning shortcuts (N_opt - 1)
XOR 2 4/4 1.00 16 15
XOR 2 3/4 0.75 32 31
XOR 2 2/4 0.50 64 63
XOR 3 8/8 1.00 65,536 65,535
XOR 3 6/8 0.75 262,144 262,143
XOR 3 4/8 0.50 1,048,576 1,048,575
CNF 3 8/8 1.00 84,375 84,374
CNF 3 6/8 0.75 600,000 599,999
CNF 3 4/8 0.50 2,560,000 2,559,999
the seeded CNF (k=3): (x1 | x2 | x3) & (x2 | x3 | ~x1) & (~x3 | ~x2 | x1) (5/8 worlds satisfy)
CNF 행들도 같은 꼼꼼한 읽기에 보답합니다. 시드가 붙은 그 논리식은 8개 세계 중 5개에서 충족되므로, 완전한 지지집합에서는 5개의 양성 세계 각각이 인자 5를, 3개의 음성 세계 각각이 인자 3을 기여합니다: 입니다. 으로의 도약은 인자 인데, 이는 시드가 붙은 순열이 어느 세계들을 떨어뜨렸는지를 누설합니다: 둘 다 음성 세계였고, 각 인자는 자신의 클래스 크기인 3에서 제약 없는 8로 올라갔으며, 실제로 입니다. 다음 도약은 를 곱하는데: 각 클래스에서 하나씩 세계가 떨어졌고, 입니다. 참값이 구성상 알려진 스위트는 정확히 이런 종류의 감사를 지원합니다: 표 안의 모든 숫자는 손으로 다시 유도할 수 있는 귀결입니다.
공약 (3)의 구현: 시뮬레이터, 커리큘럼, 스트림
참값 잠재 변수가 굿하트에 답한다면, 통제 가능한 난이도는 포화에 답하며, 세 개의 스위트는 "더 어렵다"의 서로 다른 세 가지 의미로 난이도를 생성기의 일급 입력으로 만듭니다.
도시-논리 시뮬레이터. LogiCity는 그 동역학이 에이전트 개념에 대한 1차 논리 규칙으로 지배되는 시뮬레이션된 도시입니다: 어떤 에이전트가 존재하는지(자동차, 보행자, 구급차), 어떤 술어가 그것들을 서술하는지, 그리고 어떤 규칙이 술어를 행동에 결부시키는지가 모두 사용자가 설정 가능하므로, 세계의 추상화 수준 자체가 하나의 손잡이입니다 [2]. 두 가지 과제 체제가 서로 다른 근육을 시험합니다: 에이전트가 다른 에이전트들의 상호작용하는 규칙 동역학을 통해 계획을 세워야 하는 장기-지평 다중-에이전트 과제, 그리고 렌더링된 장면으로부터 예측된 모델의 행동이 지배 규칙을 존중하는지를 채점하는 단일-단계 추론 과제입니다. 평가 분할은 구성적입니다: 시험 에피소드는 훈련에서 결코 함께 본 적 없는 에이전트 구성, 즉 개념 주석들의 조합을 같은 지배 규칙 아래에서 사용하므로, 구성을 암기하는 것이 그것을 생성하는 규칙을 배우는 것을 대신할 수 없습니다. 앞 장의 어휘로 말하면, 추상화 다이얼은 일곱 축 가운데 두 축을 동시에 돌립니다: 더 풍부한 규칙은 한 번의 발화(firing)에 더 많은 변수를 묶는데, 이는 질의-조인 축이고, 시각 과제는 그 규칙들이 언급하는 에이전트 개념을 렌더링된 픽셀로부터 추출할 것을 요구하는데, 이는 접지-신뢰 축입니다. 장기 지평은 완전성 손잡이 자체를 늘이며(회수해야 할 유도 과정은 시간을 관통하는 하나의 계획입니다), 다중-에이전트 동역학은 책상 규모 생성기가 갖지 못한 종류의 난이도를 보탭니다: 다른 에이전트들의 규칙-지배 행동이 각 에이전트의 전제 안으로 계속 들어오는, 어떤 단일 질의의 유도가 아니라 상호작용으로부터 오는 난이도입니다.
절차적 패턴 커리큘럼. KANDY는 칸딘스키-패턴 과제들의 커리큘럼을 생성합니다: 기하학적 기본 도형으로 지어진 장면의 이진 분류로, 각 과제의 양성 클래스는 구성적 언어로 된 참값 기호 규칙에 의해 정의되고, 그 과제들은 구성적 깊이가 증가하는 순서열로 도착합니다 [3]. 여기서는 두 가지 설계 선택이 중요합니다. 모든 과제가 자신의 참값 규칙을 함께 발송하므로, 규칙 회수는 눈대중이 아니라 검사 가능합니다: 기호 구조를 귀납한다고 주장하는 NeSy 학습기는 실제로 그 데이터를 생성한 규칙에 대비해 채점될 수 있습니다(개념 수준이 아니라 규칙 수준에서의, 다시 한번 공약 (1)입니다). 그리고 감독 일정은 설계상 성깁니다: 레이블은 사례들의 일부에 대해서만 도착하여, 기호 구조가 맞춰지기보다는 추론되어야 하는 현실적인 체제를 무대에 올립니다. 앞 장의 축들 위에서, 패턴 구성자들의 단계적 중첩은 구성적 형태를 띤 유도-깊이 손잡이이며, 성긴 감독은 접지-신뢰 축을 돌립니다: 레이블이 적을수록 잠재적 개념 어휘의 더 많은 부분이 주석에 맞춰지기보다는 규칙을 통해 추론되어야 합니다. 그것의 진정으로 새로운 수출품은 커리큘럼 순서 그 자체, 즉 한 점이 아니라 궤적으로서의 난이도입니다.
시간-제약 스트림. LTLZinc는 그 명세가 제약-충족 문제에 대한 유한 트레이스 위의 선형 시간 논리(linear temporal logic over finite traces, LTLf) 식인 과제들을 생성합니다: 각 시간 단계마다 시스템은 단계 수준의 제약을 충족해야 하는 입력(기호를 나타내는 이미지)을 지각하고, 그 유한한 수열 전체는 시간 논리식을 충족해야 하는데, 수열마다의 수락/거부 레이블을 잘 정의되게 만드는 것이 바로 그 유한-트레이스 의미론입니다 [4]. 그 손잡이들은 시간 지평, 각 단계의 제약 의미론, 그리고 특징적으로 감독 세분성(supervision granularity)입니다: 학습기가 단계마다 레이블을 보는지 아니면 수열마다만 보는지로, 이는 합만으로 DeepProbLog의 숫자 분류기를 훈련시켰던 원격 감독의 시간적 일반화입니다. 과제들의 스트림이 시간에 따라 이동할 수 있으므로, 이 프레임워크는 자신의 정확도 지표를 지속 학습 지표(continual-learning metric), 즉 망각과 전이와 짝지어, 이전 제약 체제에 대한 역량이 이후 체제에 대한 훈련을 거치고도 살아남는지를 채점합니다. 이는 공약 (2)가 공약 (3) 안으로 접혀 들어간 것입니다: 난이도 손잡이(이동하는 스트림)는 어떤 정적 벤치마크도 필요로 하지 않는 지표 계열(망각)을 요구합니다. 앞 장의 축들 위에서, 각 단계의 제약 네트워크는 하나의 조인입니다(하나의 제약으로 묶인 여러 지각된 변수, 즉 질의-조인 축입니다), 지평은 유도 깊이를 시간상의 길이로 다시 태어나게 하며, 세분성 손잡이는 접지 신뢰를 돌립니다: 수열별 레이블은 잠재적 단계 개념이 가장 약하게 고정되는 체제입니다. 그 수출품은 시간 축 그 자체이며, 망각을 자신의 고유한 지표로 삼습니다.
접지의 프론티어: 실제 온톨로지에 정렬된 시각
지금까지의 모든 스위트는 기호적 참값이 정확하게 유지되도록 지각을 단순하게 유지합니다. NeSy4VRD는 그 거래를 뒤집습니다: 실제 사진과, 실제 웹 온톨로지 언어(Web Ontology Language, OWL) 온톨로지입니다 [5]. 이 자원은 시각적 관계 탐지(visual relationship detection)를 중심으로 지어집니다: "사람이 말을 탄다"와 같은 주어-술어-목적어 삼중항으로 이미지에 주석을 붙이는 과제로, 여기서는 레이블이 곧 지식 그래프의 엣지입니다. 그것의 독특한 수는 정렬입니다: 객체 클래스와 술어의 주석 어휘가, 그 클래스와 술어에 유형, 위계, 속성 의미론을 부여하는 짝이 되는 OWL 온톨로지에 맞춰져 있어서, 한 이미지의 주석은 2권의 기계 장치가 추론할 수 있는 지식 그래프로 곧바로 적재됩니다.
그 정렬은 구체적인 무언가를 사줍니다: 감독으로서의 구체화(materialization as supervision)입니다. 적재된 주석 위에 OWL 추론기를 돌리면 온톨로지는 아무도 손으로 주석을 달지 않은 삼중항을 함의합니다: 진술된 각 관계의 상위클래스 및 상위속성 일반화, 그리고 선언된 속성 의미론의 귀결입니다. 구체화 대 재작성은 이 연산에 규모 확장 전략으로서 값을 매겼습니다; 여기서 그것은 데이터 역할을 맡아, 주석이 달린 각 이미지가 산출하는 감독을 조밀하게 만들고, 고립된 문자열이 아니라 의미론적 계열을 채점하는 평가 목표를 공급합니다. 이곳이 2권이 픽셀과 만나는 지점이며, 한쪽이 지각일 때 "NeSy 벤치마크"가 무엇을 뜻하는지를 예리하게 만듭니다. 기호적인 쪽은 공약 (1)을 완전히 지킵니다: 온톨로지는 관계적 구조에 대한 정확한 참값입니다. 지각적인 쪽은 그럴 수 없습니다: 어떤 생성기도 그 사진들을 만들어 내지 않았으므로, 픽셀 영역이 "정말로" 무엇을 담고 있는지에 대한 참값 잠재 변수는 없으며, 오직 사람 잡음이 섞인 사람의 주석만 있습니다. 앞 절들의 스위트는 지각을 합성함으로써 정확한 잠재 변수를 사들였습니다; NeSy4VRD는 시각적 절반에서 생성된 잠재 변수를 포기함으로써 실제 지각을 사들입니다. 그 거래는 어느 설계의 결함도 아닙니다. 그것이 바로 프론티어 자체이며, 이 장 끝의 정직한 점검표는 그것에 대한 우리 자신의 입장 값을 치를 것입니다.
하니스: 하나의 프로토콜, 다섯 계측 도구, 하나의 성적표
5권은 신뢰 실패 하나당 하나씩, 다섯 개의 측정 도구를 지었습니다: 지름길 지표(II부), 보정(III부), 충실성 프로브(I부), 명시적 깊이 손잡이 위의 난이도 표면(V부), 그리고 함의-격차 일관성 프로브(다음 장)입니다. 이 권의 마무리 주장은 이것들이 다섯 개의 시연이 아니라 하나의 평가 프로토콜이라는 것입니다: 모든 계측 도구는 평범한 정확도 리더보드로는 구별할 수 없는 두 시스템을, 그것들을 확실하게 갈라놓는 정확도-너머 지표와 짝짓습니다. suite_harness.py는 그 주장을 실행 가능하게 만듭니다. 그것은 다섯 모듈 전부를 불러와 각각의 run()을 호출하는데, 이는 그 계측 도구의 실험 전체(훈련 루프, 열거, 프로브)를 자신의 assert들과 함께 다시 실행한 뒤, 하나의 통합된 성적표를 내놓습니다(행들은 run()이 suite_harness.py 340–379행에서 만들고, 표는 __main__ 블록이 400–415행에서 인쇄합니다).
시드 정책은 공약 (4)의 전부를 한 문장으로 담습니다: 하니스 자신은 어떤 무작위성도 소유하지 않습니다; 모든 모듈이 자기 자신의 생성기에 시드를 주므로, 이름표가 붙은 벽시계 시간 행을 제외하면 두 번의 실행은 바이트 단위로 동일한 출력을 인쇄합니다. 계측 도구들은 차례로 자신의 입력을 다시 입력하는 대신 다시 유도합니다. 보정 프로브는 자신의 실행 안에서 커밋된 시드로부터 3권의 ComplEx 임베딩을 다시 훈련시킵니다(calibration.py 233–241행); 충실성 프로브는 데이터 시드 0으로부터 자신의 512개 예제짜리 유보 집합을 다시 생성합니다(faithfulness.py 330–337행); 지름길 프로브는 II부의 훈련 스윕을 다시 실행하여 붕괴하는 모델을 회수합니다(rsbench_lite.py 276–288행). 아무것도 캐시되지 않고, 아무것도 결과 파일에서 읽히지 않습니다.
가장 예리한 설계 요소는 회귀 규율(regression discipline)입니다. 하니스는 계측 도구들의 요약 줄과 표가 인쇄하는 표제 숫자들을, 이 권의 증거 장들이 인용하는 것과 같은 자릿수로, 소스 코드 안에 커밋해 둡니다(suite_harness.py 93–130행):
"calibration": { # calibration.py, SUMMARY line
"temperature tau*": "1.4172",
"eval ECE before->after": "0.0245->0.0167",
"eval NLL before->after": "0.1708->0.1387",
"eval acc before=after": "0.9683=0.9683",
"eval AUC before=after": "0.9136=0.9136",
},
그리고 모든 수집기는 자신의 계측 도구 값을 새로운 실행으로부터 다시 유도하여 동등성을, 문자열 대 문자열로, 자릿수까지 정확히 assert합니다(suite_harness.py 133–143행):
for key, got in derived.items():
assert got == want[key], \
f"{instrument} regression: {key!r} committed {want[key]!r}, " \
f"re-derived {got!r}"
그 설계 이유는 진술할 가치가 있는데, 그것이 이 장의 스위트-유지보수 교훈을 실행 가능한 형태로 담고 있기 때문입니다: 스위트는 자신의 출처에 대비해 스스로를 검사하지 않는 한 표류합니다. 어떤 모듈에 대한 지나가는 편집이든, 어떤 자매-권 의존성(3권의 훈련기, 4권의 말뭉치, 1권의 증명기)이든, 어떤 시드든 어딘가의 숫자 하나를 바꾸면, 이 파일이 바로 그 숫자가 어느 장의 인용된 증거를 조용히 오염시키는 대신 시끄럽게 실패하는 곳입니다. 그 관문은 자신의 커버리지조차 지킵니다: _regress는 먼저 커밋된 키 집합과 다시 유도된 키 집합이 동일한지를 assert하므로(suite_harness.py 137–139행), 조용히 빠뜨려진 검사 역시 실패합니다. 이는 1권 이래로 validate.py가 맡아 온 것과 같은 역할, 즉 종료 코드를 인수 판정으로 삼는 것이며, 이제는 연구 주장의 수준에서 작동합니다: python3 suite_harness.py가 초록으로 종료된다는 것은 5권의 증거 사슬에 있는 모든 커밋된 숫자, 즉 다섯 계측 도구와 네 개의 자매 권으로부터 불러온 것에 걸친 26개의 값이 여전히 재현된다는 뜻입니다.
이 축소판이 정직하게 단순화하는 것: 다섯 계측 도구는 다섯 개의 서로 다른 장난감 시스템(개념 추출기, 링크 예측기, 현저성 분류기, 다층 퍼셉트론(multilayer perceptron, MLP) 사다리, 그리고 4권의 두 추론기)을 탐침하므로, 성적표의 행들은 단일한 시험 대상 시스템이 아니라 하나의 프로토콜과 하나의 교훈을 공유합니다. 전체 규모의 스위트 실행이라면 모든 계측 도구를 같은 모델에 겨눌 것입니다(suite_harness.py 53–59행). 스위트 수준의 assert들은 발표된 효과 크기가 아니라 이 권이 실제로 주장하는 시스템 간 여백을 지킵니다.
그 실행에서 그대로 옮긴, 커밋된 성적표입니다:
[2] the report card: five instruments, each pairing two systems that plain
accuracy calls a tie and a beyond-accuracy metric that separates them
instrument metric beyond accuracy statistical read structural read separation what plain accuracy sees
shortcuts concept accuracy AccC label-only 0.7500 concept-sup 10% 1.0000 +0.2500 AccY 1.000 = 1.000
calibration 10-bin ECE (lower = better) p = sigma(s) raw 0.0245 p = sigma(s/tau*) 0.0167 -0.0078 acc 0.9683 = 0.9683, AUC 0.9136 = 0.9136
faithfulness rationale comprehensiveness attention top-2 0.2497 occlusion top-2 0.3659 +0.1162 one model, probe acc 0.9609
difficulty parity cliff length (train n <= 6) depth-1 MLP 3 depth-3 MLP 6 +3 parity acc at n=2: 1.00/1.00/1.00
entailment worst-family consistency soft reasoner 0.4859 translate-prove 1.0000 +0.5141 plain acc 0.9896 vs 1.0000
각 행의 분리 값은 그 자체로 행별 여백에 대비해, 옳은 방향으로 assert됩니다(suite_harness.py 363–367행): 성적표는 조용히 갈라놓기를 멈출 수 없습니다.
연구 요약으로서 성적표 읽기
이 표는 학계 세계에 대한 이 분야의 축소판 현황입니다: 다섯 계측 도구, 열 개의 시스템 읽기 값, 그리고 모든 행에 아무것도 보지 못하는 정확도 풍미의 열 하나씩입니다. 두 행을 소리 내어 읽어 봅시다.
지름길 행은 II부를 한 줄로 압축한 것입니다. 같은 초기화에서 나와, 같은 기계 장치로, 같은 패리티 과제 위에서 훈련된 두 모델입니다: 하나는 레이블만으로, 다른 하나는 지점의 10퍼센트에 개념 레이블을 붙여서입니다. 마지막 열은 리더보드가 발표하는 것, 즉 레이블 정확도 , 완벽한 동점입니다. 지표 열은 II부가 지은 것입니다: 개념 정확도 대 , 정확히 4분의 1의 격차인데, 레이블만 쓰는 모델이 II부가 미리 세어 둔 붕괴하는 재레이블링에 안착했기 때문입니다(그것은 두 비트짜리 개념 상태 10, 즉 첫 비트는 켜지고 둘째 비트는 꺼진 상태를 상태 01 위로 사상하며 10을 전혀 예측하지 않습니다). 그 한 줄짜리 행 뒤에는 패널의 나머지 커밋된 값들이, 이번 실행에서 다시 유도되어 자리하고 있습니다: 붕괴 대 , 그리고 개념 수준 기대 보정 오차(expected calibration error, ECE) 대 , 약 190배의 인자로, 지름길 측정이 진단한 자신만만하지만 틀린 신호입니다. 잠재적 성질에 대한 참값(공약 1)은 이 행을 계산 가능하게 만드는 것이고; 정확도를 넘어서는 지표(공약 2)는 그것을 보이게 만드는 것입니다.
난이도 행은 V부를 한 줄로 압축한 것입니다. 길이 인 패리티 사례로 훈련되어, 명시적 길이 손잡이를 따라 평가된 MLP 사다리입니다. 정확도 관점, 에서의 패리티: 모든 깊이가 을 기록하는, 삼자 동점입니다. 난이도 표면은 그것들을 갈라놓습니다: 깊이-1 모델의 정확도 절벽은 사례 길이 3에서 도착하고, 깊이-3 모델은 길이 6까지 버티어, 분리 값 이 되는데, 이는 트랜스포머 깊이의 천장이 분리해 낸 바로 그 메커니즘입니다: 결합 라운드의 고정된 예산은, 경사 하강법이 실제로 찾아내는 해에서, 사례가 모델이 가진 것보다 많은 라운드를 요구하는 순간 무너집니다. 그리고 그 표면은 반대 방향에서도 정직합니다: 훈련 지평 너머에서는 모든 깊이의 커밋된 꼬리 정확도가 동전 던지기 수준입니다(), 따라서 깊이가 산 것은 훈련된 범위였지, 외삽이 아니었습니다. 통제 가능한 난이도(공약 3)는 이 행이 애초에 존재하게 만드는 것입니다: 어떤 고정된 길이의 단일 시험 집합도 절벽을 보여줄 수 없습니다.
나머지 행들도 자신의 부(Part)를 같은 방식으로 짊어집니다: 보정 행은 III부의 온도 수선이 정확도와 순위는 손대지 않은 채(온도 , ECE ) 신뢰도가 뜻하는 바만 바꾸는 것이고; 충실성 행은 하나의 단일 모델에서 읽어 낸 I부의 어텐션-대-오클루전 판결이며; 그리고 함의 행은, 이 성적표에서 가장 큰 분리 값인 점의 정확도 경합에 맞선 의 최악 계열 일관성으로, 다음 장의 첫 전시물이며, 여기서는 의도적으로 한 줄로 미리 보여지고 그곳에서 온전히 풀립니다.
정직한 점검표
이 장의 잣대가 오직 다른 사람들의 스위트에만 적용된다면 그것은 마케팅에 지나지 않을 것입니다. 하니스는 스스로를 채점하는 것으로 끝을 맺으며, 성질별로 예/아니오 판결을 인쇄합니다(suite_harness.py 303–324행, 실행의 [4]절로 인쇄됨):
[4] the design-principles checklist: what the exemplar suites
institutionalize, scored honestly against this mini-suite
[yes] ground-truth latent structure known by construction
gold concepts g per split (rsbench_lite); closed-world lfp labels (calibration, entailment_gap); the generator's causal features (faithfulness); exact S_3 products (depth_ceiling)
[yes] controllable difficulty knobs in the generators
support_frac + n_distractors (rsbench_lite); instance length n = 2..16 (depth_ceiling); no knob on the other three instruments
[yes] metrics beyond accuracy
AccC / Cls(C) / concept ECE; calibration ECE; comprehensiveness & sufficiency; cliff position; per-family consistency
[yes] one seeded protocol, byte-identical reruns
every module seeds its own rngs; the harness adds no randomness and re-derives, never caches
[ no] multiple model families per instrument
one extractor family each; rsbench's harness compares six
[ no] perceptual concept extraction
Gaussian corner clusters and token counts, not MNIST digits, Blender scenes, or LogiCity's simulated city
[ no] public scale: big OOD splits, (eps,delta)-guaranteed counting
exact enumeration and 10^2-10^3-point probes throughout
score: 4 yes / 3 no — the no-rows are the
distance between a runnable miniature and a citable benchmark suite
인쇄된 일곱 개의 성질을 이 장의 네 가지 공약 위로 다시 접으면 그 성적이 나옵니다: 공약 (1)은 예로, 생성된 개념부터 폐쇄-세계 최소-고정점 레이블, 정확한 군론적 곱에 이르기까지, 장난감 규모에서 모든 것이 참값입니다; 공약 (2)는 예로, 계측 도구 하나당 하나씩, 다섯 지표 계열입니다; 공약 (3)은 부분적이며, 그 정당화 줄이 정확히 어디인지를 말해 줍니다: 난이도 손잡이는 두 계측 도구(관측된 지지집합과 방해 요소 개수; 사례 길이)에는 존재하고, 앞 장의 일곱-축 생성기가 그것을 확장하지만, 지각적 난이도도 지속적 스트림도 없으며, 그것이 그 아래의 지각 행과 규모 행이 아니오라고 말하는 이유입니다; 공약 (4)는 예로, 시드가 붙은 생성이 전체에 걸쳐 있고, 바이트 단위로 동일한 재실행이 회귀 관문 자체에 의해 assert됩니다. 그 인정들은 겸손의 연기가 아닙니다; 그것들은 짐을 떠받치고 있으며 강제됩니다. 하니스는 점검표가 최소 두 가지 성질을 인정한다는 것을 assert합니다(suite_harness.py 371–372행):
assert sum(1 for _, has, _ in CHECKLIST if not has) >= 2, \
"the checklist stopped conceding anything"
훗날의 어떤 편집이 조용히 모든 행을 예로 올려 버리면 "the checklist stopped conceding anything"이라는 메시지와 함께 빌드가 실패합니다. 그것이 메타적 요점이며, 이 장의 진짜 수출품입니다: 점검표 형식, 즉 네 가지 공약을 예, 부분적, 아니오로 채점하고 각각에 한 줄짜리 정당화를 다는 것은, 독자가 어떤 스위트에도, 위에서 조사한 다섯 개를 포함해, 이것 자체를 포함해, 독자 자신의 다음 벤치마크를 포함해, 들이댈 수 있는 잣대입니다. 마무리 요약 줄은 이 장 전체를 하나의 문자열로 만듭니다:
SUMMARY suite_harness: checks=26/26 accC_gap=+0.250 ece_gap=-0.0078 comp_gap=+0.1162 cliff_gap=+3 cons_gap=+0.5141 checklist=4y/3n
미해결 부분
잘 지어진 스위트조차 그 위에 세 가지 열린 문제를 이고 있으며, 이 분야는 그중 어느 것에 대해서도 초안조차 갖고 있지 않습니다.
첫째는 유지보수입니다. 절차적 생성은 사례의 누출은 물리치지만, 생성기 자체에 대한 적응은 물리치지 못합니다. 모든 생성기는 저마다의 버릇을 지닙니다: 절 길이의 분포, 렌더러의 텍스처 통계, 커리큘럼의 고정된 단계 경계이며, 지속적인 최적화 압력 아래의 시스템들은 이전 시스템들이 정적인 시험 집합을 배웠던 것과 정확히 같은 방식으로 그 버릇들을 배웁니다. 굿하트는 한 단계 위에서 작동합니다: 스위트의 레시피가 암기된 경로가 되는 것입니다. 그 처방, 즉 시스템이 적응함에 따라 생성기를 개정하는 것은 측정 비용을 수반하는 군비 경쟁입니다: 모든 개정은 숫자들이 뜻하는 바를 조용히 바꾸어, 이전 버전에서 발표된 모든 결과와의 비교 가능성을 깨뜨립니다. 우리 자신의 하니스는 적어도 표류를 보이게 만드는 규율을 보여 줍니다(무언가 움직이면 assert된 26개의 숫자가 시끄럽게 실패합니다), 하지만 가시성이 면역은 아닙니다: 그 assert들은 스위트를 그 저자들로부터 보호할 뿐, 그것이 측정하는 시스템들로부터 보호하지는 않습니다.
둘째는 스위트 간 비교 가능성입니다. 이 장의 다섯 스위트는 각각 난이도를 통제하지만, 서로 통약 불가능한 단위로 그렇게 합니다: 시뮬레이터의 추상화 모드, 패턴 생성기의 커리큘럼 단계, 제약 스트림의 시간 지평입니다. 공유되는 난이도 눈금은 없고, 전문가-모드 도시 내비게이션이 9단계 패턴 귀납과 "같다"고 말해 주는 환율도 없으며, 따라서 어느 스위트가 더 엄격한 시험관인지, 혹은 하나에서 강한 시스템이 다른 하나에서도 강할 것으로 기대되어야 하는지를 말할 방법이 없습니다. 심리측정학(psychometrics)은 인간 시험 문항에 대한 유사한 문제를 수십 년 전에 풀었습니다(문항반응 모델은 응시자와 문항을 하나의 척도 위에 올려놓습니다); 추론 벤치마크에는 그런 것이 존재하지 않으며, 그것이 존재하기 전까지 "벤치마크 전반에 걸친 최신 기술"이라는 어구는 단위 없는 어구입니다.
셋째는 책상 규모에서의 지각 격차이며, 이는 일반적 진실로 적힌 이 권 자신의 인정입니다. 우리의 스위트는 구성상 기호 우선입니다: 그 "지각"은 가우스 군집과 토큰 개수인데, 그것이 NumPy companion이 몇 초 안에 결정적으로 재생성할 수 있는 것이기 때문입니다. 시각적 스위트들의 온전한 기여, 즉 렌더링된 장면, 시뮬레이션된 도시, 실제 온톨로지에 맞선 실제 사진은, 어떤 교과서 companion도 정직하게 짊어질 수 없는 렌더링 및 주석 파이프라인 안에 삽니다. 그러므로 점검표의 지각적 아니오-행은 빠진 기능이 아니라 장르의 경계입니다: 이 권이 검증할 수 있는 성질들은 픽셀이 시작되는 곳에서 끝납니다.
왜 중요한가
이 장은 이 권의 다섯 부가 하나의 계좌로 값을 치르는 곳입니다. 1권 이래로 이 시리즈의 방법은 종료 코드가 인수 판정인 하니스였습니다; 바뀐 것은 하니스가 지키는 주장의 고도입니다. "전방 연쇄기가 자신의 고정점에 도달한다"에서 "자신만만한 모델의 개념들이 세어진 방식으로 틀렸다"로입니다. 스위트는 연구 주장에 적용된 그 방법이며, 네 가지 공약은 그 방법이 책 밖으로 나갈 수 있도록 진술된 것입니다. 자기 자신의 연구로 향하는 독자를 위한 수출품은 구체적입니다: 벤치마크 결과를, 여러분 것이든 다른 누구의 것이든, 신뢰하기 전에 이 네 가지 질문을 던지십시오. 시험 대상 성질에 대한 참값이 구성상 알려져 있습니까, 아니면 레이블만 알려져 있습니까? 지표는 여러분이 신경 쓰는 실패를 봅니까, 아니면 정확도만 봅니까? 난이도를 다이얼로 조절할 수 있습니까, 아니면 그 집합은 포화될 것입니까? 누구든 시드로부터 사례를 다시 생성할 수 있습니까, 아니면 그 시험 집합은 이미 누군가의 훈련 말뭉치 안에 있습니까? 네 가지 모두에 답하는 스위트는 지금 존재합니다; 나머지를 채점하는 점검표는 소스 코드 한 페이지에 들어갑니다. 그리고 회귀 규율은 벤치마크를 완전히 넘어서서 일반화됩니다: 커밋된 숫자를 가진 어떤 연구 인공물이든 그것을 다시 유도하고 assert하는 파일을 지닐 수 있으며, 이는 이 시리즈가 아는 가장 값싼 재현성 도구입니다.
핵심 용어
- 벤치마크 스위트(benchmark suite): 시드가 붙은 과제 생성기들의 집합, 지표 패널, 그리고 고정된 평가 프로토콜이 하나의 계측 도구로 발송된 것입니다; 단일 벤치마크는 하나의 과제를 측정하지만, 스위트는 하나의 방법론을 제도화합니다.
- 누출(leakage): 훈련 말뭉치가 시험 항목(혹은 그것을 바꿔 쓴 표현)으로 오염되는 것으로, 그 이후 벤치마크는 자기 자신에 대한 재현율을 측정하게 됩니다; 시드가 붙은 절차적 생성이 방어하는 실패입니다.
- 포화(saturation): 측정된 정확도가 천장에 접근하고 시험 집합의 표준오차 가 가까이 있는 시스템들을 통계적으로 구별 불가능하게 만드는 체제입니다.
- 굿하트의 법칙(Goodhart's law): 어떤 척도가 목표가 되는 순간, 그것은 더 이상 좋은 척도가 아니게 됩니다; 개념 의미와 같은 잠재적 성질에 대해서는, 지식이 자명하지 않은 레이블-보존 재레이블링을 허용하는 한, II부의 식별 가능성 정리가 이것을 우연이 아니라 피할 수 없는 것으로 만듭니다.
- 절차적 생성(procedural generation): 난이도 구성 와 시드 의 생성기 로부터 과제 사례를 생산하는 것입니다; 요청 즉시 새로운 사례들, 커밋된 시드로부터의 바이트 단위 동일한 재생성입니다.
- 구성적 분할(compositional split): 시험 사례가 익숙한 구성 요소들(개념, 규칙)을 훈련에서 결코 함께 본 적 없는 배치로 결합하는 훈련/시험 구분입니다.
- 감독 세분성(supervision granularity): 레이블이 붙는 수준(단계별 대 수열별, 개념별 대 레이블별)입니다; 감독이 얼마나 멀리 떨어져 있는지를 통제하는 스위트 손잡이입니다.
- 감독으로서의 구체화(materialization as supervision): 온톨로지에 정렬된 주석 위에 추론기를 돌려, 함의된 삼중항이 손으로 주석 단 것을 넘어 감독과 평가 목표를 조밀하게 만드는 것입니다.
- 회귀 규율(regression discipline): 모든 표제 숫자를 소스 코드에 커밋해 두고 모든 실행에서 그것을 다시 유도하여 자릿수까지 동등성을 assert함으로써, 증거 사슬 어디서든 일어나는 표류가 시끄럽게 실패하도록 하는 것입니다.
- 성적표(report card): 스위트가 하나의 프로토콜 아래 내놓는 통합된 시스템별-계측 도구별 표입니다; 여기서는 다섯 계측 도구 각각이 정확도 동점과 정확도-너머 분리를 짝짓습니다.
- 정직한 점검표(honest checklist): 설계 공약에 대비한 스위트 자신의 채점으로, 성질별로 예/아니오와 정당화를 인쇄하며, 그 인정들은 assert에 의해 강제됩니다.
이 장이 이어지는 곳
성적표에서 가장 큰 분리 값인 함의 행은 의도적으로 접힌 채 남겨졌습니다: 소프트 추론기와 번역-후-증명 파이프라인은 정확도로는 점 떨어져 있지만 최악 계열 일관성으로는 점 떨어져 있습니다. 다음 장인 함의 벤치마크의 공백은 그 행을 이 장의 스위트들이 아직 시험하지 않는 성질로 풀어냅니다: 함의는 대우(contraposition), 무관한 확장, 바꿔 쓰기, 드모르간 재작성 아래에서 닫혀 있으며, 함의를 계산하는 시스템은 그 닫힘들을 정리로서 물려받지만, 레이블을 예측하는 시스템은 그렇지 않습니다. 그 차이를 측정하려면 독립적으로 표본추출된 사례가 아니라 논리로 연결된 프로브 계열이 필요하며, 이는 아직 제도화되기를 기다리는 다섯 번째 설계 공약입니다.
Companion 코드: examples/frontier/suite_harness.py는 이 권의 다섯 계측 도구(rsbench_lite.py, calibration.py, faithfulness.py, depth_ceiling.py, entailment_gap.py)를 하나의 시드가 붙은 프로토콜 아래 다시 실행하여, 커밋된 26개의 표제 숫자 전부를 회귀 관문에 통과시키고, 이 장에 인용된 성적표와 점검표를 인쇄합니다. python3 examples/frontier/suite_harness.py를 실행하십시오; 이름표가 붙은 벽시계 시간 행을 제외하면, 그 출력은 실행할 때마다 바이트 단위로 동일하며, 종료 코드가 곧 판정입니다.