품질관리(QAQC) 데이터 부트캠프(본캠프)

본캠프_16주차(금)_TIL(최종 프로젝트)

Wat_zy 2026. 1. 2. 08:35

✅ 오늘 한 것

최종 프로젝트


✏️ 오늘 배운 점

ProtT5를 활용한 항원-에피토프 결합 예측 데이터 전처리 및 모델링

1. 거대 단백질 서열 처리 전략 (Antigen Slicing)

항원(Antigen) 서열은 길이가 매우 길어(최대 4,967aa) 모델이 한 번에 처리하기 어렵습니다. 이를 해결하기 위해 에피토프 중심 슬라이싱(Epitope-Centered Slicing) 전략을 사용했습니다.

  • 고정 간격 자르기 방식의 한계: 에피토프가 잘리거나 정보가 유실될 위험이 큼.
  • 에피토프 중심 슬라이싱: 에피토프의 start, end 좌표를 기준으로 앞뒤 맥락을 포함하여 1,024자만 추출.
  • 장점: 모델의 메모리 부하를 줄이면서 결합에 핵심적인 주변 환경 정보를 온전히 보존함.

2. ProtT5-XL-U50 임베딩 구현

단백질의 생물학적 특징을 수치화하기 위해 고성능 언어 모델인 ProtT5-XL-uniref50을 활용했습니다.

  • 전처리 규칙: 각 아미노산 사이에 반드시 공백(" ")을 추가하여 토큰화 진행.
  • 차원수: 각 서열당 1,024차원의 고밀도 벡터 생성.
  • 풀링(Pooling): Last Hidden State에 Attention Mask를 적용한 Mean Pooling을 사용하여 서열 전체의 특징을 대표함.

3. 대규모 데이터 처리 및 안정성 확보 (Checkpointing)

17만 건이 넘는 대용량 데이터를 처리할 때 발생하는 런타임 종료 문제를 해결하기 위해 중간 저장 및 이어하기 기능을 구현했습니다.

  • Save Interval: 일정 주기(예: 1,000행 또는 10,000행)마다 .npy 파일로 중간 결과 저장.
  • Resume Logic: 기존에 생성된 파일이 있으면 행 수를 파악하여 start_idx를 자동으로 설정, 멈춘 지점부터 다시 시작.
  • Batch Size: 메모리 안전성을 위해 Antigen은 batch_size=1, Epitope는 batch_size=16~32 권장.

4. 데이터 누수 방지를 위한 머신러닝 파이프라인

엄밀한 모델 평가를 위해 원-핫 인코딩(OHE)과 데이터 분할의 순서를 정교화했습니다.

  • 순서: Data Merge → Train-Test Split → One-Hot Encoding (Train 기준).
  • Reindexing: 학습 세트에서 생성된 OHE 컬럼 구조를 검증 세트에 동일하게 적용하여 컬럼 불일치 및 데이터 누수 방지.

주간 회고

  • 분류 모델링을 처음 접하며 assay, method 등 다양한 범주형 변수를 원-핫 인코딩(One-Hot Encoding)하는 과정에서 데이터 누수(Data Leakage)를 방지하기 위해 분할(Split) 후 인코딩하는 절차의 중요성을 배웠다.
  • ProtT5-XL-U50와 같은 거대 언어 모델(PLM)을 활용해 아미노산 서열을 1024차원의 벡터로 임베딩하는 과정을 경험했습니다. 특히, 수만 건의 데이터를 처리할 때 발생하는 GPU 메모리 한계와 세션 끊김 문제를 해결하기 위해 중간 저장(Checkpointing) 및 이어하기(Resume) 로직을 구현하며 대규모 데이터 핸들링 역량을 키웠습니다.
  • 항원의 길이가 모델의 허용 범위를 넘을 때, 단순 절단이 아닌 에피토프 위치 중심의 슬라이싱(Epitope-Centered Slicing)을 통해 생물학적 유의성을 보존하는 전처리 전략을 학습했습니다.

📌추가로 해야 할 점

최종 프로젝트