구글의 새로운 AI, 초당 1,000 토큰 이상 생성 (DiffusionGemma)

BBetter Stack
컴퓨터/소프트웨어게임/e스포츠

Transcript

00:00:00구글의 행보가 최근 매우 뜨겁습니다. 지난주에는 인코더가 없는 혁신적인
00:00:05Gemma 4 모델에 관한 영상을 올렸는데, 이번 주에는 또 다른 놀라운 혁신 모델을 내놓았습니다. 바로 Diffusion
00:00:11Gemma라는 모델인데, 정말 엄청나게 빠릅니다. 초당 1,000개 이상의 토큰을
00:00:18생성할 수 있죠. 이렇게 빠른 이유는 기존의 어떤 모델과도 완전히
00:00:23다른 방식으로 텍스트를 생성하기 때문입니다. 그래서 이번 영상에서는
00:00:29Diffusion Gemma가 어떻게 작동하는지 살펴보고, 직접 테스트하는 방법도 알려드리겠습니다.
00:00:35정말 흥미로울 테니 바로 시작해 보죠.
00:00:41여러분들이 지금까지 사용해 온 모든 언어 모델은 기본적으로 같은 방식으로 작동합니다. 즉, '자기회귀적(auto-aggressive)'인데
00:00:48이는 한 번에 하나의 토큰씩 왼쪽에서 오른쪽으로 생성한다는 어려운 말이죠. 단어를 하나 작성하고
00:00:54지금까지 작성된 모든 내용을 살펴본 뒤 다음 단어를 예측하는 과정이 반복됩니다.
00:00:59Claude나 GPT 같은 대형 상업용 모델이 작동하는 방식을 보면, 서버가
00:01:06토큰을 생성할 때 대부분의 시간은 연산이 아니라 모델의 가중치를
00:01:12메모리에서 불러오는 데 소비됩니다. 단 한 명의 사용자만 서비스한다면 매우 낭비죠. 그래서 서버는 수백 명의
00:01:19사용자를 한데 묶어(배치 처리) 가중치를 한 번만 불러온 뒤 모두에게 동시에 적용합니다. 그렇게 하면
00:01:25한 번의 메모리 로딩으로 256명의 사용자를 서비스할 수 있습니다. 하지만 모델을 로컬에서 실행하면 사용자는 단 한 명뿐이라
00:01:33함께 처리할 대상이 없습니다. GPU는 방대한 가중치를 불러와 겨우 짧은
00:01:39연산을 수행해 토큰 하나를 만들고, 다시 다음 작업을 하기 전까지 유휴 상태로 머물게 됩니다. 기술적인 용어로
00:01:46이를 '메모리 바운드(memory bound)'라고 합니다. 비싼 GPU가 연산보다는 다음
00:01:52토큰을 기다리는 데 대부분의 시간을 쓰는 것이죠. 그래서 구글 딥마인드는 이 문제를 보고 영리한
00:01:58질문을 던졌습니다. 클라우드가 256명의 사용자를 한꺼번에 처리해서 유휴 시간을 채운다면, 한 명의 사용자를 위해서도
00:02:07그 유휴 시간을 채우면 어떨까? 즉, 256명에게 토큰 하나씩을 주는 대신, 한 사람에게 256개의 토큰을
00:02:16한꺼번에 생성하면 어떨까? 이것이 Diffusion Gemma의 핵심 아이디어입니다. 단어 단위로 작성하는 대신,
00:02:23모델은 256개의 무작위 플레이스홀더 토큰으로 이루어진 '캔버스'에서 시작합니다. 그냥
00:02:31노이즈인 셈이죠. 모델의 임무는 캔버스의 모든 위치를 한꺼번에 수정하여 실제 텍스트로 바꾸는 것입니다. 이렇게 모든
00:02:38256개의 토큰을 한 번에 예측함으로써 GPU가 유휴 상태로 있지 않고 실제 작업을 하도록 만드는 것이죠. 이런 방식으로
00:02:46모델을 메모리 바운드에서 '컴퓨트 바운드(compute bound)'로 전환해, 낭비되던 연산 능력을 최대한 활용합니다.
00:02:53하지만 말처럼 쉽지는 않습니다. 256개의 토큰을 한꺼번에 예측하는 건 정말 어렵기 때문입니다.
00:03:01모델이 1번부터 253번 토큰이 무엇인지 전혀 모르는 상태에서 어떻게 254번 토큰을
00:03:09추측할 수 있을까요? 실제로도 그렇습니다. 처음 몇 개의 토큰은 잘 나오지만, 뒤로 갈수록
00:03:15엉망이 되어버리죠. 하지만 한 번만 통과시키는 게 아니라 여러 번 반복한다면 어떨까요?
00:03:21이게 바로 핵심 비결입니다. 모델은 캔버스를 반복해서 통과하는데, 이제는
00:03:28이전에 자신이 예측했던 결과를 볼 수 있습니다. 자신 있게 예측한 토큰들은 혼란스러운 토큰들을
00:03:35수정하는 데 도움이 되는 힌트가 됩니다. 가장 멋진 점은 몇 번의 통과만으로 충분하다는 것입니다. 총 토큰 수인 256번보다
00:03:42훨씬 적은 횟수만 통과하면 되죠. 이것이 바로 모델 속도의 원천입니다. 이 방식은 아마
00:03:49이전에도 보셨을 겁니다. '확산(diffusion)'이라고 불리죠. 노이즈에서 시작해 단계별로 정제해 나가는
00:03:55것입니다. AI 이미지 생성기를 움직이는 것과 정확히 같은 아이디어죠. 모델이 이를 학습하는 방법은
00:04:01학습 과정에서 실제 이미지에 고의적으로 노이즈를 추가하고, 그 노이즈를 예측하고
00:04:07제거하는 법을 배우는 식입니다. 하지만 텍스트에는 어떻게 적용할까요? 그게 까다로운 부분입니다. 이미지의 경우,
00:04:14노이즈는 쉽습니다. 픽셀을 약간 더 빨간색이나 파란색으로 바꾸면 되죠. 하지만 텍스트의 경우, 'the'라는 단어를
00:04:19'the'가 아닌 것처럼 조금 바꾸는 건 대체 무슨 의미일까요? 딥마인드는
00:04:27'균일 상태 확산(uniform state diffusion)'이라는 개념을 생각해 냈습니다. 글자를 수정하는 대신, 무작위로
00:04:32바뀐 단어를 노이즈로 취급하는 것입니다. 학습 텍스트를 오염시키기 위해 실제 단어를 무작위로
00:04:38바꾸고, 모델은 어떤 단어가 잘못된 것인지 파악하여 여러 번의 통과를 통해 결국 고쳐놓는 식이죠.
00:04:45이를 위한 더 간단한 '마스크 확산(mask diffusion)' 방식도 있지만, 그냥 토큰을 지우는 방식이라
00:04:51치명적인 단점이 있습니다. 모델이 단어를 결정하면 영원히 고정되어 버리거든요. 자동 회귀 모델들이 가진
00:04:57똑같은 문제를 가집니다. 하지만 균일 상태 확산은 모든 위치에 항상 무언가 토큰을 유지함으로써 이를 해결합니다.
00:05:04그래서 모델은 3단계 전에 승인했던 단어를 살펴보고, 더 이상 맞지 않는다고
00:05:10판단하면 바꿀 수 있습니다. 즉, 과정을 거치며 계속해서 스스로 수정할 수 있는 거죠. 하지만 이 솔루션에도
00:05:15단점이 있습니다. 확산 모델은 프롬프트를 이해할 인코더와 캔버스를 정리할 디노이저가 필요하죠.
00:05:23그래서 딥마인드는 인코더-디노이저 패치를 개발했습니다. 기존의 260억 파라미터
00:05:30GEMMA4 모델을 기반으로 하며, 응답을 생성할 때 두 모드를 전환합니다. 인코더 모드에서
00:05:36모델은 프롬프트를 읽고, 컨텍스트와 가이드를 추출하려고 시도합니다. 그 모든 내용을
00:05:42KV 캐시에 수집한 뒤 디노이저에게 직접 전달합니다. 디노이저의 임무는 본질적으로
00:05:49캔버스를 정리하는 것입니다. 두 가지 일을 수행함으로써 가능합니다. 먼저, 일반적인 LLM이 모든
00:05:56위치에 대해 신뢰도 점수나 로짓을 생성하지만 마지막 하나를 제외하고는 모두 버린다는 것을 기억하시나요? 참고로,
00:06:02혹시 헷갈리신다면, 제가 예전에 LLM의 작동 방식을 더 자세히
00:06:07설명한 영상이 있으니 관심 있으시면 확인해 보세요. 요컨대 Diffusion GEMMA는
00:06:13점수를 버리지 않습니다. 모든 캔버스 위치마다 자체 예측이 필요하므로 신뢰도 점수를 전부 보관합니다.
00:06:19둘째, 이 디노이저는 자동 회귀 모델의 규칙인, 단어가 뒤만 볼 수 있다는 '인과적 어텐션(causal attention)'을
00:06:25사용하지 않습니다. 대신 '양방향 어텐션(bi-directional attention)'으로 교체했습니다.
00:06:31그래서 이제 모든 토큰이 모든 방향에서 다른 토큰을 볼 수 있게 되었습니다. 따라서 모든 위치에 대해
00:06:38신뢰도 점수를 적용하고, 다른 토큰을 확인하며, 단계별로 천천히 캔버스를 정리해 나가는 것이죠.
00:06:44이것이 바로 Diffusion GEMMA가 H100 GPU에서 초당 1,000개 이상의 토큰이라는 엄청난 속도를
00:06:51달성할 수 있는 비결입니다. 솔직히 말씀드리면, 이건 만능은 아닙니다. 이러한 새로운 전략을 통해,
00:06:58Diffusion GEMMA는 기본적으로 품질과 속도를 맞바꾼 것입니다. 최고의 품질이 필요한 작업에는 여전히 표준 GEMMA 4가
00:07:05더 나은 선택입니다. 이 모델은 인라인 편집이나 코드
00:07:13채우기, 빠른 반복 작업 같은 중요한 로컬 작업을 위해 만들어졌습니다. 특히 코드 블록
00:07:19사이를 채우거나, 일반적인 왼쪽에서 오른쪽으로 가는 모델들이 매우 취약한 스도쿠 퍼즐을
00:07:26푸는 것 같은 비선형 작업에 특히 강점이 있습니다. 모든 게 흥미롭게 들리는데, 직접 테스트해 보며 작동하는지 확인해 보죠.
00:07:33구글은 허깅페이스에 아파치 2.0 라이선스로 가중치를 오픈소스로 공개했습니다.
00:07:38그러니 RTX 5090 같은 강력한 GPU가 있다면 로컬에서 직접 실행해 볼 수 있습니다. 또한 Docker에서
00:07:44실행하여 과정을 간소화할 수 있는 VLLM용 특별 레시피도 있습니다. 저는 이 모델이 정말로
00:07:51초당 1,000개 이상의 토큰을 생성할 수 있는지 궁금합니다. 그래서 이번 테스트에서는 실제로
00:07:58RunPod 컨테이너를 사용하여 H100 GPU에서 실행해 보고 결과가 어떤지 보겠습니다. 참고로,
00:08:04RunPod에서 Diffusion GEMMA를 실행할 수 있는 템플릿도 게시해 두었습니다. 이 테스트를
00:08:10재현하고 싶다면 새 팟을 만들 때 그 템플릿을 사용하시면 됩니다. RunPod에서 테스트하려면
00:08:15H100 컨테이너를 선택하겠습니다. 앞서 말씀드렸듯이 제가 만든 Diffusion GEMMA
00:08:22템플릿을 재사용할 수 있습니다. 볼륨 디스크를 클릭한 다음 '배포'를 누르기만 하면 됩니다.
00:08:28컨테이너를 다운로드하고 모든 것을 시작하는 데 몇 분 정도 걸립니다.
00:08:34로그를 확인했을 때 'Application startup complete'가 표시되면 VLLM이 준비
00:08:40되어 8000번 포트로 접근할 수 있다는 의미입니다. 열어보면 'Detail not found'가 뜨지만,
00:08:46걱정하지 마세요. 작동하고 있다는 뜻이니까요. URL을 복사하면 됩니다. 자,
00:08:52Diffusion GEMMA를 AI 에이전트 터미널(OpenCode 같은)에서 실행하려면
00:08:58원격 서버에 접근하도록 OpenCode 설정을 구성해야 합니다. 간단한
00:09:04명령어로 구성 파일을 열 수 있습니다. 여기에서 RunPod 서버를 지정하고
00:09:11Diffusion GEMMA 모델을 선택했습니다. 파일을 저장하고 OpenCode를 시작합니다.
00:09:17이번 테스트에서는 'Ledger'라는 개인 금융 추적 대시보드를 생성해 보라고 하겠습니다.
00:09:24얼마나 빨리 생성되는지 보세요. 보셨나요? 즉시 스트리밍이 시작됩니다.
00:09:34얼마나 빠른지 정말 놀랍지 않나요? 세상에. 와, 말도 안 돼요.
00:09:43로그를 보면 초당 평균 700개의 토큰을 생성하고 있습니다. 출력 단계에서는 조금
00:09:50줄어들었지만, 추론 단계에서는 초당 700개까지 치솟았습니다. 정말 대단합니다. 그럼 한번
00:09:58열어볼까요? 대시보드처럼 보이네요. 좋네요. 범주도
00:10:06나와 있고요. 여기 내용을 추가하면? 오, 비용으로 추가되네요. 그런데
00:10:13지출 데이터가 업데이트되지는 않네요. 완전히 기능하지는 않지만, 그래도 일부는 상호작용이 됩니다.
00:10:20다음 작업으로, 아케이드 스타일 게임을 만들 수 있는지 보겠습니다.
00:10:26다시 시작해 보죠. 역시 속도가 엄청납니다. 오, 이건 시간이 좀 걸리네요.
00:10:36파일 두 개가 나왔습니다. 흥미롭군요. 오타를 발견하고
00:10:44HTML 파일을 다시 처리했네요. 꽤 훌륭합니다. 자, 이걸 열어봅시다. 재시작,
00:10:52오, 보세요. 작동합니다. 우와, 정말 멋지네요. 인상적입니다. 게임이
00:11:03완벽하게 작동하며, 생성하는 데 14초 걸렸습니다. 이런 게임을 만드는 데 14초라니요.
00:11:11마케팅 페이지에서는 H100에서 초당 1,000개 이상의 토큰을 예상할 수 있다고 했지만,
00:11:18제가 관찰한 것과는 달랐습니다. 뭐, 템플릿이나 프롬프트를 수정하면 달라질지 모르겠지만,
00:11:26그럼에도 불구하고 정말 감명받았습니다. 엄청난 괴물 모델이네요. 자, 여러분,
00:11:33Diffusion Gemma는 여기까지입니다. 저는 이게 올해 나온 가장 흥미로운
00:11:38출시 중 하나라고 생각합니다. 이미지 세계의 완전히 다른 생성 패러다임을 가져와,
00:11:44이미 훈련된 모델에 적용해서 단일 로컬 사용자 설정에서도 엄청난 속도 향상을 이끌어낼 수 있다는 걸 증명했으니까요.
00:11:51그리고 이는 하드웨어의 잠재력을 최대한 활용하여 유휴 상태를 없애는,
00:11:58새롭고 빠른 대화형 로컬 모델군의 문을 열었다고 생각합니다. 여러분은
00:12:04Diffusion Gemma에 대해 어떻게 생각하시나요? 써보셨나요? 사용하실 계획인가요? 아래 댓글란에 알려주세요.
00:12:09이런 기술적인 분석이 도움이 되셨다면, 영상 아래에 있는
00:12:14좋아요 버튼을 눌러주세요. 채널 구독도 잊지 마시고요. Betterstack의 Andrus였으며,
00:12:19다음 영상에서 뵙겠습니다.

Key Takeaway

Diffusion Gemma는 텍스트 생성 방식을 자기회귀적 구조에서 병렬 확산 구조로 전환함으로써, 로컬 GPU의 연산 유휴 시간을 없애고 초당 1,000개 이상의 토큰 생성이라는 압도적인 속도를 구현했다.

Highlights

  • Diffusion Gemma는 기존 자기회귀 방식 대신 256개 토큰을 한꺼번에 생성하여 H100 GPU 환경에서 초당 최대 1,000개 이상의 토큰 생성 속도를 달성한다.

  • 일반적인 LLM은 다음 토큰 하나만 예측하지만, 이 모델은 256개의 무작위 노이즈 캔버스에서 시작해 여러 번의 반복 통과를 거쳐 텍스트를 정제한다.

  • 이미지 생성 기술의 확산(diffusion) 개념을 텍스트에 적용하기 위해 균일 상태 확산(uniform state diffusion) 방식을 사용하여 반복적인 자기 수정이 가능하다.

  • 인과적 어텐션 대신 양방향 어텐션(bi-directional attention)을 도입하여 모든 토큰이 서로의 정보를 참조하며 동시에 최적화된다.

  • 코드 채우기, 스도쿠 퍼즐 해결과 같은 비선형 작업에 강점이 있으며, 로컬 환경에서 빠른 반복 처리가 필요한 작업에 최적화되어 있다.

Timeline

기존 LLM의 한계와 Diffusion Gemma의 등장

  • 기존 LLM은 한 번에 하나의 토큰만 생성하는 자기회귀 방식을 사용하여 GPU가 메모리 바운드 상태에 머문다.
  • Diffusion Gemma는 256개의 토큰을 동시에 생성하는 방식으로 GPU의 연산 능력을 극대화한다.
  • 메모리 로딩 낭비를 줄이기 위해 여러 사용자 배치를 처리하는 대신, 한 사용자의 요청에 대해 256개의 토큰을 병렬로 생성한다.

기존의 대형 언어 모델은 서버에서 가중치를 메모리에 불러오는 시간 대비 연산 시간이 짧아 GPU 자원 낭비가 심하다. Diffusion Gemma는 이를 해결하기 위해 256개의 무작위 플레이스홀더를 캔버스로 지정하고 이를 한 번에 실제 텍스트로 바꾸는 방식을 채택했다. 이를 통해 연산 비중이 높은 컴퓨트 바운드 상태로 전환하여 하드웨어 효율을 높인다.

확산 기반 텍스트 생성 원리

  • 처음 생성된 불완전한 토큰들을 여러 번의 반복 통과 과정을 통해 점진적으로 정제한다.
  • 균일 상태 확산 개념을 적용해 실제 단어를 무작위로 오염시키고 이를 스스로 수정하는 학습을 수행한다.
  • 기존의 인과적 어텐션을 양방향 어텐션으로 교체하여 모든 토큰이 상호 작용하며 캔버스를 정리한다.

모델은 캔버스를 반복적으로 통과하며 이전에 예측한 결과를 힌트 삼아 혼란스러운 토큰을 수정한다. 이미지 생성기와 유사한 확산 기법을 텍스트에 도입하기 위해 지우기 방식의 마스크 확산 대신, 언제든 단어를 바꿀 수 있는 균일 상태 확산 방식을 선택했다. 또한 인코더-디노이저 패치를 통해 프롬프트를 이해하고 양방향 어텐션으로 캔버스를 최적화한다.

실제 성능 및 사용 사례 테스트

  • 품질보다는 속도와 로컬 편집 효율에 특화된 모델로, 표준 Gemma 4와 목적이 다르다.
  • RunPod H100 환경에서 테스트한 결과 실시간 스트리밍 생성 시 초당 약 700개 토큰의 속도를 기록했다.
  • 개인 금융 추적 대시보드나 아케이드 게임 생성과 같은 실제 코드 기반 작업을 14초 이내에 성공적으로 수행했다.

H100 GPU 환경에서의 테스트 결과 마케팅 수치보다는 약간 낮았으나 초당 700개라는 매우 빠른 속도를 입증했다. 특히 코드 블록 자동 완성이나 비선형적인 구조를 가진 퍼즐 풀이 등에서 뛰어난 성능을 보였다. 아파치 2.0 라이선스로 오픈소스로 공개되어 고성능 로컬 하드웨어를 가진 사용자가 즉시 활용 가능하다.

Community Posts

No posts yet. Be the first to write about this video!

Write about this video