AWS: Amazon Q – знайомство, можливості та перші враження

Автор |  08/12/2023
 

В цікаві часи живемо.

Отже, поговоримо про дуже гучний запуск Amazon Q – нової системи від AWS, яка має допомогти нам, інженерам і не тільки, в роботі.

Сам Amazon його називає “AI-powered assistant”, по факту для нас, як інженерів, це просто chatbot, з яким ми можемо поговорити, щоб отримати допомогу у розв’язанні якихось проблем або для отримання рекомендації для налаштування сервісу. Для бізнесу ж він може мабуть багато іншого, але нам він цікавий, як асистент по роботі з AWS.

Під капотом Amazon Q використовує Amazon Bedrock, тож щоб краще розуміти що таке Q – давайте глянемо і на Bedrock.

Amazon Bedrock

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

Отже, AWS Bedrock – це managed сервіс від AWS, який дозволяє будувати ваші АІ-powered сервіси, використовуючи Foundation Models (FM) від Amazon, Мета, Amazon, Stability AI, та інших:

Див. What is a Foundation Model?

Для роботи з FL Bedrock надає єдиний API, і вам не потрібно будувати ніякої інфраструктури для запуску моделей.

Крім того, ви можете розширяти базу знань Bedrock за рахунок власних баз знань (“Knowledge base“). При цьому ваші дані не будуть об’єднані з самим FM, тобто повністю зберігається всяка privacy (включаючи підтримку стандартів GDPR, HIPAA).

По Bedrock варто глянути доповідь AWS re:Invent 2023 – Build your first generative AI application with Amazon Bedrock (AIM218) – там і про сам сервіс, і його архітектуру, і демо, і взагалі трохи розглядаються базові поняття – Machine Learning, Deep Learning, Generative AI.

Amazon Q

Тож Amazon Q – це система поверх Bedrock (я поки не знайшов інформації, яка саме модель використовується, але, мабуть, Titan – бо це система від самого Amazon).

По факту це чат-бот, з яким ми можемо поговорити, і який вже нам доступний в AWS Console справа, де ми звикли бачити розділ допомоги:

Хоча місцями Q не може відповісти навіть на прості питання 🙂

При цьому і сам Q, і Bedrock заточені під приватність даних, тому начебто можна спокійно (нєт) підключати їх до корпоративних даних – наприклад, до Git-репозиторію, або Atlassian Confluence, і тоді Q при формуванні відповіді буде використовувати дані з цих джерел для формування відповідей.

Чому “нєт?” Бо поки система в Preview, і про неї вже пишуть, що:

Knowledge baseQ is “experiencing severe hallucinations and leaking confidential data,”

Див. Amazon’s Q has ‘severe hallucinations’ and leaks confidential data in public preview, employees warn.

Проте я думаю, що це “дитячі хвороби”, і з часом Amazon все пофіксить.

Тож якщо стисло, то Q нам може допомогти у:

  • налаштуванні нової системи, або виборі архітектури
  • вирішенні проблем з сервісами
  • працювати з нашим кодом, написанні тестів

Amazon Q доступний у:

  • AWS Console
  • в його документації
  • в різних IDE (далі подивимось на VSCode)
  • Slack (через AWS Chatbot або Slack gateway)
  • в сервісах Amazon – наприклад, CodeWhisperer (аналог GitHub Copilot?)

Amazon Q vs ChatGPT

Мабуть, чи найперше питання, яке приходить в голову.

Знову-таки, чисто моє IMHO:

  • Amazon Q – це про бізнес: якщо ChatGPT це так би мовити “AI-чатбот загального призначення”, то Q може тісно інтегруватися з вашим бізнесом – вашими даними, користувачами тощо
  • Amazon Q – це про безпеку даних: нам обіцяють дуже потужні інструменти по обмеженню доступів: наприклад, якщо до Q буде підключена Confluence, то при формуванні відповіді на запит юзера будуть перевірятись його права в Confluence, і не будуть використані дані, до яких він там не має доступу (цікаво, як це реалізовано і як воно буде працювати, але поки просто маємо на увазі)
  • Amazon Q – це про інтеграцію:
    • модель, яка використовується для відповідей навчалася на даних самого AWS, яких за 17 років існування набралось багато – в тому числі мабуть і якісь дані, котрих зазвичай нема у відкритому доступі, тому по ідеї – Q в деяких моментах може давати більш точні відповіді (знову-таки – може не відразу, поки воно ще в Preview)
    • Q інтегрований з самими сервісами AWS, і ви можете використовувати його прямо в QuickSighe, або, як вже казалось, в самій AWS Console

(оці три пункта звучать так, наче Amazon мені заплатили за цей пост :-D)

Amazon Q pricing

Як завжди у AWS – “всьо сложно” 🙂

По-перше, поки система в Preview – більша частина можливостей безкоштовні.

По-друге – доступні будуть два різних плана: Business і Builder.

Якщо коротко, то Business – це більше про якісь маркетингові штуки на кшталт чат-бота для допомоги співробітникам у вирішення якихось питань, або такий собі “internal Google” – але з доступом до внутрішніх баз даних.

А от Builder, судячи з документації – це як раз те, що буде цікаво нам, як інженерам, бо саме в цьому плані буде доступ до “over 17 years’ worth of AWS knowledge and experience building in the cloud, including best practices, well-architected patterns“.

Див. Amazon Q pricing.

Amazon Q in AWS Console

Спробуємо потраблшутити з Amazon Q – створимо EC2, зламаємо нетворкінг, і спитаємо Q.

Створюємо інстанс, дозволяємо SSH:

Перевіряємо – доступ є:

$ ssh 16.170.217.131
The authenticity of host '16.170.217.131 (16.170.217.131)' can't be established.
...

Далі, редагуємо SecurityGroup – видаляємо доступ SSH:

І питаємо Amazon Q:

На що він відповідає, що може спробувати проаналізувати проблему з AWS VPC Reachability Analyzer. Спробуємо – переходимо за посиланням, і:

Ну, я все ж очікував, що Q прям зможе проаналузвати конфіг нетворкінгу EC2, і побачить, що там проблема в самій SecurityGroup. Але це я багато, мабуть, хочу)

Втім вже те, що він так інтегрується з системами типу VPC Reachability Analyzer – непогано, і далі, сподіваюсь, буде ще краще.

Amazon Q та інтеграція з VSCode

Документація – Set up Amazon Q in your IDE.

Встановлюємо AWS Toolkit:

Проходимо аутентифікацію – клікаємо Use free with AWS Builder ID:

Відкриється вікно в браузері, там підтверджуємо код, і вказуємо свою пошту – можна будь-яку, не обов’язкового ту, яка використовується в AWS акаунті:

На пошту буде відправлено листа з кодом – підтверджуємо, і задаємо собі пароль:

Дозволяємо доступ:

І тепер маємо підключений Amazon Q в нашому VSCode:

Задаємо питання – і він просканує відкритий у редакторі код, і на основі нього видасть відповідь:

Але питання розуміє не завжди коректно: в цілому він має підтримувати контекст розмови і враховувати відкритий код, але ось маємо відкритий код Terraform і пов’язане питання перед цим, а він дає відповідь про AWS Console:

Але якщо трохи перебудувати питання – то він повернув більш валідну відповідь:

На доповіді на самому re:Invent показували демо роботи з IDE, і там був приклад, як Q допомагає створювати код для AWS CDK та Python, і там виглядає прям дуже круто, бо я влітку цього року намучився з ChatGPT, який постійно видавав приклади для старої версії CDK або старих версій бібліотек (див. AWS: CDK – створення EKS з Python та загальні враження від CDK).

Amazon Q Application

Ми також можемо створити Application в AWS Console, і там використати власні дата-сорси, на основі яких Q буде формувати відповіді.

Плюс, там жеж можемо створити і веб-інтерфейс для юзерів:

Створюємо:

Далі налаштовується Retriever – яким чином Q буде отримувати дані з дата-сорса:

І останнім налаштовується вже сам дата-сорс через вибір конекторів – а їх тут дуже багато:

Візьмемо Web crawler:

Тут вже налаштовується і аутентифікація – і саме тут вочевидь будуть перевірятись user permissions – те, про що я вписав на початку, що Amazon Q не дасть інформації юзеру, якщо він не має до неї доступу в самому дата-сорсі:

І решта налаштувань – там і VPC, і IAM, параметри синхронізації тощо:

Робимо синхронізацію з нашим дата-сорсом:

І далі вже можемо відкрити веб-інтерфейс, і початитись з ботом:

А якщо клікнути Deploy web experience – то треба буде налаштовувати SAML:

І воно наче і має працювати без деплою, в Web preview режимі, але в мене воно просто зависало на запиті:

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

Висновки та враження від Amazon Q

Я не сказав би, що сервіс прям “producation ready” – але він дійсно ще в Preview, а тому багато чого буде допилюватись/фікситись/апгрейдитись, і тут все ще є над чим попрацювати, бо наразі вона виглядає трохи сирою – Amazon явно поспішали випустити її хоча б в Preview, бо вся ця “гонка Generative AI” і вот ето вот всьо.

Але в цілому система виглядає доволі перспективною, особливо, як вона навчиться толком допомагати траблшутити якісь проблеми в AWS.

Ну і головне – її дійсно можна буде використовувати різними бізнесами, інтегруючи зі своїми системами та базами даних, і не переживати за всякий privacy complience – а з ChartGPT це зараз дуже велика проблема.

Корисні посилання