Несколько дней назад я решал задачу подключения Yandex GPT, и главной сложностью там было освоение Yandex Cloud Console. В остальном API — вылитая LLaMa 2.
С Google Gemini история иная. Документация консоли содержит те самые вставки «New to Google Cloud», отсутствие которых вдохновило меня писать про Yandex GPT. При работе с консолью есть нюансы, их и выделим ниже по тексту. Но в целом, можно просто следовать документации, и всё получится.
В Google Cloud теперь доступны два пространства, с которых можно начинать: Vertex AI Studio и Model Garden. Первая предназначена для экспериментов с моделями и отладки промптов. А вторая — библиотека моделей, где всего их на сегодня 56, среди них упомянутая LLaMa 2, PaLM 2, знаменитый тем, что на нём работет Google Bard и, возможно, скоро мы увидим прорыв в медконсультировании Med PaLM 2, Gemini Pro. Мы сегодня коснёмся только Gemini Pro Vision, поскольку именно она заявлена как главный прорыв.
Подключить модель просто, весь процесс состоит из четырёх шагов
-
Настройка платежного аккаунта в Google Cloud.
-
Включение Vertex AI и подключение тарификации.
-
Установка Google Cloud CLI и модуля vertexai.generative_models.
-
Написание и запуск python-файла.
Настройка платежного аккаунта и создание проекта
Процесс довольно прозрачен, подсвечу лишь последовательность действий и нюансы.
-
Перейдите в консоль Google Cloud.
При первой регистрации в консоли Google, как и Яндекс, предоставляет грант. Размер — $300, срок использования — 90 дней. -
Создайте способ оплаты. Насколько я могу судить, требуется аккаунт юридического лица, по крайней мере, для меня опция использования личного аккаунта была недоступна.
Здесь стоит сказать, что потребуется пластиковая карта иностранного банка. К сожалению, отечественные Google пока еще не принимает. Надеюсь, у всех есть друзья, готовые помочь. Забегая вперёд, оно того стоит.
-
Вновь созданный аккаунт потребует активации, которая выполняется кнопкой «Activate» в правом верхнем углу страницы.
-
Создайте проект по ссылке. После этого, если у Вас больше одного проекта, выбрать проект можно из выпадающего списка, расположенного справа от логотипа Google Cloud вверху страницы.
Включение Vertex AI и подключение тарификации
-
Перейдите на страницу Vertex AI API и нажмите синюю кнопку «ENABLE». После система предложит выбрать аккаунт для тарификации, который мы создали ранее.
-
После выбора аккаунта тарификации Вы попадёте на страницу API.
Установка Google Cloud CLI и модуля vertexai.generative_models
Оговорюсь, что пример сделан под Windows.
-
Скачайте Google Cloud CLI здесь. Согласно документации, для установке ей требуется Python от 3.8 до 3.12, однако ничего по этому поводу делать не нужно: установочный пакет включет его. В конце установке отметьте, как минимум, чекбокс «start the Google Cloud CLI shell». Если не отметили, её придётся запустить вручную, а затем выполнить в ней команду «gcloud init».
-
Инициализация идёт в три шага. На первом откроется бразуер и потребуется авторизоваться в Google аккаунте. На втором спросит, нужен ли сервисный аккаунт, для целей демонстрации я его не создавал, и не использовал. На третьем будет предложено выбрать проект и расположение сервера.
-
Установите модуль vertexai.generative_models командой:
pip install google-cloud-aiplatform
Не закрывайте окно CLI консоли: она скоро нам пригодится.
Написание и запуск python-файла
Как и в случае с Yandex GPT, это самая простая часть.
-
Создайте .py-файл, например, testGeminiPro.py, следующего содержания:.
import http.client import typing import urllib.request from vertexai.preview.generative_models import GenerativeModel, Image, Part import urllib.request def load_image_from_url(image_url: str) -> Image: # Готовим изображение. Обратите внимание, что это не PIL Image! # это Image из vertexai.preview.generative_models with urllib.request.urlopen(image_url) as response: response = typing.cast(http.client.HTTPResponse, response) image_bytes = response.read() return Image.from_bytes(image_bytes) def generate_text(prompt) -> str: import vertexai project_id = "fair-catbird-407919" location = "us-central1" vertexai.init(project=project_id, location=location) multimodal_model = GenerativeModel("gemini-pro-vision") response = multimodal_model.generate_content(prompt) return response.text # Формируем промпт. Можем подавать не только текст, но и фрагменты (parts) типа, картинка, словарь, URL. # Причём по URL может располагаться даже видео. Точно знаю, что поддерживает, как минимум, mp4. prompt = [ "Что это за город, район? Какие достопримечательности находятся рядом с этим местом?", Part.from_image(load_image_from_url("https://moscowplaces.com/wp-content/uploads/2017/11/vorobyevi-gori-moskva-2.jpg")) ] result = generate_text(prompt) print(result)
Я упустил момент с установкой модулей (http.client, typing, urllib.request). Судя по всему, они уже были в комплекте установки, либо Google Cloud CLI, либо google-cloud-aiplatform. Если на следующем шаге Вы получите ошибку, связанную с отсутсвтием какого-либо модуля, просто установите его через консоль командой pip install <имя_модуля>.
-
Выполните в CLI консоли: python «путь_к_файлу_testGeminiPro.py». В моём случае это было:
python C:\Users\Sergey\testGeminiPro.py
-
В качестве ответа вернётся:
Это Москва, район Воробьевы горы. Рядом с этим местом находятся: смотровая площадка на Воробьевых горах, канатная дорога, МГУ, Поклонная гора, Нескучный сад, Андреевский пруд.
Впечатляет, не правда, ли?
Наблюдения
-
Работает исключительно быстро. Даже на русском языке. Не хватило сил сегодня сделать замеры, но на глаз, раз в 5 быстрее, чем API от Open AI при использовании gpt-4-1106-preview.
-
Всё доступно с российских IP. Как само API, так и консоль Google Cloud. Никаких блокировок ни с нашей стороны, ни с их.
-
Модель неплохо играет на поляне OpenAI. Если задавать узкопрофильные вопросы, даёт достойные ответы. Но, на примерее тематикии микробиологии, ChatGPT и их доступная через API «gpt-4-1106-preview» пока еще впереди. Но, повторюсь, в высшей степени достойно. Поработаю подольше, может, отношение и изменится.
-
Мультимодальность впечатляет. Очень советую поэкспериметировать, не ограничиваясь «опиши эту картинку». Gemini Pro Vision умеет сравнивать, искать общее, следовать логике описания для набора изображений.
Вывод: на рынке снова появилась конкуренция.
ссылка на оригинал статьи https://habr.com/ru/articles/780488/
Добавить комментарий