Мрії про локальний штучний інтелект, здійснені в хмарі: Шлях до самостійного інтелекту
Я обожнюю технології, що змінюють наш світ, особливо ті, що дають змогу відчути магію штучного інтелекту. Я багато уваги приділяю темі локального штучного інтелекту на своєму каналі, і мушу сказати, що це найпростіший спосіб запустити та налаштувати свій локальний ІІ, причому безкоштовно! Йдеться про вашу власну екосистему: мовні моделі, бази даних, інструменти автоматизації, локальний веб-пошук та ваш власний користувацький інтерфейс. Я вам покажу, як з цим легко розгорнути локальне ІІ-середовище в хмарі, використовуючи пакет, про який піде мова.
Звісно виникає питання: навіщо взагалі виходити за межі свого комп’ютера? З локальним ІІ, ви не завжди хочете, щоб він працював саме на вашому власному пристрої. Можливо, у вас є команда, яка також хоче користуватися вашою платформою, або ви хочете, щоб вона працювала цілодобово, не перевантажуючи ресурси вашого комп’ютера. Або, можливо, вам потрібне обладнання, якого ви не можете собі дозволити. Хороша новина полягає в тому, що розгортання вашого локального ІІ-стека в хмарі вирішує всі ці проблеми. І це все ще вважається локальним, доки ви керуєте хмарним екземпляром.
У цьому відео я розповім, як крок за кроком взяти готовий пакет для локального ІІ та розгорнути його у вашому власному приватному хмарному екземплярі. Ви зможете насолодитися своєю місцевою ІІ-мрією, не будучи прив’язаним лише до свого комп’ютера. До того ж, завдяки новим доповненням до пакета для локального ІІ, цей процес став простішим, ніж будь-коли. Це дійсно простий, не перевантажений зайвою інформацією посібник. Я навіть розповім про постачальників хмарних послуг та різні вимоги до обладнання, оскільки знаю, що це важливі аспекти. Крім того, я покажу, як налаштувати піддомени для таких сервісів, як n8n та open web UI. Це дійсно повноцінний посібник.
Отже, пакет локального ІІ, посилання на який я розміщу в описі до відео. Його краса в тому, що ми беремо всі місцеві служби ІІ, які ви бачите тут, поєднуємо їх разом таким чином, що їх можна встановити та налаштувати всього за кілька кроків. Я їх окреслив у цьому файлі readme. Все дуже просто, щоб все запрацювало. У попередньому відео на моєму каналі, посилання на яке я залишу тут, я показую, як використовувати ці етапи для налаштування всього на власному комп’ютері. А зараз ми зробимо це в хмарі.
Пакет, який спочатку створила команда n8n, я розширив, щоб включити в нього всі ці сервіси. У нас є n8n, Superbase, Olama, open web UI, Flowise, Quadrant. Нещодавно я додав CRXNG для локального та приватного веб-пошуку, який, до речі, включає Redis для кешування. І що дійсно важливо для цього відео, я додав Caddy. Це керована служба HTTPS та TLS. Саме так ми можемо мати безпечні кінцеві точки для всіх наших служб. Навіть, якщо ви зайдете на, наприклад, yourdomain.com, ви відразу потрапите в екземпляр n8n, захищений в хмарі. Саме це забезпечує Caddy.
Я покажу всі ці етапи та продемонструю, як пройти їх так, щоб вони працювали практично для будь-якої машини Linux, яку ви маєте в хмарі. Не має значення, чи використовуєте ви DigitalOcean, Lambda Labs, AWS або власний сервер. Ви можете виконати ці інструкції. Я роблю їх максимально універсальними, щоб вони підходили для вас незалежно від того, де ви розгортаєте свою локальну ІІ налаштування.
Для цього відео ми використовуватимемо DigitalOcean, щоб розгорнути наш пакет локального ІІ. Вони не спонсори цього відео. Це відео взагалі не має спонсора. Я просто використовую їх сам, і я зазвичай рекомендую їх, тому я й розповідаю про них. На мою думку, у них найкращі варіанти для екземплярів CPU. Якщо ви не запускаєте великі локальні LLM, які потребують виділеного GPU, DigitalOcean дає вам найкращі варіанти, які я бачив.
Також є Vultr, раніше відомий як Linode. Ще один хороший варіант для CPU-екземплярів. Швидко про платформи для GPU-екземплярів. Головне, щоб ви провели власне дослідження на основі ваших потреб та бюджету. Є багато варіантів. Lambda Labs, Vulture, PaperSpace, який є частиною DigitalOcean, але є власною платформою. Якщо ви хочете чогось більшого, звичайно, AWS, Google Cloud та Microsoft Azure. Усі вони нададуть вам GPU-екземпляри, на які можна розгорнути пакет локального ІІ точно так само, як ми будемо робити з DigitalOcean.
Є лише кілька платформ, які не працюють найкраще, і я швидко їх розгляну. Хочу переконатися, що я все охоплюю, щоб ви не потрапили на платформу, яка просто не працює. Tensor do – одна з них. Це чудова платформа для дешевих GPU, але вони не дозволяють відкривати усі порти, які потрібні пакету локального ІІ. Є такі платформи, як RunPod та Novita, які також чудові, але вони розгортають усе як контейнери. Оскільки ви не можете досить легко запускати контейнери в контейнерах, розгортання пакету локального ІІ в одному з них потребує набагато більше роботи. Ось чому я зупиняюся на DigitalOcean. Вони також пропонують дроплети GPU, якщо ви хочете заплатити більше, щоб отримати щось дійсно потужне для ваших локальних LLM.
Тепер перейдемо до створення екземпляра. У мене є новий проект, налаштований в DigitalOcean. Я збираюся натиснути кнопку Create та вибирати Droplets. Щоб тримати витрати низькими для цієї демонстрації, я створюю CPU-екземпляр, тобто без виділеного GPU. Я виберу свій регіон, прокручу вниз і виберу цей екземпляр за 42 долари на місяць. Ми отримаємо 8 ГБ оперативної пам’яті та два процесори. Цього достатньо для всього пакету локального ІІ, якщо ви хочете запускати великі локальні LLM.
Якщо ви хочете запустити будь-які LLM, які більші, ніж сім чи вісім мільярдів параметрів, вам знадобиться виділений GPU, і це коштуватиме вам набагато дорожче. Але це необхідно, якщо ви хочете використовувати більші LLM, такі як 14, 32 або 70 мільярдів параметрів. Але багато людей обирають CPU-екземпляр, оскільки це дешевше, і вони просто розміщують AMA десь в іншому місці або просто використовують API, наприклад, Open Router. Принаймні, решта їхнього стеку все ще є приватними та локальними, і вони нічого не платять за ці послуги, крім машини для їхнього розміщення. Ось що ми збираємося робити тут.
Звичайно, якщо у вас є власний сервер, сподіваюся, у вас є GPU, тож у вас це є. Для нашого образу, я хочу, щоб все було налаштовано з Docker. Ubuntu – найпопулярніший дистрибутив Linux, тож я виберу саме його в Marketplace. Якщо ви дотримуєтесь іншого постачальника, ви зможете знайти новий BTU Linux-екземпляр. Ви можете виконати ті ж команди, що й я. Для аутентифікації ключі SSH є більш безпечними, але щоб було простіше, я налаштую пароль. Я збираюся налаштувати пароль. Для імені хоста я просто напишу YouTube local AI package. Зроблю це офлайн. Натискаю Create Droplet після того, як установлю пароль. Повернуся, коли екземпляр буде готовий.
Отже, можу натиснути на нього. Перейти до Access і запустити консоль Droplet з root, оскільки мені потрібен привілейований доступ для виконання деяких команд. Роблю це як root. Тепер в екземплярі є декілька етапів, які потрібно виконати, перш ніж виконати основні інструкції та завантажити репозиторій пакету локального ІІ. Тут у файлі readme є окремий розділ з додатковими речами, які потрібно зробити під час розгортання в хмарі. Нам потрібно відкрити деякі брандмауери, а потім налаштувати записи DNS. Я проведу вас через це зараз.
По-перше, для брандмауера я вже запустив ці команди в екземплярі. Вам не потрібно дивитися, як я вставляю всі ці команди. Вам потрібно ввімкнути правила брандмауера, а потім відкрити порти для всіх різних служб локального ІІ. Superbase, Flowise та Open Web UI, а також n8n. Якщо ви хочете відкрити CRXNG або olama, ви можете виконати ці команди. Я не роблю цього за замовчуванням, тому що CRXNG та AMA не захищені паролем, як інші наші сервіси. Їх просто буде видно для всіх. Зазвичай я їх не відкриваю, і порти не відкриваю. Інші служби локального ІІ в екземплярі мають доступ, оскільки все працює через Local Host, але ззовні та доступом з Інтернету ви не зможете користуватися CRXNG або AMA.
Після того, як ви налаштували всі правила брандмауера, просто запустіть ufw reload. Тоді всі ці правила набудуть чинності. Пам’ятайте, що для всього цього вам потрібен привілейований доступ. Це все для брандмауерів. Тепер нам потрібно налаштувати записи DNS, і це буде так само незалежно від вашого постачальника DNS. Я використовую Hostinger. Це не спонсорство, просто я використовую його для DNS. Вам потрібно зайти в DigitalOcean, знайти свій IPv4 та скопіювати його. Потім ви вставите його в «вказує на», що стосується адреси призначення. Хочемо тип запису А. Для імені це піддомен, який хочемо використовувати. Якщо ми хочемо yt-nn.automator.ai, щоб він вказував на екземпляр n8n у нашому дроплеті DigitalOcean, налаштовуємо це. Вказуємо, що ім’я – yt-nn, це наш піддомен. Додаю цей запис. Натискаю Зберегти та можемо зробити це для всіх інших. Я можу зробити YT superb. Додаю. Далі open web UI. Додаю. Останнє, що ми поки що можемо зробити, це Flowise. Ви можете зробити те саме для CRX, Olama або будь-яких інших служб, які ви можете додати до пакета локального ІІ. Це все для DNS, і це все, що у нас є для додаткових етапів розгортання в хмарі.
Тепер ми можемо перейти до верху та запустити все, що у нас є в основних етапах встановлення. Почну з копіювання команди get clone. Відкриваю екземпляр. Вставляю. Клонуємо репозиторій і змінюємо каталог. Все, що ми бачимо з LS, це те, що ми маємо в корені нашого репозиторію. Ще один крок: оскільки зараз у мене все у філіалі фічей, я повинен змінити свій філіал. Вам цього робити не доведеться, бо до моменту, коли ви будете дивитися це відео, у мене все буде в основному філіалі. Тепер у нас є вся конфігурація для Caddy, про яку я не буду детально розповідати Тут, хочу, щоб цей посібник був лаконічним і стосувався того, що потрібно вам. Можете самі заглибитися, якщо вам цікаво.
Тепер нам потрібно налаштувати змінні середовища. У мене є приклад для всього в цьому файлі. Що нам потрібно зробити, це скопіювати файл “.example”. Збільшу його. Щоб вам було легко бачити. Ми хочемо скопіювати це до нового файлу. Вміст env майже такий самий, як env.example. Використовуємо Nano, щоб його відредагувати. Це передбачає, що у вас вже встановлені Nano, Git та Docker. Я згадую це в readme. Це передумови. Ви можете просто встановити їх на основі вашого дистрибутиву Linux, якщо у вас їх ще немає. Редагуємо цей файл.
У файлі EnV є коментарі, які підказують, які значення обов’язкові, і як налаштувати всі ці змінні. Для n8n це будь-який буквено-цифровий рядок, який ви хочете встановити як щось досить довге, щоб зробити його безпечним. Для секретів Superbase потрібно налаштувати пароль Postgres та дані для входу на інформаційну панель Superbase. До того ж я долучив посилання, які перенесуть вас до посібника Superbase. Це допоможе вам налаштувати секрет JWT, анонімний ключ та ключ ролі служби. Все дуже просто. Ідентифікатор пулу або орендаря можна встановити на будь-яке число, наприклад, 1000. Все просто. Тепер я перейду до налаштування конфігурації Caddy, оскільки це все піддомени.
Покажу вам. Я розкоментую всі піддомени, які ми створили в Hostinger або будь-якому іншому постачальнику DNS. Я не буду коментувати AMA та CRX, оскільки я їх не використовую. Для електронної адреси Let’s Encrypt встановіть її на свою електронну адресу, як-от col.medine@automator.ai. Для імен хостів змініть це на будь-який піддомен, який ви встановили у свого постачальника, та на домен. Наприклад, для n8n це yt-nn.automator.ai. Я зроблю паузу і повернуся, коли налаштую інші. Ось і все. Усі наші піддомени відповідають тому, що ми налаштували у постачальника хмарних послуг. Тепер, щоб зберегти та вийдіть з цього файлу за допомогою Nano, є кілька команд. Спочатку потрібно натиснути Ctrl+X. Далі він спитає, чи хочете ви зберегти. Введіть «Y». Натисніть Enter. Це Ctrl+X, потім Y, потім Enter. Я не буду його друкувати, бо відредагував усі інші секрети. За лаштунками він роздрукує весь EnV. Переконайтеся, що все застосовано. Тепер ми готові запустити цей сценарій, який запустить все з Lock ER.
Повертаємось до readme. Є кілька різних варіантів команди, оскільки є різні профілі. Їх потрібно використовувати залежно від вашого GPU або якщо ви хочете запустити його в режимі CPU. Якщо у вас є хмарний екземпляр з Nvidia GPU, як-от, якщо ви використовуєте Lambda Labs, AWS, Digital Ocean, або GPU-екземпляр, запустіть цю команду, можливо, просто замінивши Python на Python 3. У багатьох дистрибутивах Linux ви повинні зазначити Python 3 для команди. Зараз побачимо це. У нашому випадку, оскільки у нас тільки CPU-екземпляр, я запущу цю команду, щоб запустити екземпляр AMA на своєму процесорі, оскільки у мене немає GPU. Копіюю. Повертаюся сюди. Вставляю. Ви побачите, що пише «Python not found». Зазвичай це просто означає, що потрібно додати “3” в кінці. Вказую Python 3. Запущу.
Зараз він почне процес, де завантажує Superbase. Він запускає контейнери Superbase. Є деякі налаштування за лаштунками, які він налаштовує для CRX. Цей сценарій піклується про багато речей. Ви побачите, як він завантажує та запускає контейнери Superbase. Потім він трохи почекає. Він завантажує та запускає інші контейнери для нашого стеку локального ІІ. Всі вони зібрані в єдиній мережі Docker. Всі контейнери можуть спілкуватися один з одним. Це займе трохи часу, бо деякі з цих контейнерів досить великі. Йому потрібно завантажити модель AMA, імпортувати робочі процеси n тощо. Я зроблю паузу і повернусь, коли це буде готово
Через кілька хвилин у нас працюють усі контейнери. Ваші журнали повинні виглядати приблизно так. З Digital Ocean у мене сталася невеличка проблемка. Саме тому ви бачите якийсь порожній простір, але ваші журнали виглядатимуть приблизно так. Контейнери Superbase завантажено та виконано. Те саме для місцевого ІІ. Для всього, наприклад, n8n, open web UI та Caddy. Щоб побачити всі ваші контейнери, ви можете виконати команду Docker PS. Вона покаже кожен окремий контейнер у стеку. Ви можете переконатися, що всі вони працюють. Якщо ви бачите якісь, які не працюють або перезавантажуються, швидше за все, у вас є якісь проблеми, які потрібно буде розглянути.
Ви також можете виконати Docker logs DF та назву вашого контейнера. Це дасть вам усі журнали для певного контейнера. Ми зараз дивимося на Caddy. -f означає, що буде продовжувати відображати журнали. Кілька команд, щоб допомогти вам керувати вашим стеком. Тепер ми можемо перейти до нашого браузера та перевірити це. Нова вкладка, yt-nn.automator.ai. Ось воно. Ура. У нас є сторінка реєстрації n8n. Можемо ввести yt-superb.automator.ai. Воно перенесе нас на нашу інформаційну панель, де попросить увійти. Можемо ввести yt open web UI. Є. Open web UI працює. Я можу підключитися до нього із зовнішнього браузера на своєму комп’ютері, і це чудово.
Я не буду тут розповідати, як використовувати всі ці різні платформи. На моєму каналі є й інші відео, посилання на які я залишу в описі до цього відео, якщо ви хочете заглибитися в те, як створювати локальних агентів з n8n та Olama. Загалом, ми просто хотіли зосередитися на налаштуванні нашого локального ІІ-стека, що розміщений в хмарі, і ми це зробили.
Найшвидший спосіб розгорнути налаштування локального ІІ в хмарі. Я також планую ще багато чого додати до пакета локального ІІ. Я постійно додаю нові сервіси, покращую роботу та випускаю більше контенту, наприклад, інструкції щодо створення, розгортаючих місцевих ІІ агентів. Якщо вам сподобався цей контент, і ви з нетерпінням чекаєте більшого щодо локального штучного інтелекту та ІІ агентів, я буду дуже вдячний вам за лайк та підписку. До зустрічі в наступному відео!