과학 Foundation Model
분자, 단백질 서열, 기상장, 결정 구조, 현미경 영상처럼 과학 데이터에도 대량의 비표지 데이터가 쌓여 있다. 이 데이터로 큰 모델을 사전학습한 뒤 작은 하위 과제에 전이하는 접근, 즉 과학 foundation model이 여러 분야에서 시도되고 있다.
이 접근에서는 "얼마나 큰가"보다 "무엇을 주장할 수 있는가"가 중요하다. 이 장은 과학 사전학습 모델이 무엇을 전이하는지, 그 주장을 어떻게 검증하는지, 평가에서 어떤 누수가 결과를 부풀리는지를 다룬다. 이어서 LLM을 과학 문헌 작업에 쓸 때의 위험과, 사전학습 모델의 결과를 보고할 때의 책임을 정리한다. foundation model의 일반 개념과 전이 방법(frozen feature, LoRA, full fine-tuning)은 19.9장, 언어모델의 기초와 LLM 출력의 검증 원칙은 18.5장이 다룬다. 언어모델에 도구를 연결해 가설 생성·코드·시뮬레이션 실행까지 연구 과정을 맡기는 AI 에이전트의 설계와 검증은 25.6장에서 따로 다룬다.
학습 목표
- 과학 분야의 사전학습 모델이 무엇을 전이하는지(표현·귀납 편향·암기)와 표지 데이터를 얼마나 아껴 주는지 평가한다
- 과학 사전학습 모델의 성능 주장을 누수 없는 분할과 대조군을 갖춘 비교로 검증한다
- 과학 사전학습 모델과 LLM이 낸 결과를 보고하기 전의 검증·재현성·이중 용도 위험을 판단한다
과학 foundation model
정의. Bommasani 외(2021)는 foundation model을 "넓은 데이터로 대규모 학습되어 다양한 하위 과제에 적응(예: fine-tuning)할 수 있는 모델"로 정의했다. 정의의 핵심은 크기가 아니라 넓은 사전학습과 여러 과제로의 적응이다. 큰 모델이 하나의 과제만 잘하면 이 정의에 맞지 않는다(19.9장).
분야별 데이터와 사전학습 목표. 과학 사전학습은 데이터의 형태에 따라 목표가 다르다.
| 분야 | 데이터 | 흔한 사전학습 목표 | 기대하는 전이 |
|---|---|---|---|
| 단백질·유전체 | 서열(아미노산·염기 문자열) | 가린 토큰 예측, 다음 토큰 예측 | 진화적 보존·접촉 정보가 담긴 표현 → 기능·안정성 예측 |
| 분자·재료 | 그래프, 3차원 구조, 문자열 표기 | 가린 원자·결합 복원, 잡음 제거, 에너지·힘 예측 | 화학 환경의 표현 → 물성 예측, 원자간 퍼텐셜 |
| 기상·기후 | 격자 위 시공간장(재분석 자료) | 다음 시각 상태 예측 | 대기 동역학의 표현 → 예보, 다운스케일링 |
| 영상(현미경·천문) | 이미지 | 가린 패치 복원, 대조 학습 | 형태 특징 → 분류·분할 |
사전학습 목표는 19부의 자기지도 학습(19.8장)과 생성모델(19.1장)의 방법을 과학 데이터에 적용한 것이다. 기상장의 "다음 상태 예측"처럼 사전학습 목표 자체가 이미 유용한 과제인 경우도 있다. 예를 들어 Lam 외(2023)의 GraphCast는 재분석 자료로 학습한 그래프 신경망으로 0.25° 해상도의 전 지구 10일 예보를 만들고, 검증 대상 1380개 중 90%에서 당시 가장 정확한 운영 결정론적 예보 시스템보다 좋았다고 보고했다. 단백질 서열에서 3차원 구조를 예측하는 AlphaFold(Jumper 외, 2021)는 하나의 과제를 위해 설계된 모델이지만, 그 예측 구조와 내부 표현이 다른 과제의 입력으로 널리 재사용된다는 점에서 과학 모델의 전이를 생각할 때 자주 언급된다.
무엇이 전이되는가. 사전학습이 하위 과제를 돕는 경로는 대략 셋이다.
- 표현: 비표지 데이터의 구조(잠재 요인, 대칭, 통계적 규칙성)를 담은 특징. 하위 과제의 표지 데이터가 적을 때 가장 큰 도움이 된다.
- 귀납적 편향: 사전학습 과정에서 굳어진 가중치가 작은 데이터로 fine-tuning할 때 해 공간을 좁힌다.
- 지식의 암기: 사전학습 데이터에 이미 있던 사실(같은 분자, 같은 단백질, 같은 기간의 기상)을 기억해서 맞히는 것. 이것은 전이가 아니라 누수이고, 평가를 설계할 때 반드시 분리해야 한다.
어떤 경로로 도움이 되었는지는 통제된 비교로만 알 수 있다. 아래 장난감 예는 첫째 경로를 보인다. 관측 60차원의 데이터가 실제로는 잠재 요인 4개와 큰 잡음으로 만들어지고, 관심 있는 성질은 잠재 요인의 함수다. "사전학습"은 비표지 데이터 5000개로 주성분 4개를 찾는 PCA로 흉내 낸다. 같은 생성 과정의 비표지 데이터로 사전학습한 경우와 다른 생성 과정의 데이터로 사전학습한 경우를, 원시 입력을 그대로 쓰는 기준선과 표지 데이터 크기별로 비교한다. 모든 경우 하위 모델은 같은 ridge 회귀이고, 정규화 강도는 교차검증으로 고른다.
import numpy as np
from sklearn.decomposition import PCA
from sklearn.linear_model import RidgeCV
rng = np.random.default_rng(1)
D_obs, D_lat = 60, 4 # 관측 60차원, 잠재 요인 4개
A_task, A_other = rng.normal(size=(D_lat, D_obs)), rng.normal(size=(D_lat, D_obs))
v = rng.normal(size=D_lat)
def sample(n, A): # x = z A + 잡음, 성질 y = z v + 잡음
z = rng.normal(size=(n, D_lat))
return z @ A + 2.0 * rng.normal(size=(n, D_obs)), z @ v + 0.1 * rng.normal(size=n)
pre_same = PCA(D_lat).fit(sample(5000, A_task)[0]) # 같은 생성 과정의 비표지 데이터로 "사전학습"
pre_other = PCA(D_lat).fit(sample(5000, A_other)[0]) # 다른 생성 과정의 데이터로 "사전학습"
X_te, y_te = sample(2000, A_task)
alphas = np.logspace(-3, 3, 13)
for n in [10, 30, 100, 1000]:
scores = {"원시 입력": [], "같은 분포 사전학습": [], "다른 분포 사전학습": []}
for _ in range(20): # 표지 데이터를 20번 새로 뽑는다
X_tr, y_tr = sample(n, A_task)
for name, f in [("원시 입력", lambda X: X), ("같은 분포 사전학습", pre_same.transform),
("다른 분포 사전학습", pre_other.transform)]:
scores[name].append(RidgeCV(alphas=alphas).fit(f(X_tr), y_tr).score(f(X_te), y_te))
print(f"표지 {n:4d}개 " + " ".join(f"{k} R² {np.median(s):6.3f}" for k, s in scores.items()))표지 10개 원시 입력 R² 0.722 같은 분포 사전학습 R² 0.874 다른 분포 사전학습 R² 0.209 표지 30개 원시 입력 R² 0.870 같은 분포 사전학습 R² 0.915 다른 분포 사전학습 R² 0.420 표지 100개 원시 입력 R² 0.913 같은 분포 사전학습 R² 0.927 다른 분포 사전학습 R² 0.477 표지 1000개 원시 입력 R² 0.927 같은 분포 사전학습 R² 0.930 다른 분포 사전학습 R² 0.498
세 가지가 보인다.
- 표지 데이터가 적을수록 사전학습의 이득이 크다. 표지 10개에서 같은 분포 사전학습은 R² 0.874로 원시 입력(0.722)보다 크게 낫지만, 표지 1000개에서는 0.930 대 0.927로 거의 같다. 사전학습 모델의 가치는 "얼마나 좋은가"가 아니라 "표지 데이터 몇 개를 아껴 주는가"로 말해야 정확하다.
- 분포가 다른 데이터로 사전학습한 표현은 오히려 해롭다(부정적 전이). 표지를 1000개로 늘려도 R² 0.498에 머문다. 고정된(frozen) 표현이 하위 과제에 필요한 방향을 담지 않으면 표지 데이터를 아무리 늘려도 그 병목을 넘지 못한다.
- 어느 쪽인지는 사전학습 모델의 크기나 사전학습 데이터의 양이 아니라 사전학습 데이터와 하위 과제의 관계가 정한다. 여기서 두 PCA는 크기도, 사전학습 데이터 양도 같았다.
적응 방법. 사전학습 모델을 하위 과제에 맞추는 방법은 19.9장에서 다룬 것과 같다. 표현을 고정하고 위에 작은 모델을 얹는 linear probe / frozen feature, 일부 파라미터만 학습하는 PEFT(LoRA, adapter), 전체를 다시 학습하는 full fine-tuning이다. 과학 과제에서 실용적인 순서는 frozen feature로 먼저 기준을 잡고, 표지 데이터가 충분하고 frozen feature가 병목으로 보일 때(위의 "다른 분포" 경우처럼 표지를 늘려도 성능이 오르지 않을 때) 더 많은 파라미터를 푸는 것이다. 표지 데이터가 수십 개뿐인데 full fine-tuning을 하면 사전학습 표현이 망가지기 쉽다.
평가
미사용 분포·과제에서의 전이. 사전학습 모델의 주장은 대개 "새 분자·새 단백질·새 기간에도 잘 된다"는 것이다. 그렇다면 시험 데이터는 실제로 새것이어야 한다. 과학 데이터에서는 무작위 분할이 새것을 보장하지 않는다. 같은 골격(scaffold)을 공유하는 분자, 서열 유사도가 높은 단백질, 같은 날의 이웃한 기상장, 같은 환자의 여러 시료는 서로 거의 같은 정보를 담는다. 이런 시료가 학습과 시험에 갈라져 들어가면 시험은 암기를 잰다(15.4장).
from sklearn.neighbors import KNeighborsRegressor
rng = np.random.default_rng(0)
n_family, n_member, D = 80, 8, 8 # 골격(계열) 80개, 계열마다 변형 8개, 특징 8차원
centers = rng.normal(size=(n_family, D)) # (80, D) 계열의 공통 골격
X = np.repeat(centers, n_member, 0) + 0.1 * rng.normal(size=(n_family * n_member, D)) # (640, D)
family = np.repeat(np.arange(n_family), n_member) # (640,) 계열 번호
y = np.tanh(centers @ rng.normal(size=D) / 2)[family] + 0.1 * rng.normal(size=len(X)) # 성질은 주로 골격이 정한다
def evaluate(test_mask):
tr, te = ~test_mask, test_mask
pred = KNeighborsRegressor(5).fit(X[tr], y[tr]).predict(X[te])
r2 = 1 - np.mean((pred - y[te]) ** 2) / np.var(y[te])
nn = np.min(np.linalg.norm(X[te][:, None] - X[tr][None], axis=-1), axis=1) # 가장 가까운 학습 시료까지 거리
return r2, np.median(nn)
random_test = rng.random(len(X)) < 0.25 # 시료 단위 무작위 분할
family_test = np.isin(family, rng.choice(n_family, 20, replace=False)) # 계열 단위 분할
for name, m in [("무작위 분할", random_test), ("계열 단위 분할", family_test)]:
r2, nn = evaluate(m)
print(f"{name:8s} 시험 시료 {m.sum()}개 R² = {r2:.3f} 가장 가까운 학습 시료까지 거리 중앙값 {nn:.2f}")무작위 분할 시험 시료 161개 R² = 0.952 가장 가까운 학습 시료까지 거리 중앙값 0.28 계열 단위 분할 시험 시료 160개 R² = 0.341 가장 가까운 학습 시료까지 거리 중앙값 1.92
같은 모델(k-최근접 이웃 회귀), 같은 데이터인데 무작위 분할의 R²는 0.952, 계열 단위 분할의 R²는 0.341이다. 무작위 분할에서는 시험 시료의 형제가 학습 데이터에 있어서, 가장 가까운 학습 시료까지의 거리(중앙값 0.28)가 계열 사이 거리(1.92)보다 훨씬 짧다. 모델은 "새 계열의 성질을 예측"하는 것이 아니라 "형제의 성질을 베끼고" 있다. 시험 시료와 가장 가까운 학습 시료까지의 거리 분포는 어떤 분할을 쓰든 함께 보고할 만한 누수 진단이다. Kapoor와 Narayanan(2023)은 머신러닝을 쓴 과학 연구 여러 분야에서 이런 누수가 결과를 부풀린 사례를 조사해 누수 유형을 분류했다.
데이터 중복과 사전학습 누수. foundation model에는 누수가 한 겹 더 있다. 하위 과제의 시험 데이터가 사전학습 데이터에 이미 들어 있을 수 있다. 공개 단백질 데이터베이스 전체, 공개 분자 라이브러리 전체, 수십 년 치 재분석 자료로 사전학습했다면, 하위 과제 벤치마크의 시험 시료도 그 안에 있을 가능성이 크다. 비표지 상태로 봤더라도 모델은 그 시료의 구조를 이미 학습했다. 점검 절차는 다음과 같다.
- 시험 시료와 사전학습 데이터의 중복·근접 중복을 직접 검사한다(서열 유사도, 분자 지문 유사도, 시간 범위 겹침).
- 사전학습 데이터의 수집 시점 이후에 생긴 데이터로 따로 평가한다(시간 기준 분할). 단백질 구조 예측의 CASP처럼 아직 공개되지 않은 정답을 시험 대상으로 쓰는 블라인드 평가가 가장 강한 형태다.
- 사전학습 데이터 목록이 공개되지 않은 모델은 이 검사를 할 수 없다. 그런 모델의 성능 주장은 그만큼 약하게 받아들인다.
통제된 비교. 전이 효과를 주장하려면 다음 대조군이 필요하다. 같은 구조를 무작위 초기화로 같은 표지 데이터에 학습한 모델(사전학습의 순수 효과), 과제에 맞춘 단순 baseline(선형 모델, 랜덤 포레스트, 도메인 지식 기반 특징)(16.1장), 그리고 표지 데이터 크기별 곡선이다. 단순 baseline이 빠진 비교에서는 "사전학습 모델이 무작위 초기화보다 낫다"는 것만 알 수 있고, 그 과제에 큰 모델이 필요한지는 알 수 없다.
LLM과 과학 문헌
LLM을 문헌 작업에 쓰는 일반 원칙은 18.5장과 23.1장에 있다. LLM의 출력은 검증 전까지 가설이고, 인용은 원문을 열어 확인한다. 과학 연구에서 문헌 작업이 특히 위험한 지점은 다음과 같다.
- 검색: 검색 증강(retrieval-augmented) 시스템은 실제 문서를 찾아 근거로 제시하므로 존재하지 않는 논문을 지어낼 위험이 줄어든다. 그러나 찾은 문서가 주장을 실제로 뒷받침하는지는 별개다. 검색된 문서 안에서 해당 문장을 직접 찾아 확인한다.
- 요약: 요약은 조건과 한계를 먼저 잃는다. "특정 온도 범위에서", "세포 실험에서만", "작은 표본에서" 같은 단서가 빠진 요약은 원 논문보다 강한 주장이 된다.
- 지식 추출: 문헌에서 수치·조건을 뽑아 데이터베이스를 만들 때는 단위 혼동, 표와 본문의 불일치, 여러 실험이 섞인 문단에서의 오추출이 생긴다. 무작위 표본을 사람이 직접 추출한 정답 세트로 필드별 정확도를 재고 보고한다(18.5장의 분야 예시).
- 환각과 인용 검증: 존재하지 않는 논문, 실제 논문에 없는 수치, 서로 다른 논문의 저자·연도가 섞인 인용이 생성될 수 있다. 연구 기록과 원고에 들어가는 모든 인용은 DOI나 출판사 페이지로 존재를 확인하고, 인용한 주장이 원문에 있는지 확인한다. 이 책의 참고 문헌도 같은 절차로 확인한 것만 싣는다. 인용 대조를 절차로 만드는 방법은 25.6장에 있다.
위험과 책임
검증되지 않은 결론. 사전학습 모델의 예측과 에이전트의 분석은 그럴듯한 형식(표, 그림, 수치, 인용)으로 나오므로 검증을 건너뛰기 쉽다. 연구 결과로 보고하는 모든 주장은 사람이 재현하고 확인한 것이어야 한다. 도구가 만든 결과를 검증 없이 보고하면, 오류의 책임은 도구가 아니라 보고한 연구자에게 있다.
언어모델에 코드 실행과 시뮬레이터를 연결한 에이전트가 수치를 냈다면 검증은 더 엄격해야 한다. 에이전트가 스스로 작성한 테스트를 통과했다는 것은 검증이 아니다. 같은 에이전트가 쓴 코드와 테스트는 같은 오해를 공유하고, 같은 질문을 다시 물어 같은 답이 나오는 것은 일관성이지 정확성이 아니다. 단계별 도구 호출 기록으로 무엇을 했는지 확인하고, 기록된 코드를 사람이 다시 실행해 수치를 재현하고, 답이 알려진 사례(양성 대조)에 같은 절차를 적용해 알려진 값이 나오는지 본다. 이 검증을 에이전트 설계에 넣는 방법은 25.6장이 다룬다.
재현성. 원격 API로 제공되는 모델은 같은 이름이어도 시점에 따라 바뀔 수 있고, 샘플링 때문에 같은 입력에서 다른 출력이 나온다. 모델 이름·버전(또는 접근 날짜)·설정·prompt·시드를 기록하고(23.7장), 가능하면 가중치가 공개되어 고정할 수 있는 모델로 핵심 결과를 재현한다.
이중 용도 위험. 분자 생성 모델은 유익한 화합물을 설계하는 것과 같은 방식으로 해로운 화합물도 설계할 수 있다. Urbina 외(2022)는 신약 발견용 생성 모델의 목표를 독성 최대화로 바꾸면 알려진 화학 무기와 비슷한 분자를 대량으로 제안할 수 있음을 보이며 이 위험을 경고했다. 병원체·독소와 관련된 생물학, 위험 물질의 합성 경로는 모델 공개, 데이터 공개, 에이전트의 도구 접근 범위를 정할 때 위험 평가가 필요한 영역이다. 소속 기관의 연구 윤리·안전 절차(23.12장)를 따르고, 판단이 어려우면 공개하기 전에 기관의 검토를 받는다.
책임의 위치. 저자 자격, 데이터와 코드의 출처, AI 도구 사용의 공개는 학술지와 기관의 정책을 따른다. 정책은 빠르게 바뀌므로 투고할 때마다 해당 학술지의 현재 지침을 확인한다.
실습
공개 과학 사전학습 모델 하나를 작은 하위 과제로 전이해 무작위 초기화·단순 baseline과 비교한다. 모델의 이름·버전·설치 방법은 빠르게 바뀌므로, 모델 저장소의 문서에서 현재 절차를 확인한다.
- 모델과 과제 고르기: 사전학습 데이터 목록이 공개된 모델(단백질 서열 모델, 분자 표현 모델 등)과, 그 모델이 직접 학습하지 않은 작은 회귀·분류 과제를 고른다. 사용한 모델의 이름·버전(또는 커밋 해시)·접근 날짜를 기록한다.
- 누수 점검: 하위 과제의 시험 시료와 사전학습 데이터의 중복·근접 중복을 검사한다. 시험 시료와 가장 가까운 학습 시료까지의 거리 분포를 셀 2처럼 그린다.
- 분할: 무작위 분할과 계열 단위 분할(골격, 서열 클러스터, 시간)을 모두 만든다.
- 비교: (a) 사전학습 표현 + 선형 모델, (b) 같은 구조의 무작위 초기화 모델, (c) 단순 baseline(도메인 특징 + 선형 모델 또는 랜덤 포레스트)을 표지 데이터 크기 3–4단계에서, 시드 여러 개로 비교한다.
- 보고: 셀 1과 같은 표에 두 분할의 결과를 함께 싣고, 사전학습이 표지 데이터를 몇 개 아껴 주는지, 계열 단위 분할에서도 이득이 남는지를 쓴다.
GPU가 없으면 사전학습 모델의 표현을 한 번만 계산해 저장하고, 이후 비교는 그 표현으로 CPU에서 한다. 이 장의 두 셀은 labs/scientific-discovery/scientific-foundation-models/cells.py에 있다.
실패 사례
- 모델 크기만으로 전이 효과를 가정하는 것. 셀 1에서 크기가 같은 두 "사전학습"이 정반대 결과를 냈다. 전이를 결정하는 것은 사전학습 데이터와 하위 과제의 관계다. 무작위 초기화와 단순 baseline 대조 없이 효과를 주장하지 않는다.
- 무작위 분할 성능을 새 분자·새 단백질에 대한 성능으로 보고하는 것. 셀 2에서 같은 모델의 R²가 분할 방법에 따라 0.952와 0.341로 갈렸다.
- 사전학습 데이터와 시험 데이터의 중복을 확인하지 않는 것. 비표지로 본 시료라도 모델은 그 구조를 학습했다.
- 모델이나 에이전트가 낸 결과·인용을 검증 없이 보고하는 것. 핵심 수치는 사람이 독립적으로 재현하고, 인용은 원문에서 확인한다. 에이전트가 스스로 쓴 테스트를 통과한 것은 검증이 아니다(25.6장).
통과 기준
- 사전학습 모델의 전이 효과를 무작위 초기화·단순 baseline과 표지 데이터 크기별로 비교하고, 무작위 분할과 계열(또는 시간) 단위 분할의 결과를 함께 보고한다.
- 시험 데이터와 학습·사전학습 데이터의 중복·근접 중복 점검 결과를 보고서에 포함한다.
- 보고서에 사용한 사전학습 모델의 이름·버전(또는 커밋 해시)·접근 날짜를 적는다. LLM이나 에이전트를 쓴 단계가 있으면 그 설정·기록과 결과를 독립적으로 검증한 방법을 명시하고, 이중 용도 위험이 있는 과제라면 공개 범위에 대한 판단을 적는다.
참고 문헌
- Bommasani 외 (2021). On the opportunities and risks of foundation models. arXiv:2108.07258. — foundation model의 정의와 기회·위험
- Jumper 외 (2021). Highly accurate protein structure prediction with AlphaFold. Nature, 596, 583–589. — 서열에서 단백질 3차원 구조 예측
- Lam 외 (2023). Learning skillful medium-range global weather forecasting. Science, 382, 1416–1421. — 재분석 자료로 학습한 그래프 신경망 중기 예보(GraphCast)
- Kapoor, Narayanan (2023). Leakage and the reproducibility crisis in machine-learning-based science. Patterns, 4(9), 100804. — 과학 분야 머신러닝 연구의 누수 유형
- Urbina, Lentzos, Invernizzi, Ekins (2022). Dual use of artificial-intelligence-powered drug discovery. Nature Machine Intelligence, 4, 189–191. — 분자 생성 모델의 이중 용도 위험