ai newsFr., 23. Okt.
EilmeldungOpenAI vor 30-Milliarden-Dollar-Runde als Brücke zum Börsengang

AI 신약 설계 챌린지 2만 3,886건의 점수표를 뜯어 보니: 만점에 닿은 축과 한 번도 닿지 못한 축

TL;DR 2026-10-23 08:33(KST)에 오픈 디스커버리 챌린지(ODC)의 공개 API에서 4개 시즌의 채점 결과를 전부 내려받았습니다. 기준물질을 뺀 채점 완료 제출은 2만 3,886건 이고, 이 중 순위표에 오른 행은 2만 3,273건, 강등된 행은 613건입니다. 제출 계정은 131곳입니다. 순위표 상위 50위의 평균 득점률을 축별로 보면 결합과 선택성은 시즌 1, 2, 4에서 91~100%로 사실상 만점 입니다. 반면 ADMET 축은 25~44% 에 머뭅니다. 순위에 오른 2만 3,273건 중 ADMET 15점

dev.toFreitag 01:41 · 23.10.7 Min. Lesezeit

ODC는 허깅페이스에서 운영하는 신약 후보 분자 리더보드입니다. 참가자는 원하는 AI로 분자를 설계해 SMILES 문자열로 제출하고, 채점기가 표적 단백질과의 결합, 인간 유사 단백질에 대한 선택성, 체내 안전성 예측(ADMET) 등을 합쳐 100점 만점으로 점수를 매깁니다. 챌린지 Space는 FINAL-Bench/Open-Discovery-Challenge 입니다.

이 글에서 쓴 데이터는 Space가 공개하는 두 엔드포인트가 전부입니다.

제출 분자 자체는 대부분 보이지 않습니다. 채점 완료 2만 3,886건 중 public 은 172건, 나머지 99.3%는 제출자가 비공개를 택했습니다. 그래서 이 글은 분자 구조가 아니라 점수 축 만 다룹니다. 참가자 이름도 쓰지 않습니다.

남는 순위 행 은 시즌 1이 6,979건, 시즌 2가 7,004건, 시즌 3이 5,094건, 시즌 4가 4,196건입니다. 시즌 1은 9월 30일에 마감했고, 시즌 2(결핵, 상금 2,000달러)는 10월 31일, 시즌 3(샤가스병)은 11월 30일, 시즌 4(비마약성 진통)는 2027년 1월 31일에 마감합니다.

시즌이 뒤로 갈수록 활동 배점은 줄고, 결합과 선택성 배점이 늘어납니다. 시즌 3, 4에서는 결합과 선택성만 합쳐도 60점입니다. 반대로 ADMET(15), 신규성(10), 합성(5)은 시즌과 상관없이 같습니다. 이 고정된 30점이 뒤에서 중요해집니다.

참고로 행마다 6개 축의 합은 총점과 거의 같습니다. 시즌 1의 1,074개 행에서 최대 0.023점 차이가 있었지만 반올림 수준이라 총점을 그대로 썼습니다.

순위 행을 총점으로 정렬해 상위 50위를 잡고, 축별 평균 점수를 그 축의 배점으로 나눴습니다(득점률).

가장 눈에 띄는 것은 ADMET입니다. 15점짜리 축인데 상위 50위조차 25~44%만 받았습니다.

ADMET은 용해도, 투과성, 독성 같은 여러 예측 항목을 묶은 축입니다. 시즌별로 분포를 보면 이렇습니다.

2만 3,273건의 순위 행 중 15점 만점은 한 건도 없습니다. 관측 최고는 시즌 1의 11.92점입니다. 시즌 중앙값은 2.9~4.3점, 즉 배점의 19~28% 수준입니다. 그리고 공식 1위 제출들도 ADMET에서는 3.76점(시즌 1), 7.03점(시즌 2), 3.97점(시즌 3), 5.21점(시즌 4)을 받았습니다. 시즌 2의 1위가 그나마 높은 편입니다.

여기서 원인을 단정하지는 않겠습니다. 데이터가 말해 주는 것은 "ADMET이 약하다"가 아니라 "어느 제출도 이 축을 채우지 못했고, 1위들도 예외가 아니다" 까지입니다.

ADMET 점수 상위 1%(시즌 1 71건, 시즌 2 72건, 시즌 3 52건, 시즌 4 43건)를 따로 뽑아, 총점 순위의 중앙값이 어디인지 봤습니다.

총점 순위 상위 몇 %에 있는지가 시즌 1은 9.5%, 시즌 2는 18.3%, 시즌 3은 9.8%, 시즌 4는 18.1%입니다. ADMET 점수가 가장 높은 제출 한 건만 보면 더 극적입니다. 시즌 1에서는 6,979건 중 607위, 시즌 2에서는 7,004건 중 4,346위, 시즌 3에서는 5,094건 중 150위, 시즌 4에서는 4,196건 중 2,154위입니다.

다른 축을 같이 보면 모양이 드러납니다. ADMET 상위 1% 제출들의 다른 축 평균 득점률을 상위 50위와 비교하면 이렇습니다.

ADMET이 좋은 제출은 활동, 결합, 선택성 중 하나 이상에서 크게 밀립니다. 특히 시즌 3에서 이 그룹의 활동 득점률은 4%입니다. 상관관계이고 인과는 아닙니다. 다만 한 축을 끌어올린 분자가 다른 축을 잃는 모양 이 네 시즌 모두에서 반복됩니다. 상위권이 ADMET을 비워 둔 채 표적 축에 몰리는 것도 이 모양과 맞아떨어집니다.

1위가 놓친 점수의 56~74%가 ADMET에 있습니다. 시즌 1과 2에서는 활동, 결합, 선택성 세 축이 이미 만점이라 남은 점수가 전부 ADMET, 신규성, 합성입니다.

간단한 산수를 하나 해 보겠습니다(illustrative, 다른 축을 고정한다고 가정). 시즌 1의 1위가 ADMET만 상위 1% 경계(8.43점)까지 올리면 총점은 84.72에 4.67을 더한 89.39점입니다. 하지만 앞 절에서 본 것처럼 현실에서는 ADMET을 올리는 과정에서 다른 축이 내려가는 경향이 있으므로, 이 계산은 상한선에 가까운 가정입니다.

남은 점수가 ADMET에 몰려 있다면 상위권 순위도 ADMET이 가를까요? 상위 50위 안에서 총점의 분산을 축별로 나눠 봤습니다. 각 축과 총점의 공분산을 총점 분산으로 나눈 몫이고, 여섯 축의 합이 100%입니다.

답은 "아니오"입니다. 상위 50위 안의 순위 차이는 대부분 활동, 결합, 선택성의 미세한 차이 에서 나옵니다. 시즌 1은 선택성이 68%, 시즌 2와 4는 활동이 55%, 51%, 시즌 3은 선택성이 43%입니다. ADMET의 몫은 3~25%입니다.

두 관찰을 합치면 이렇습니다. 남은 점수는 ADMET에 있지만, 상위권 안에서는 ADMET을 올리는 것보다 표적 축의 소수점 차이를 다투는 쪽이 순위를 바꿉니다. 시즌 1의 상위 50위는 1위와 50위 총점이 84.72점과 80.18점으로 4.54점 벌어져 있고, 시즌 2는 87.70점과 85.64점으로 2.06점, 시즌 3은 80.30점과 73.19점으로 7.11점, 시즌 4는 83.32점과 80.92점으로 2.40점입니다.

강등 행( tier 2)까지 넣어 총점만으로 상위 50위를 뽑으면 이렇게 됩니다.

시즌 1에서는 원점수 상위 50위 중 38개가 강등 대상입니다. 강등 사유 중 가장 많은 것은 약이 될 수 없는 반응성 구조(시즌 1에서만 아지리딘 287건)이고, 시즌 2, 3에서는 같은 구조를 다시 낸 중복 제출도 강등 사유로 나옵니다. 시즌 1과 3은 강등 행의 원점수가 공식 1위보다 높고, 시즌 2의 원점수 1위는 공식 1위와 같습니다.

의미는 단순합니다. 반응성이 큰 구조가 높은 총점을 받는 경우가 실제로 있었고, 그래서 강등 필터가 순위표의 일부입니다. 점수만 보고 "이 분자가 가장 좋다"고 말하면 안 되는 이유이기도 합니다. 반대로, 이 필터가 올바른 기준인지는 별개 문제입니다. 필터의 사유는 relegate_reason 필드에 그대로 남아 있어서 누구나 검토할 수 있습니다.

아래 코드는 위 표의 상위 50위 득점률과 ADMET 최고점을 그대로 계산합니다. 표준 라이브러리만 씁니다.

import json, statistics as st, urllib. request BASE = " https://final-bench-open-discovery-challenge.hf.space " AXES = [ " activity ", " binding ", " selectivity ", " admet ", " novelty ", " synthesis " ] def get ( path ): return json. load ( urllib. request. urlopen ( BASE + path, timeout = 60 )) for season in get ( " /api/seasons " )[ " seasons " ]: n, w = season [ " number " ], season [ " weights " ] rows = get ( f " /api/leaderboard?season= { n } " )[ " entries " ] # 기준물질(anchor)은 visibility 키가 없고, 채점 실패 행은 axes 가 비어 있다 scored = [ e for e in rows if " visibility " in e and e [ " axes " ]] ranked = sorted (( e for e in scored if e [ " tier " ] == 1 ), key = lambda e: - e [ " total " ]) top50 = ranked [: 50 ] frac = { a: st. mean ( e [ " axes " ][ a ] for e in top50 ) / w [ a ] for a in AXES } best_admet = max ( e [ " axes " ][ " admet " ] for e in ranked ) print ( f " S { n } { season [ ' topic ' ] }: 순위 { len ( ranked ) } 건(강등 { len ( scored ) - len ( ranked ) } 건), 1위 { ranked [ 0 ][ ' total ' ]:. 2 f } 점 " ) print ( " 상위50 득점률 " + " ". join ( f " { a [: 3 ] } = { frac [ a ]:. 0 % } " for a in AXES )) print ( f " ADMET 만점 { w [ ' admet ' ] } 중 최고 { best_admet:.

2 f }, 1위 제출 { ranked [ 0 ][ ' axes ' ][ ' admet ' ]:. 2 f } " ) Enter fullscreen mode Exit fullscreen mode 저희가 스냅샷 시각에 돌린 출력입니다.

S1 Malaria: 순위 6979건(강등 415건), 1위 84.72점 상위50 득점률 act=98% bin=95% sel=91% adm=30% nov=71% syn=76% ADMET 만점 15 중 최고 11.92, 1위 제출 3.76 S2 Tuberculosis: 순위 7004건(강등 48건), 1위 87.70점 상위50 득점률 act=97% bin=100% sel=100% adm=44% nov=77% syn=58% ADMET 만점 15 중 최고 11.46, 1위 제출 7.03 S3 Chagas disease: 순위 5094건(강등 150건), 1위 80.30점 상위50 득점률 act=50% bin=94% sel=88% adm=25% nov=88% syn=73% ADMET 만점 15 중 최고 11.60, 1위 제출 3.97 S4 Non-opioid analgesia: 순위 4196건(강등 0건), 1위 83.32점 상위50 득점률 act=61% bin=100% sel=100% adm=30% nov=76% syn=73% ADMET 만점 15 중 최고 9.33, 1위 제출 5.21 Enter fullscreen mode Exit fullscreen mode 여러분이 돌린 값은 리더보드가 움직인 만큼 다를 수 있습니다. 시즌 1은 마감했으므로 거의 같게 나와야 합니다. 응용으로는 tier 를 무시하고 정렬해 위 강등 표를 재현하거나, 상위 N을 바꿔 포화가 어디까지 이어지는지 볼 수 있습니다.

오픈 디스커버리 챌린지는 무엇을 채점하나요? 제출된 분자(SMILES)를 활동, 결합, 선택성, ADMET, 신규성, 합성 가능성의 6개 축으로 100점 만점 채점합니다. 배점은 시즌마다 /api/seasons 에 공개돼 있습니다.

만점 축이 많은데 1위도 100점이 안 되는 이유는 무엇인가요? 시즌 1, 2에서는 활동, 결합, 선택성이 거의 만점인데도 ADMET(15점), 신규성(10점), 합성(5점) 합계 30점 중 1위가 놓친 점수가 12~15점입니다. 그중 ADMET이 가장 큽니다.

ADMET 점수가 낮은 1위 분자는 약이 될 수 없나요? 알 수 없습니다. 점수는 계산 기반 예측이고, ADMET 축은 그중에서도 예측 항목의 묶음입니다. 이 글은 약효를 주장하지 않으며, 순위표가 무엇을 보상하는지만 설명합니다.

강등은 무엇이고 왜 순위에서 빼나요? 약이 될 수 없는 반응성 구조, 같은 구조의 중복 제출 같은 사유로 순위에서 제외하는 처리입니다. 시즌 1에서는 원점수 상위 50위의 38개가 강등 대상이었습니다. 사유는 relegate_reason 에 남습니다.

지금도 참여할 수 있나요? 시즌 2(결핵, 상금 2,000달러)는 10월 31일, 시즌 3(샤가스병)은 11월 30일, 시즌 4(비마약성 진통)는 2027년 1월 31일에 마감합니다. 시즌별 분자량과 중원자 수 한도가 다르니 제출 전에 /api/seasons 의 limits 를 확인하세요.

Quelle: dev.to (dev.to). Original öffnen