ORIGINAL FICTION
제75화 — 후보를 줄이는 기계
지난 화 끝부분 다시 보기
Elena가 제안한 두 번째 프로젝트는 Daniel이 처음 기대했던 ‘과학 AI’에 조금 더 가까웠다.
다만 이름부터 달랐다.
Daniel:
“Research Assistant.”
Elena:
“너무 거창합니다.”
“그럼.”
“Candidate Ranker.”
“너무 평범한데.”
“기능이 그거니까요.”
결국 내부 이름은 그냥 `CR-1`.
후보순위 모델 1.
목표는 단순했다.
재료 시뮬레이션에서 수천 개 조합을 전부 고해상도로 계산할 수 없다.
싼 근사계산과 과거 결과를 사용해 유망한 후보를 먼저 고른다.
그다음 비싼 계산과 실제 실험.
Daniel은 이 구조를 좋아했다.
시간을 줄인다.
실험을 대체하지 않는다.
순서를 바꾼다.
첫 파트너는 51화의 재료연구 스타트업.
그들은 합금 후보 수백 개를 돌리고 있었다.
목표 특성.
열안정.
기계적 강도.
밀도.
비용.
Elena가 말했다.
“첫 버전에서는 두 특성만.”
Daniel이 물었다.
“왜?”
“데이터가 적습니다.”
“다목적 최적화—”
Elena가 쳐다봤다.
Daniel이 웃었다.
“알겠습니다.”
첫 데이터.
과거 실험 186개.
시뮬레이션 700여 개.
문제.
실험조건이 조금씩 달랐다.
Daniel이 말했다.
“보정.”
Elena가 말했다.
“먼저 버릴 데이터부터.”
“아까운데.”
“틀린 데이터가 더 비쌉니다.”
팀은 데이터 신뢰도 등급을 붙였다.
Response Grid에서 배운 방식.
높음.
중간.
낮음.
실험조건 불명확.
사용 제외.
처음 186개 중 41개가 빠졌다.
Daniel은 놀랐다.
“22퍼센트를 버립니까?”
“정확한 쓰레기가 모델을 더 망칩니다.”
Elena의 표현은 직설적이었다.
첫 모델.
후보 100개에 순위.
상위 10개.
실제 고해상도 계산.
결과.
10개 중 6개가 실제 상위권.
나쁘지 않았다.
무작위 선택보다 훨씬 좋았다.
Daniel의 눈빛이 밝아졌다.
“실험 들어가죠.”
Elena가 말했다.
“아직.”
“왜?”
“같은 분포 안에서만 검증했습니다.”
“그럼?”
“조금 다른 조성영역.”
외삽.
모델이 진짜 새로운 후보를 찾을 수 있는가.
Daniel은 그 테스트가 더 위험하다는 걸 알았다.
해봤다.
결과.
상위 10개 중 실제 유망 2개.
성능 급락.
Daniel이 얼굴을 찌푸렸다.
“Elena.”
“네.”
“이거 쓸 수 있습니까?”
“쓸 수 있습니다.”
“2개인데.”
“새 영역에서는 보수적으로 써야죠.”
Elena는 자신 없어하지 않았다.
모델이 못 하는 걸 알았기 때문이다.
“그럼 고객에게 뭐라고 말합니까?”
“익숙한 영역에서는 후보를 많이 줄일 수 있고, 새로운 영역에서는 탐색도구로만.”
Daniel은 그 설명이 약하게 느껴졌다.
하지만 A1을 떠올렸다.
강하게 말해서 제품이 좋아지는 건 아니다.
고객과 회의.
Elena가 직접 설명했다.
“이 모델이 새로운 재료를 발견해주는 건 아닙니다.”
고객 연구자가 웃었다.
“그럼 왜 씁니까?”
“안 좋은 후보를 빨리 버리는 데.”
그 말이 오히려 먹혔다.
고객이 물었다.
“얼마나?”
현재 영역.
100개 → 20개 정도.
새 영역.
100개 → 50~60개 정도까지가 안전.
완벽한 자동화가 아니다.
그래도 계산량 절반.
실험비 절감.
고객이 말했다.
“그 정도면 충분합니다.”
Daniel이 멈췄다.
또.
고객은 항상 미래완전체를 요구하지 않는다.
조금 좋아져도 돈이 된다.
CR-1은 첫 실사용에 들어갔다.
모델 추천 20개.
고해상도 계산.
그중 8개가 좋은 결과.
고객이 3개를 실제 실험으로 넘겼다.
실험은 몇 주 걸렸다.
Daniel은 결과를 기다리는 게 답답했다.
Elena는 말했다.
“과학은 서버보다 느립니다.”
“실험 자동화하면.”
“나중에요.”
“또 그 말.”
“좋아하시잖아요. 나중.”
Daniel이 웃었다.
몇 주 뒤 첫 실험 결과.
후보 A.
예상보다 나쁨.
B.
비슷.
C.
예상보다 좋음.
완벽히 맞지 않았다.
Elena는 기뻐했다.
“왜 좋습니까?”
Daniel이 물었다.
“틀린 게 생겼잖아요.”
또.
실패를 데이터로 보는 사람.
C 후보는 특히 흥미로웠다.
모델은 중간 정도로 봤다.
실험은 더 좋았다.
“왜?”
고객 연구자가 말했다.
“모르겠습니다.”
Elena가 바로 말했다.
“이걸 다음 실험으로.”
Daniel은 모델을 고치자고 하려 했다.
Elena가 막았다.
“먼저 원인을 이해해야 합니다.”
“모델에 feature 추가하면—”
“왜 좋은지도 모르는데 뭘 추가해요?”
Daniel은 입을 다물었다.
Prediction ≠ explanation.
71화의 문장이 돌아왔다.
CR-1은 과학자를 대체하지 않았다.
오히려 새로운 질문을 만들었다.
왜 C가 예상보다 좋았는가.
그 질문이 다음 연구의 시작.
Daniel은 처음으로 ‘AI가 답을 준다’보다 ‘AI가 더 좋은 질문을 만든다’는 쪽이 마음에 들었다.
그날 연구노트에 적었다.
A useful scientific model does not end inquiry. It reallocates it.
과학 AI의 첫 번째 프로토타입은 미래를 예언하는 기계가 아니었다.
수천 개 후보 중 어디부터 볼지 알려주는 기계.
Daniel은 그 정도의 겸손함이 오히려 강하다고 느꼈다.
CR-1을 실제 연구실에서 쓰는 날, Daniel은 고객 실험실을 처음 제대로 둘러봤다.
작은 공간.
고온로.
시험장비.
현미경.
샘플 보관함.
서버실과 냄새부터 달랐다.
금속.
화학약품.
뜨거운 공기.
연구자는 모델이 추천한 후보 목록을 출력해 벽에 붙였다.
1위부터 20위.
Daniel은 순위를 봤다.
연구자들은 점수보다 옆 메모를 봤다.
“이건 만들기 어렵습니다.”
“이 조성은 원료가 비싸요.”
“이건 기존 공정으로 가능.”
“이건 안전문제.”
CR-1에는 없는 변수들이 계속 나왔다.
Daniel이 물었다.
“그걸 모델에 넣을 수 있습니까?”
Elena가 옆에서 말했다.
“전부 넣으려고 하지 마세요.”
“왜?”
“연구자가 이미 알고 있잖아요.”
또.
모델의 목적은 사람 머릿속까지 복사하는 게 아니다.
사람이 잘하는 판단은 사람이 한다.
CR-1은 계산공간을 줄인다.
현실 가능성은 연구자가 본다.
한 후보는 모델 2위였지만 바로 제외됐다.
원료 조달이 어렵다.
Daniel이 아까워했다.
“성능은 좋은데.”
연구자가 말했다.
“논문이면 해볼 수 있습니다.”
“제품은?”
“안 합니다.”
과학과 산업의 차이.
또 하나.
후보 11위.
연구자가 관심을 보였다.
“이건 공정이 쉽습니다.”
모델 점수는 중간.
실험비용 낮음.
바로 시험.
Daniel은 순위가 절대적이지 않다는 걸 또 봤다.
“그러면 비용도 넣으면.”
Elena가 그를 봤다.
Daniel이 스스로 멈췄다.
“아니. 목적 따라.”
“네.”
모델 하나로 모든 연구목적을 합치지 않는다.
고객마다 다른 목적함수.
그런데 목적을 넣는 순간 모델이 사람 대신 ‘무엇이 중요한가’를 결정하게 될 수도 있다.
그래서 CR-1은 옵션을 제공했다.
성능 우선.
비용 고려.
탐색 우선.
그러나 최종선택은 연구자.
실험이 시작됐다.
고온로에 샘플이 들어갔다.
Daniel은 물었다.
“결과 언제?”
연구자가 말했다.
“내일 일부.”
“전체는?”
“몇 주.”
Daniel이 한숨을 쉬자 실험실 전체가 웃었다.
“서버처럼 안 됩니다.”
Elena가 말했다.
Daniel이 웃었다.
“자동화 가능성은?”
연구자가 말했다.
“일부는 이미 하고 있습니다.”
Daniel의 눈빛이 다시 밝아졌다.
Elena가 손을 들었다.
“오늘은 후보선정 프로젝트입니다.”
“알겠습니다.”
그는 정말 더 말하지 않았다.
며칠 뒤 첫 결과.
예상과 다른 후보.
C.
그 순간부터 77화의 질문이 시작된다.
하지만 그 전에도 Daniel은 이미 하나 배웠다.
모델이 후보를 줄여도 실험실에서는 새로운 변수들이 계속 튀어나온다.
재료는 숫자표가 아니다.
만들 수 있어야 하고.
측정할 수 있어야 하고.
반복돼야 한다.
Daniel은 공장 사장이 예전에 했던 말을 떠올렸다.
설계할 수 있다고 만들 수 있는 건 아니다.
아직 Vogel을 만나진 않았지만 그 원리는 이미 여러 곳에서 자신을 따라오고 있었다.
읽은 화로 기록했습니다. 다음 화는 바로 이어집니다.