AI 신약 후보 물질 발견을 위한 '예측 도구(능력)' 평가 리더보드 허깅페이스에 공개

분할 방식만 바꿨더니 AUROC가 0.21 움직였습니다 — 신약 물성 예측 벤치마크 LEADBOARD 공개

신약 물성 예측 도구를 재는 벤치마크를 만들어 공개했습니다.
LEADBOARD — 21개 보드, 홀드아웃
18,382 화합물, 라벨은 배포하지 않습니다.

기능 소개보다는, 만들면서 부딪힌 두 개의 숫자를 공유하려고 합니다. 이 둘 때문에
벤치마크의 설계가 바뀌었고, 모델을 평가하는 분들께 그대로 적용되는 이야기라고 생각합니다.


1. 데이터를 어떻게 나누느냐가 0.211을 만든다

hERG(칼륨 채널, 막히면 QT 연장 → 임상 중단)를 첫 보드로 잡았습니다. 공개 데이터가 많아
파이프라인을 털어보기 좋았습니다.

ChEMBL 37 (CHEMBL240, IC50, relation =)에서 12,021건 → 단위·RDKit 파싱 후 11,972건 →
InChIKey로 묶어 9,788 고유 화합물, 각각 median pIC50.

연도로 잘랐습니다. 2022년 이전 최초 보고분으로 학습, 이후 보고분으로 시험.
Morgan fingerprint → LightGBM, 라이브러리 기본값, 튜닝 없음. AUROC 0.606.

낮아 보여서 같은 데이터를 무작위로 나눠봤습니다. 시드 5개:

분할 AUROC LGBM MAE (log) Constant MAE (log)
시간 분할 (2022 컷) 0.606 0.599 0.589
무작위 seed 0 0.825 0.467 0.690
무작위 seed 1 0.814 0.448 0.676
무작위 seed 2 0.830 0.453 0.652
무작위 seed 3 0.803 0.460 0.668
무작위 seed 4 0.817 0.458 0.671
무작위 평균 0.818 0.457 0.671

같은 분자, 같은 지문, 같은 학습기, 같은 하이퍼파라미터, 같은 시험 비율.
AUROC가 0.211 움직입니다. 논문에서 경쟁 기법들 사이에 나는 차이보다 큽니다.

왜 그런가

약화학자는 분자를 독립적으로 만들지 않습니다. 골격 하나를 찾으면 유사체를 마흔 개 만들고,
그 마흔 개는 구조 공간에서 서로 겹쳐 앉아 있습니다. 무작위로 나누면 그 무리가 학습셋과
시험셋 양쪽에 흩뿌려집니다. 시험셋이 모델이 이미 본 것의 쌍둥이로 채워지는 겁니다.
그 조건에서는 최근접 이웃 조회만으로도 꽤 멀리 갑니다.

이건 도구를 실제로 쓰는 방식이 아닙니다. 아무도 측정하지 않은 화합물의 순위를 매기려고
쓰는 거고, 비슷한 게 학습 데이터에 있다는 보장이 없습니다. 시간 분할은 그 상황을 정직하게
재현하고, 좋은 성질이 하나 있습니다 — 답을 찾아볼 수가 없습니다. 학습 시점에 그 답은
아직 출판되지 않았으니까요. 학습·시험 간 구조 중복이 구성상 0입니다.

:warning: 과대 해석을 막기 위해 분명히 해두면 — 이건 우리 데이터에서 시간 분할 vs 무작위 분할을
비교한 것입니다. 공개된 벤치마크들이 무작위 분할을 쓴다는 주장이 아닙니다. 스캐폴드 분할을
쓰는 곳이 많고, 그건 중간 어디쯤에 놓입니다. 방어할 주장은 좁습니다 — 동일 데이터에서
분할 선택이 AUROC를 0.21 움직이므로, 분할을 명시하지 않은 점수는 무엇과도 비교할 수 없다.

LEADBOARD의 모든 보드는 시간 또는 스캐폴드 분할을 씁니다. 무작위 보드는 열지 않습니다.


2. 라벨 자체가 정밀하지 않다

같은 화합물을 두 실험실에서 재면 같은 값이 안 나옵니다. 세포주가 다르고, 버퍼가 다르고,
날이 다릅니다. 이건 정량화가 됩니다 — ChEMBL이 값마다 출처 논문을 기록하니까, 두 편 이상에
등장하는 화합물을 찾아 얼마나 벌어지는지 볼 수 있습니다.

문서를 가로지르는 쌍만 씁니다. 한 논문 안의 반복은 같은 배치·같은 손이라, 편차를
실제보다 훨씬 작아 보이게 만듭니다.

hERG:

문서 교차 쌍            5,185   (2편 이상 등장 화합물 857종)

|차이| 중앙값            0.148 log
|차이| 평균              0.475 log
75 퍼센타일             0.669 log
90 퍼센타일             1.338 log
표준편차                0.736 log

단일 측정 SD            0.421 log     (평균|차이| / 1.128)

90 퍼센타일을 보십시오. 열 개 중 하나가 두 논문 사이에서 20배 넘게 어긋납니다.

우리는 0.421을 그 보드의 잡음 바닥(noise floor) 이라 부르고 모든 점수 옆에 함께
찍습니다. 순위를 어떻게 읽어야 하는지 알려주기 때문입니다. 1위와 2위가 0.02 차이인데
바닥이 0.42라면, 그 순서는 순위 배지를 단 동전 던지기입니다.

시험셋에 대해서도 말해주는 게 있습니다. hERG 시험 화합물 1,338개 중 696개(52%)가
pIC50 = 5.0 분류 컷오프에서 잡음 바닥 하나 이내
에 있습니다. 시험셋 절반이 다시 재면
클래스가 바뀔 수 있다는 뜻입니다. 그래서 이 보드는 회귀를 주 지표, 분류를 보조 지표로
보고하고, 그 이유를 보드 페이지에 적어뒀습니다.


3. 전체 보드에서 본 그림

각 보드마다 최고 무학습 베이스라인의 MAE ÷ 잡음 바닥 을 계산하면, 그 분야가 천장에서
얼마나 떨어져 있는지 숫자 하나로 나옵니다.

보드 최고 베이스라인 MAE 잡음 바닥 비율 최고 베이스라인
CYP2D6 0.597 0.659 0.91 Constant
CYP3A4 0.574 0.628 0.91 Constant
VEGFR2 0.820 0.762 1.08 Morgan+LightGBM
EGFR 0.996 0.888 1.12 Constant
ALK 0.858 0.743 1.16 Morgan+LightGBM
COX2 0.927 0.767 1.21 Constant
Solubility 0.712 0.575 1.24 Morgan+LightGBM
CYP2C9 0.474 0.350 1.35 Constant
hERG 0.589 0.421 1.40 Constant
JAK2 0.919 0.635 1.45 Morgan+LightGBM
FLT3 0.986 0.660 1.49 Morgan+LightGBM
MAOB 1.028 0.626 1.64 Morgan+LightGBM
ABL1 0.778 0.459 1.70 Morgan+LightGBM
AChE 0.805 0.462 1.74 Morgan+LightGBM
HER2 0.916 0.498 1.84 Morgan+LightGBM
KIT 0.925 0.427 2.16 Morgan+LightGBM
PI3K-alpha 0.871 0.374 2.33 Morgan+LightGBM
BRAF 0.857 0.313 2.74 Nearest neighbour
CDK2 0.817 0.293 2.79 Constant

중앙값 1.45. 이 차트가 Space 첫 화면 맨 위에 1.0 기준선과 함께 있습니다.

두 보드가 이미 1.0 아래인데, 직관적 해석이 틀리기 쉬워 단서를 답니다. 비율이 1.0 미만이라고
모델이 실험보다 정확해진 게 아닙니다. 그 엔드포인트에서 실험실 간 불일치가 예측하려는
분산만큼 커졌다
는 뜻입니다. 어세이가 화합물들 사이 차이만큼 자기 자신과도 어긋나는 겁니다.
CYP2D6·CYP3A4 억제가 거기 있습니다. 도구를 더 이상 가르지 못하는 지점에 접근 중이고,
잡음에 순위를 계속 매기느니 보드 페이지에 그렇게 적는 편을 택했습니다.


4. 불편했던 베이스라인들

모든 보드는 열기 전에 무학습 참조 3종을 돌립니다.

  • Constant — 전부 학습셋 평균으로 예측
  • Nearest neighbour — Tanimoto 최유사 학습 분자의 라벨을 복사
  • Morgan + LightGBM — 기본값

회귀 보드 19개 중 Constant가 7개에서 MAE 최저입니다. AUROC는 Morgan+LightGBM이 13개에서
최고입니다.

앞의 hERG 표로 돌아가면, 시간 분할에서 LightGBM MAE 0.599, Constant 0.589 — 학습 모델이
집니다.
같은 데이터를 무작위로 나누면 0.457 대 0.671로 크게 이깁니다.

우리 해석은 이렇습니다. 지문 모델은 화합물을 줄 세우는 데는 정말 좋고, 본 적 없는 화학에
대해 절대 역가를 교정하는 데는 훨씬 약하다.
순위 정보는 어려운 분할에서 살아남고, 숫자는
못 살아남습니다. 둘 다 알 가치가 있는데, 헤드라인 지표 하나만 보고하면 하나를 잃습니다.

사소한 베이스라인을 건너뛴 벤치마크는 지금 어느 국면에 있는지 알려주지 못합니다.
그래서 전 보드에서 돌리고, 누가 제출하기 전에 먼저 공개합니다.


5. 보드마다 붙는 두 글자

같은 리더보드에 있어도 보드들이 같은 종류의 질문을 하는 게 아닙니다. 하나의 순위로 쌓으면
부정직합니다. 그래서 [T/P2] 같은 태그를 답니다.

첫 글자 = 어떻게 잘랐나
T 최초 보고 연도 기준 시간 분할 · S Murcko 코어 스캐폴드 분할 · R 무작위(열지 않음)

둘째 글자 = 답을 찾아볼 수 있나
P1 공개 출처를 우리가 큐레이션 · P2 공개 출처지만 우리 단위 변환·선택이 이 개정판을 규정
P3 우리가 라벨 보유 · P4 전향적, 답이 아직 어디에도 없음

[T/P1]과 [T/P3]는 다른 실험입니다. 통에 적어두는 게 낫습니다.


6. 특이한 보드 둘

전체는 7개 분야, 학습 212,670 · 홀드아웃 18,382 화합물입니다. 이 중 둘은 설명이 필요합니다.

Cell / Phenotype — 세포 형태 예측

JUMP Cell Painting Consortium 릴리스(CC0)
위에 얹었습니다. 화합물을 세포에 넣고, 염색 6종, 현미경 촬영, 웰당 737개 형태 특징.

과제는 구조만으로 세포가 어떻게 변형되는지 예측하는 것입니다. 라벨이 숫자가 아니라
16축 프로파일(주성분 1~16, 분산 61.0% 보유)입니다. 예측·관측 프로파일의 화합물별 피어슨
상관을 잽니다. 스캐폴드 분할, 학습 113,688 / 시험 2,001, 학습에 한 번도 등장하지 않은
Murcko 코어에서만 평가
합니다.

베이스라인 프로파일 상관
Morgan + LightGBM 0.159
Constant 0.092
Nearest neighbour 0.079

여기는 실험실 간 반복 구조가 없어 잡음 바닥을 유도할 수 없습니다. 대신 지표를 부트스트랩해
SD 0.0088을 얻었습니다. 최고 베이스라인이 Constant보다 약 18 SD 위에 있어 도구를 가를 수
있고, 0.0088이 아래 사다리 규칙의 임계값이 됩니다.

Post-marketing withdrawal — 시판 후 철수 예측

승인된 약이 나중에 시장에서 철수됐는지 예측합니다. 함정이 하나 있었고, 알아채는 데
시간이 걸렸습니다.

철수율은 승인 연대를 따라갑니다. 1990년대 승인 약 7.8% 대 2010년대 1.2%. 즉
승인 연도만 준 예측기가 AUROC 0.636을 냅니다. 구조도, 기전도, 이름도 없이. 연도만으로.

그대로 출시하면 날짜 읽기 리더보드를 만든 겁니다.

그래서 대조군을 승인 연대로 매칭했습니다 — 철수된 약 각각을 비슷한 시기 승인된 비철수 약과
짝지었습니다. 연도 전용 예측기가 이제 0.504를 받습니다. 우연 수준. 그 버전을 열었습니다.

스캐폴드 분할, 학습 408 / 시험 184, 양성 27.7%, 부트스트랩 지표 SD 0.0444.

베이스라인 AUROC PR-AUC
Morgan + LightGBM 0.593 0.369
Nearest neighbour 0.553 0.306
Constant 0.500 0.277

모든 보드에 이런 종류의 검사를 개막 전에 돌리고, 실패한 보드는 열지 않습니다. 잡음 바닥도
마찬가지입니다 — 어떤 엔드포인트에서 바닥을 못 재면 보드가 없습니다. 바닥이 없으면 강제할
임계값이 없으니까요.


7. 여러 번 제출하는 문제

홀드아웃 리더보드에는 오래된 문제가 있습니다. 라벨을 못 보더라도, 50번 제출하고 최고 기록만
남기면
점수 채널을 통해 시험셋 정보를 계속 빼낸 셈입니다. 시도가 충분하면 일반화 없이도
순위가 오릅니다.

Blum & Hardt (ICML 2015)의 사다리(ladder) 메커니즘을
씁니다. 새 점수는 자기 이전 최고 기록을 잡음 바닥 이상으로 넘어설 때만 공개됩니다.
아니면 이전 최고 기록을 그대로 다시 보여줍니다.

실험 오차보다 작은 개선은 개선이 아니므로, 그 정보를 돌려주지 않습니다. 더 자주 제출해서
올라갈 수는 없습니다. 그 분야의 측정 정밀도보다 실제로 나아져야 올라갑니다.

잡음 바닥이 장식이 아니라 실측이어야 하는 또 하나의 이유입니다. 메커니즘 전체가 그 임계값
위에서 돕니다.


8. 참여 방법

보드를 고르고, 시험셋을 받습니다. 구조만 들어 있고 그 외엔 없습니다. 무엇으로 예측하든
상관없습니다 — 학습된 모델, 물리 엔진, LLM, 믿는 경험칙. 안에 뭐가 들었는지 안 봅니다.
출력만 잽니다.

compound_id,prediction 2열 CSV를 올리고 Hugging Face 계정으로 로그인하면 됩니다. 채점은
라벨을 보유한 하드웨어에서 플랫폼 밖에서 돌아갑니다. Space는 라벨을 갖고 있지 않습니다.

보드 페이지마다 채워진 프롬프트와 실행 가능한 스켈레톤이 들어 있어, 첫 제출을 하려고 뭘
새로 만들 필요가 없습니다. 인터페이스는 한국어·영어를 자동으로 잡습니다.

모든 점수에는 그 시험 파일과 채점 코드의 SHA가 붙어 있어, 6개월 전 숫자도 추적됩니다.


9. 라이선스

ChEMBL 37 (EMBL-EBI, CC BY-SA 3.0) 재큐레이션, 출처 표기는 모든 보드 카드에 함께 따라갑니다.
JUMP Cell Painting은 CC0. 철수 보드는 공개 규제 기록으로 구성했습니다.
비상업 연구 벤치마크, 구조만 배포, 라벨 미배포.


10. 주장하지 않는 것

과대 포장한 벤치마크는 없는 것보다 나쁘므로, 한계 셋을 적어둡니다.

시간 분할은 전향적 검증이 아닙니다. 분자는 존재하고 값도 어딘가 출판돼 있습니다. 분할이
사주는 것은 구조적 지름길이 닫힌다는 것과, 학습셋이 그 시점에 알려져 있던 것의 실제 스냅샷이
된다는 것입니다. 진짜 전향적 보드는 P4 등급이고 별개입니다.

문서 교차 쌍으로 만든 잡음 바닥은 추정치입니다. 정규성 가정과 ChEMBL 문서 귀속의 정확성에
기댑니다. 아무 기준도 없는 것보다는 훨씬 낫다고 보고, 쌍 개수를 함께 공개하니 추정치를
반박하실 수 있습니다.

다른 벤치마크가 틀렸다고 말하는 게 아닙니다. 분할·베이스라인·라벨 정밀도 없이 보고된
점수는 다른 점수와 비교할 수 없다는 말입니다. 그 셋을, 모든 보드에서, 누가 제출하기 전에
공개하는 것
이 이 작업의 전부입니다.


왜 만들었나

예측 도구는 부족하지 않고, 하나같이 자기 벤치마크에서 최고 성적을 보고합니다. 그 숫자들을
나란히 놓으면 아무것도 알 수 없습니다. 자의 눈금 길이가 다르기 때문입니다.

자 하나를 만들고 싶었습니다. 그리고 누군가에게 자를 건넬 거라면, 눈금이 얼마나 두꺼운지도
같이 말해주는 게 맞다
고 생각했습니다.

LEADBOARD 열기

규격 v1.1, 8조. FINAL-Bench / VIDRAFT