Как приручить нейросеть

Привет, Хабр!

В последнее время проблема утечки информации все чаще освещается в медиа. Хватает новостей о том, что утекали даже ключи и пользовательские данные. Да чего только не было! Неудивительно, что многие компании, особенно с развитием и активным использованием ИИ-технологий, чат-ботов и т.д., обеспокоены своей кибербезопасностью.

b5386aa37936369a1fee214643c83972.png

Например, OpenAI открыто заявляла, что для улучшения качества ответов в своей системе они используют истории запросов, то есть все то, что когда-либо писали их пользователи. Поэтому некоторые организации строго запрещают применять ChatGPT и скидывать туда фрагменты своей документации, исходного кода и т.д. Но подобные сервисы слишком уж привлекательны, чтобы полностью их игнорировать. Ведь они действительно могут принести пользу, если применять их правильно и, самое главное, четко понимать, для чего вам это нужно.

На выручку, кстати, способны прийти локальные модели. Их можно запустить на домашней машине, если производительность позволяет, или на сервере компании.

56957e052c72ad7c0d3085cfca46961d.png

Обратите внимание, что нейронки гораздо быстрее работают на CUDA-ядрах, так что мощная видеокарта приветствуется.

В открытом доступе есть куча моделей, которые уже обучали те или иные компании и даже просто люди. Можно воспользоваться любой из них, дообучить, так как все они построены на открытых исходных данных (да, Open Source из мира нейросетей), и заточить уже под свои нужды.

Например, можно «скормить» такой модели всю документацию своего проекта. Представим, что у вас есть большая база данных в Confluence или YouTrack. Вам достаточно ее экспортировать и избавиться от всего лишнего (особенно это касается разметки, чтобы модель лучше «съела» информацию), а потом спокойно задавать вопросы по содержанию.

Из такого разряда стоит попробовать PrivateGPT. По документации можно установить все без особых проблем. У вас будет возможность закинуть в нее какие-нибудь текстовые файлы и посмотреть, как модель ответит на вопросы по ним. Один момент: автор рекомендует использовать модель Mistral. Она, конечно, хороша, но с русским языком работает крайне сомнительно, так что советую посмотреть в сторону модифицированной версии — Saiga Mistral.

9789cda817e12fa37e844db3378fee43.png

Конечно, в ней есть огрехи по сравнению с ChatGPT, но все равно это хороший выход для решения несложных локальных проблем и примитивных задач. Например, это могло бы принести пользу в процессе онбординга новых сотрудников, когда не хочется перелопачивать большое количество скучной документации и доставать коллег бесконечными банальными вопросами по рабочим моментам.

Ну, а теперь вкратце расскажу, на что обратить внимание при выборе модели. Перво-наперво узнайте, на чем она специализируется (не все модели, как и в примере выше, нормально воспринимают русский язык). Далее посмотрите на свой компьютер. Если в нем не завалялось мощной видеокарты или чипа серии M от Apple, процесс может получиться крайне медленным. Теперь взгляните на название модели. Как правило, там есть аббревиатуры (B7/B13/B15 и т. д.). Это количество параметров в модели. Если у вас, скажем, 16Gb оперативки, то рекомендуется брать модели B7/B13. Если 32Gb, то можно попробовать и B15, и B30.

Зачем это? Чем больше параметров — тем качественней ответ, как правило.

Когда все запустилось, посмотрите, насколько ваша видеокарта грузится, и сколько памяти у нее уходит. Старайтесь не доводить значения до пиковых нагрузок, это снизит скорость работы. Тут, к сожалению, только методом проб и ошибок. Я использую I7 9700k, rtx2080ti и 64Gb оперативки. Этого хватает на B30, но работает довольно медленно.

68b774c4b6ccc9447a68d9c5f9cb12c6.png

Скорее всего, ваша локальная нейронка окажется значительно глупее и будет часто галлюцинировать, в отличие от ChatGPT, ибо ресурсов у людей из Open Source сильно меньше, чем у компании с огромной кучей денег и сотрудников.

А теперь перейдем к более интересным вещам. Есть такая штука, как LM Studio. Выбираете там любую из доступных моделей, скачиваете ее на компьютер и «щупаете». Из очень больших плюсов — там есть возможность открыть API и общаться с ней как с сервером. На основе этого можно написать какое-нибудь приложение или интегрировать ее в флоу. Почитать про модели и вообще ознакомиться с тем, какие существуют, можно тут. Это что-то типа GitHub из мира нейросеток. Там даже есть модели для генерации картинок и еще много всего интересного. В общем, однозначно рекомендую.

3842dba808772d24bf29b65607bba7b7.png

Если же хочется чего-то необычного и еще больше экспериментов, время колотить связки нейросетей и тот самый флоу. Рекомендую что-нибудь типа FlowiseAI. Эта штука позволит без особого труда построить флоу между моделями, используя красивенький UI, а еще ее довольно легко законнектить с LM Studio.

Кроме того, стоит изучить подходы, которые позволят улучшить качество получаемой информации и объединить результаты работы нескольких моделей. Познакомьтесь, например, с алгоритмом BM25. Ну или хотя бы просто загуглите, какие сборки флоу делали другие люди. Короче, крайне рекомендую эту тему к ознакомлению.

58d1630de5114968f05dfcca0022b346.png

Что ж, я рассказал максимально кратко и без особого углубления. Если эта тема вам показалась интересной, предлагаю прочесть и мою следующую статью, которая появится совсем скоро. Из нее вы узнаете, как реализовать довольно неплохого помощника с поиском по базе знаний и добиться максимально качественного ответа.

© Habrahabr.ru