초파리의 뇌를 GPU에서 실행하기
뉴런 139,255개의 연결을 계산하고, 공개 모델과 발화 시점을 대조한 전뇌 시뮬레이션.
연결 지도와 신경 활동
뉴런 사이의 연결을 정리한 지도를 커넥톰이라고 한다. FlyWire의 암컷 성체 전뇌 데이터인 FAFB v783에는 뉴런 139,255개와 시냅스 54,492,922개가 포함되어 있다. 이 연결 정보를 탐색하고 신경 활동을 계산하는 작업 환경을 만들었다.
탐색 환경에서는 뉴런을 검색하고 신호를 보내거나 받는 연결 상대를 조회할 수 있다. 연결 행렬과 최단 경로, 시냅스 좌표를 다루며, 뉴런의 골격과 표면 메시를 3차원으로 확인하는 기능도 구현했다.
공개 모델과의 대조
전뇌 계산에는 누설 적분 발화 모델을 사용했다. 이 모델은 입력을 받아 막전위가 변하고, 임계값에 도달하면 발화하도록 뉴런을 단순화한다. GPU 구현의 결과는 Shiu 등의 Brian2 모델과 스파이크 단위로 대조했으며, 발화 기록이 일치하는지 검증했다.
계산한 신경 활동은 NeuroMechFly의 몸 모형에 전달한다. 몸은 flygym과 MuJoCo로 구동하며, 실행 속도는 실시간의 0.3~0.55배다. 단맛 감각뉴런을 자극하면 주둥이를 내밀고, 다가오는 물체 자극은 LPLC2와 거대섬유를 거쳐 뛰기를 일으킨다. MDN 자극에서는 뒷걸음을 관찰했다.
실제 배선과 섞은 배선의 비교
별도 실험에서는 커넥톰의 배선을 고정하고 연결 세기만 학습하는 발화율 신경망으로 MNIST 숫자를 분류했다. 실제 배선의 정확도는 96.55%, 섞은 배선은 96.87%였다. 연결 세기를 고정한 조건에서는 각각 81.86%와 91.41%였다.
이 실험에서 실제 배선은 섞은 배선보다 높은 정확도를 내지 못했다. 이 결과를 측정값 그대로 기록했다. 전뇌 모델의 발화 대조, 몸 모형의 반응, 숫자 분류 실험은 서로 다른 검증이므로 각각의 조건과 결과를 구분한다.
실행 속도를 떨어뜨린 대기 루프
실시간 서버의 짧은 대기 루프가 시뮬레이션을 50배 느리게 만드는 문제가 있었다. 반복해서 상태를 확인하던 루프를 이벤트 방식으로 바꾸어 수정했다. 계산 코드와 서버의 대기 방식이 함께 실행 성능에 영향을 주는 사례였다.