Oleksandr Kuzmenko, РедакторОпубліковано 6 хв читанняЗа участі AI · перевірено редактором
TL;DR
- Обмежуйте відповіді моделі одним символом варіанта вибору, щоб звести затримку декодування до нуля.
- Зчитуйте лог-імовірності з API Chat Completions або Responses для отримання чесних імовірнісних оцінок.
- Повторно використовуйте KV-кеш для серії однотокенних запитань до одного й того самого зображення або тексту.
Ключові факти
- Локальна швидкість (RTX 3090)
- ~1.0 FPS (3 запитання на кадр)
- Швидкість OpenAI gpt-6-luna
- ~0.2 FPS
- Розмір ваг моделі
- ~7 ГБ (Gemma 4 12B QAT) + 175 МБ проектор
- Вихідних токенів на відповідь
- 1 токен
Джерело: Ключові факти — Вихідних токенів на відповідь
Джерело: Ключові факти. Вихідних токенів на відповідь: 1 токен. Кожне число скопійоване з історії.
- Вихідних токенів на відповідь1 токен
Ліквідація затримок генерації тексту
Стандартні пайплайни класифікації змушують модель формувати повні речення або валідний JSON, що спричиняє галюцинації, збої парсингу та зайві затримки. Запитуючи у моделі виключно одну літеру варіанта вибору (A, B, C тощо) та витягуючи лог-імовірності токенів, можна розрахувати калібрований розподіл впевненості за один крок інференсу.
# Отримання top_logprobs для однотокенного вибору
prompt = f"State:\n{state}\n\nQuestion: {question}\nOptions:\n{options_block}\nAnswer with the letter of the best option only."Тести Gemma 4 12B на RTX 3090
Патерн протестовано на потоці з вебкамери за допомогою llama.cpp та квантованої моделі Gemma 4 12B QAT (~7 ГБ ваги моделі та ~175 МБ мультимодальний проектор) на відеокарті Nvidia RTX 3090:
- Локальна продуктивність: Досягнуто ~1.0 кадр/с за одночасної оцінки трьох критеріїв на кадр (людина в кадрі, локація, яскравість).
- Хмарний запуск: Запит до OpenAI
gpt-6-lunaзабезпечив лише ~0.2 кадр/с через мережеві затримки на кожне запитання. - Кешування префіксів: Багаторазове опитування того самого зображення утилізує спільний KV-кеш, мінімізуючи обчислювальні витрати.
Відмінності API та нормалізація
Підключення локальних і хмарних ендпоінтів має нюанси. У llama.cpp лог-імовірності отримуються через Chat Completions (top_logprobs), тоді як в OpenAI потрібен ендпоінт Responses із прапорцем include: ["message.output_text.logprobs"]. Отримані значення нормалізуються експоненційним перетворенням у реальні ймовірності.
Спробуй за 2 хвилини
# Fetch Gemma 4 12B QAT model and multimodal projector
curl -fL -o gemma-4-12b-it-qat-q4_0.gguf https://huggingface.co/google/gemma-4-12B-it-qat-q4_0-gguf/resolve/main/gemma-4-12b-it-qat-q4_0.gguf
curl -fL -o mmproj-gemma-4-12b-it-qat-q4_0.gguf https://huggingface.co/google/gemma-4-12B-it-qat-q4_0-gguf/resolve/main/mmproj-gemma-4-12b-it-qat-q4_0.gguf
llama-server -m gemma-4-12b-it-qat-q4_0.gguf --mmproj mmproj-gemma-4-12b-it-qat-q4_0.gguf --port 8060Коли використовувати
- Zero-shot класифікація зображень і документів, де список категорій динамічно змінюється текстом.
- Локальні або прикордонні системи, де потрібні жорсткі ліміти затримок і нульовий ризик галюцинацій.
Коли НЕ варто
- Генерація відкритих текстових відповідей чи складних багатоетапних міркувань.
- Відеопотоки з високим FPS (>30), де обов'язковими є спеціалізовані моделі класу YOLO чи легкі CNN.
Що зробити сьогодні
- Завантажте Gemma 4 12B QAT у форматі GGUF та запустіть llama-server із підтримкою мультимодального проектора.
- Замініть складні JSON-промпти для класифікації на запитання з вибором однієї літери.
- Реалізуйте функцію нормалізації лог-імовірностей для обчислення точних відсотків впевненості моделі.
Назви кроків узяті з блоку «Що зробити сьогодні».
Назви кроків узяті з блоку «Що зробити сьогодні». Завантажте Gemma 4 12B QAT у форматі GGUF та запустіть llama-server із підтримкою мультимодального проектора.. Замініть складні JSON-промпти для класифікації на запитання з вибором однієї літери.. Реалізуйте функцію нормалізації лог-імовірностей для обчислення точних відсотків впевненості моделі.
- Завантажте Gemma 4 12B QAT у форматі GGUF та запустіть llama-server із підтримкою мультимодального проектора.
- Замініть складні JSON-промпти для класифікації на запитання з вибором однієї літери.
- Реалізуйте функцію нормалізації лог-імовірностей для обчислення точних відсотків впевненості моделі.
Що каже спільнота
providers could subsidize the cost of cached input tokens to virtually zero if they would allow for a more flexible API... Most of the cost is the infrastructure around keeping KV caches
I've created a Jev wrapper so that it can work via any OpenAI-compatible endpoints
