본문 바로가기

인공지능

FunctionGemma 실행과 파인튜닝 가이드: 로컬·모바일 환경에서 활용하는 함수 호출 특화 LLM

728x90
반응형
728x170

이 글은 Google이 공개한 소형 언어 모델 FunctionGemma를 중심으로, 해당 모델의 개념과 배경, 주요 특징, 실행 방법, 그리고 파인튜닝과 모바일 배포까지 전반적인 활용 흐름을 정리한 IT 기술 블로그입니다.
FunctionGemma가 왜 함수 호출(Function Calling)에 특화된 모델인지, 어떤 환경에서 실행할 수 있는지, 그리고 실제로 어떻게 활용할 수 있는지를 입력된 정보를 기반으로 단계적으로 설명합니다.

반응형

FunctionGemma란 무엇인가

FunctionGemma는 Google이 공개한 270M 파라미터 규모의 소형 언어 모델로, 함수 호출과 툴 연동에 특화되어 설계되었습니다.
기반 모델은 Gemma 3 270M이며, 텍스트 전용 도구 호출(Text-only Tool Calling)을 학습한 것이 가장 큰 특징입니다.

모델 크기가 작기 때문에 다음과 같은 장점이 있습니다.

  • CPU 환경에서도 실행 가능
  • 약 550MB RAM으로 풀 프리시전 실행 가능
  • 스마트폰과 같은 엣지 디바이스 배포 가능

즉, 대규모 서버 환경이 아니라도 로컬 PC나 모바일 기기에서 직접 실행할 수 있는 함수 호출 특화 LLM이라는 점이 핵심입니다.


FunctionGemma의 설계 배경과 목적

Google은 FunctionGemma를 범용 대화 모델이 아닌, 명확한 목적을 가진 모델로 정의합니다.

  • 함수 호출이 필요한 애플리케이션
  • 멀티 턴 도구 호출이 필요한 에이전트 구조
  • 캘린더, 타이머, 날씨 조회 등 명확한 액션 수행

이런 시나리오에서 대형 모델 대신, 작고 빠르며 제어 가능한 모델이 필요했고, 그 결과물이 FunctionGemma입니다.
특히 Google DeepMind와 Unsloth가 협업하여 출시와 동시에 파인튜닝을 지원하는 점도 실무 활용 관점에서 중요한 배경입니다.


모델의 주요 특징 정리

1. 함수 호출(Function Calling)에 최적화

FunctionGemma는 사용자 입력을 분석해 구조화된 함수 호출 형태로 출력합니다.
출력 결과를 파싱해 실제 함수 실행 → 결과 반환 → 최종 응답 생성까지 자연스럽게 연결할 수 있습니다.

2. 전용 Chat Template 사용

일반적인 LLM과 달리, FunctionGemma는 전용 채팅 템플릿을 사용합니다.
개발자 메시지에 함수 정의를 포함해야 하며, 이 구조를 통해 모델이 어떤 함수를 호출할 수 있는지 명확히 인식합니다.

3. 로컬 및 모바일 친화적

  • GGUF 포맷 지원
  • llama.cpp 기반 실행 가능
  • 4bit 양자화로 대부분의 디바이스에서 실행 가능
  • Pixel 8, iPhone 15 Pro 등 최신 모바일 기기에서 약 50 tokens/s 추론 속도 달성

권장 추론 설정(Inference Settings)

Google이 권장하는 FunctionGemma 추론 설정은 다음과 같습니다.

  • top_k = 64
  • top_p = 0.95
  • temperature = 1.0
  • 최대 컨텍스트 길이 = 32,768

이 설정은 함수 호출 정확도와 자연스러운 응답 생성을 균형 있게 유지하기 위한 기준값입니다.


FunctionGemma 실행 방법 개요

llama.cpp 기반 로컬 실행

FunctionGemma는 GGUF 포맷으로 제공되며, llama.cpp를 통해 실행할 수 있습니다.

실행 흐름은 다음과 같습니다.

  1. llama.cpp 빌드 (GPU 또는 CPU 선택)
  2. Hugging Face에서 FunctionGemma GGUF 모델 다운로드
  3. BF16 또는 4bit 모델 선택
  4. llama-cli로 대화 모드 실행

모델 크기가 작기 때문에, 풀 프리시전(BF16) 모델도 비교적 부담 없이 실행할 수 있습니다.


FunctionGemma 사용 예시: 함수 호출 구조 이해하기

FunctionGemma의 핵심은 모델 출력이 곧 함수 호출 명령이 된다는 점입니다.

예를 들어, 오늘 날짜를 묻는 질문이 들어오면 다음과 같은 흐름으로 동작합니다.

  1. 개발자가 get_today_date 함수 정의 제공
  2. 사용자가 날짜 질문
  3. 모델이 함수 호출 형태로 출력
  4. 함수 실행 결과를 다시 모델에 전달
  5. 최종 자연어 응답 생성

이 구조를 통해 LLM은 단순 답변이 아니라 실제 동작을 트리거하는 역할을 수행합니다.


멀티 턴 도구 호출(Multi Turn Tool Calling)

FunctionGemma는 한 번의 대화에서 여러 개의 도구를 순차적으로 호출할 수 있습니다.

예를 들어 다음과 같은 흐름이 가능합니다.

  • 날짜 조회
  • 날씨 조회
  • 숫자 계산
  • 결과 종합 응답

이를 위해 각 함수에 대한 매핑과 파싱 로직을 구성하고, 모델 출력에서 <start_function_call> 블록을 추출해 실행하는 방식이 사용됩니다.
입력된 예제 코드에서는 정규식을 이용해 함수 호출을 파싱하고, Python 함수와 연결하는 구조를 보여줍니다.


파인튜닝: FunctionGemma를 더 똑똑하게 만드는 방법

Google은 FunctionGemma를 파인튜닝 전제 모델로 명확히 정의합니다.

Reason Before Tool Calling

모델이 바로 함수를 호출하는 것이 아니라,

  • 왜 이 함수를 호출해야 하는지
  • 어떤 인자가 필요한지

를 먼저 생각하도록 학습하는 방식입니다.
이는 Chain-of-Thought 기반 툴 사용 정확도를 높이는 데 목적이 있습니다.

Mobile Actions 파인튜닝

캘린더 일정 추가, 알림 설정 등 모바일 액션 수행에 특화된 파인튜닝도 제공됩니다.
실제 예제에서는 자연어 일정 요청을 정확한 날짜·시간 포맷의 함수 호출로 변환하는 결과를 보여줍니다.

모든 파인튜닝 예제는 무료 Google Colab 노트북으로 제공되어, 진입 장벽이 낮다는 점도 특징입니다.


모바일 디바이스 배포 가능성

FunctionGemma는 QAT(Quantization-Aware Training)를 활용해 모바일에서도 성능 저하를 최소화했습니다.

그 결과 얻을 수 있는 장점은 다음과 같습니다.

  • 오프라인 실행 가능
  • 개인정보 보호 강화
  • 즉각적인 응답 속도
  • 서버 비용 없이 온디바이스 AI 구현

이는 단순 실험용 모델을 넘어, 실제 제품 수준의 모바일 LLM 활용 가능성을 보여줍니다.


728x90

FunctionGemma는 “작지만 명확한 역할을 가진 LLM”의 대표적인 사례입니다.
대형 모델이 모든 것을 처리하는 방식이 아니라, 특정 목적에 맞게 최적화된 모델을 로컬과 모바일에서 활용하는 방향을 제시합니다.

  • 함수 호출 중심 애플리케이션
  • 에이전트 기반 시스템
  • 모바일 온디바이스 AI

이러한 영역에서 FunctionGemma는 충분히 실용적인 선택지가 될 수 있습니다.
앞으로 LLM 활용이 서버 중심에서 엣지와 개인 디바이스로 확장될수록, FunctionGemma와 같은 모델의 가치는 더욱 커질 것으로 기대됩니다.

300x250

https://docs.unsloth.ai/models/functiongemma

 

FunctionGemma: How to Run & Fine-tune | Unsloth Documentation

Learn how to run and fine-tune FunctionGemma locally on your device and phone.

docs.unsloth.ai

728x90
반응형
그리드형