구글에서 새로 내놓은 google/functiongemma-270m-it
DINKIssTyle

Lv.1 DINKIssTyle (61.♡.73.102)

2025년 12월 23일 AM 09:50 · 수정됨(10:31)

조회 691 공감 0

Gemma 모델 개요 기능

https://huggingface.co/google/functiongemma-270m-it

FunctionGemma는 함수 호출에 최적화된 Gemma 3 270M 모델의 특수 버전입니다. 자연어를 실행 가능한 API 동작으로 변환하는 맞춤형, 고속, 개인 정보 보호 및 로컬 에이전트로의 추가 학습을 위한 강력한 기반으로 설계되었습니다.


Function Gemma를 선택해야 하는 시점

FunctionGemma는 자연어와 소프트웨어 실행을 연결하는 다리입니다. 다음과 같은 경우에 적합한 도구입니다.


정의된 API 표면이 있습니다. 즉, 애플리케이션에 정의된 일련의 작업(예: 스마트 홈, 미디어, 내비게이션)이 있습니다.


이제 미세 조정을 할 준비가 되었습니다. 무작위로 프롬프트를 입력하는 방식의 변동성이 아니라, 특정 데이터를 기반으로 미세 조정을 통해 얻을 수 있는 일관되고 결정적인 동작이 필요합니다.


귀사는 로컬 우선 배포를 선호합니다. 귀사의 애플리케이션은 거의 즉각적인 반응 속도와 완벽한 데이터 개인정보 보호를 요구하며, 엣지 디바이스의 컴퓨팅 및 배터리 한계 내에서 효율적으로 실행되어야 합니다.


복합 시스템을 구축하고 있으므로 로컬 작업을 처리할 수 있는 경량 엣지 모델이 필요합니다. 이를 통해 시스템은 일반적인 명령을 기기에서 처리하고 더 복잡한 작업에 대해서만 더 큰 모델(예: Gemma 3 27B)을 쿼리할 수 있습니다.


다른 Gemma 모델과 마찬가지로 FunctionGemma는 오픈 웨이트와 함께 제공되며 책임 있는 상업적 사용을 위한 라이선스가 부여되어 있으므로 사용자는 이를 세부적으로 조정하고 자체 프로젝트 및 애플리케이션에 배포할 수 있습니다.


----

모델 크기가 536MB던데 말입니다..

소개가 흥미롭습니다.


제미나이에게 물어보니.. 아래와 같이 알려주네요



Function Gemma는 구글의 경량 오픈 모델인 Gemma를 함수 호출(Function Calling) 및 도구 사용(Tool Use)에 특화하여 미세 조정(Fine-tuning)한 모델입니다.

이 모델의 핵심은 사용자의 자연어 질문을 해석하여, 실제 코드가 실행할 수 있는 구조화된 데이터(주로 JSON 등)로 변환해주는 것입니다.

Function Gemma의 작동 방식과 구체적인 사용 예시(Python 코드 형태)를 정리해 드립니다.


1. Function Gemma의 핵심 워크플로우

일반적인 LLM은 텍스트로 답을 하지만, Function Gemma는 다음과 같은 흐름을 따릅니다.

  1. 도구 정의: 사용자가 사용할 수 있는 함수(도구)의 목록과 설명(Schema)을 모델에 제공합니다.

  2. 사용자 질문: "오늘 서울 날씨 어때?" 같은 자연어 질문을 입력합니다.

  3. 모델 추론: 모델은 답을 하는 대신 get_weather(location="Seoul") 와 같은 함수 호출 코드를 생성합니다.

  4. 실행 및 결과: 시스템이 이 함수를 실제로 실행하여 데이터를 얻습니다.

  5. 최종 응답: 얻은 데이터를 다시 모델에 주면, 모델이 이를 바탕으로 사용자에게 자연어로 답변합니다.


2. 구체적인 사용 예시 (Python 컨셉 코드)

가장 보편적인 "스마트홈 제어" 시나리오를 예로 들어보겠습니다. 사용자가 "거실 불 좀 켜줘"라고 말했을 때 이를 처리하는 과정입니다.

1단계: 도구(함수) 정의

모델에게 "이런 함수들이 있어"라고 알려주는 단계입니다. 보통 JSON Schema 형식을 사용합니다.

Python
tools = [    {        "name": "turn_on_light",        "description": "특정 위치의 조명을 켭니다.",        "parameters": {            "type": "object",            "properties": {                "location": {                    "type": "string",                    "description": "조명을 켤 위치 (예: 거실, 안방)"                },                "color": {                    "type": "string",                    "description": "조명 색상 (선택 사항)"                }            },            "required": ["location"]        }    }]

2단계: 프롬프트 구성 및 모델 입력

Function Gemma는 특정 포맷의 프롬프트를 기대합니다. (라이브러리에 따라 자동화될 수 있지만, 내부적으로는 아래와 비슷하게 들어갑니다.)

Plaintext
<start_of_turn>user당신은 스마트홈 비서입니다. 아래 도구들을 사용할 수 있습니다:{tools_json_definition}사용자 질문: "거실 불을 파란색으로 켜줘"<end_of_turn><start_of_turn>model

3단계: 모델의 출력 (Function Call)

Function Gemma는 엉뚱한 말을 하는 대신, 정확히 함수를 호출하는 구조화된 텍스트를 반환합니다.

XML
<function_call> {"name": "turn_on_light", "arguments": {"location": "거실", "color": "파란색"}}

4단계: 애플리케이션 처리

개발자는 위 출력을 파싱하여 실제 Python 함수를 실행합니다.

Python
# 모델의 출력을 받아서 실행if model_output["name"] == "turn_on_light":    args = model_output["arguments"]    # 실제 하드웨어 제어 API 호출    smart_home_api.lights.on(location=args["location"], color=args["color"])    print("시스템: 거실 조명을 파란색으로 켰습니다.")

3. 주요 활용 분야

Function Gemma는 다음과 같은 분야에서 일반 LLM보다 훨씬 높은 정확도를 보입니다.

  • 외부 API 연동 챗봇:

    • "내일 서울에서 부산 가는 KTX 10시 표 예매해줘" $\rightarrow$ book_train(from="Seoul", to="Busan", time="10:00") 호출.

  • 데이터베이스 쿼리 (Text-to-SQL):

    • "지난달 매출 통계 보여줘" $\rightarrow$ query_database(table="sales", period="last_month") 형태로 변환.

  • 복잡한 계산 및 데이터 처리:

    • LLM은 수학에 약하므로, 계산이 필요한 질문이 오면 계산기 함수(calculate())를 호출하여 정확한 값을 얻어냄.

  • IoT 및 로보틱스:

    • 로봇에게 자연어로 명령을 내리면 이를 로봇 제어 명령어(함수)로 변환.

요약

Function Gemma는 채팅만 하는 모델이 아니라, "행동(Act)"하는 AI를 만들기 위한 두뇌 역할을 합니다. 사용자의 말을 알아듣고 시스템의 API를 정확한 인자(Argument)와 함께 호출해주는 것이 핵심입니다.

혹시 특정 프로그래밍 언어(Python, JS 등)나 라이브러리(Hugging Face, KerasNLP)를 이용한 실행 가능한 전체 코드 예제가 필요하신가요?


ㄷㄷ 제미나이가 알기 쉽게 풀어서 소개 해주니 더 흥미롭네요.

DB연동 된 애들한테 자연어로 말하면 결과를 보여준다는거잖아요!

신뢰도 있게 늘 일관 된 대답으로.. 오...

댓글 (3)

  • 벗님

    벗님 Lv.1

    25.12.23 · 172.♡.94.3

    상상하던 것들이 현실이 되는 세상이네요. ^^;
  • 아킨도 Lv.1

    25.12.23 · 210.♡.39.20

    Google Cloud 내부 서비스는 Gemini가 도입 되면서 NL2SQL 기능들이 작동하고 있죠.
    Gemini 모델을 구성해도 가능하지만 NL2SQL에만 쓰기에는 너무 헤비하니 특정 기능에 경량화된 모델인것 같군요
  • DINKIssTyle

    DINKIssTyle Lv.1 → 아킨도 작성자

    25.12.23 · 61.♡.73.102

    이거 굳이 서버에 백엔드 없이도 앱마다 임베디드해서 돌릴 수 있지 않을까 기대됩니다. ㄷㄷ

댓글을 작성하려면 이 필요합니다.