Tłumaczenie automatyczne · Oryginał angielski
FunctionGemma 270M
Function Gemma 270M Gemma 3 derywat fine- dostrojone dla uporządkowanych narzędzi i wywołań funkcji. Zamiast tekstu w formie darmowej, emituje rygorystyczny <start_function_call>call:NAME{...}<end_function_call> gramatyka, że SDK parses na maszynie FunctionCall wartości. W przybliżeniu 283 MB na dysku, jest wystarczająco mały, aby załadować obok rurociągu ASR + TTS na sprzęcie phone- class i służyć jako "router", który zmienia wymowę użytkownika w infocation narzędzia.
FunctionGemma szczeliny do agentów głosowych, gdziekolwiek inaczej nazwać host LLM do routingu narzędzi. Gramatyka jest ścisła przez konstrukcję, więc można wrócić parsed FunctionCall obiekty bezpośrednio - brak naprawy JSON, brak trybu systemowego princting.
Platformy
| Platforma | Format | Rozmiar | HuggingFace |
|---|---|---|---|
| Apple (macOS / iOS) | CoreML | ~ 283 MB | aufklarer / FunctionGemma-270M-CoreML |
| Android (i Linux / Windows przez rdzeń mowy) | LiteRT- LM | ~ 283 MB | soniqo/FunctionGemma-270M-LiteRT-LM |
Gramatyka
Model jest szkolony do emitowania pojedynczego połączenia (lub sekwencji połączeń) zawiniętego w dwa znaczniki sentinel:
<start_function_call>call:set_timer{"minutes": 5, "label": "tea"}<end_function_call>
SDK przetwarza każde wywołanie do wpisanego FunctionCall(name:, arguments:) wartość. Argumenty są dekodowane jako JSON, więc można je mapować bezpośrednio na Swift Codable lub Kotlin @Serializable klasa danych.
Swift (Apple, CoreML)
Na platformach Apple FunctionGemma jest narażony przez speech-swift jako FunctionGemma klasa. Wczytuje model CoreML z HuggingFace przy pierwszym użyciu i działa 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 model jest narażony przez speech-android jako audio.soniqo.speech.llm.FunctionGemma. Jest to bring- your-own-runtime adapter: zapewnia LiteRtLmRuntime instance (domyślny statek SDK), oraz FunctionGemma obsługuje szybki szablon i gramatykę parsowania.
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"}
}
Dalsze czytanie
- Rdzeń przemowy — C++ silnik, który obsługuje runtime LiteRT- LM i pętlę wywołania funkcji Linux, Windows oraz Android.
- github.com /soniqo/speech-core - rdzeń orchestracji i klej LiteRT- LM, w tym
VoicePipelinepętla wywołania. - github.com /soniqo/speech-swift - Apple SDK z
FunctionGemmaKlasa Swift. - github.com /soniqo/speech-android - Android SDK
audio.soniqo.speech.llm.FunctionGemma. - google / gemma-3-270m - w górę rzeki Gemma 3 270M model bazowy na HuggingFace.