Подготовка и загрузка модели для AI Текста с использованием Ollama
Данная статья описывает процесс подготовки к загрузке новой базовой модели для использования в AI Тексте с движком Ollama.
Поддерживаются модели в формате GGUF, упакованные в архив.
Вы узнаете, как извлечь файл модели из хранилища Ollama, а также получить шаблон и параметры, которые впоследствии можно указать в пользовательском интерфейсе.
Подготовка: Извлечение модели Ollama
Чтобы извлечь модели из хранилища Ollama, выполните шаги, описанные в данном руководстве.
Перед началом убедитесь, что:
- Устройство подключено к интернету
- Установлен
Docker - Установлена утилита
zip
1. Запустите движок Ollama
Для этого выполните команду:
docker run --name ollama_tmp -v ~/ollama_models:/root/.ollama/models -d ollama/ollama:latestПараметр -v используется для маппинга тома: он обеспечивает доступ к файлам модели на вашей машине-хосте.
2. Найдите путь к хранилищу Ollama
Ollama хранит модели в определённой директории: /root/.ollama/models. Эта директория соответствует локальной папке соответствует локальной папке ~/ollama_models на машине-хосте.
Выполните команду, чтобы просмотреть содержимое директории с моделями внутри контейнера:
docker exec -it ollama_tmp ls -la /root/.ollama/modelsПример вывода:
root@abaaab9b1ab8:/root/.ollama/models# ls -la
total 16
drwxr-xr-x 4 root root 4096 Jun 20 09:45 .
drwxr-xr-x 3 root root 4096 Jun 20 09:44 ..
drwxr-xr-x 2 root root 4096 Jun 20 09:46 blobs
drwxr-xr-x 3 root root 4096 Jun 20 09:46 manifests3. Скачайте нужную модель
docker exec -it ollama_tmp ollama pull llama3.14. Найдите нужную модель
Выведите список моделей:
ls -la ~/ollama_models/manifests/registry.ollama.ai/library/Пример вывода:
total 12
drwxr-xr-x 3 root root 4096 Jun 20 09:46 .
drwxr-xr-x 3 root root 4096 Jun 20 09:46 ..
drwxr-xr-x 2 root root 4096 Jun 20 09:46 llama3.1Получите хэш blob’а нужной модели:
cat ~/ollama_models/manifests/registry.ollama.ai/library/llama3.1/latestХэш из этого файла указывает на конкретный blob, в котором хранится модель.
Пример вывода:
{
"config": {
"digest": "sha256:455f34728c9b5dd3376378bfb809ee166c145b0b4c1f1a6feca069055066ef9a",
"mediaType": "application/vnd.docker.container.image.v1+json",
"size": 487
},
"layers": [
{
"digest": "sha256:667b0c1932bc6ffc593ed1d03f895bf2dc8dc6df21db3042284a6f4416b06a29",
"mediaType": "application/vnd.ollama.image.model",
"size": 4920738944
},
{
"digest": "sha256:948af2743fc78a328dcb3b0f5a31b3d75f415840fdb699e8b1235978392ecf85",
"mediaType": "application/vnd.ollama.image.template",
"size": 1481
},
{
"digest": "sha256:0ba8f0e314b4264dfd19df045cde9d4c394a52474bf92ed6a3de22a4ca31a177",
"mediaType": "application/vnd.ollama.image.license",
"size": 12320
},
{
"digest": "sha256:56bb8bd477a519ffa694fc449c2413c6f0e1d3b1c88fa7e3c9d88d3ae49d4dcb",
"mediaType": "application/vnd.ollama.image.params",
"size": 96
}
],
"mediaType": "application/vnd.docker.distribution.manifest.v2+json",
"schemaVersion": 2
}5. Изучите содержимое
После выполнения команды cat, вы получите JSON-структуру.
Нас интересуют следующие слои:
-
шаблон модели:
application/vnd.ollama.image.template. Хэш слоя из примера:sha256:948af2743fc78a328dcb3b0f5a31b3d75f415840fdb699e8b1235978392ecf85. Этот слой может отсутствовать. -
параметры модели:
application/vnd.ollama.image.params. Хэш слоя из примера:sha256:56bb8bd477a519ffa694fc449c2413c6f0e1d3b1c88fa7e3c9d88d3ae49d4dcb. -
модель в формате GGUF:
application/vnd.ollama.image.model. Хэш слоя из примера:sha256:667b0c1932bc6ffc593ed1d03f895bf2dc8dc6df21db3042284a6f4416b06a29.
6. Извлеките шаблон модели
Теперь, зная хэш слоя с параметрами модели, откройте соответствующий blob-файл:
cat ~/ollama_models/blobs/sha256:948af2743fc78a328dcb3b0f5a31b3d75f415840fdb699e8b1235978392ecf85Скопируйте его содержимое в поле Шаблон модели при загрузке модели через интерфейс.
7. Извлеките параметры модели
Снова откройте искомый blob:
cat ~/ollama_models/blobs/sha256:56bb8bd477a519ffa694fc449c2413c6f0e1d3b1c88fa7e3c9d88d3ae49d4dcbТакие параметры, как Размер контекстного окна и Температура, AI Server позволяет указать через пользовательский интерфейс при конфигурировании модели в разделе Машины и при Тестировании соответственно.
Скопируйте параметры, такие как stop-токены, в поле Шаблон модели при загрузке модели через интерфейс.
8. Извлеките файл GGUF
Скопируйте искомый blob:
cp ~/ollama_models/blobs/sha256:667b0c1932bc6ffc593ed1d03f895bf2dc8dc6df21db3042284a6f4416b06a29 ~/llama3.1.gguf9. Проверьте файл
После извлечения модели проверьте её формат. Убедитесь, что это действительно GGUF:
file ~/Downloads/model.ggufВ случае корректного файла, команда должна вернуть следующий (или аналогичный) результат:
model.gguf: GGUF neural network model data (little-endian)В отдельных случаях вывод может быть менее информативным:
/home/ubuntu/llama3.1.gguf: data10. Подготовьте архив с моделью
Для загрузки модели в интерфейс AI Server, она должна быть упакована в .zip-архив. Для этого выполните команду:
zip -0 new-model.zip /home/ubuntu/llama3.1.gguf11. Загрузите модель в AI Server
- Откройте
Настройки>Шаблоны моделей - Нажмите “Добавить шаблон модели”
- Выберите файл
new-model.zip - Укажите
Название - Укажите
Тип проекта:AI Текст - Укажите
Движок:Ollama - Укажите
Шаблон: см. п.3 - Укажите
Параметры: см. п.4 - Нажмите “Сохранить” и дождитесь завершения загрузки
12. Произведите очистку
- Остановите и удалите контейнер:
docker stop ollama_tmp && docker rm ollama_tmp- Удалите том контейнера:
rm -r ~/ollama_models- Удалите файл модели:
rm /home/ubuntu/llama3.1.gguf