Gemma 4의 MTP(다중 토큰 예측) 리버스 엔지니어링 시도 업데이트
Update on Gemma 4 having MTP: Reverse engineering effort
핵심 요약
Gemma 4에 숨겨진 MTP 기능을 리버스 엔지니어링하여 PyTorch 모델로 복구하려는 시도가 진행 중임.
- MTP 리버스 엔지니어링 — Gemma 4의 TFLite 파일에서 MTP 기능을 추출해 PyTorch 모델로 변환하는 작업 진행 중임.
- 커뮤니티 협업 요청 — C++ 및 모델 구조 분석에 능숙한 사용자들에게 리버스 엔지니어링 도움을 구함.
- 성능 향상 기대 — MTP가 적용되면 추론 속도가 빨라져 소비자용 하드웨어에서 큰 성능 이득을 볼 것으로 예상됨.
- 추측 디코딩 활용 — MTP를 활용한 추측 디코딩으로 코딩 작업 등에서 상당한 속도 향상을 경험했다는 사례가 공유됨.
여러분 안녕하세요.
이전 게시물에서 Gemma 4에 MTP가 있다는 사실을 발견했다고 언급했었죠. 모델 가중치를 추출하는 데는 성공했지만, 이제 커뮤니티의 도움이 필요합니다. 특히 컴파일된 TFLite 그래프 파일에서 MTP를 리버스 엔지니어링하여 다시 사용 가능한 Pytorch nn.Module로 변환할 수 있는 C++ 전문가분들의 도움이 절실합니다.
HuggingFace에 추출된 파일들과 복제 단계, 그리고 제가 찾은 단서들을 정리한 저장소를 만들었으며, 이 게시물에 링크를 걸어두었습니다.
TL;DR
- 추출된 .litertlm --> 여러 개의 .tflite 파일들
- INT8로 양자화된 것으로 보이며, 구글 측에서 QAT 학습을 진행했다면 역양자화를 통해 복구 가능할 수도 있음
- Google의 AI Edge Model explorer로 리버스 엔지니어링 가능: https://ai.google.dev/edge/model-explorer
- 이전 Gemini Nano 추출/변환 작업(예: safetensors로 변환)이 도움이 될지도 모름 https://huggingface.co/Xenova/gemini-nano/discussions/1 . 이번에는 Gemma 4의 트랜스포머 블록 구현 방식을 알고 있기 때문에 포팅이 훨씬 쉬울 것으로 보임
- Graphdef의 json을 추출했는데, LLM을 사용하여 리버스 엔지니어링하는 데 유용할 수 있음. JSON은 제 저장소의 extracted/ 폴더 안에 있음.

