Нейробомж - или запускаем большие языковые модели на компьютере, найденном на помойке.
В статье рассказывается, как с помощью утилиты ollama запускать нейросети на древнем компьютере.
1488 Words
2026-08-07 18:50 +0300
Постановка задачи
Нейросети - это мощно, модно и молодёжно, но не все знают, с какой стороны к ним подойти, чтобы было и не очень дорого, и чтобы добиться полезного результата. Особенно популярны сейчас большие языковые модели - Large Language Models - LLM, которые можно использовать как собеседников в чате и даже поручать им какие-то задания.
В этой статье я предположу, что главный лирический герой - бомж, который нашёл рядом с помойкой древний компьютер, и решил запустить на нём языковые модели, и сделать с их помощью что-то полезное. В общем, если даже Борода и Сифон могут собрать в подвале небольшую серверную (с питанием от лифта и интернетом через wifi с подобранным паролем - пока я работал в местном интернет провайдере, я был знаком с бомжом-вебмастером-сеошником) для запуска языковых моделей, то и Вы скорее всего сможете.
Я не буду настаивать на безусловной полезности или правильности подхода, описанного в этой статье, возможно я тренируюсь стрелять из красивой внешнекурковой горизонталочки типа ТОЗ-БМ, а в армии мне выдадут АКМ. Поэтому, я просто опишу свой опыт, а выводы о правильности или применимости подхода останутся на совести читателя.
В общем, задача такая
- Запустить современные языковые модели в режиме чата
- Использовать старый компьютер
- Задать нейросети несколько вопросов
- Проанализировать полезность ответов.
- Проанализировать скорость ответа
- Сделать вывод - зачем вообще это нужно?
Материалы и методы
В качестве эксперимента я буду использовать свой старый настольный компьютер. Он сейчас работает как личный почтовый и файловый сервер, VPN, HomeAssistant, торрентокачалка и сервер приложений, на котором под управлением systemd крутятся несколько моих проектов.
Вот характеристики компьютера https://linux-hardware.org/?probe=74bfb7fefa:
8-ми ядерный процессор AMD FX-8370 позволяет рубиться в Left 4 Dead 2 на слабых настройках
Материнская плата - M5A78L-M/USB3 - не устаревающая классика 2011 года, бюджетная платформа формата micro-ATX на базе чипсета AMD 760G с разъемом Socket AM3+ для процессоров AMD FX, Phenom II и Athlon II.
Оперативная память - 2 плашки DDR3 DIMM по 4 ГБ (частота - целых 1066 Мгц!). Обычно половина памяти свободна, её то мы и используем для нейросети!
HDD - есть, и несколько штук.
2 сетевых платы, встроенная и на аплинк, но обычно встроенной в материнскую плату хватит.
Видеокарта - а зачем тебе видеокарта? Встроенная же есть!
SSD - а что это?
Я купил эту зверь-машину где-то в 2014 или 2015 году, и можно предположить, что у кого-то завалялась аналогичная штука в кладовке или гараже, а кто-то может найти нечто похожее рядом с помойкой.
Осторожно - спойлер!
Для экспериментов потребуется гигабайт 30 пустого места на жестком диске!Для полноты картины, я установил на этот агрегат Fedora 43 Server Edition отсюда - https://fedoraproject.org/server/download/ . Монитора нет, и в данном случае он и не нужен, так как у меня есть доступ к консоли, через который я и буду всё настраивать.
База
Обычно, нейросети классифицируются тремя важными параметрами:
- Контекстное окно (context window) - то есть, память на команды и информацию, грубо говоря, сколько символов инструкции и входящих данных может держать в памяти эта языковая модель
- Скорость работы (speed - tokens per second) - токены в секунду. Грубо говоря, с какой скоростью языковая модель будет читать входящую информацию и формировать ответ
- Использование инструментов - может ли языковая модель вызывать через Model Context Protocol внешние ресурсы типа консоли, клиентов базы данных и т.д. для взаимодействия с внешним миром.
В этом исследовании я рассмотрю несколько нейросетей, которые могут быть запущены на моём железе и сравню результаты.
Подготовка - llmfit
Прежде, чем загружать и запускать языковые модели, можно установить утилиту llmfit - со страницы релизов https://github.com/AlexsJones/llmfit/releases
Это TUI приложение извлекает параметры системы (процессор, память и т.д.) и показывает список нейросетей, которые могли бы запуститься на этом железе.
Его можно поместить, допустим, в директорию ~/bin, и запускать через консоль.
Внезапно, какие-то языковые модели даже находятся в статусе fit=perfect - то есть, они должны работать на данном железе с хорошей производительностью:

Поэтому, мной сделан вывод, что на нашем антикварном и винтажном компьютере можно попытаться что-то запустить. Я попробовал загрузить и проверить языковые модели, которые бы влезли целиком в оперативную память устройства (с запасом, то есть не более 4 гб) и могли бы работать на центральном процессоре, без использования видеоплаты (так как её нет).
Делай раз - устаналиваем ollama
Сначала мы установим среду ollama с открытым исходным кодом для выполнения больших языковых моделей (LLM) локально.
Почему я выбрал Ollama? Оно написано на языке программирования Go, и я могу что-то сам подкрутить и изменить внутри неё, если понадобится. Когда-то я патчил Docker и Telegraf, так что это выглядит посильной для меня задачей.
$ sudo dnf install ollama
Потребуется довольно много места на диске (более 8 гбайт), но это терпимо:
vodolaz095@holod:~$ sudo dnf install ollama
[sudo] password for vodolaz095:
Updating and loading repositories:
Repositories loaded.
Package Arch Version Repository Size
Installing:
ollama x86_64 0.9.4-4.fc43 fedora 772.8 MiB
Installing dependencies:
hipblas x86_64 6.4.1-4.fc43 fedora 1.1 MiB
hipcc x86_64 19-14.rocm6.4.2.fc43 fedora 652.9 KiB
rocblas x86_64 6.4.4-1.fc43 updates 4.2 GiB
rocm-clang x86_64 19-14.rocm6.4.2.fc43 fedora 70.2 MiB
rocm-clang-devel x86_64 19-14.rocm6.4.2.fc43 fedora 23.3 MiB
rocm-clang-libs x86_64 19-14.rocm6.4.2.fc43 fedora 98.4 MiB
rocm-clang-runtime-devel x86_64 19-14.rocm6.4.2.fc43 fedora 7.8 MiB
rocm-comgr x86_64 19-14.rocm6.4.2.fc43 fedora 123.9 MiB
rocm-device-libs x86_64 19-14.rocm6.4.2.fc43 fedora 3.2 MiB
rocm-hip x86_64 6.4.2-2.fc43 fedora 24.9 MiB
rocm-libc++ x86_64 19-14.rocm6.4.2.fc43 fedora 1.2 MiB
rocm-libc++-devel x86_64 19-14.rocm6.4.2.fc43 fedora 7.5 MiB
rocm-lld x86_64 19-14.rocm6.4.2.fc43 fedora 5.7 MiB
rocm-llvm x86_64 19-14.rocm6.4.2.fc43 fedora 48.5 MiB
rocm-llvm-devel x86_64 19-14.rocm6.4.2.fc43 fedora 25.3 MiB
rocm-llvm-filesystem x86_64 19-14.rocm6.4.2.fc43 fedora 0.0 B
rocm-llvm-libs x86_64 19-14.rocm6.4.2.fc43 fedora 84.8 MiB
rocm-llvm-static x86_64 19-14.rocm6.4.2.fc43 fedora 1.8 GiB
rocm-runtime x86_64 6.4.2-3.fc43 updates 3.1 MiB
rocm-runtime-devel x86_64 6.4.2-3.fc43 updates 571.4 KiB
rocsolver x86_64 6.4.4-1.fc43 updates 987.9 MiB
zlib-ng-compat-devel x86_64 2.3.3-2.fc43 updates 107.0 KiB
Transaction Summary:
Installing: 23 packages
Total size of inbound packages is 2 GiB. Need to download 2 GiB.
After this operation, 8 GiB extra will be used (install 8 GiB, remove 0 B).
Is this ok [y/N]:
На других системах (Ubuntu, Astra Linux, MacOS) ollama также можно поставить, об этом подробно написано в официальной инструкции. В случае Fedora 43 в официальных репозиториях дистрибутива оказалась довольно современная и рабочая сборка.
Делай два - загружаем модели, задаём ей вопросы
Чтобы большая языковая модель заработала, ollama должна загрузить файл с весами этой модели. Среди довольно большого списка официальных и неофициальных моделей можно найти много чего интересного, но я остановлюсь на тех моделях, которые заработали на моём ретро-компьютере.
Всем моделям я задавал по 4 вопроса и записывал время его выполнения
- Что такое первая производная функции?
- Кратко (не более 300 слов) перескажи сюжет произведения “Непобедимый” Станислава Лема.
- Гвоздь гораздо суше воды. Почему?
- Напиши мне на языке Go пример использования хранимых процедур в redis.
Перед тестированием моделей надо запустить сервис ollama командой ollama start и работать в другом терминале.
В другом терминале я загружаю модель командой типа $ ollama pull qwen2:1.5b, а потом запускаю модель командой вида
ollama run qwen2:1.5b. Когда появится приглашение к диалогу, то я задаю вопросы модели.
Перед каждым вопросом контекст модели очищался с помощью встроенной в ollama команды /clear.
Для всех моделей контекст был ограничен 4078 символами.
В таблицу я пишу краткое описание производительности, полную беседу можно увидеть по ссылке с названием модели.
Результаты тестирования
| Модель | Контекст | Размер | Производительность | Код |
|---|---|---|---|---|
| qwen2:1.5b | 32768 | 934 MB | 89 tok/s | Красивый, но не рабочий |
| qwen2.5-coder:1.5b | 32768 | 986 MB | 79 tok/s | Не совсем то, но почти рабочий |
| qwen2.5-3b | 131072 | 1.9 GB | 40 tok/s | Сильно не то - про Postgresql |
| phi4-mini | 131072 | 2.5 GB | 34 tok/s | Go понимает, lua не знает |
| qwen2.5-coder:7b | 131072 | 4.7 GB | 20 toks/s | Почти то, что нужно |
Из нейросетей хочу отметить qwen2:1.5b - оно честно призналось, что Станислава Лема не читало! А qwen2.5-coder:7b насочинило что-то антисоветское про книгу Лема, но код написало не плохой.
Интеграция Ollama с пользовательскими скриптами
Когда на компьютере запущен Ollama, к его API можно обратиться через curl по HTTP протоколу. Например, сгенерировать ответ по запросу можно так:
$ curl http://localhost:11434/api/generate -d '{ "model": "qwen2:1.5b", "prompt": "Гвоздь гораздо суше воды. Почему?"}'
Вызов дал мне такой ответ (массив чисел в ключе context я сократил):
{
"model": "qwen2:1.5b",
"created_at": "2026-08-08T09:08:37.220298747Z",
"response": "Гвоздь гораздо суше воды, потому что гвоздь состоит из твердых веществ, в то время как вода — это жидкость. Вода содержит больше молекул и больше энергии, чем гвоздь, поэтому она кажется более густой.",
"done": true,
"done_reason": "stop",
"context": [151644,872,198,37114,5474,34287,4824,125191,18671,128749],
"total_duration": 5383471802,
"load_duration": 95379144,
"prompt_eval_count": 21,
"prompt_eval_duration": 76023875,
"eval_count": 65,
"eval_duration": 5211441814
}
А полноценный чат, с сохранением истории переписки в контексте можно сделать так.
Для Go существует официальный пакет для взаимодействия с API который можно добавить в проект так
go get github.com/ollama/ollama/api
Выводы
- Довольно современные языковые модели вполне можно запустить на бюджетном компьютере ~2014 года выпуска.
- Есть модели, которые печатают ответ на скорости живого человека, хотя пишут бред.
- Есть более умные модели, но ответ они пишут медленнее.
- В любом случае нейросети могут убедительно приврать, и их ответы лучше перепроверить.
- Для базового знакомства с нейросетями и языковыми моделями описанный метод подходит, но какого-либо практического применения я на данный момент не нашёл.