
FunctionGemma 완벽 가이드: 구조, 활용, 파인튜닝까지
개요
FunctionGemma는 구글 딥마인드의 Gemma 3 270M 모델을 기반으로, 함수 호출(function calling)에 특화되도록 파인튜닝된 초소형 언어 모델이다.24 사용자의 자연어 명령을 앱이나 디바이스가 실행할 수 있는 구조화된 함수 호출·코드 형태로 변환하는 것이 핵심 목적이다.3

특징적인 점은 이 모델이 거대한 클라우드 LLM과 달리 폰, 브라우저, IoT 같은 엣지 환경에서 로컬로 돌리도록 설계되었다는 것이다.3 약 2억 7천만 개(270M)의 파라미터와 6조 토큰 수준의 학습으로, 작은 크기에도 불구하고 모바일 액션 같은 실제 작업에서 높은 함수 호출 정확도를 보인다.3
개발자 입장에서는 FunctionGemma를 단독으로 쓰기보다, 로컬에서 빠르게 도는 "에이전트/라우터" 계층으로 두고, 더 복잡한 추론이 필요할 때만 Gemini 등 대형 모델을 호출하는 하이브리드 아키텍처를 구성할 수 있다.13 이 모델은 Hugging Face, Kaggle, Ollama 등 다양한 생태계에서 바로 사용할 수 있도록 공개된 "오픈 웨이트(open weights)" 계열 모델이다.34
FunctionGemma란 무엇인가
FunctionGemma는 Gemma 3 270M 텍스트 모델을 기반으로, 함수 정의와 인자를 정확히 채워 넣는 작업에 맞춰 추가 파인튜닝된 변종이다.24 일반적인 대화형 챗봇이라기보다는, "이 문장을 어떤 함수에 어떤 파라미터로 매핑할 것인가?"에 최적화된 도메인 특화 SLM(Small Language Model)이라고 보는 것이 정확하다.34
구글이 제시하는 전형적인 시나리오는 "모바일 액션(Mobile Actions)"이다. 예를 들어 "오늘 오후 3시에 치과 예약 알림 설정해줘"라는 요청을 받으면, FunctionGemma는 이를 create_calendar_event(title="치과 예약", time="2025-12-20T15:00", ...)과 같은 형태의 함수 호출로 변환해 준다. 이 호출 결과를 실제로 실행하는 것은 앱 로직의 몫이고, 모델은 자연어 → 함수 호출 텍스트 변환이라는 역할에 집중한다.3
Ollama 라이브러리 설명에서도 FunctionGemma를 "Gemma 3 270M 모델의 함수 호출 특화 버전"으로 정의하고, 용도를 에이전트가 툴을 사용할 때의 호출 포맷 생성에 둔다.4 이는 코드 작성, API 호출, OS 조작 등 "도구 사용"이 핵심인 많은 에이전트 아키텍처에서 바로 활용할 수 있음을 시사한다.
모델 규모와 성능 특성
FunctionGemma의 가장 큰 특징 중 하나는 270M(2.7억) 파라미터라는 극단적으로 작은 규모다.34 최신 대형 LLM들이 수백억~수천억 파라미터를 자랑하는 상황에서, 구글 연구진은 이 모델을 "아주 작은 모델이지만, 불과 1~2년 전 더 큰 모델에 필적하는 수준의 성능을 내는 소형 모델의 한 예"라고 표현한다.1
구글 내부 "Mobile Actions" 평가에 따르면, 동일한 작은 크기의 일반 모델은 함수 호출 작업에서 약 58% 수준의 정확도를 보였지만, FunctionGemma처럼 목적 특화 파인튜닝을 거치면 약 85%까지 정확도가 상승했다고 보고된다.3 이 수치는 단순한 온/오프 토글뿐 아니라, 좌표·시간·지역 등 복수 인자를 정확히 파싱해야 하는 복잡한 액션까지 포함한 결과다.3
이처럼 FunctionGemma는 "전지전능한 추론 능력"보다는 함수 호출의 신뢰도와 결정론적인 동작을 우선하는 설계 철학을 따른다.3 즉, 창의성과 다양성보다는 동일 입력에 대해 거의 동일한 함수 호출을 지속적으로 내는 쪽이 중요하며, 이는 실제 서비스에 투입되는 툴 사용·에이전트 시스템에서 특히 요구되는 특성이다.
학습 데이터와 "Mobile Actions" 데이터셋
FunctionGemma는 기본적으로 6조 토큰 규모의 데이터로 사전 학습된 Gemma 3 270M을 기반으로 하고, 여기에 함수 호출에 특화된 추가 파인튜닝 데이터를 사용해 능력을 끌어올렸다.3 이 과정에서 사용된 대표적인 공개 자료가 바로 "Mobile Actions" 데이터셋이다.3
이 데이터셋은 사용자의 자연어 명령과, 그에 대응하는 모바일 액션 함수 호출 쌍으로 구성된다. 예를 들어 전화 걸기, 알림 설정, 위치 기반 검색, 게임 내 좌표 이동 등 다양한 모바일 상호작용이 포함된다.3 구글은 이 데이터를 공개해, 개발자가 자신만의 모바일 에이전트를 학습하거나 기존 도메인에 맞춰 추가 파인튜닝을 할 수 있도록 하고 있다.3
Hacker News에서 구글 연구진은 예시 노트북과 데이터셋을 살펴본 커뮤니티의 질문에 답하며, 이 데이터가 상당 부분 합성(synthetic) 데이터임을 시사하고, 함수 구조·인자 구조를 명확히 보여주는 다양한 예제를 넣는 것이 모델에게 큰 도움이 된다고 설명한다.1
온디바이스·엣지용 SLM으로서의 위치
FunctionGemma가 가지는 전략적 의미는, 클라우드 초대형 모델 일변도에서 벗어나 "작고 빠른 로컬 모델"에 다시 주목했다는 점이다.13 VentureBeat는 이를 "Small Language Model(SLM)을 엣지에서 돌리는 데 대한 구글의 베팅"이라고 평가하며, 이 모델을 프라이버시 우선의 '라우터' 혹은 '트래픽 컨트롤러'로 보는 관점을 강조한다.3
이 모델은 휴대폰, 브라우저, NVIDIA Jetson 등 다양한 엣지 디바이스에서 실행될 수 있을 만큼 가볍고, 클라우드 왕복 없이 거의 즉각적인 지연(latency)으로 사용자 명령을 처리할 수 있다.3 또한 API 기반 클라우드 모델과 달리, 단순·반복적인 상호작용에 대해 토큰당 비용이 발생하지 않는다는 점도 큰 장점이다.3
구글 연구진 역시 소형 생성 모델을 "재미있고 중요한 방향"이라 언급하며, Gemma 계열이 270M에서 수십억 파라미터까지 다양한 크기를 제공하기 때문에, 연구와 제품에서 여러 크기의 모델을 조합하는 것이 매우 흥미롭다고 말한다.1 FunctionGemma는 그중에서도 가장 작은 단계에서 에이전트 기능을 담당하는 "스타터팩" 같은 위치를 차지한다.1
하이브리드 아키텍처: 작은 모델이 큰 모델을 호출하기
FunctionGemma 발표와 함께 구글이 제안하는 핵심 아키텍처는, 작은 로컬 모델이 "이건 내 능력을 넘는다"고 판단할 때 더 큰 클라우드 모델을 툴처럼 호출하는 구조다.13 이때 FunctionGemma는 사용자의 요청을 파악해, "로컬에서 해결 가능한지"를 판단하고, 필요하다면 call_gemini_pro(query=...)와 같은 가상의 함수 호출을 만들어 대형 모델에 질의를 위임하는 역할을 할 수 있다.13
이 패턴은 VentureBeat 글에서 "Traffic Controller Architecture"로 설명되는데, FunctionGemma가 사용자 디바이스에 상주하면서 고빈도·단순 명령은 직접 처리하고, "세계 지식"이나 깊은 추론이 필요한 복잡한 요청은 클라우드 Gemini나 다른 대형 모델로 라우팅하는 구조다.3 이로써 클라우드 호출 빈도를 줄여 비용을 절감하고, 사용자 체감 속도도 크게 개선할 수 있다.3
Hacker News에서 한 사용자는 "정말 똑똑한 상위 모델이 모든 걸 오케스트레이션하는 구조가 더 낫지 않느냐"는 질문을 던지지만, 구글 측은 실제로는 "빠른 루프 + 느리지만 강한 루프" 구조 모두가 유효할 수 있다고 답한다.1 즉, 어떤 경우에는 FunctionGemma 같은 빠른 모델이 먼저 응답을 시도하고, 스스로 한계를 인지했을 때만 "지혜로운 친구"인 대형 모델에게 넘기는 방식이 충분히 실용적이라는 설명이다.1
파인튜닝 전략과 데이터 설계
FunctionGemma는 공개된 상태만으로도 함수 호출에 꽤 최적화되어 있지만, 실제 서비스에 투입하려면 각 서비스 고유의 함수·API에 맞춰 추가 파인튜닝을 하는 것이 일반적이다.23 이를 위해 구글은 FunctionGemma 전용 파인튜닝 가이드와 예제 노트북을 제공하고 있다.123
구글 연구진은 파인튜닝을 크게 두 방향으로 나눈다.1 첫째는 "일반적인 능력을 거의 버리고, 내 명령 체계에 완전히 맞추는 방식"이다. 학습률을 크게 두고, 서비스 고유의 함수 호출 패턴만을 강하게 학습시키면 이런 결과가 나온다. 둘째는 기존 모델의 일반성을 어느 정도 유지하면서, 특정 도메인에 기능을 덧입히는 방식이다. 이 경우 낮은 학습률 또는 LoRA/QLoRA와 같은 파라미터 효율적 튜닝을 추천한다.12
필요한 데이터 양에 대해서 연구진은 "툴 복잡성과 사용자 입력 다양성에 달려 있다"고 설명한다.1 예를 들어 인자가 없는 turn_flashlight_on() 같은 단순 함수는 소량의 예제로도 빠르게 학습되지만, get_weather(lat, lon, day, region, date) 같이 인자가 많고, 영어·중국어·구자라티어·스페인어 등 여러 언어로 자연어 요청이 들어오는 함수는 훨씬 많은 예제가 필요하다.1 특히 날짜 표현(12/18/2025 vs 18/12/2025 등)은 인간에게도 까다롭기 때문에, 다양한 패턴을 데이터로 명시해 주는 편이 좋다고 강조한다.1
함수 포맷팅과 베스트 프랙티스
구글의 FunctionGemma 문서는 함수 정의와 호출을 어떻게 포맷팅하면 모델이 잘 따라오는지에 대한 모범 사례를 다룬다.2 일반적으로는 JSON 스키마 혹은, 명확한 함수 시그니처 설명과 함께, "사용자 입력 → 함수 호출" 예제를 충분히 제시해 주는 형식이 권장된다.2
FunctionGemma는 Transformer 기반 모델이므로, 텍스트로 제공되는 함수 정의를 읽고, 그 안에서 어떤 인자가 필수인지·타입은 무엇인지 추론한 뒤, 자연어 요청과 매칭한다.2 이때 동일 툴에 대해 여러 가지 입력 패턴을 보여 주면, 모델은 자연어 패턴을 좀 더 일반화해 새로운 요청에도 올바른 인자를 채워넣을 가능성이 높아진다.12
또한 모델이 "이건 툴로 처리할 수 없는 요청이다"라고 판단할 수 있도록, 툴 호출 대신 일반 텍스트 답변을 하는 예시를 함께 넣는 것도 하나의 전략이다. 이를 통해 모델은 "언제 함수 호출을 하고, 언제 하지 않아야 하는지"에 대한 기준을 학습하게 된다.2
라이선스와 사용 제약
FunctionGemma는 구글의 Gemma Terms of Use 하에 배포되며, 이는 MIT·Apache 2.0 같은 전통적 오픈 소스 라이선스와는 다른, 커스텀 오픈 웨이트 라이선스다.3 구글은 이를 "오픈 모델"이라고 부르지만, OSI(Open Source Initiative)의 엄밀한 의미에서의 "오픈 소스"는 아님을 밝히고 있다.3
라이선스는 모델의 상업적 활용, 재배포, 수정을 허용하지만, "유해한 사용(harmful use)" 등 특정 제한 조항을 포함하고 있고, 향후 구글이 약관을 업데이트할 수 있는 권리를 명시한다.3 따라서 금융, 의료, 보안 등 규제 산업에서 사용하는 기업이라면, 이 조항을 꼼꼼히 검토해 컴플라이언스에 맞는지 확인할 필요가 있다.3
대부분의 스타트업과 일반 개발자에게는 충분히 관대한 라이선스이지만, 엄격한 카피레프트나 완전한 무제한 사용을 요구하는 프로젝트에는 적합하지 않을 수 있다.3 이 점은 다른 Gemma 계열 모델 사용 시에도 동일하게 고려해야 할 요소다.
생태계: Hugging Face, Kaggle, Ollama 등
FunctionGemma는 Hugging Face와 Kaggle에서 바로 다운로드하여 사용할 수 있고,3 Hugging Face Transformers, Keras, Unsloth, NVIDIA NeMo 라이브러리와 호환되도록 공식 지원이 이루어지고 있다.3 이 덕분에 파이썬·자바스크립트·JAX·PyTorch 등 다양한 환경에서 쉽게 불러와 inference와 파인튜닝을 수행할 수 있다.23
또한 FunctionGemma는 Ollama 모델 라이브러리에도 공식 등록되어 있다.4 Ollama 페이지에서는 이 모델을 "함수 호출에 명시적으로 파인튜닝된 Gemma 3 270M 특화 모델"로 소개하며,4 로컬 개발 환경에서 ollama run functiongemma와 같은 형태로 간단히 실행해 볼 수 있도록 한다. 이는 데스크톱·노트북 수준 로컬 환경에서 에이전트 실험을 하려는 개발자에게 특히 편리하다.
더 나아가, 구글은 Google AI Edge Gallery 앱(Play 스토어)을 통해 모바일에서 FunctionGemma를 직접 체험할 수 있는 데모도 제공하고 있다.3 이를 통해 사용자는 실제 스마트폰에서 "자연어 음성/텍스트 → 모바일 액션 호출" 흐름이 어떻게 동작하는지 눈으로 확인할 수 있다.
적용 사례와 대표적인 유스케이스
FunctionGemma가 가장 빛을 발하는 영역은 "자연어 → 툴 호출"이 주가 되는 에이전트형 애플리케이션이다. 그중에서도 다음과 같은 유스케이스가 대표적이다.134
첫째, 모바일 비서·자동화 앱이다. 통화, 문자, 캘린더, 알림, 미디어 제어, 위치 검색 등 각종 모바일 기능을 함수로 래핑해 두고, FunctionGemma가 사용자 명령을 함수 호출로 변환하게 하면 된다.3 이 경우 개인 일정, 연락처 등 민감 정보가 클라우드를 거치지 않고 디바이스 안에서 처리된다는 점이 중요한 장점이 된다.3
둘째, 로컬 코드 어시스턴트·개발 에이전트다. HN 토론에서 한 사용자는 "로컬 소형 모델이 로우레벨 시스템 상호작용(예: grep, 테스트 실행, git diff 등)을 처리하고, 진짜 어려운 추론만 대형 모델로 보내면 토큰 비용과 속도를 크게 절약할 수 있다"고 언급한다.1 FunctionGemma는 여기서 "터미널 명령·IDE 액션을 호출하는 함수"를 채우는 역할에 적합하다.
셋째, IoT·스마트홈 제어다. 조명, 온도, 도어락, 센서 등 다양한 장치를 함수·API로 묶고, FunctionGemma가 자연어 명령을 각각의 제어 함수로 라우팅하는 구조를 만들 수 있다.34 디바이스 내부 혹은 로컬 네트워크 내에서 모든 처리가 이뤄지므로, 지연이 짧고, 네트워크 단절시에도 동작한다는 점이 장점이다.
FunctionGemma와 다른 Gemma 계열 모델 선택 기준
FunctionGemma는 어디까지나 270M 초소형 특화 모델이므로, 모든 상황에서 최선의 선택은 아니다. 구글 연구진은 "추론 능력이나 일반 대화 능력, 긴 컨텍스트가 필요하면 더 큰 Gemma 모델이나 Gemini를 쓰는 것이 낫다"고 명확히 언급한다.1
예를 들어 단순한 FAQ 챗봇에 웹 검색 정도만 붙인 시스템이라면, 더 큰 Gemma(예: 4B+) 모델이 128K 컨텍스트와 더 강한 추론을 제공하기 때문에, FunctionGemma보다 적합할 수 있다.1 반대로, 컨텍스트 길이 요구가 크지 않고(270M 모델은 32K 수준 컨텍스트), 함수 호출의 정확성과 로컬 실행이 핵심이라면 FunctionGemma가 이상적이다.13
또한 동일 Gemma 계열에서도 CodeGemma, EmbeddingGemma 등 다양한 특화 모델이 존재한다.23 FunctionGemma는 "함수 호출 및 에이전트 툴 사용" 역할에 초점을 맞춘 구성 요소로 보고, 필요에 따라 코드 생성은 CodeGemma, 임베딩은 EmbeddingGemma, 일반 대화·추론은 더 큰 Gemma/Gemini로 맡기는 모듈형 아키텍처를 구상하는 것이 바람직하다.
FunctionGemma의 의의와 향후 전망
FunctionGemma는 LLM 경쟁이 "더 크고, 더 똑똑한 모델"로만 치닫던 흐름 속에서, "작고 구체적인 일을 잘하는 모델"의 가치를 다시 상기시키는 사례로 평가된다.13 특히 엣지·온디바이스 AI에 관심 있는 개발자와 기업에게는, 프라이버시·속도·비용이라는 세 가지 축에서 매우 매력적인 선택지다.3
구글 내부에서도 Gemma·Gemini·ShieldGemma·CodeGemma 등 다양한 크기와 기능의 모델이 동시에 개발되고 있으며, FunctionGemma는 그 중 에이전트 툴 사용의 "로컬 엔진" 역할을 담당하는 퍼즐 조각으로 자리 잡고 있다.23 연구진은 "2026년에도 다양한 새로운 모델이 나올 것"이라 언급하며, 소형 모델과 대형 모델을 결합한 복합 시스템 연구가 계속될 것임을 시사한다.1
앞으로는 FunctionGemma 같은 소형 함수 호출 모델이, 스마트폰·PC·브라우저·자동차·IoT 기기 곳곳에 내장되어, 사용자의 자연어 명령을 각 기기 고유의 API 호출로 안정적으로 변환해 주는 통일된 인터페이스 계층이 될 가능성이 높다. 개발자 입장에서는 지금이 바로, 이 모델을 실험하고 자신만의 도메인에 맞게 커스터마이징해 볼 적기라 할 수 있다.
참고
1FunctionGemma 270M Model | Hacker News
