Text Generation
Transformers
ONNX
Safetensors
GGUF
Ukrainian
gemma3_text
text-normalization
tts
ukrainian
gemma3
conversational
text-generation-inference
Instructions to use skypro1111/gemma-3-270m-uk-verbalizer with libraries, inference providers, notebooks, and local apps. Follow these links to get started.
- Libraries
- Transformers
How to use skypro1111/gemma-3-270m-uk-verbalizer with Transformers:
# Use a pipeline as a high-level helper from transformers import pipeline pipe = pipeline("text-generation", model="skypro1111/gemma-3-270m-uk-verbalizer") messages = [ {"role": "user", "content": "Who are you?"}, ] pipe(messages)# pip install -U transformers accelerate # Load model directly from transformers import AutoTokenizer, AutoModelForCausalLM tokenizer = AutoTokenizer.from_pretrained("skypro1111/gemma-3-270m-uk-verbalizer") model = AutoModelForCausalLM.from_pretrained("skypro1111/gemma-3-270m-uk-verbalizer", device_map="auto") messages = [ {"role": "user", "content": "Who are you?"}, ] inputs = tokenizer.apply_chat_template( messages, add_generation_prompt=True, tokenize=True, return_dict=True, return_tensors="pt", ).to(model.device) outputs = model.generate(**inputs, max_new_tokens=256) print(tokenizer.decode(outputs[0][inputs["input_ids"].shape[-1]:])) - Notebooks
- Google Colab
- Kaggle
- Local Apps Settings
- llama.cpp
How to use skypro1111/gemma-3-270m-uk-verbalizer with llama.cpp:
Install (macOS, Linux)
curl -LsSf https://llama.app/install.sh | sh # Start a local OpenAI-compatible server with a web UI: llama serve -hf skypro1111/gemma-3-270m-uk-verbalizer:F16 # Run inference directly in the terminal: llama cli -hf skypro1111/gemma-3-270m-uk-verbalizer:F16
Install from WinGet (Windows)
winget install llama.cpp # Start a local OpenAI-compatible server with a web UI: llama serve -hf skypro1111/gemma-3-270m-uk-verbalizer:F16 # Run inference directly in the terminal: llama cli -hf skypro1111/gemma-3-270m-uk-verbalizer:F16
Use pre-built binary
# Download pre-built binary from: # https://github.com/ggerganov/llama.cpp/releases # Start a local OpenAI-compatible server with a web UI: ./llama-server -hf skypro1111/gemma-3-270m-uk-verbalizer:F16 # Run inference directly in the terminal: ./llama-cli -hf skypro1111/gemma-3-270m-uk-verbalizer:F16
Build from source code
git clone https://github.com/ggerganov/llama.cpp.git cd llama.cpp cmake -B build cmake --build build -j --target llama-server llama-cli # Start a local OpenAI-compatible server with a web UI: ./build/bin/llama-server -hf skypro1111/gemma-3-270m-uk-verbalizer:F16 # Run inference directly in the terminal: ./build/bin/llama-cli -hf skypro1111/gemma-3-270m-uk-verbalizer:F16
Use Docker
docker model run hf.co/skypro1111/gemma-3-270m-uk-verbalizer:F16
- LM Studio
- Jan
- vLLM
How to use skypro1111/gemma-3-270m-uk-verbalizer with vLLM:
Install from pip and serve model
# Install vLLM from pip: pip install vllm # Start the vLLM server: vllm serve "skypro1111/gemma-3-270m-uk-verbalizer" # Call the server using curl (OpenAI-compatible API): curl -X POST "http://localhost:8000/v1/chat/completions" \ -H "Content-Type: application/json" \ --data '{ "model": "skypro1111/gemma-3-270m-uk-verbalizer", "messages": [ { "role": "user", "content": "What is the capital of France?" } ] }'Use Docker
docker model run hf.co/skypro1111/gemma-3-270m-uk-verbalizer:F16
- SGLang
How to use skypro1111/gemma-3-270m-uk-verbalizer with SGLang:
Install from pip and serve model
# Install SGLang from pip: pip install sglang # Start the SGLang server: python3 -m sglang.launch_server \ --model-path "skypro1111/gemma-3-270m-uk-verbalizer" \ --host 0.0.0.0 \ --port 30000 # Call the server using curl (OpenAI-compatible API): curl -X POST "http://localhost:30000/v1/chat/completions" \ -H "Content-Type: application/json" \ --data '{ "model": "skypro1111/gemma-3-270m-uk-verbalizer", "messages": [ { "role": "user", "content": "What is the capital of France?" } ] }'Use Docker images
docker run --gpus all \ --shm-size 32g \ -p 30000:30000 \ -v ~/.cache/huggingface:/root/.cache/huggingface \ --env "HF_TOKEN=<secret>" \ --ipc=host \ lmsysorg/sglang:latest \ python3 -m sglang.launch_server \ --model-path "skypro1111/gemma-3-270m-uk-verbalizer" \ --host 0.0.0.0 \ --port 30000 # Call the server using curl (OpenAI-compatible API): curl -X POST "http://localhost:30000/v1/chat/completions" \ -H "Content-Type: application/json" \ --data '{ "model": "skypro1111/gemma-3-270m-uk-verbalizer", "messages": [ { "role": "user", "content": "What is the capital of France?" } ] }' - Ollama
How to use skypro1111/gemma-3-270m-uk-verbalizer with Ollama:
ollama run hf.co/skypro1111/gemma-3-270m-uk-verbalizer:F16
- Unsloth Desktop
- Docker Model Runner
How to use skypro1111/gemma-3-270m-uk-verbalizer with Docker Model Runner:
docker model run hf.co/skypro1111/gemma-3-270m-uk-verbalizer:F16
- Lemonade
How to use skypro1111/gemma-3-270m-uk-verbalizer with Lemonade:
Pull the model
# Download Lemonade from https://lemonade-server.ai/ lemonade pull skypro1111/gemma-3-270m-uk-verbalizer:F16
Run and chat with the model
lemonade run user.gemma-3-270m-uk-verbalizer-F16
List all available models
lemonade list
- Atomic Chat
Download digit_router.py from skypro1111/gemma-3-270m-uk-verbalizer: direct link, hf CLI and curl.
- Browser
- Download file 4.9 kB
-
https://huggingface.co/skypro1111/gemma-3-270m-uk-verbalizer/resolve/main/digit_router.py
- Command line
-
hf download hf://skypro1111/gemma-3-270m-uk-verbalizer/digit_router.py
-
curl -L -o digit_router.py https://huggingface.co/skypro1111/gemma-3-270m-uk-verbalizer/resolve/main/digit_router.py
4.9 kB
| # -*- coding: utf-8 -*- | |
| """Детермінований роутер: голий рядок цифр -> читання ПО ЦИФРІ, без моделі. | |
| Навіщо коду, а не даними: поцифрове читання вимагає ТОЧНОГО збереження | |
| кількості цифр, а модель саме цього не вміє — виміряно на v42: | |
| «Код 0000.» -> «нуль нуль нуль» (3 з 4) | |
| «Код 000000.» -> «нуль нуль нуль нуль» (4 з 6) | |
| Навчити її поцифровому читанню = успадкувати цей баг тихо й на довгих ID. | |
| Тут кількість гарантована кодом. | |
| Спрацьовує ЛИШЕ якщо ВЕСЬ вхід — суцільні цифри від MIN_DIGITS знаків. | |
| Не спрацьовує: | |
| * якщо є роздільники («10 000 001» — пробіл є сигналом «це кількість»); | |
| * якщо число всередині речення (там модель читає кількістю, 17/19 правильно); | |
| * якщо цифр менше за поріг («42», «2026» модель читає правильно). | |
| """ | |
| import re | |
| MIN_DIGITS = 7 | |
| DIGIT = {"0": "нуль", "1": "один", "2": "два", "3": "три", "4": "чотири", | |
| "5": "п'ять", "6": "шість", "7": "сім", "8": "вісім", "9": "дев'ять"} | |
| _BARE = re.compile(r"\A\s*(\d+)\s*\Z") | |
| def match_bare_digits(text: str): | |
| """рядок цифр, якщо вхід — голе число, яке треба читати по цифрі, інакше None. | |
| Два випадки: | |
| * від MIN_DIGITS знаків — довгий рядок без контексту це ідентифікатор; | |
| * ПРОВІДНИЙ НУЛЬ за будь-якої довжини («007», «0000») — провідний нуль | |
| означає, що це не кількість; заразом лікує серії нулів, де модель | |
| губила цифри («000000» -> лише п'ять «нуль»). | |
| """ | |
| m = _BARE.match(text or "") | |
| if not m: | |
| return None | |
| digits = m.group(1) | |
| if len(digits) >= MIN_DIGITS: | |
| return digits | |
| if len(digits) >= 2 and digits[0] == "0": | |
| return digits | |
| return None | |
| def spell_digits(digits: str) -> str: | |
| return " ".join(DIGIT[d] for d in digits) | |
| def route(text: str): | |
| """(handled, output). handled=False -> віддати моделі як є.""" | |
| d = match_bare_digits(text) | |
| if d is None: | |
| return False, None | |
| return True, spell_digits(d) | |
| # -------------------------------------------------------------------------- | |
| if __name__ == "__main__": | |
| CASES = [ | |
| # (вхід, очікується_перехоплення, очікуваний_вихід_або_None) | |
| ("12345678", True, "один два три чотири п'ять шість сім вісім"), | |
| ("10000001", True, "один нуль нуль нуль нуль нуль нуль один"), | |
| ("000000", True, "нуль нуль нуль нуль нуль нуль"), # провідний нуль | |
| ("0000000", True, "нуль нуль нуль нуль нуль нуль нуль"), | |
| ("123456789012", True, None), # 12 цифр: поза межами рушія, роутер тягне | |
| (" 918273645 ", True, None), # пробіли по краях не заважають | |
| ("42", False, None), | |
| ("007", True, "нуль нуль сім"), | |
| ("0000", True, "нуль нуль нуль нуль"), | |
| ("2026", False, None), | |
| ("10 000 001", False, None), # роздільники -> кількість | |
| ("0800 500 000", False, None), # телефон -> наявна конвенція | |
| ("У звіті вказано число 12345678.", False, None), # у реченні -> кількість | |
| ("12345678.", False, None), # крапка = вже не голе число | |
| ("№1024", False, None), | |
| ("", False, None), | |
| ] | |
| bad = 0 | |
| for text, want_handled, want_out in CASES: | |
| handled, out = route(text) | |
| ok = handled == want_handled and (want_out is None or out == want_out) | |
| bad += not ok | |
| print(f" [{'OK ' if ok else 'FAIL'}] {text!r:34} -> handled={handled} {out or ''}") | |
| # інваріант: кількість слів завжди дорівнює кількості цифр | |
| for n in ("0000000", "1234567890", "9" * 20, "1000000000"): | |
| assert len(spell_digits(n).split()) == len(n), n | |
| print(f"\nінваріант «слів = цифр» тримається") | |
| print("ПРОВАЛЕНО" if bad else "ВСІ ТЕСТИ ОК") | |