ServerAdmin.ru
31K subscribers
569 photos
46 videos
22 files
2.82K links
Авторская информация о системном администрировании.

Информация о рекламе: @srv_admin_reklama_bot
Автор: @zeroxzed

Второй канал: @srv_admin_live
Сайт: serveradmin.ru

Регистрация в РКН: https://vk.cc/cG1Urj
Download Telegram
​​После праздников надо потихоньку вкатываться в трудовые будни. Чтобы это было проще сделать, можно подключить AI, коих сейчас развелось много на любой вкус. Самый популярный - ChatGPT от OpenAI. Чтобы им пользоваться, нужен VPN и иностранный номер телефона для регистрации и получения токена. Либо какой-то местный сервис, который перепродаёт доступ к OpenAI и другим платным нейросетям.

Есть возможность развернуть открытую нейросеть Ollama с какой-то популярной моделью на своём железе. Решил попробовать эту тему, так как вообще никогда с этим не сталкивался. Было интересно посмотреть, как это работает.

Моделей для нейросетей существует много. Мне было интересно попробовать помощника по консольным командам Linux. Чтобы понять, какая модель лучше для этого подойдёт, посмотрел описание проекта ShellGPT. Он изначально заточен под работу с OpenAI, но как альтернативу даёт возможность использовать локальную Ollama с моделью Mistral. По их мнению она лучше всего подходит для консольных задач.

Разворачиваю Ollama c Mistral на Linux:

# curl https://ollama.ai/install.sh | sh
# ollama pull mistral:7b-instruct

Далее вы можете работать с ollama напрямую через консоль, задавая там вопросы:

# ollama run mistral

либо через API:

# curl -X POST http://localhost:11434/api/generate -d '{
"model": "mistral",
"prompt":"Here is a story about llamas eating grass"
}'

А можно сразу настроить shell-gpt. Устанавливаем его:

# apt install python3-pip
# pip3 install shell-gpt[litellm]


Задаём первый вопрос:

# sgpt --model ollama/mistral:7b-instruct "Who are you?"

Изначально shell-gpt заточен на работу с OpenAI, поэтому попросит ввести токен. Можно ввести любую строку, главное не оставлять её пустой. Получите ошибку. После этого открываете конфиг ~/.config/shell_gpt/.sgptrc и меняете некоторые параметры:

DEFAULT_MODEL=ollama/mistral:7b-instruct
OPENAI_USE_FUNCTIONS=false
USE_LITELLM=true

Остальное можно не трогать. Для комфортной работы с нейросетью требуется современная видеокарта. У меня такой нет, поэтому я тестировал работу на CPU. Для этого выделил отдельный старый компьютер на базе четырёхядерного Intel Core i5-2500K 3.30GHz. Сетка работает крайне медленно.

На вопрос:

# sgpt --model ollama/mistral:7b-instruct "Who are you?"

Она отвечала минут 40-50 и выдала такой ответ:

I'm ShellGPT, your Linux/Debian GNU/Linux 12 (Bookworm) programming and system administration assistant using a Bash shell. I'm here to help    
answer questions, provide guidance on commands, and assist with various tasks related to managing your Debian system. Let me know how I can be of 
service!

В таком режиме её использовать невозможно. Решил попробовать на другом компе, где есть хоть и старая, но видюха NVIDIA GeForce GTX 560 Ti с 2G ОЗУ. Но толку от неё не было, так как слишком старая, нет нужных инструкций. Тем не менее, там было больше оперативы, дела пошли пошустрее. Сетка на вопрос:

start nginx docker container

Ответила подробно и осмысленно минут за 15. Ответ не привожу, он очень длинный.

Решил пойти дальше и попробовать её на свободном стареньком серваке с двумя XEON E5 2643 V4. Дал виртуалке все 24 потока и 24G ОЗУ. Дело ещё бодрее пошло. Уже можно нормально пользоваться, практически в режиме реального времени стал отвечать. Время ответа напрямую зависит от длины текста запроса.

Вообще, раньше не думал, что со своими нейронками можно побаловаться на обычном железе. Причём она в целом нормально отвечала. На все мои простые вопросы по консольным командам ответила адекватно. Результаты были рабочими, хоть и не всегда оптимальными. Пример вопроса:

# sgpt -s "start nginx web server in docker"
```bash
sudo systemctl start docker
sudo docker pull nginx:latest
sudo docker run -d --name mynginx -p 80:80 nginx:latest
```

Если не хочется вспоминать команды и ходить в google, вполне рабочая альтернатива. Оставил на серваке Ollama, буду тестировать дальше.

#AI #chatgpt
Сейчас хайпует тема с китайским ИИ - DeepSeek. Я тоже не удержался, начал использовать. Не нужна ни оплата, ни VPN, что удобно. В целом ничего особенного не увидел. По моим вопросам ChatGPT отвечал лучше.

Смысл хайпа по DeepSeek, как я понял в том, что он:

1️⃣ Open Source. Код открыт. Любой может развернуть и использовать по своему назначению, не отправляя свои вопросы во вне, не обучая чужие модели. Понятно, что большая модель требует очень много ресурсов и слово любой тут условно. Корпорации могут её забирать, использовать у себя, дорабатывать. Очень мощный удар под дых для коммерческих игроков рынка.

2️⃣ Работает быстрее на тех же мощностях, что конкуренты. Заявляют, что разница очень существенная. Не знаю, насколько это правда. Могут и лукавить. Сравнивать модели не такая простая задача. К тому же DeepSeek, насколько я понял, учился с использованием других ИИ, сравнивая свои ответы с ними. За счёт этого быстро развивался и требовал меньше ресурсов. В таком режиме удобно догонять, условно паразитируя на достижениях других, но трудно вырваться вперёд. Собственно, невозможно, не меняя подход.

DeepSeek уже сейчас без проблем можно установить на своё железо с помощью Ollama. Это бесплатная платформа для запуска различных моделей ИИ локально. Она уже поддерживает DeepSeek, так что установка очень простая:

# curl -fsSL https://ollama.com/install.sh | sh
# ollama pull deepseek-r1:1.5b
# ollama run deepseek-r1:1.5b

И можете в консоли с ней общаться или установить какой-то веб интерфейс для привычного чата. Например, Chatbox. Это запуск самой маленькой модели deepseek-r1 1.5b. Она весит 1,1GB на диске и может быть запущена даже на ноутбуках и домашних компах. Полный список моделей и их размеры смотрите на сайте ollama.

Я прочитал всю ветку комментариев на Reddit по этой теме, где люди запускали те или иные модели у себя на компах. Сразу могу сказать, что всё, что вы запустите на одной, даже самой мощной видеокарте, будет так себе по сравнению с доступными публичными моделями. Запустить дома можно модели вплоть до 32b. Дальше уже нужны кластеры видеокарт для нормальной работы.

Я запускать у себя не стал, так как нет свободных серверов для этого. Раньше уже тестировал всё это. Вроде работает, но толку для личного использования нет. Бесплатные доступы к публичным моделям покрывают потребности, а бесплатных лимитов хватает за глаза.

Как вариант использования в личных целях может быть интеграция с сервисом заметок Blinko. Я про него писал. У него одна из фишек - интеграция с ИИ, в том числе запущенного на базе ollama. Возможно для поиска по своим заметкам будет достаточно и самой маленькой модели.

❗️В завершении скажу, что надо учиться работать в связке с ИИ. Я почти каждый день что-то спрашиваю у них по разным темам. Не могу сказать, что прям сильно помогает, но надо вырабатывать навык работы с ними. Уже явно видно, что за этим будущее. Важно только понимать, что они не заменяют людей, а повышают их продуктивность. Появление калькуляторов вместо счёт не заменило бухгалтеров. Их, возможно, даже больше стало. Но научиться пользоваться калькуляторами пришлось всем.

#AI
Парочка наглядных примеров вранья ИИ, в частности ChatGPT. Последнее время регулярно им пользуюсь, практически каждый день, для решения различных задач и поиска информации. Фактически он мне стал заменять поиск. Я не использую каких-то больших промтов для решения масштабных задач. Скорее использую его как базу данных и расширенный поиск. Соответственно и пишу туда примерно то же самое, что я бы спросил у поисковика. Результат получается лучше.

При этом постоянно сталкиваюсь с тем, что ИИ врёт. Просто сходу придумывает факты, решения, ключи к утилитам и т.д. При этом не ставит под сомнение свои ответы, не делает акцент на том, что вот тут я выдумываю и могу быть не прав. Так как я уже специалист с опытом, мне это больших проблем не доставляет.

А как быть тем, кто только учится и использует в качестве помощника ИИ? По идее это делать нельзя, а в процессе обучения и наработки опыта вообще противопоказанно им пользоваться. Нужно всё перепроверять, а это потеря времени. А если ты не специалист, то узнаешь, что надо перепроверять только тогда, когда уже случится ошибка и тебе на неё кто-то укажет.

В примере с mount ошибка сразу видна, а вот в первом неочевидна, так как проверить её весьма затратно. И если перепроверять все результаты, которые выдал ИИ, то окажется, что самому составить список было бы быстрее. И такое случается нередко. Иногда ИИ ходит вокруг да около решения, предлагая тебе нерабочие варианты, а на отладку тратится времени больше, чем если бы ты сам его сделал с помощью подсказок со stackoverflow.

У меня отношение средненькое к современным ИИ. Зачастую не понимаю восторгов в их адрес. Да, пользоваться можно и нужно. Результат хороший в вопросах анализа и обобщения информации, клонировании контента в заданном стиле с заданными правками, создания изображений, инфографики. И очень посредственный в создании чего-то нового. Те же скрипты он пишет, но без отладки и исправления ошибок практически никогда не обходится. И это в довольно простых задачах, которые в общем-то можно сходу нагуглить. Более сложные не пытался решать, так как задач под это нет. Возможно у программистов другие выводы по этой теме.

#AI #chatgpt
Существует удобный и функциональный инструмент для добавления интерактива в shell скрипты под названием Gum. Я посмотрел несколько примеров, в том числе на ютубе, как люди решают те или иные задачи с его помощью. Синтаксис очень простой, особо разбираться не надо. Можно сходу брать и писать скрипт.

Я для примера решил сделать поиск по директории с выводом топ 10 самых больших файлов, из которых можно какие-то выбрать и удалить. Сделал просто в лоб на bash – сформировал список, отправил его в gum и добавил действие для выбранных файлов:

#!/bin/bash

DIR="/tmp/backup"
files=$(find "$DIR" -type f -exec du -b {} + 2>/dev/null | sort -nr | head -n 10 | awk '{print $2}')
selected=$(echo "$files" | gum choose --no-limit)
delete=$(echo -e "$selected")

if [[ -z "$delete" ]]; then
echo "Ничего не выбрано."
exit 0
fi

gum confirm "Удалить выбранные файлы?" &&
echo "$delete" | xargs -d '\n' rm -f && echo "Выбранное удалено."


Понял, что всё получилось и решил как-то это усложнить и сделать более удобным. Дай, думаю, попрошу Chatgpt что-то написать. На самом деле не рассчитывал на успех, так как это не особо популярный инструмент. Откуда ему взять навык написания скриптов для gum? Вряд ли их много в интернете можно найти.

Отправил ему адрес репозитория и попросил сделать 2 списка: один с самыми большими файлами, второй – с самыми старыми. Причём вывести их вместе на один экран, в списках отобразить размер файлов и их даты.

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

Chatgpt меня удивил, когда практически сразу же выдал рабочее решение. Там были ошибки по части bash. Нужно было что-то экранировать, а что-то получше очистить. А вот в части непосредственно Gum он на удивление сразу же всё корректно оформил в соответствии с его возможностями. Я думал, что-то выдумает от себя нерабочее, но нет.

В итоге минут за 15-20 со всеми тестами я получил рабочий вариант скрипта. Реально, был очень удивлён. Не так давно его мучал конфигурациями Nginx, по которым море примеров в сети, но так и не добился того, что хотел. А тут какой-то Gum и сразу всё заработало.

☝️ Какое в итоге резюме. Gum – прикольная штука, которую можно приспособить под какие-то свои задачи. Например, выбор подключений по SSH, работа с ветками GIT, работа со списками файлов и т.д. Тут уж каждому своё. А второй момент – используйте ИИ для своих задач. Где-то он мимо советует, а где-то сразу рабочий вариант даёт. Причём в таких небольших прикладных задачах он нормально работает. На bash пишет уверенно. Есть проблемы, но поправить после него намного проще, чем написать самому, вспомнив все возможности и ключи консольных утилит.

Итоговый скрипт

Использовать:

# ./cleanup-with-gum.sh /mnt/backup

❗️Если заметка вам полезна, не забудьте 👍 и забрать в закладки.

#bash #AI #script