- 알파폴드3는 무엇인가?
- 딥마인드에서 개발한 단백질 구조 예측 모델 (딥마인드 사진)
- 2024 노벨 화학상 (노벨화학상 사진)
- 기존의 도메인 지식을 뛰어넘은 딥러닝 (베이커 교수팀 이긴 자료, CASP 대회 1등 자료 )
- 단백질 구조를 예측하는 이유는?
- 단백질 구성요소가 아닌 3차원 구조에 따라 기능이 결정됨. 같은 시퀀스여도 모양이 다르면 다른 기능을 한다. (열쇠, 기질 특이성 자료)
- 단백질 활용: 신약 개발. (신약 개발이 주기가 감소한 자료)
- 알파폴드 1,2,3의 변경점
- 1 -> 2:
- 표현 학습 모델 변경: CNN 기반 ResNet -> attention 기반 Evoformer
- End-to-end 학습
- 2 -> 3:
- 입력 종류 다양해짐: 하나의 시퀀스로 단일 단백질 구조 예측-> 여러 종류의 입력을 통해 단백질 복합체 구조 예측
- 3차원 구조 예측 모델 변경: ResNet -> Diffusion
- 1 -> 2:
- 알파폴드 3가 단백질 구조를 예측하는 방법:
- step1: Input Preparation
- 입출력: 사용자 입력 시퀀스 -> 모델에 입력할 수 있는 4개의 텐서
- 토큰의 종류: (단백질: 아미노산, 핵산: 뉴클레오타이드, 리간드와 기타 분자: 원자)
- 각 데이터 설명:
- token-level pair representation(2D): 토큰 사이의 거리 관계를 나타냄 (물리적 특성)
- token-level single representation(1D): 개별 토큰의 아미노산 종류 (화학적 특성)
- MSA: 공진화 정보를 담은 다른 생물의 염기 서열
- Template: MSA와 대응하는 단백질 구조
- 모델: Attention 기반
- 아이디어: RAG
- step2: Representation Learning (핵심)
- 전체 네트워크의 핵심. 가장 많은 연산이 수행됨
- 입출력: step1의 4개의 텐서 -> 학습한 2개의 텐서 (single ,pair)
- 모델: Attention 기반 pairformer (그림 자료 추가) (핵심 중 핵심 아이디어임)
- 왜 삼각형 거리 기반인가?
- Triangle Updates
- Triangle Attention
- Single Attention with Pair Bias
- 아이디어: 삼각형 연산
- step3:
- 입출력: step2에서 학습한 2개의 텐서 -> 입력 원자들의 3차원 좌표
- 모델: Diffusion 기반
- step1: Input Preparation
- 주제를 선정한 이유: 교육용!
- 다른 도메인 학생이 알파폴드3의 내부 구조를 더 낮은 추상화 수준에서 이해
- 예시) 논문은 큰 레고, 좀 더 공부하면 작은 레고로 만들어보고 싶음, 그렇다고 실제 건축을 하기엔 너무 규모가 큼(아기용 큰 레고, 작은 레고, 건축학과 프로젝트, 실제 건축 사진)
- 조건
- 기존의 AF3의 아키텍쳐를 최대한 유지
- 학습과 추론 속도 증가
- 코드 복잡성 감소: 코드 길이, 참조 깊이, 모듈 개수
- 성능은 차후 문제
- How? (논문/그림 -> 코드 )
- 모델 크기 줄이기
- 파라미터 개수 감소: 블럭 수, 어텐션 헤드 수, 반복 수
- 최적화 관련 코드 제거: 정규화, 드롭아웃, residual 연결
- 예외 처리 관련 코드 제거
- 특수한 코드 제거:
- 기본 손실 함수 하나만
- 기본 평가 함수 하나만
- 배포와 유지보수를 위한 설정, 유틸리티 관련 코드 제거
- 입력 변환을 위한 코드 제거
- 코드 통합: 깊게 참조된 모듈을 하나로 통합
- 모델 크기 줄이기
- 결과:
- 코드 복잡도: 코드 라인 수
- 모델 크기: 파라미터 수
- 실행 시간: 학습과 추론 시간
- 성능 변화
- 가능성: Fold It 게임으로 단백질 구조 예측 ( 네이쳐 논문)
- 시도해본 것: 단순화 vs 경량화
- 경량화를 함께 시도: 주제를 벗어남.
- 윈도우 운영체제에서 학습과 추론이 가능하도록 변경: 기반 코드를 변경해야 함.
- 데이터 파이프라인 핵심 코드 변경: 더 많은 도메인 지식이 필요함.
- 질문