2026. 3. 29. 23:01ㆍ카테고리 없음

안녕하세요! 올해 3월 숭실대 AI소프트웨어학부로 갓 입학한 1학년 말하는 감자입니다.
오늘은 지난 크래프톤 AI R&D 해커톤 예선 1일차 문제였던 MultiplierBoard 제작기를 써보려고 합니다.
(문제 공개 허락 받았어요!!)
솔직히 학부 1학년이라 아직 선형대수고 ML/DL이고 머릿속에 제대로 안 들어왔지만...
그동안 Unity나 Pintos 만지던 짬바?로 어떻게든 비벼본 후기입니다.

가보자고~!!!!!!!
세상에서 제일 쪼잔한 계산기 만들기
목표는 심플했습니다.
6비트 숫자 두 개를 넣으면 12비트 정답을 뱉는 AI 계산기 만들기!!
근데 조건이 좀 변태(?) 같습니다.

AI의 뇌세포라고 할 수 있는 파라미터를 99%의 정확도를 보장하는 선에서 최소한으로... 하랍니다... 흑흑흑.,.
보통 이런 짓을 하려면 기본 5만 개는 깔고 가야 한다고 생각하는데,
뇌 용량을 1/10 수준으로 극한의 다이어트를 시켜야 했습니다.

아니 제 몸도 다이어트 하기 빡센데, AI를 다이어트 시키라고 하십니다....
그래도 다이어트를 해야하는 저의 생존 전략은 바로 '노가다 로직 최적화' 였습니다.
(1) 맵 재활용의 달인 => 유니버셜 트랜스포머
곱셈할 때 제일 킹받는 게 올림수 넘기는 거잖아요?
기존 AI들은 이걸 해결하려고 스테이지를 일렬로 무식하게 길게 지어놓습니다.

하지만 우린 메모리가 없죠.
그래서 아주 똑똑한 레이어 딱 하나만 만들고, 데이터를 그 안에서 10번 반복해서 뺑뺑이 돌렸습니다.
Unity의 Update() 루프처럼 10번 사이클을 돌며 일의 자리 올림수를 십의 자리로,
백의 자리로 끝까지 배달하게 만든 겁니다.
(참고로 테스트할 때 6번 미만으로 돌렸더니 올림수 배달 사고가 나서 상위 비트 정확도가 10% 밑으로 떡락하더군요... )
(2) 시력 포기하고 픽셀 아트 깎기 => Low-Rank Attention
AI가 정답을 맞히려면 어떤 숫자끼리 곱해야 할지 짝꿍을 찾아야 합니다.
(i+j=k 라는 인덱스 규칙이 있음)
이걸 다 찾아보려면 눈이 너무 피곤하니까, 어텐션 랭크를 10에서 6으로 확 낮춰버렸습니다.

마치 고해상도 그래픽을 포기하고 핵심 윤곽선만 남긴 픽셀 아트 느낌?? 이죠
d_{model} = 24 라는 좁쌀만 한 시야 안에서도,
로우 랭크 기법 덕분에 엉뚱한 거 안 보고 찰떡같이 필요한 비트 쌍만 골라냅니다.
(3) 깐깐한 입구컷 => SwiGLU FFN
단순 무식한 계산기 대신 SwiGLU라는 아주 깐깐한 게이트를 달았습니다.
이 녀석은 고성능 if문이나 논리적 AND 게이트처럼 작동해서,
쓸모없는 숫자 조합은 가차 없이 필터링하고 진짜 유효한 부분합만 더해줍니다.
d_{ff}=40의 아담한 사이즈로 이진 로직을 완벽하게 소화해냈죠.
진짜 레전드는 그로킹
제가 목표로 정한 파라미터가 4.6k밖에 안 되다 보니,
10만 개나 되는 훈련 데이터를 그냥 무지성으로 암기하는 건 물리적으로 불가능했습니다.
처음에 AI는 정답을 못 외워서 아무거나 찍어대며 처참하게 틀렸습니다.
그런데 계속 굴리다 보니... 어느 순간 모델이 억지 암기를 포기하고

'곱셈의 수학적 원리' 자체를 스스로 깨달아버렸습니다!!
정확도가 바닥을 기다가 갑자기 99% 이상으로 떡상하는 걸 보면서 진짜 소름이 쫙 돋았습니다.
머리가 너무 작아서 차마 외우지는 못하고, 그냥 수학을 이해해버린 우리 AI... 대견하다 녀석.

20살에 육아의 기쁨을 알아버렸습니다.
마무리

제 오멘 16으로도 잘 돌아가서 모델 훈련하고 테스트하는 맛이 아주 쏠쏠했습니다.
아직 선형대수 짬바는 부족했지만, 한정된 자원 안에서 구조를 쥐어짜 내어 극한의 효율을 뽑아낸 엄청난 경험이었네요.

물론 엄청엄청 LLM의 도움을 받았지만, 뭔가 트랜스포머를 직접 구현하고 경량화 한다는게 참 재밌는 경험이었습니다.
평소 링크드인에서 구글 관련 DL 정보글들을 읽어둔게 여기서 도움이 되네요.
이상, 1학년의 우당탕탕 트랜스포머 압축기였습니다!
질문은... 전공 수업 좀 더 듣고 와서 받겠습니다.
근데 3학년때 받는걸로 ㅎㅎ

이제 도망갈게요.