Локальные LLM всё доступнее. Gemma 4 в Ollama

от
Soft    llm, gemma 4, ollama, искуственный интеллект, artificial intelligence

Недавно Google выпустил опенсорс LLM модель Gemma 4. Её E2B и E4B варианты не требуют мощного железа, в тестах она держится достаточно хорошо, поддерживает умеет запускать тулы, поэтому поставим её локально и попробуем в качестве чат-бота, распознавателя картинок, а также прикрутим к Claude Code одной командой.

А потянет?Прежде чем начать, разберёмся, потянёт ли вообще железо эту модель? На сайте https://www.canirun.ai/ выберите конфигурацию своего железа и обязательно объём ОЗУ.
Can I run AI locally

Я запускаю Gemma 4 E4B на ноутбуке с RTX 3060 Laptop и 32 Гб ОЗУ, работает хоть и не супербыстро, но достаточно, чтобы не идти заваривать чай каждый раз, когда ждёшь ответа. Да и ОЗУ под IDE и браузер остаётся много.
20260415_223159.png

Ollama
Поставим Ollama с официального сайта https://ollama.com/download или из репозитория дистрибутива (если там есть).

На самом деле локальные модели можно запускать и в LM Studio, и в llama.cpp, но в Ollama намного проще подключить локальную модель к другим приложениям, о чём будет речь дальше.

В зависимости от платформы и типа установки, с Ollama может поставиться CLI и GUI, а может только CLI. Так что дальше я продолжу с CLI версией.
  1. > ollama --version  
  2. ollama version is 0.20.7

Gemma 4
На сайте Ollama есть страница с описанием модели Gemma 4. Там расписано что это за модель, что она может, с какими приложениями можно интегрировать и как, даны советы по использованию и характеристики.

Ставим E4B, если железо потянет:
  1. ollama run gemma4:e4b
или E2B
  1. ollama run gemma4:e2b

Если это первый запуск, модель начнёт скачиваться. После скачивания, появится промпт.
Певрый запуск Gemma
Если не работает, возможно сервер не запущен. Запустим командой ollama serve в отдельной вкладке терминала.

Уже можно что-либо поспрашивать. Модель понимает 140 языков, так что можно писать не только на английском. По-умолчанию включен режим рассуждения (reasoning), он ведётся на английском, так что не пугайтесь.

>>> Здароў, як справы?
Рассуждения
Добра, дзякуй! Усё ў парадку. 😄 А ў цябе? (А ў вас?)

Видно, что модель знает разные варианты, подбирает по тону и определяется с окончательным ответом. Чтобы отключить рассуждения и повысить скорость ответа, введите /set nothink:
>>> /set
Available Commands:
 /set parameter ...     Set a parameter
 /set system <string>   Set system message
 /set history           Enable history
 /set nohistory         Disable history
 /set wordwrap          Enable wordwrap
 /set nowordwrap        Disable wordwrap
 /set format json       Enable JSON mode
 /set noformat          Disable formatting
 /set verbose           Show LLM stats
 /set quiet             Disable LLM stats
 /set think             Enable thinking
 /set nothink           Disable thinking
  
>>> /set nothink
Set 'nothink' mode.

>>> Ես հիանալի եմ։ Ի՞նչ ես անում։
Я — вялікая моўная мадэль, стратэгія, распрацаваная Google DeepMind.

Па сутнасці, я тут, каб да адказваць на пытанні, пісаць разным рэчывам, перакладаць мовы і да дапамагаць з разным па матэрыялах, што мне дадасць.

А што жэ я магу для цябе зрабіць сёння? 😊

Белорусский и армянский понимает, что уже хорошо для переводов.

Распознавание изображений
Можно добавлять изображения, просто вставив полный путь к файлу. Я попробовал на простых скриншотах с текстом. Отлично определяет текст на английском, японском и даже когда на одном скриншоте несколько языков.

С чем модель не справилась, так это с определением точных координат. Я сделал скриншот страницы и попросил найти координаты кнопки входа, регистрации и поиска, а ответ выдать в формате json объекта с полями x, y. С форматом проблем не возникло, но вот точные координаты выдать не смогло.

Затем для контроля попросил найти кнопку Like на скриншоте страницы ютуба, и снова мимо. Что в режиме рассуждения, что без него. Но когда я попросил сказать сколько лайков на странице, Gemma 4 спокойно нашла кнопку, увидела в режиме рассуждения и название видео, и название канала, и кнопку лайка, и что там возле неё и успешно назвала количество лайков.

Вывод: модель справляется с понимаем что перед ней, понимает разные языки, может сразу же перевести текст, но с позиционированием она не поможет, для автоматизации веб-сёрфинга не подойдёт.

Claude Code / Codex / OpenCode
Чат в Ollama это, конечно, хорошо, но хочется и файлы дать поанализировать, и код поредактировать, и тулы повызывать с MCPшками.

Важно: для нормальной работы агентов нужно увеличить размер контекста в настройках (если есть UI Ollama) или задав переменную окружения OLLAMA_CONTEXT_LENGTH и перезапустив сервер:
  1. OLLAMA_CONTEXT_LENGTH=80000

Если вы пользуетесь Claude Code, Codex, OpenCode или Pi, то локальную модель можно добавить, просто запустив что-то из этого:
  1. ollama launch claude
  2. ollama launch codex
  3. ollama launch opencode
  4. ollama launch pi

Если ничего из вышеперечиленного не поставлено, тогда попробуйте Claude Code, и Codex . Первый очень удобен, а во втором иногда тулы работают лучше на локальных моделях. Что самое интересное, в оба можно даже не логиниться. Поставили Claude Code, запускаете:
  1. ollama launch claude

Выбираете gemma 4
20260416_221357.png
И вас приветствует Claude Code с локальной моделью.
Claude Code
То же самое с Codex:
Codex

Агенты
Немного сравнений. Довольно показательно, что на одной и той же модели, результаты могут кардинально отличаться из-за разных контекстов, которые добавляет Claude Code и Codex.

Я специально поставил оба, запустил на одном и том же чистом Rust проекте (без всяких AGENTS.md) и дал пару задач.

What version is the project currently on?
В Claude:
Gemma 4 вызвала git tag и выяснила, что версия 0.9.0.

В Codex:
Модель прочитала файл Cargo.toml и выяснила, что версия проекта 0.9.0.

Считаю, что правильнее в данном случае читать Cargo.toml, потому что гит тегов может и не быть, или там могли быть другие данные.

Вторая задача: посчитать количество тестов в проекте. Для усложнения задачи, проект содержал очевидную ошибку и не компилировался:
  1. match (sx, sy, sw, sh) {                                                  
  2.     (, Some(yy), Some(ww), Some(hh)) => {    
  3.         let x = xx.parse::<u32>().unwrap();
  4.         let y = yy.parse::<u32>().unwrap();

Check the project and tell how many tests it have
В Claude:
Gemma попыталась найти test.rs, затем tests/**/*.rs, затем строчку #[test] в папке src (рекурсивно), не нашла ничего и полезла смотреть *.md файлы. Дальше подытожила, что пробовала то, то и это, но ничего не нашла. Ни слова об ошибке компиляции, ни одной попытки запустить cargo test.
Затраченное время: 1м 29с.

Дальше я подтолкнул: "Maybe run cargo test or something?". Она вызвала, увидела ошибку и спросила нужно ли исправлять. После подтверждения попыталась исправить так:
  1. match (sx, sy, sw, sh) {                                                  
  2.     (_, Some(yy), Some(ww), Some(hh)) => {    
  3.         let x = xx.parse::<u32>().unwrap();

Обновила файл, запустила cargo test ещё раз, получила другую ошибку и начала придумывать уже совсем адовые варианты - переписать match на if...


В Codex:
Gemma посмотрела с чем имеет дело (ls -R), поняла, что это проект на Rust, вызвала cargo test, который упал с ошибкой компиляции, после этого модель попыталась просто поискать #[test], но тоже не нашла. В итоге сказала, что ошибка на такой-то строке и из-за неё точное число тестов сказать не может. Спросила разрешение исправить самой.

Поискала немного по коду, выдала правильный ответ
I generated a patch to fix this by changing the pattern match
 from (, Some(yy), Some(ww), Some(hh)) to (Some(xx), Some(yy), Some(ww), Some(hh))
Но вот патч применить не получилось, вероятно, из-за несовместимости тула. После того как я исправил код, Gemma запустила cargo test и посчитала количество тестов. В целом всё заняло порядка 5 минут.

Вообще, если какой-то тул не работает, это может быть проблемой Ollama. Например, некоторое время Gemma 4 абсолютно не вызывала никаких тулов в Codex, но потом это исправили.

Итог: эта модель способна выполнять задачи, генерировать простые скрипты или небольшой кусок кода. Всё, что сложнее этого - понадобится несколько попыток или лёгкие подталкивания к решению задачи.

VS Code
Локальные модели можно подключать и к редакторам кода. Zed, VS Code и прочие.

  1. ollama launch vscode
20260417_185630.png

Здесь всё то же самое, что и Claude / Codex, простой анализ и чат работают хорошо, а вот на некоторых тулах возникают проблемы.
20260417_192045.png

Зато если нажать Try again или Retry, то результат всё-таки может получиться. Я попросил написать тесты для небольшого скрипта на Python и модель успешно сгенерировала и записала файл на 120 строчек, предложила обновить README,md и добавила туда раздел о том, как запускать тест.ы. За это время было 3 ошибки.

Заключение
Модель хороша в качестве ежедневного помощника в разных задачах и, думаю, для управления другими агентами. Для кода всё-таки лучше поискать более стабильную модель. Так же модели E2B и E4B понимают аудио в формате wav. Но команды на языке, отличном от английского, распознаются с трудом: либо оллама крашится от недостатка памяти (особенно на записях длиннее 30 секунд), либо происходят галлюцинации.
  • +1
  • views 25