Після успіху ChatGPT ледь не кожен день ви можете почути новину про AI, чи Штучний Інтелект (ШІ) українською. Щось з цього буде корисним, а щось не дуже, щось вартує свої грошей, а щось просто виманювання грошей. Звісно тема ШІ не могла обійти стороною open source ентузіастів, тому в цій статті ми розбиремось, як за допомогою базових знань роботи з компʼютером і декількох консольних команд отримати свою власну версію ChatGPT.

LLaMA

LLaMA або ж Large Language Model Meta AI – це відкрита модель від META (ex Facebook), яку вони тренують і викладають результати у відкритий доступ, якщо ви не плануєте продавати цю LLM на мілліони долларів, то вони буде повністью безкоштовна у використанні, особливо, якщо ми говоримо про приватне використання. За 17 місяців існування цього проєту МЕТА випустила вже декілька покращених версій і остання на момент написання цього допису вийшла під номером 3.1. Саме ця модель, або ж її похідні і стануть серцем і мозком нашого невеликого проєкту.

Ми скачаємо все що треба буде від llama вже у веб інтерфейсі, то ж перейдемо до наступного розділу.

oLLaMA

Звісно мати готову модель це добре, але як її використати? Все вірно, вже все придумали і зробили за нас, а саме проєкт ollama, який дозволяє дуже просто скачувати, оновлювати та запускати моделі не тільки від МЕТА, але і інших провайдерів.

Все що треба нам зараз зробити, це перейти на офіційний сайт проєкту і скачати потрібну версію для операційної системи, а далі пройти звичний процес встановлення, як і будь якої іншої утіліти.

Насправді вже зараз можна використавши у консолі команду ollama скачати свою модель і почати спілкуваня, але ми ж хочемо досвід, як зі славнозвісним GhatGPT, то ж поки з цим кроком ми теж впорались.

Open WebUi

Саме Open WebUi і допоможе нам склєїти наш досвід у суцільне ціле, бо вони описують свій проєкт, як персональний інтерфейс для ШІ, який адаптується під ваші потреби і працює повністью оффлайн від початку.

Насправді є багато варіантів, як його запустити локально, але ми підемо за шляхом найменшого супротиву просто запустивши це все через Docker. Для тих хто не має досвіду роботи з ним, я опишу окремо процес встановлення.

Припустимо, що Docker у вас вже встановлений, то ж все що нам треба зробити, це запустити ось цю команду з офіційної документації:

docker run -d -p 3000:8080 --add-host=host.docker.internal:host-gateway -v open-webui:/app/backend/data --name open-webui --restart always ghcr.io/open-webui/open-webui:main

Після цього Docker скачає все необхідне і запустить контейнер в якому буде вже все налаштоване. Все що треба, це перейти за посиланням http://localhost:3000 і пройти локальну реєстрацію вашого адмін користувача.

Далі останній крок перед самим використання Open WebUi треба перейти http://localhost:3000/admin/settings/ і у вкладці Моделі згідно інструкції скачати потрібну модель і у нашому випадку це буде llama3.1:8b. Чекаємо на завершення завантаженні і ми впорались. Ваш персональний чат готовий до використання.

Docker

Для реалізації цього проєкту вам не потрібно нічого окрім як пройти за посиланням на сторінку Docker Desktop і скачати відповідну версію для вашої ОС. Після проходження процесу установки, треба лише запустити програму, все інше буде зроблено через команду з поперднього кроку.

Заключні думки

На будь якому сучасному залізі все це буде працювати доволі швидко. Головне не скачуйте завеликі моделі, бо вони не розраховані на персональні компʼютери.

По ідеї, все що вам треба щоб воно працювало, це просто тримати запущеним Docker Desktop та ollama, при чому контейнер повинен завантажуватись атовоматично після запуску Docker.

Якщо у вас є жага до експерементів, то дослідіть список моделей на сайті oLLaMA і знайдіть версію саме для ваших потреб, як от codellama для програмістів, або ж версію LLaMA без цензури. По факту ви обмежені, лиши місцем на вашому компʼютері і його потужністью.

Також, ви можете задеплоїти цей сетап у свою хмару, що б мати доступ до цього функціоналу з будь якого пристрою, або ж, якщо ви хочете поділитись з друзями і родичами.

На останок, спробуйте алтернативи Docker, як от OrbStack щоб менше навантажувати своє залізо під час очікування.

Буду радий поспілкуватись в коментарях і почути що досягли ви.