ZUNA1.1 소개
뇌를 들여다보는 창(window) 중에서 뇌전도(EEG)만큼 접근하기 쉬운 것도 드뭅니다. 비침습적이고 비용이 저렴한 데다, 최근에는 손목시계처럼 착용하는 소비자용 헤드셋으로도 뇌 신호를 잴 수 있게 되었기 때문입니다. 그런데 막상 현장에서 기록되는 EEG는 대부분 지저분합니다. 녹음 길이는 제각각이고, 세션 도중 특정 전극이 갑자기 잡음투성이가 되거나 아예 떨어져 나가기도 하며, 전극 배치(montage)는 4채널짜리 소비자용 헤드밴드부터 256채널 연구용 캡까지 천차만별입니다. 아무리 성능이 좋은 모델이라도 훈련 때 본 깨끗하고 정형화된 데이터 조각만 처리할 수 있다면 실전에서는 무용지물입니다.
이 글에서 소개할 ZUNA1.1 은 Zyphra가 공개한 오픈 EEG 파운데이션 모델(foundation model)로, 잡음이 섞이거나 누락된 EEG 채널을 복원(reconstruction)하고, 신호의 잡음을 제거(denoising)하며, 성긴 전극 배치를 조밀한 배치로 업샘플링(upsampling)하는 것을 목표로 합니다. 앞서 공개된 ZUNA1 이 위치 인식 확산 오토인코더(position-aware diffusion autoencoder)라는 아키텍처로 이 문제를 처음 풀어냈다면, ZUNA1.1은 같은 아키텍처를 유지한 채 학습 방식을 대폭 손질하여 "실제 세계의 지저분한 데이터"까지 다룰 수 있도록 확장한 후속 모델입니다. 아키텍처의 자세한 내용은 ZUNA1 기술 논문에 정리되어 있으며, 모델 가중치는 Apache 2.0 라이선스로 공개되어 있어 누구나 자유롭게 내려받아 사용할 수 있습니다.
배경: EEG와 채널 복원 문제
EEG는 두피나 대뇌 피질 표면에서 전기 신호를 기록하는 기술입니다. 수십억 개 뉴런의 발화율을 평균한 값이라 해상도가 거칠지만, 그럼에도 뇌 기능에 관한 유용한 정보를 상당량 담고 있습니다. 임상에서는 뇌전증(epilepsy)이나 다발성 경화증(multiple sclerosis) 진단, 수면 단계 분류 등에 널리 쓰이고, 연구 영역에서는 집중도, 감정, 명상 상태를 해독하거나 이미지, 텍스트, 운동 의도 같은 구체적 정보를 뇌 신호에서 추출하는 시도로 이어지고 있습니다. 이런 흐름의 궁극적인 목표 중 하나가 바로 비침습적 뇌-컴퓨터 인터페이스(BCI, Brain-Computer Interface)입니다. 만약 두피 EEG 신호에 충분한 정보가 담겨 있고 이를 해독할 수 있다면, 음성이나 텍스트, GUI보다 높은 대역폭으로 컴퓨터와 상호작용하는 웨어러블 기기를 만들 수 있기 때문입니다.
문제는 EEG 데이터가 이미지, 영상, 텍스트 같은 다른 모달리티에 비해 공개된 양이 훨씬 적다는 점입니다. 데이터가 부족하면 모델은 취약해지고, 학습에 쓰이지 않은 데이터셋이나 녹음 조건에서 일반화에 실패합니다. 게다가 EEG 데이터셋마다 수집한 채널의 개수와 전극의 정확한 위치가 제각각인데, 대부분의 기존 모델은 고정된 채널 구성(고정 몽타주)을 전제로 학습하기 때문에 다른 데이터셋에는 그대로 적용하기 어렵습니다. 여기에 더해, 전극이 두피 위에 놓인 공간적 배치가 신호 간 상관관계를 좌우하는데도 이 정보가 데이터 구조 자체에는 드러나 있지 않다는 점이 EEG만의 고유한 난점입니다. 이미지나 영상은 픽셀의 격자 위치가 곧 공간 구조를 담지만, EEG는 그렇지 않습니다.
기존 접근법의 한계
연구자와 임상의가 실제로 채널을 복원할 때 지금까지 의존해 온 방법들은 저마다 한계가 뚜렷합니다.
첫째, 구면 스플라인 보간(spherical-spline interpolation) 은 MNE 같은 표준 EEG 처리 패키지에 내장된 가장 보편적인 방법입니다. 두피 EEG는 용적 전도(volume conduction)와 두개골의 전도 특성 때문에 공간적으로 매끄럽게 변하므로, 가까운 전극끼리 신호가 상당 부분 겹칩니다. 덕분에 스플라인 보간은 의외로 강력한 기준선이 됩니다. 하지만 이 방법은 "공간적으로 매끄럽다"는 가정 하나에만 기대기 때문에, 채널이 많이 빠지거나 애초에 전극 밀도가 낮으면 관측된 전극 사이의 공간적 간격이 벌어지면서 성능이 급격히 무너집니다.
둘째, 고정 채널 레이아웃을 가정하는 딥러닝 EEG 초해상도(super-resolution) 모델 들이 있습니다. 기존 연구들은 대체로 채널의 정체성을 데이터 배열에서의 위치로 결정하는 CNN 기반 U-Net을 쓰거나, 고정된 마스킹 전략을 쓰는 트랜스포머 기반 마스크드 오토인코더(Masked Autoencoder)를 사용했습니다. 이들은 심지어 업샘플링 비율까지 고정하는 경우가 많아서(예: 항상 24채널에서 48채널로, 매번 같은 채널만 업샘플링), 다양한 실전 상황에 유연하게 대응하지 못합니다.
셋째, 최근 등장한 여러 EEG 파운데이션 모델 들도 대부분 고정된 채널 입력과 위치를 전제로 학습되어 데이터셋 간 일반화 성능이 제한적입니다. 게다가 이 분야 모델들은 가중치나 완전한 추론 코드를 공개하지 않는 경우가 많아, 공정한 정량 비교와 결과 재현이 사실상 불가능하다는 문제도 있습니다.
ZUNA의 발상 전환은 여기서 출발합니다. 채널을 데이터 배열의 인덱스가 아니라 전극의 3D 두피 좌표 로 표현하자는 것입니다. 위치가 채널의 정체성을 결정하도록 만들면, 모델은 임의의 개수와 배치를 가진 전극을 받아들일 수 있고, 심지어 한 번도 기록된 적 없는 위치의 신호까지 "상상"해서 만들어낼 수 있습니다. 이것이 ZUNA가 채널에 구애받지 않는(channel-agnostic) 모델이 되는 핵심입니다.
위 그림은 몇 개 채널을 일부러 제거한 뒤 복원한 결과입니다. 초록색이 모델에 보여주지 않은 실제 정답 신호, 자홍색이 MNE 구면 스플라인 보간, 빨간색이 ZUNA의 예측입니다. ZUNA의 빨간색 곡선이 초록색 정답을 훨씬 안정적으로 따라가는 반면, 자홍색 스플라인 보간은 진폭이 과장되며 크게 벗어나는 것을 볼 수 있습니다.
ZUNA 아키텍처
ZUNA는 트랜스포머 기반의 인코더-디코더 확산 오토인코더(encoder-decoder diffusion autoencoder)입니다. 이름이 다소 길지만, 세 가지 요소, 즉 확산 모델, 오토인코더, 그리고 EEG를 토큰으로 바꾸는 방식으로 나눠서 이해하면 어렵지 않습니다.
왜 확산(diffusion) 모델인가
확산 모델(diffusion model)은 이미지나 오디오처럼 연속적인 실수값 신호를 생성하는 데 널리 쓰이는 생성 모델입니다. 원리는 깨끗한 데이터에 조금씩 잡음을 더해 완전한 잡음으로 만드는 "노이징(noising) 과정"을 정의한 뒤, 모델이 이 과정을 거꾸로 되돌리도록 학습시키는 것입니다. 잡음에서 데이터 방향으로 한 걸음씩 나아가는 셈입니다.
확산 모델의 강점은 여러 단계에 걸쳐 반복적으로 신호를 정제(denoising)한다는 데 있습니다. 자기회귀(autoregressive) 모델이 한 번에 답을 내놓는 것과 달리, 확산 모델은 여러 스텝을 거치며 정답에 수렴할 기회를 얻습니다. 마치 화가가 밑그림을 거칠게 잡은 뒤 여러 번 덧칠하며 세부를 다듬어가는 것과 비슷합니다. EEG 신호가 연속적인 실수값이고 반복적 정제가 잘 어울린다는 점에서, 연구팀은 확산 방식을 택했습니다. 실제 구현에서는 안정성과 샘플링 효율을 높이기 위해 표준 확산 대신 정류 흐름(rectified flow) 파라미터화를 사용합니다.
여기에 오토인코더가 결합됩니다. 확산 디코더는 잡음을 데이터로 되돌리는 역할을 하고, 여기에 더해진 인코더는 전체 신호의 정보를 압축한 잠재 벡터(latent)를 만들어 디코더의 복원을 돕습니다. ZUNA에서는 이 인코더 잠재 정보가 적응형 RMS 정규화(adaptive-RMS norm)를 통해 디코더에 주입됩니다.
토큰화와 4D 회전 위치 인코딩
ZUNA 아키텍처의 진짜 핵심은 EEG 신호를 어떻게 토큰(token)으로 바꾸고, 각 토큰에 위치 정보를 어떻게 심어 넣느냐에 있습니다.
먼저 토큰화입니다. ZUNA는 각 EEG 채널을 0.125 초 길이(256Hz에서 32 개 샘플)의 짧은 구간으로 자르고, 각 구간을 토큰 인코더 MLP를 거쳐 하나의 연속값 토큰으로 만듭니다. 그런 다음 이 토큰들을 채널 \times 시간의 래스터 스캔(raster-scan) 순서로 직렬화합니다. 즉 "1번 시간 구간의 모든 채널, 그다음 2번 시간 구간의 모든 채널" 순으로 나열합니다. C 개 채널을 가진 5초짜리 샘플은 40C 개의 토큰으로 표현됩니다.
이렇게 하면 2차원 구조(채널, 시간)를 표준 1차원 트랜스포머가 처리할 수 있는 시퀀스로 바꿀 수 있습니다. 하지만 단순히 나열만 해서는 각 토큰이 두피의 어느 위치에서 온 신호인지 알 수 없습니다. 여기서 ZUNA의 두 번째 혁신인 4D 회전 위치 인코딩(4D RoPE, 4-Dimensional Rotary Positional Encoding) 이 등장합니다.
각 토큰에는 4차원 좌표가 부여됩니다. 전극의 3D 두피 좌표 (x, y, z) 와 해당 토큰의 대략적 시간 인덱스 t 입니다. 좌표는 각 축마다 50개의 구간(bin)으로 이산화(discretize)되는데, 학습 데이터의 모든 전극이 이산화 후에도 고유한 구간을 갖기에 충분한 값으로 50이 선택되었습니다. 그리고 이 4D 좌표를 다차원 RoPE 모듈에 통과시켜 위치 정보를 주입합니다.
이 설계의 의미는 매우 큽니다. 채널의 정체성이 시퀀스 내 순서가 아니라 물리적 위치로 결정되므로, 모델은 채널을 특정한 순서로 넣을 필요가 없고 채널 개수가 달라져도 대응할 수 있습니다. 이질적인 데이터셋들로 학습하는 과정에서 모델은 배열 인덱스가 아니라 위치 임베딩에만 의존하도록 배우게 되고, 그 결과 임의의 채널 배치에 일반화할 뿐 아니라 학습 때 기록되지 않았던 완전히 새로운 전극 위치의 신호까지 만들어낼 수 있습니다. 이것이 바로 위치 기반 임의 업샘플링을 가능하게 하는 원리입니다.
인코더와 디코더는 각각 표준 셀프 어텐션(self-attention)과 MLP로 이뤄진 16개 층으로 구성됩니다. 어텐션은 양방향이며, 생성 시에는 전체 채널 집합을 한꺼번에 확산시킵니다. 인코더 잠재 공간 안에는 학습 가능한 레지스터 토큰(register token)을 일정 간격으로 끼워 넣었고, 잠재 표현은 최대 평균 불일치(MMD, Maximum Mean Discrepancy) 손실로 정규화됩니다. ZUNA1.1은 이 구조에 정규화 층을 추가로 넣어 학습 안정성을 높였지만, 전체 파라미터 수는 이전과 동일한 380M 개를 유지합니다.
무거운 채널 드롭아웃으로 학습하기
모델이 잡음 낀 채널을 메우거나 관측되지 않은 채널을 업샘플링하는 능력을 갖추려면, 학습 단계에서 일부러 채널을 지우고 복원시키는 훈련이 필요합니다. ZUNA1은 이를 위해 무거운 채널 드롭아웃(channel dropout) 기법을 사용했습니다. 여기서 드롭아웃은 과적합 방지용 정규화가 아니라, 채널을 마스킹(masking)하여 복원 과제를 만드는 방식을 뜻합니다.
구체적으로 ZUNA1은 90\% 의 확률로 드롭아웃을 적용하고, 드롭아웃이 선택되면 80\% 확률로 1 개에서 C/2 개 사이의 채널을, 20\% 확률로 C/2 개에서 C-1 개 사이의 채널을 무작위로 제거합니다. 제거된 채널은 인코더 입력에서 0으로 채워지지만, 중요한 것은 채널을 지우더라도 그 채널의 \{x, y, z, t\} 위치 정보는 지우지 않고 4D-RoPE를 통해 인코더와 디코더에 그대로 알려준다는 점입니다. 모델은 "이 위치의 신호는 비어 있으니, 주변 채널로부터 채워 넣어라"라는 과제를 받는 셈입니다.
학습은 정류 흐름 손실과 적응형 손실 가중치를 디코더 출력에 적용하고, 인코더 잠재는 앞서 언급한 MMD 손실로 정규화하는 방식으로 이뤄집니다. 모델은 150000 스텝 동안 학습되었으며, 학습률은 10^{-4} 에서 10^{-6} 까지 코사인 스케줄로 감소시켰습니다. 흥미롭게도 연구팀은 학습 안정성에 데이터 스케일과 배치 크기가 결정적임을 발견하여, 데이터의 표준편차를 0.1, 평균을 0으로 맞추고 예상보다 큰 배치로 학습해야 했다고 보고합니다. 채널 수가 샘플마다 크게 다르기 때문에 단순히 최대 길이로 패딩하면 매우 비효율적인데, 이를 해결하기 위해 flex attention으로 각 샘플에 맞는 특수 어텐션 마스크를 동적으로 계산하는 패킹(packing) 기법을 구현했습니다. 최종 모델 학습에는 H100 3개 노드에서 약 일주일이 소요되었습니다.
ZUNA1.1에서 새로워진 점
지금까지 설명한 아키텍처는 ZUNA1과 ZUNA1.1이 공유합니다. ZUNA1을 실제로 써 본 연구자, 임상의, BCI 개발자들의 피드백은 한 가지로 모였습니다. 복원 정확도도 중요하지만, 유연성과 마찰 없는 사용성 또한 그에 못지않게 중요하다는 것이었습니다. ZUNA1.1은 바로 이 지점을 세 가지 방향에서 개선했습니다.
1. 가변 길이 입력 (0.5초에서 30초까지)
ZUNA1은 정확히 5초짜리 고정 구간만 처리할 수 있었습니다. 실제 EEG 녹음은 짧은 시행(trial) 조각부터 수십 초에 이르는 연속 구간까지 길이가 제각각인데, 이런 데이터를 매번 5초로 잘라 맞추는 것은 번거롭습니다.
ZUNA1.1은 학습 예제마다 구간 길이를 다르게 샘플링합니다. 0.125 초 토큰 격자에 맞춰, 매우 짧은 구간(0.5 ~ 1.5 초)부터 긴 구간(10 ~ 30 초)까지 네 개의 구간(bin)에 걸쳐 길이를 뽑되, 가장 흔하게 쓰이는 1.5 ~ 10 초 범위를 더 많이 샘플링합니다. 샘플마다 토큰 개수가 크게 달라지므로, 여러 샘플을 고정 예산까지 하나의 배치에 채워 넣고(packing), 샘플 인식 마스크를 적용한 flex attention을 사용해 한 샘플의 토큰이 다른 샘플의 토큰에 주의를 기울이지 못하도록 막습니다. 이 덕분에 ZUNA1.1은 0.5 초짜리 짧은 조각이든 30 초짜리 연속 구간이든, 재학습이나 재설정 없이 그대로 처리할 수 있습니다.
이 방식에는 뜻밖의 이점도 있습니다. 매 학습마다 서로 다른 무작위 마스크가 적용되고 국소적으로 재정규화되므로, 모델은 동일한 녹음을 여러 다른 수치적 틀 아래에서 보게 됩니다. 사실상 공짜 데이터 증강(data augmentation)인 셈입니다. 이 효과와 다양한 드롭아웃 방식이 주는 증강 효과가 합쳐져, 과적합 없이 코퍼스를 훨씬 더 많은 에포크(epoch) 동안 학습할 수 있게 되었습니다.
2. 더 풍부한 복원 태스크 혼합
ZUNA1은 오직 한 가지 드롭아웃 패턴, 즉 전체 채널을 통째로 무작위 제거하는 방식으로만 학습되었습니다. 하지만 실제 EEG가 손상되는 양상은 훨씬 다양합니다. 동작 아티팩트(motion artifact)는 가까운 전극 무리를 한꺼번에 오염시키고, 전극은 시간적으로 상관된 형태로 뭉텅뭉텅 떨어져 나가며, 전송 오류는 채널을 완전히 죽이지는 않으면서 녹음 전체의 한 구간을 날려버리기도 합니다.
ZUNA1.1은 EEG가 손상되거나 누락되는 서로 다른 방식을 포착하는 네 가지 드롭아웃 방식 의 혼합으로 학습됩니다.
- 전체 채널(Whole-channel): 채널 전체를 제거합니다. 성긴 몽타주나 죽은 전극을 반영합니다.
- 전체 시간(Full-time): 모든 채널에서 짧은 시간 구간을 한꺼번에 제거합니다. 신호 전체가 순간적으로 끊기거나 머리 움직임이 잠깐 모든 것을 오염시키는 상황을 흉내 냅니다.
- 채널-시간(Channel-time): 같은 시간 구간을 일부 채널에서만 제거합니다. 공간과 시간 양쪽으로 뭉친 결손을 만들어냅니다(예: 인접 전극에 걸친 동작 아티팩트).
- 무작위 균등(Random-uniform): 개별 지점에 무작위로 결손값을 흩뿌립니다. 근육 경련이나 순간적 채널 오류 같은 일시적이고 국소적인 잡음을 반영합니다.
위 그림에서 주황색으로 표시된 영역이 각 방식에서 제거되는 부분입니다. ZUNA1이 왼쪽 위의 "전체 채널" 방식 하나만 사용했던 것에 비해, ZUNA1.1은 시간과 채널 마스킹을 다양하게 조합합니다. 이렇게 여러 드롭아웃 방식을 섞어 학습함으로써, ZUNA1.1은 거의 임의의 복원 상황에 대응할 수 있게 됩니다.
3. 품질 인식 전처리와 확장된 코퍼스
기존 ZUNA1의 데이터 파이프라인은 채널 품질을 녹음 전체 단위로 판단했습니다. 어떤 채널이 긴 구간 중 한 부분이라도 잡음이 심하면 녹음 전체에서 0으로 처리했고, 불량 채널이 너무 많은 에포크는 통째로 버렸습니다. 이는 낭비였습니다. 세션의 90\% 동안 깨끗했던 채널도 부분적으로는 여전히 쓸 만한 신호를 담고 있기 때문입니다.
ZUNA1.1은 대신 채널별, 초 단위 품질 점수(per-channel, per-second quality score) 를 계산하여, 데이터를 불러오는 시점에 학습에 쓸 데이터를 임계값으로 걸러냅니다. 덕분에 부분적으로 잡음이 낀 채널에서도 신호를 건져내고, 기존 파이프라인이 소화하지 못했던 데이터셋까지 받아들여 학습 코퍼스를 약 2M 채널-시간(channel-hour)에서 약 3.5M 채널-시간으로 키웠습니다.
또한 모든 녹음에 대해 두 가지 필터 변형을 미리 계산합니다. 하나는 EEG 분석에서 가장 흔히 쓰이는 대역인 0.1 ~ 45 Hz 대역 통과(bandpass) 필터이고, 다른 하나는 0.01 Hz 고역 통과(highpass) 필터와 전원 노이즈 제거용 노치(notch) 필터만 적용한 덜 엄격한 변형입니다. 서로 다른 전처리가 적용된 데이터로 학습함으로써, 실제 EEG 녹음이 저마다 이질적인 전처리를 거친다는 현실에 대응하여 모델이 다양한 전처리 전략에 두루 일반화하도록 만드는 것이 목표입니다.
실험 결과
핵심 질문은 이것입니다. 유연성을 이렇게 늘리면 복원 정확도를 희생해야 하지 않을까요? 결과는 그렇지 않았습니다. 홀드아웃(held-out) 평가에서 ZUNA1.1은 ZUNA1보다 더 낫거나 본질적으로 동등한 정규화 평균 제곱 오차(NMSE, Normalized Mean Squared Error)를 달성했고, 두 모델 모두 고전적인 구면 스플라인 보간을 뚜렷하게 앞섰습니다. 요약하면, ZUNA1.1은 원래 모델의 정확도를 유지하거나 능가하면서도 가변 길이 입력과 현실적인 상관 결손까지 훨씬 넓은 범위의 실전 조건으로 확장한 것입니다.
채널 드롭아웃에 따른 복원 정확도
평가는 학습 코퍼스 외에도 학습에 쓰이지 않은 네 개의 공개 데이터셋에서 이뤄졌습니다. 83채널 고밀도 수면다원검사 데이터셋인 ANPHY-Sleep, 저채널 운동 상상(motor imagery) BCI 벤치마크인 Berlin BCI Competition III Dataset V(32채널), 중밀도 운동 상상 데이터셋인 BCI2000(64채널), 그리고 초고밀도 청각 주의 해독 데이터셋인 AAD(255채널)입니다. 각 데이터셋에서 채널의 20\%, 50\%, 75\%, 90\% 를 무작위로 제거했는데, 이는 각각 1.25\times, 2\times, 4\times, 10\times 의 업샘플링 배율에 해당합니다.
위 그래프에서 값이 낮을수록 복원이 정확한 것입니다. 모든 데이터셋에서 드롭아웃 비율이 높아질수록 두 방법 모두 오차가 커지지만, 결정적인 차이는 보라색 스플라인 보간이 90\% 같은 극단적 드롭아웃에서 오차가 폭증하는 반면, ZUNA1.1(주황)과 ZUNA1(청록)은 상대적으로 완만하게 유지된다는 점입니다. 스플라인 보간과의 격차는 드롭아웃이 심해질수록 체계적으로 벌어졌으며, 가장 극단적인 90\% 조건에서 가장 큰 이득을 보였습니다. 다만 255채널 AAD처럼 전극 밀도가 매우 높은 경우에는, 이웃 전극이 촘촘히 붙어 있어 공간 보간이 쉬워지므로 방법 간 절대 격차가 작았습니다.
뇌 영역별 복원 성능
연구팀은 무작위로 채널을 떨어뜨리는 전형적인 마스크드 오토인코더 방식보다 실험적으로 더 현실적인 설정도 평가했습니다. 특정 뇌 영역의 전극을 모두 삭제한 뒤, 나머지 일곱 개 영역만으로 그 영역을 복원하는 과제입니다.
전두엽(Frontal), 측두엽(Temporal), 중심부(Central) 등 대부분의 영역에서 ZUNA1.1(주황)이 가장 낮은 오차를 기록하며 ZUNA1과 스플라인 보간을 모두 앞섰습니다. 특히 스플라인 보간(보라)은 한 영역 전체가 통째로 비어 이웃 전극이 멀리 떨어지는 이 설정에서 크게 불리해지는데, 학습된 다변량 구조를 활용하는 ZUNA1.1은 이런 현실적 결손 상황에서 뚜렷한 이점을 보였습니다.
한계점 및 향후 방향
ZUNA1.1이 인상적인 성능과 범용성을 보여주지만, 저자들은 몇 가지 한계를 솔직하게 인정합니다.
가장 중요한 주의점은 생성 모델의 환각(hallucination) 입니다. ZUNA는 제한된 관측으로부터 그럴듯한 신호를 생성하도록 학습되었으므로, 실제로는 존재하지 않았던 EEG 신호를 만들어낼 수 있습니다. 따라서 모델이 복원한 채널은 실측값이 아니라 대치(imputed)된 데이터로 취급해야 하며, 특히 임상적 의사결정의 근거로 삼아서는 안 됩니다. 저자들은 ZUNA1.1이 진단 도구가 아님을 명확히 밝히고 있습니다.
둘째, 모델과 데이터의 규모가 오디오, 비전, 텍스트 같은 성숙한 모달리티에 비하면 여전히 매우 작습니다. EEG에서도 고전적인 스케일링 법칙(scaling law)과 유사한 초기 징후가 관찰되므로, 모델과 데이터를 키우면 상당한 추가 개선이 가능할 것으로 보입니다. 다만 데이터 축은 확장이 더 까다롭습니다. 다른 모달리티와 달리 공개된 EEG 데이터가 웹에 그리 많지 않기 때문입니다. 저자들은 두개내(intracortical) EEG를 함께 학습하는 것이 데이터 부족을 일부 완화하는 동시에 전이(transfer)를 통해 성능을 높이는 방법이 될 수 있다고 제안합니다.
셋째, 문맥 길이입니다. ZUNA1 논문은 5초까지의 시퀀스만 다뤘고, ZUNA1.1이 이를 최대 30초까지 확장했지만, 완전한 EEG 녹음은 수 분에서 수 시간에 이릅니다. 저자들은 텍스트 데이터에서 잘 발전된 장문맥(long-context) 학습 기법을 EEG에 적용하는 것을 향후 과제로 꼽습니다. 이 밖에도 현재 아키텍처가 주로 오디오 오토인코더에서 차용된 것이라, EEG 신호의 고유한 특성에 맞춰 아키텍처와 학습 목표를 특화하면 같은 규모에서도 성능을 더 끌어올릴 여지가 있다고 봅니다.
EEG 파운데이션 모델은 실용적 가치를 넘어 과학적으로도 깊은 흥미를 자아냅니다. 두피 EEG 신호에 과연 얼마만큼의 유용한 신경 정보가 담겨 있는가라는 근본적인 물음에, 대규모 데이터를 가중치 안에 압축하는 파운데이션 모델은 하나의 실증적 답을 제공할 수 있습니다. 특정 정보가 두피 EEG에 실제로 존재하는지 여부를 규명하는 것은 비침습적 BCI의 실현 가능성 자체를 가늠하는 일이기도 합니다. ZUNA는 그 여정의 첫걸음으로, 모델 가중치와 추론 및 전처리 코드를 완전히 공개하여 재현 가능한 비교와 후속 연구의 토대를 마련하는 데 방점을 찍고 있습니다.
설치 및 사용 방법
ZUNA1.1은 380M 파라미터로 가벼워 1GB 미만의 VRAM만 있으면 되고, 소비자용 GPU나 애플 실리콘 맥에서 빠르게, CPU에서도 그런대로 돌아갑니다. pip 로 간단히 설치할 수 있으며, 모델 가중치는 첫 실행 시 HuggingFace에서 자동으로 내려받습니다.
# 튜토리얼과 샘플 데이터를 위해 저장소 클론
git clone https://github.com/Zyphra/zuna.git && cd zuna
# zuna 설치
pip install zuna
GPU를 쓰려면 드라이버가 지원하는 CUDA 버전에 맞는 torch 빌드를 zuna 설치 전에 먼저 설치하는 것이 좋습니다. 그러지 않으면 PyTorch가 조용히 CPU로 폴백(fallback)하여 매우 느려질 수 있습니다.
# 드라이버의 CUDA 버전에 맞는 torch 먼저 설치 (예: CUDA 12.8)
pip install torch --index-url https://download.pytorch.org/whl/cu128
pip install zuna
핵심 API는 .fif 형식의 EEG 파일을 받아 잡음 제거, 결손 채널 복원, 몽타주 업샘플링을 한 번에 처리하는 reconstruct_fif 함수입니다.
from zuna import reconstruct_fif
reconstruct_fif(
input_dir="fif_in",
output_dir="fif_out",
figures_dir="figures",
gpu_device=0, # GPU id, CPU는 ""
repair_channels=["Cz"], # 완전히 복원할 채널
target_channel_count=["Fz", "Pz"], # 이름으로 새 채널 추가/업샘플링 (정수로 자동 지정도 가능)
bad_segments=[(5, 6), (10, 11, "C3")], # 불량 시간 구간 표시 (전체 채널 또는 특정 채널)
)
입력 .fif 파일에는 전극의 3D 위치가 포함되어 있어야 하며, 없으면 몽타주를 지정해 채널 이름으로 표준 위치를 부여할 수 있습니다. 최상의 결과를 위해서는 짧게 잘라둔 에포크보다 연속 원시(raw) EEG를 쓰는 것이 좋은데, 짧은 조각은 필터 경계 아티팩트를 유발하기 때문입니다. ZUNA1.1은 256Hz에서 동작하며 한 번의 모델 통과당 0.5 ~ 30 초의 신호를 받습니다.
설치가 부담스럽다면, Zyphra Cloud의 EEG Playground에서 브라우저만으로 모델을 시험해 볼 수도 있습니다. .fif 파일을 업로드하면 GPU나 코드 없이 서버에서 추론이 실행됩니다.
ZUNA: Flexible EEG Superresolution with Position-Aware Diffusion Autoencoders 논문
ZUNA1.1 소개 블로그
Zyphra/zuna GitHub 저장소
ZUNA1.1 (Hugging Face)
Zyphra Cloud EEG Playground
이 글은 GPT 모델로 정리한 글을 바탕으로 한 것으로, 원문의 내용 또는 의도와 다르게 정리된 내용이 있을 수 있습니다. 관심있는 내용이시라면 원문도 함께 참고해주세요! 읽으시면서 어색하거나 잘못된 내용을 발견하시면 덧글로 알려주시기를 부탁드립니다. ![]()
파이토치 한국 사용자 모임
이 정리한 이 글이 유용하셨나요? 회원으로 가입하시면 주요 글들을 이메일
로 보내드립니다! 텔레그램(Telegram)이나 Slack/Discord/Teams/Dooray/GoogleChat 등으로도 새 글 알림을 받으실 수 있습니다. ![]()
아래
쪽에 좋아요
를 눌러주시면 새로운 소식들을 정리하고 공유하는데 힘이 됩니다~ ![]()





