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

본캠프_18주차(월)_TIL(최종 프로젝트)

Wat_zy 2026. 1. 12. 09:01

✅ 오늘 한 것

최종 프로젝트


✏️ 오늘 배운 점

[TIL] 머신러닝 에피토프 예측: FASTA 변환부터 임베딩 전략까지

🎯 오늘의 목표

제공된 단백질 데이터셋(Antigen, Epitope)을 활용하여 머신러닝 모델 학습을 위한 전처리 파이프라인(FASTA 변환, Slicing)을 구축하고, ProtT5 임베딩을 위한 준비를 마친다.

💡 핵심 배움 (Key Learnings)

1. Dual-Input 전략 (Epitope vs Context)

모델의 성능을 극대화하기 위해 하나의 데이터에서 두 가지 관점의 입력을 생성해야 함.

  • Input A (Epitope): epitopes.fasta
    • 역할: Zoom-In (현미경). 에피토프 서열 자체의 화학적 성질에 집중.
  • Input B (Context): contexts.fasta
    • 역할: Zoom-Out (망원경). 에피토프를 포함한 주변 16aa 서열(환경)을 분석.
  • 결론: 두 개의 FASTA를 각각 임베딩하여 합친(Concatenate) 벡터를 모델에 주입해야 함.

2. FASTA 파일의 역할과 Slicing 로직

  • FASTA: 머신러닝 모델(ProtT5)이 데이터를 읽을 수 있는 표준 포맷 (>ID \n Sequence).
  • Slicing (Context 추출):
    • 전체 Antigen을 다 넣는 것이 아니라 Epitope 중심(Center) 기준 ±8aa (총 16자)를 잘라서 사용함.
    • 경계값 처리 (Boundary Shift): 항원의 맨 앞이나 맨 뒤에 위치하여 16자가 안 나오는 경우, 데이터를 버리지 않고 윈도우를 살짝 밀어서(Shift) 16자를 채우는 방식으로 데이터 손실을 0%로 줄임.

3. 미지의 데이터(Inference) 처리 프로세스

정답(Epitope)이 없는 새로운 항원 데이터가 들어올 때의 흐름.

  1. BLMPred 실행: 전체 항원에서 의심 가는 좌표들을 1차 스캔.
  2. 후보군 생성 (Row Expansion): 예측된 좌표 개수만큼 행을 늘림(1개 항원 -> N개 후보).
  3. 가상 Slicing: 예측 좌표를 기준으로 학습 때와 똑같이 Slicing 하여 FASTA 생성.
  4. 판별: 모델이 각 후보에 점수를 매겨 최종 Epitope 선별.

4. A100 GPU 최적화 임베딩

대용량 데이터(16만 건)를 빠르게 처리하기 위한 테크닉.

  • FP16 (Half Precision): model.half()를 사용하여 메모리는 절반, 속도는 2배 향상.
  • Batch Size: A100의 VRAM을 활용해 배치 사이즈를 128로 증량.
  • Padding: "longest" 옵션으로 배치 내 불필요한 연산 최소화.

📌추가로 해야 할 점

최종 프로젝트