Полный гайд по Google Gemini AI: от основ до создания чат-бота

freeCodeCamp.org 256 тыс. 1 ч 19 мин 4 мин 22.02.2024
Главное

Эта статья основана на видеокурсе freeCodeCamp.org, который провела разработчик Ана Кубо (Ania Kubów). В материале подробно разбирается работа с моделями Google Gemini AI, архитектура больших языковых моделей (LLM) и процесс создания полноценного чат-бота на стеке Node.js и React.

🤖 Что такое Gemini и как работает современный ИИ 1:29

Google Gemini — это серия мультимодальных генеративных моделей ИИ . В отличие от узкоспециализированных систем, Gemini является мультимодальной: она способна обрабатывать не только текст, но и изображения, выдавая текстовые ответы в зависимости от выбранной вариации модели .

По определению Ани Кубо, ИИ — это симуляция человеческого интеллекта машинами. Важно понимать, что на текущем этапе ИИ не обладает сознанием; это сложная система машинного обучения . Принцип её работы строится на:

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

🧠 Анатомия LLM: вероятности и «температура» 5:46

Большие языковые модели (LLM) — это подвид машинного обучения, предназначенный для понимания и генерации человеческого языка. По мнению Кубо, на базовом уровне LLM можно сравнить с очень продвинутой системой автодополнения текста .

Процесс генерации ответа в LLM проходит в два этапа:

  1. Детерминированный этап: Модель анализирует ввод и вычисляет распределение вероятностей для следующего токена (слова). Для фразы «Собака прыгнула через...» слово «забор» будет иметь более высокий балл вероятности, чем «одеяло» .
  2. Этап декодирования: Здесь в игру вступает параметр Temperature (Температура) .
    • Температура 0: Модель всегда выбирает самый вероятный токен. Ответы становятся предсказуемыми и строгими.
    • Высокая температура: Модель вводит элемент случайности, выбирая менее вероятные слова. Это делает ответы более креативными, неожиданными или «живыми» .

🔑 Безопасность и получение API-ключа 8:51

Для интеграции Gemini в свои приложения необходим API-ключ, который можно получить в Google AI Studio .

Ана Кубо делает критически важное предупреждение: никогда не публикуйте свой API-ключ в открытом доступе и не используйте его в клиентском коде (frontend) . Любой пользователь может просмотреть код страницы через инспектор браузера, украсть ключ и израсходовать ваши лимиты или средства на банковской карте .

Безопасный метод работы — хранение ключа на бэкенд-сервере в переменных окружения (.env) .

🛠 Обзор инструментов и токенизация 12:10

Перед началом разработки важно понять, как измеряется объем данных. В Gemini используются токены.

Основные модели в семействе Gemini:

  1. Gemini Pro: Оптимизирована для задач, основанных только на тексте .
  2. Gemini Pro Vision: Мультимодальная модель, принимающая текст и изображения .
  3. Embedding-001: Создает векторные представления текста для поиска сходства .

🖼 Практика: текст, изображения и эмбеддинги 21:35

Генерация текста

Базовый запрос выполняется методом generateContent. Пример кода включает инициализацию модели и асинхронное ожидание ответа . В тесте модели Ана попросила написать сказку о магическом рюкзаке, и ИИ сгенерировал историю о девочке по имени Ана, что ведущая назвала забавным совпадением .

Работа с изображениями (Vision)

Для анализа картинок используется модель Gemini Pro Vision. В демонстрации Кубо передала функции два изображения (кота и персонажа Рика из «Рика и Морти») и попросила найти различия . Модель успешно распознала кота, но ошиблась с Риком, назвав его персонажем из аниме One Punch Man .

Эмбеддинги (Embeddings)

Это продвинутая техника представления текста в виде массива чисел (векторов) .

💻 Финальный проект: AI Code Buddy 38:55

В завершающей части курса Ана создает полноценное фулстек-приложение — чат-бота с сохранением контекста беседы.

Архитектура проекта:

Ключевая особенность: Мульти-чат (Multi-turn conversation) Чтобы бот помнил предыдущие фразы, на бэкенд передается не только последний вопрос, но и весь массив history . История состоит из объектов с ролями:

Благодаря этому, если пользователь спрашивает «Когда Рождество?», а затем задает уточняющий вопрос «Ты уверен?», Gemini понимает, что вопрос «Ты уверен?» относится именно к дате Рождества, а не к чему-то другому .

В итоге получается адаптивный интерфейс, где кнопка «Surprise me» подставляет случайные глубокие вопросы о Нобелевской премии или приготовлении сэндвичей, а ИИ поддерживает связный диалог, имитируя человеческое общение .

💬 Цитаты

«На самом базовом уровне большие языковые модели подобны сложным приложениям для автозаполнения.»

«Температура ноль означает, что выбираются только самые вероятные токены и случайность отсутствует.»

👥 Спикер
🎬 Упомянутые фильмы и сериалы
🔗 Упомянутые сайты и проекты
📖 Термины
Токен
Минимальная единица текста (слово или часть слова), которую обрабатывает ИИ; в Gemini 1 токен примерно равен 4 символам.
Мультимодальность
Способность модели ИИ работать с разными типами данных, например текстом, кодом, изображениями и видео одновременно.
Эмбеддинги
Числовые векторы, представляющие смысл слов, позволяющие ИИ сравнивать семантическую близость разных текстов.
Middleware (CORS)
Программный слой (в данном случае пакет cors), разрешающий фронтенду обращаться к бэкенду, если они находятся на разных доменах или портах.
📊 Цифры
🗓 Хронология
  1. 2024 Google переименовал чат-бота Bard в Gemini, объединив его с одноименной моделью.
⚖️ Другая сторона
Искусственный интеллект Google Gemini Large Language Models React Node.js API