Strojový překlad · Anglický originál

FunctionGemma 270M

Function Gemma 270M Gemma 3 derivát fine- laned pro strukturované nástroje a funkce volání. Místo volnotvarového textu vydává striktní <start_function_call>call:NAME{...}<end_function_call> gramatika, že SDK parses into typed FunctionCall hodnoty. Na disku je zhruba 283 MB dost malý na to, aby se vedle plynovodu ASR + TTS na hardware třídy phone-class a slouží jako "router", který mění uživatelovo prohlášení na vyvolání nástroje.

Funkce-Volání, On- Zařízení

FunctionGemma sloty do hlasových agentů, kdekoliv byste jinak nazývali hostované LLM pro směrování nástrojů. Gramatika je striktní konstrukcí, takže dostanete zpět parsed FunctionCall objekty přímo - žádná oprava JSON, žádné podněcování schématu.

Nástupiště

PlatformaFormátVelikostHuggingFace
Apple (macOS / iOS)CoreML~ 283 MBaufklarer / FunctionGemma-270M-CoreML
Android (a Linux / Windows přes Speech Core)LiteRT- LM~ 283 MBsoniqo/FunctionGemma-270M-LiteRT-LM

Gramatika

Model je vyškolen k vypouštění jednoho hovoru (nebo posloupnost hovorů) zabalený ve dvou sentinelových tokenech:

<start_function_call>call:set_timer{"minutes": 5, "label": "tea"}<end_function_call>

SDK rozděluje každý hovor do psacího stroje FunctionCall(name:, arguments:) hodnota. Argumenty jsou dekódovány jako JSON, takže je můžete zmapovat přímo na Swift Codable nebo Kotlin @Serializable datová třída.

Swift (Apple, CoreML)

Na platformách Apple je FunctionGemma vystavena speech-swift jako FunctionGemma třída. Načítá CoreML model HuggingFace při prvním použití a běží na Neural Engine.

import FunctionGemma

let model = try await FunctionGemma.fromPretrained()

let tools = """
- set_timer(minutes: Int, label: String)
- get_weather(city: String)
"""

let calls = try model.callFunctions(
    tools: tools,
    userMessage: "Set a 5 minute tea timer"
)

for call in calls {
    print(call.name)       // "set_timer"
    print(call.arguments)  // ["minutes": 5, "label": "tea"]
}

Kotlin (Android, LiteRT- LM)

Na Android je model vystaven prostřednictvím speech-android jako audio.soniqo.speech.llm.FunctionGemma. Je to bring- your-own- runtime adaptér: poskytujete LiteRtLmRuntime instance (SDK loď výchozí), a FunctionGemma zpracovává rychlou šablonu a gramatiku parsing.

import audio.soniqo.speech.llm.FunctionGemma
import audio.soniqo.speech.llm.LiteRtLmRuntime

val runtime = LiteRtLmRuntime.fromPretrained(context)
val model = FunctionGemma(runtime)

val tools = """
- set_timer(minutes: Int, label: String)
- get_weather(city: String)
""".trimIndent()

val calls = model.callFunctions(
    tools = tools,
    userMessage = "Set a 5 minute tea timer",
)

for (call in calls) {
    println(call.name)       // "set_timer"
    println(call.arguments)  // {"minutes": 5, "label": "tea"}
}

Další čtení