F16~F17이 남긴 숙제 — 길이의 벽
F16의 DNABERT와 F17의 Nucleotide Transformer는 모두 트랜스포머 기반 self-attention을 씁니다. 그런데 self-attention은 서열 길이 에 대해 의 계산·메모리 비용이 든다는 근본적 한계가 있습니다. 사람 게놈의 인핸서-프로모터 상호작용은 수만~수십만 염기쌍 떨어진 영역 사이에서 일어나는 경우가 흔한데, 기존 트랜스포머로는 이 거리를 감당하기 버겁습니다. F18에서는 이 길이의 벽을 서로 다른 방식으로 넘은 두 모델, HyenaDNA와 Enformer를 함께 살펴봅니다.
원리 — 두 가지 다른 답: 긴 컨볼루션과 CNN-Transformer 하이브리드
왜 어텐션이 길이에서 무너지는가
self-attention의 계산 비용을 손으로 확인해봅시다. 토큰 개짜리 서열에서 모든 토큰 쌍의 attention score를 계산하면
이면 번의 쌍별 연산이지만, (10만bp)이 되면
로 연산량이 폭증합니다. F16·F17이 다룬 모델들이 보통 수천bp 수준의 컨텍스트에 머무는 이유가 바로 이 이차 병목입니다.
HyenaDNA — 긴 컨볼루션으로 서브 이차 복잡도를 노리기
HyenaDNA(2023, Stanford)는 self-attention 대신 **암묵적으로 매개변수화된 긴 컨볼루션(implicit long convolution)**을 서브 이차(sub-quadratic) 시간복잡도로 계산하는 구조를 씁니다. Hyena는 SSM 자체가 아니라 긴 컨볼루션 연산자입니다. 둘 다 attention의 이차 비용을 줄이려는 계열이지만, 구조 이름을 서로 바꿔 부르면 안 됩니다.
이 구조 덕분에 HyenaDNA는 단일 뉴클레오타이드 해상도에서 최대 100만 토큰 문맥으로 사전학습되었다고 보고되었습니다. 실제 처리 시간과 메모리는 구현·하드웨어·모델 크기에 따라 달라지므로, 이 길이를 "무료 GPU에서 바로 실행 가능한 길이"로 해석해서는 안 됩니다.
Enformer — CNN 타워로 압축한 뒤 Transformer로 장거리 관계 보기
Enformer(2021, DeepMind)는 HyenaDNA보다 먼저 등장했으며 접근이 다릅니다. 이 모델의 핵심은 팽창 컨볼루션이 아니라, 입력 서열을 convolutional stem과 convolutional tower로 더 짧은 표현으로 압축한 뒤 그 표현에 Transformer 블록을 적용하는 하이브리드 구조입니다.
Enformer는 196,608bp 입력을 받아 사람·마우스의 기능성 유전체 트랙을 예측합니다. 위 계산처럼 base-pair 해상도의 입력을 더 거친 위치 표현으로 바꾼 뒤 attention을 적용하므로, 모든 염기쌍 쌍에 직접 attention을 계산하는 비용을 피하면서 장거리 문맥을 통합할 수 있습니다.
손 계산 예제: 압축 뒤 attention에 남는 위치 수
196,608bp 입력을 128bp 단위 표현으로 줄인다고 보면 Transformer가 처리할 위치 수는
입니다. 만약 원래 염기쌍 모두에 attention을 걸었다면 쌍별 비교는
번이지만, 압축 표현 1,536개에 대한 attention은
쌍입니다. 실제 Enformer의 내부 연산은 이 단순 계산보다 복잡하지만, "먼저 압축하고 그 뒤 장거리 관계를 본다"는 설계 이득은 이 비교로 이해할 수 있습니다.
실습: Enformer 사전학습 임베딩으로 조절 영역 신호 확인하기
# Colab T4에서 전체 20만bp 입력을 그대로 돌리기는 메모리상 버거울 수 있습니다.# 여기서는 짧은 구간으로 개념만 확인합니다. 실전 규모는 공식 저장소의 권장 GPU 사양을 참고하세요.
import torch
def make_dna_onehot(seq: str) -> torch.Tensor: """DNA 서열을 A/C/G/T 4채널 원-핫 인코딩으로 변환합니다 (Enformer류 입력 형식).""" mapping = {"A": 0, "C": 1, "G": 2, "T": 3} onehot = torch.zeros(len(seq), 4) for i, base in enumerate(seq.upper()): if base in mapping: onehot[i, mapping[base]] = 1.0 return onehot
sample_seq = "ACGTACGTGGCCTTAAACGTACGTGGCC"x = make_dna_onehot(sample_seq)print(f"입력 텐서 형태: {x.shape}") # (서열 길이, 4)
# 실제 Enformer 추론은 공식 저장소(TensorFlow Hub 또는 HuggingFace 포팅)의# 전처리·모델 로드 절차를 그대로 따라야 합니다. 여기서는 입력 형식만 재현했습니다.CS 매핑
- O(n²) 병목과 압축: self-attention의 이차 복잡도를 긴 컨볼루션 또는 먼저 압축한 잠재 표현으로 우회하는 발상은, 알고리즘 설계에서 브루트포스 를 더 작은 문제로 바꾸는 전형적인 최적화 패턴과 같습니다.
- 표현 해상도와 수용 영역의 교환: Enformer의 convolutional tower는 위치 해상도를 줄이는 대가로 넓은 입력 문맥을 Transformer에 전달합니다. 컴퓨터 비전에서 feature pyramid를 쓰는 것과 유사한 교환입니다.
- 하이브리드 아키텍처: Enformer가 컨볼루션과 attention을 섞은 것처럼, 순수한 한 가지 연산에 의존하지 않고 서로 다른 연산의 장점을 조합하는 설계는 소프트웨어 아키텍처의 하이브리드 시스템 설계와 같은 논리입니다.
자주 만나는 결함
- 긴 컨텍스트 = 항상 더 좋은 예측으로 오해: 컨텍스트 윈도우를 넓힌다고 해서 관련 없는 정보까지 유용해지는 것은 아닙니다. 실제 조절 신호가 그 거리에 있는지는 생물학적 검증이 필요합니다.
- HyenaDNA와 Enformer를 같은 과제용으로 혼동: HyenaDNA는 범용 서열 언어모델링에, Enformer는 특정 조직에서의 유전자 발현량 예측이라는 구체적 회귀 과제에 특화되어 있습니다. 목적에 맞는 모델을 선택해야 합니다.
더 깊게 파고 싶다면
본문은 BPD 연구진이 직접 재구성한 서술입니다. 원 논문과 공식 자료로 심화해봅시다.
- HyenaDNA 원 논문: Nguyen et al. (2023), HyenaDNA: Long-Range Genomic Sequence Modeling at Single Nucleotide Resolution, NeurIPS.
- Enformer 원 논문: Avsec et al. (2021), Effective gene expression prediction from sequence by integrating long-range interactions, Nature Methods 18.
- Hyena 연산자 배경 논문: Poli et al. (2023), Hyena Hierarchy: Towards Larger Convolutional Language Models, ICML.
길이 문제를 다룬 다음, 다음 편(F19)에서는 이 롱 컨텍스트 발상을 극단까지 밀어붙인 Evo 1과 Evo 2가 100만 염기쌍 문맥을 어떻게 다루는지 살펴봅니다.