posts: selfhosted_llm: update anchors

This commit is contained in:
He4eT 2026-03-29 21:37:13 +02:00
commit fab4cdf835

View file

@ -43,9 +43,9 @@ description: 'Персональные LLM в docker-контейнере на
---
<div id='setup'></div>
## Установка и&nbsp;настройка
<h2 id='setup'>
Установка и&nbsp;настройка
</h2>
Существует несколько продуктов, которые стараются избавить пользователя от&nbsp;головной боли и&nbsp;возни с&nbsp;инфраструктурой. Мне понятнее всего оказался проект [Ollama](https://ollama.ai/), с&nbsp;ним мы&nbsp;и&nbsp;будем экспериментировать.
@ -53,9 +53,9 @@ description: 'Персональные LLM в docker-контейнере на
Использование docker-контейнеров, к&nbsp;сожалению, слегка усложняет взаимодействие с&nbsp;Ollama, так что большая часть текста и&nbsp;кода в&nbsp;этом посте посвящены решению проблем, которые, по&nbsp;сути, я&nbsp;придумал себе сам.
<div id='setup-ollama'></div>
### Установка Ollama
<h3 id='setup-ollama'>
Установка Ollama
</h3>
Для создания и&nbsp;первого запуска контейнера нужно выполнить команду:
```
@ -72,9 +72,9 @@ docker stop ollama
Контейнер предоставляет доступ к&nbsp;[Ollama API](https://github.com/jmorganca/ollama/blob/main/docs/api.md) на&nbsp;11434&nbsp;порту, а&nbsp;также позволяет устанавливать и&nbsp;общаться с&nbsp;установленными LLM через терминал.
<div id='setup-model'></div>
### Загрузка модели и&nbsp;диалог с&nbsp;ней
<h3 id='setup-model'>
Загрузка модели и&nbsp;диалог с&nbsp;ней
</h3>
Ollama позволяет запускать любые GGUF, PyTorch или Safetensors модели (что&nbsp;бы это ни&nbsp;значило), но&nbsp;самый простой путь&nbsp;— загрузка моделей из&nbsp;специальной [библиотеки](https://ollama.ai/library).
@ -98,9 +98,9 @@ alias summon='clear && docker exec -it ollama ollama run'
summonable
summon phi
```
<div id='custom-model'></div>
### Кастомные модели и&nbsp;их&nbsp;тонкая настройка
<h3 id='custom-model'>
Кастомные модели и&nbsp;их&nbsp;тонкая настройка
</h3>
Ollama позволяет на&nbsp;основе существующих создавать производные модели с&nbsp;заранее определёнными инструкциями или параметрами. Для этого нужно создать специальный файл, в&nbsp;котором указана родительская модель и&nbsp;определены желаемые значения параметров. Подробнее о&nbsp;формате этих файлов можно прочесть в&nbsp;документации: [Modelfile](https://github.com/jmorganca/ollama/blob/main/docs/modelfile.md).
@ -170,9 +170,9 @@ docker exec -it ollama ollama create $modelName -f $targetPath
summon EnglishTeacher
```
<div id='usage'></div>
## Использование
<h2 id='usage'>
Использование
</h2>
Разговоры с&nbsp;галлюцинирующим искусственным интеллектом в&nbsp;терминале&nbsp;— это, конечно, волшебно, но&nbsp;потенциал больших языковых моделeй по-настоящему раскрывается, когда они начинают портить данные в&nbsp;соседних приложениях!
@ -180,9 +180,9 @@ summon EnglishTeacher
Не&nbsp;ручаюсь за&nbsp;весь список, но&nbsp;расскажу про то, с&nbsp;чем экспериментировал сам.
<div id='fake-open-ai'></div>
### Мимикрия под API от&nbsp;OpenAI
<h3 id='fake-open-ai'>
Мимикрия под API от&nbsp;OpenAI
</h3>
> В&nbsp;какой-то момент [в&nbsp;Ollama появилась поддержка совместимости с&nbsp;форматом API от&nbsp;OpenAI](https://ollama.com/blog/openai-compatibility) и&nbsp;этот раздел потерял актуальность.
@ -224,9 +224,9 @@ docker run --net=host diy-ollama-proxy
```
После запуска вы&nbsp;получите API, который совместим с&nbsp;API от&nbsp;OpenAI и&nbsp;доступен по&nbsp;адресу `http://localhost:8000/`.
<div id='ollama-nvim'></div>
### Интеграция с&nbsp;NeoVim
<h3 id='ollama-nvim'>
Интеграция с&nbsp;NeoVim
</h3>
Языковые модели отлично умеют взаимодействовать с&nbsp;текстом, так что использование их&nbsp;в&nbsp;текстовом редакторе кажется разумной идеей.
@ -295,9 +295,9 @@ docker run --net=host diy-ollama-proxy
Возможность добавления кастомных промптов позволяет в&nbsp;будущем реализовать новые сценарии или вынести повторяющиеся действия в&nbsp;отдельный пункт меню или даже на&nbsp;отдельный шорткат.
<div id='update-delete'></div>
## Обновление и&nbsp;удаление
<h2 id='update-delete'>
Обновление и&nbsp;удаление
</h2>
Для обновления и&nbsp;удаления моделей можно использовать команды `pull` и&nbsp;`rm`:
```
@ -307,9 +307,9 @@ docker exec -it ollama ollama rm mistral
Я&nbsp;знаю, что для обновления и&nbsp;удаления docker-образов и&nbsp;docker-контейнеров тоже есть специальные команды (это тоже `pull` и&nbsp;`rm`), но&nbsp;каждый раз ленюсь в&nbsp;этом разобраться, просто сношу всё с&nbsp;помощью утилиты [sen](https://github.com/TomasTomecek/sen) и&nbsp;разворачиваю нужное заново.
<div id='performance'></div>
## Производительность
<h2 id='performance'>
Производительность
</h2>
Для эксплуатации LLM требуется гораздо меньше ресурсов, чем для её&nbsp;обучения. Запустить 7b-модель средней тупости можно практически на&nbsp;любом CPU и&nbsp;8&nbsp;GB&nbsp;RAM, но&nbsp;нагрузка на&nbsp;систему и&nbsp;скорость генерации ответов часто будут далеки от&nbsp;комфортных значений.
@ -319,9 +319,9 @@ docker exec -it ollama ollama rm mistral
Неприятным открытием стало то, что docker-версия Ollama на&nbsp;MacOS выполняется заметно медленнее (от&nbsp;3&nbsp;до&nbsp;5&nbsp;раз, если верить ощущениям), чем нативная. Возможно, всё дело в&nbsp;том, что я&nbsp;как-то неправильно настроил docker или приложение в&nbsp;контейнере нужно запускать с&nbsp;какими-нибудь специальными флагами для максимальной утилизации ресурсов. В&nbsp;любом случае, к&nbsp;порядку на&nbsp;этом ноутбуке я&nbsp;отношусь гораздо менее трепетно, поэтому просто установил и&nbsp;использую приложение с&nbsp;сайта Ollama.
<div id='why'></div>
## Зачем всё это нужно?
<h2 id='why'>
Зачем всё это нужно?
</h2>
Конечно, ChatGPT умнее и&nbsp;умеет из&nbsp;коробки гораздо больше.<br>
Конечно, ChatGPT требует меньше телодвижений для использования.<br>