생성형 AI 신약 개발의 실무적 접근과 컨버지바이오의 시스템 전략

keyword_616

최근 AI가 단백질 구조를 예측하는 수준을 넘어, 실제로 작동하는 약물을 설계하는 단계로 빠르게 진입하고 있다는 소식을 접했습니다. 특히 구글 딥마인드의 알파폴드 개발자들이 노벨 화학상을 수상한 이후, 단순히 모델의 성능을 자랑하는 단계를 지나 실무 워크플로우에 AI를 어떻게 녹여낼 것인가에 대한 논의가 뜨겁습니다. 보스턴과 텔아비브를 기반으로 한 컨버지바이오(Converge Bio)가 베세머 벤처 파트너스를 비롯해 메타, 오픈AI, 위즈(Wiz)의 임원들로부터 2,500만 달러의 시리즈 A 투자를 유치했다는 소식은 이 분야의 흐름이 ‘모델’에서 ‘시스템’으로 옮겨가고 있음을 보여줍니다.

단순한 프롬프트를 넘어 AI 시스템으로

우리가 챗GPT를 사용할 때처럼 간단한 프롬프트 하나로 신약 후보 물질이 뚝딱 나오는 시대는 아직 오지 않았습니다. 컨버지바이오의 CEO 도브 거츠(Dov Gertz)가 강조했듯, 벤치마크 점수가 높은 모델과 생물학자가 실제로 사용할 수 있는 AI 시스템 사이에는 거대한 간극이 존재합니다. 고품질의 데이터, 도메인에 특화된 아키텍처, 그리고 실험적 검증 루프가 톱니바퀴처럼 맞물려 돌아가야만 비로소 의미 있는 결과물이 나오기 때문입니다.

전통적인 신약 개발은 수억 달러의 비용과 수년의 시간이 소요되는 ‘시행착오(Trial and Error)’의 연속이었습니다. 하지만 컨버지바이오는 DNA, RNA, 단백질 서열을 학습한 생성형 모델을 기존 제약사의 워크플로우에 직접 연결하는 방식을 택했습니다. 이는 연구자가 코드를 직접 짜거나 인프라를 구축할 필요 없이, 최적화된 항체 후보나 단백질 서열이라는 실행 가능한 결과물(Actionable Outputs)을 즉시 얻게 함으로써 R&D 타임라인을 획기적으로 단축시킵니다.

항체 설계 시스템의 엔지니어링 구조

컨버지바이오의 접근 방식에서 흥미로운 점은 단일 모델이 아니라 세 가지 구성 요소가 통합된 ‘파이프라인’ 형태를 띤다는 것입니다. 첫째로 생성형 모델이 새로운 항체를 설계하고, 둘째로 예측 모델이 분자 특성에 따라 이를 필터링하며, 마지막으로 물리 기반의 도킹 시스템이 항체와 표적 간의 3차원 상호작용을 시뮬레이션합니다. 이는 전형적인 MLOps(Machine Learning Operations)의 흐름과 매우 유사합니다.

만약 우리가 이와 유사한 분자 데이터 처리 파이프라인을 구축한다면, 대규모 서열 데이터를 처리하기 위한 전처리 단계가 필수적입니다. 예를 들어, 생물학적 서열 데이터를 정규화하고 토큰화하여 모델에 입력하는 과정은 다음과 같은 Python 환경에서 시작될 수 있습니다.

# 분자 서열 데이터 전처리를 위한 가상 환경 설정 및 라이브러리 설치
# conda create -n bio_ai python=3.10
# conda activate bio_ai

pip install biopython pandas scikit-learn torch transformers

# 간단한 서열 정규화 스크립트 예시
from Bio import SeqIO

def preprocess_sequences(input_file, output_file):
    with open(output_file, "w") as out_f:
        for record in SeqIO.parse(input_file, "fasta"):
            # 서열 내 불필요한 공백 제거 및 대문자 변환
            clean_seq = str(record.seq).strip().upper()
            out_f.write(f"{record.id}\t{clean_seq}
")

# 실행 경로: /data/raw/sequences.fasta -> /data/processed/clean_seqs.txt
preprocess_sequences("sequences.fasta", "clean_seqs.txt")

실무 적용 시 발생하는 에러와 최적화 전략

실제로 이러한 AI 시스템을 제약사 인프라에 통합할 때 가장 빈번하게 발생하는 문제는 데이터 소유권과 보안, 그리고 메모리 부족(OOM) 문제입니다. 컨버지바이오는 고객사가 자체 데이터를 사용하여 프라이빗하게 파인튜닝된 인스턴스를 생성하되, 데이터 소유권은 완전히 유지하는 방식을 통해 이 문제를 해결했습니다. 엔지니어링 관점에서는 거대한 단백질 구조 모델을 로드할 때 GPU 메모리 부족 에러가 자주 발생합니다.

만약 PyTorch 기반의 모델을 구동하다가 RuntimeError: CUDA out of memory 에러를 만난다면, 다음과 같은 단계로 최적화를 시도해 볼 수 있습니다.

  1. Mixed Precision Training 적용: torch.cuda.amp를 사용하여 연산 정밀도를 낮춰 메모리 사용량을 줄입니다.
  2. Gradient Checkpointing 활성화: 중간 활성화 값을 저장하지 않고 재계산하여 메모리를 확보합니다.
  3. Batch Size 조정: 배치 크기를 줄이는 대신 gradient_accumulation_steps를 늘려 가상 배치 크기를 유지합니다.

또한, 분자 도킹 시뮬레이션과 같은 물리 기반 모델을 실행할 때는 CPU와 GPU 간의 데이터 전송 병목 현상이 발생하기 쉽습니다. 이때는 데이터를 pinned memory에 배치하거나, 다음과 같이 비동기 전송 방식을 활용하는 것이 효율적입니다.

# GPU 메모리 효율화를 위한 Mixed Precision 적용 예시
import torch
from torch.cuda.amp import autocast, GradScaler

scaler = GradScaler()
model.cuda()
optimizer = torch.optim.Adam(model.parameters(), lr=1e-5)

for data, target in dataloader:
    optimizer.zero_grad()
    with autocast(): # FP16 연산으로 메모리 절약 및 속도 향상
        output = model(data.cuda())
        loss = criterion(output, target.cuda())
    
    scaler.scale(loss).backward()
    scaler.step(optimizer)
    scaler.update()

데이터 중심의 AI가 가져올 변화

컨버지바이오는 단순히 공개 데이터를 학습시킨 것이 아니라, 고처리량 스크리닝(High-throughput screening)과 엄격한 큐레이션을 통해 자체적인 대규모 데이터셋을 구축했습니다. 이는 AI 모델의 성능이 결국 데이터의 품질에 수렴한다는 Data-centric AI의 철학을 그대로 보여줍니다. 이미 종양학, 신경퇴행성 질환, 자가면역 질환 등 다양한 치료 영역에서 40개 이상의 프로그램을 완료하며 실질적인 성과를 내고 있다는 점이 고무적입니다.

결국 중요한 것은 ‘어떤 모델을 썼는가’가 아니라, ‘어떻게 실험 검증 루프를 닫았는가’입니다. AI가 제안한 항체 후보가 실제로 나노몰(nanomolar) 단위의 강력한 결합 친화도를 보이는지 실험적으로 확인하고, 그 결과를 다시 모델에 피드백하는 선순환 구조를 만든 것이 컨버지바이오의 핵심 경쟁력일 것입니다.

이번에 배운 점과 고민해 볼 것

이번 사례를 통해 AI 기술이 전문 영역에 침투할 때 가장 중요한 것은 ‘도구의 제공’이 아니라 ‘워크플로우의 통합’이라는 점을 배웠습니다. 개발자가 API를 제공하는 것에 그치지 않고, 도메인 전문가(생물학자)가 코딩 없이도 결과물을 얻을 수 있는 엔드-투-엔드 시스템을 구축하는 것이 진정한 제품화의 핵심입니다.

우리가 개발하는 서비스나 시스템에서도 사용자가 기술적 장벽을 느끼지 않고 결과에만 집중하게 만드는 ‘시스템적 접근’이 이루어지고 있을까요? 단순한 기능 구현을 넘어, 사용자의 전체 업무 흐름을 어떻게 자동화하고 최적화할 수 있을지 고민해 보게 됩니다.

댓글 남기기