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

본캠프_17주차(화)_TIL(최종 프로젝트)

Wat_zy 2026. 1. 6. 08:35

✅ 오늘 한 것

최종 프로젝트


✏️ 오늘 배운 점

단백질 임베딩 추출 최적화 및 서열 분포 분석

1. A100 GPU 환경에서의 모델 로드 최적화

  • 문제: 기본 로드 방식(float32)은 A100의 Tensor Core 가속을 활용하지 못해 연산 속도가 느리고 VRAM 효율이 떨어짐.
  • 해결: torch_dtype=torch.float16 설정을 추가하여 FP16 정밀도로 로드.
  • 효과: 연산 속도 약 3~5배 향상 및 메모리 사용량 50% 절감.

2. 에피토프 중심 기준 고정 길이(16자) 슬라이싱

  • 문제: 가변적인 에피토프 길이를 딥러닝 모델 입력에 맞게 통일해야 함.
  • 해결: 에피토프의 정중앙(Center) 인덱스를 계산하여 앞뒤로 8자씩 슬라이싱하는 로직 구현.
  • 특이사항: 윈도우가 항원(Antigen) 서열의 시작이나 끝을 벗어날 경우, 슬라이딩 윈도우 방식으로 부족한 길이를 채워 무조건 16자가 되도록 보정.

3. 대용량 임베딩 추출 루프 가속 (Extract Embeddings)

  • Batch Size 최적화: A100의 대용량 VRAM을 활용하기 위해 batch_size를 1에서 64~128로 상향 조정.
  • Mean Pooling: last_hidden_state에서 어텐션 마스크를 고려한 평균값 추출 로직 적용.
  • 정밀도 일치: 모델이 half() 모드일 때 입력 마스크 등 연산용 텐서도 float16으로 맞춰 연산 오류 방지.

4. 서열 길이 분포 분석 및 시각화 (EDA)

  • 분포 분석: 에피토프 서열(epitope_seq)의 최소/최대/평균 길이를 파악하여 데이터 건전성 확인.
  • 커스텀 히스토그램:
    • 1~32자 구간은 8자 단위로 세밀하게 분석.
    • 33자 이상의 긴 서열은 광범위하게 그룹화하여 시각적 가독성 확보.

✏️ 오늘의 질문

1. Label 불균형의 처리 방법은 무엇이 있나요?

모델 자체의 class weight를 조절하는 파라미터 확인, 데이터 증강 방법 도입


📌추가로 해야 할 점

최종 프로젝트