Сделайте доступным gemini-1.5-flash-002 для моего проекта GCloud Run.

Вопрос или проблема

Я пытаюсь написать базовый скрипт для суммирования текста:
def generate(self, text_to_summarize):
vertexai.init(project=”<PROJECT_ID”, location=”MY_REGION”)
model = GenerativeModel(
“gemini-1.5-flash-002″,
system_instruction=[my_prompt]
)
responses = model.generate_content(
[text_to_summarize],
stream=True,
)

for response in responses:
print(response.text, end=””)

Это работает как задумано локально, используя “gemini-1.5-flash-002”
Чтобы запустить на gcloud run, я создал скрипт в контейнере Docker и развернул его в gcloud run.
Вызов конечной точки завершился неудачей с ошибкой:
“PermissionDenied(\”Permission ‘aiplatform.endpoints.predict’ denied on resource ‘//aiplatform.googleapis.com/projects/<PROJECT-ID>/locations/<REGION>/publishers/google/models/gemini-1.5-flash-002’ (or it may not exist).\”)”

Я дважды проверил разрешения с помощью gcloud projects get-iam-policy <PROJECT-ID> и увидел:
bindings:
– members:
– serviceAccount:service-<CODE>@gcp-sa-vertex-op.iam.gserviceaccount.com
role: roles/aiplatform.onlinePredictionServiceAgent
– members:
– serviceAccount:service-<CODE>@gcp-sa-aiplatform.iam.gserviceaccount.com
role: roles/aiplatform.serviceAgent
– members:
– serviceAccount:<CODE>[email protected]
– user:<MY-EMAIL>
role: roles/aiplatform.user

Я проверил модели здесь, и aiplatform.endpoints.predict является разрешением для roles/aiplatform.user, так что у меня есть разрешение.
Это привело меня к выводу, что модель не существует. Я думал, что gcloud run автоматически использует gemini flash, как это работает локально. Я выполнил
gcloud ai models list –region=<REGION>
и моделей нет.
Даже попытка развернуть эту модель на моей конечной точке завершилась неудачей. Код для развертывания:
gcloud ai endpoints deploy-model <MY-ENDPOINT-ID>\
–model=gemini-1.5-flash-002 \
–region=<REGION> \
–display-name=”flash-deployment” \
–machine-type=”n1-standard-4″

и это завершилось ошибкой
(gcloud.ai.endpoints.deploy-model) Произошла ошибка при получении информации о модели. Пожалуйста, убедитесь, что модель ‘projects/<PROJECT-ID>/locations/<REGION>/models/gemini-1.5-flash-002’ существует.

Я думаю, что мне нужно зарегистрировать модель где-то, но когда я открываю реестр моделей и пытаюсь “Создать” одну, он запрашивает у меня тренировочные данные и так далее. Я не хочу обучать новую модель, просто использовать предобученную flash.
Кто-нибудь знает, как это можно сделать?

Ответ или решение

Для того чтобы сделать модель "gemini-1.5-flash-002" доступной для вашего проекта на Google Cloud Run, необходимо выполнить несколько шагов, чтобы правильно настроить окружение, разрешения и саму модель. Ваша основная ошибка заключается в том, что вы пытаетесь использовать модель, которая не зарегистрирована для вашего проекта или не имеет соответствующих разрешений. Вот как можно решить вашу проблему:

Шаг 1: Регистрация модели в вашем проекте

Прежде всего, убедитесь, что модель "gemini-1.5-flash-002" зарегистрирована в вашей учетной записи Google Cloud. Для этого выполните следующие действия:

  1. Войдите в Google Cloud Console.
  2. Перейдите в раздел AI Platform (Vertex AI).
  3. Выберите Models в боковом меню и посмотрите, доступна ли модель.

Если модель отсутствует, вы должны сначала зарегистрировать ее, используя команду:

gcloud ai models upload \
  --region=<REGION> \
  --display-name="genimi-1.5-flash-002" \
  --artifact-uri=<URI_ARTIFACT> \
  --container-image-uri=<IMAGE_URI>

Обратите внимание, что вам нужно будет указать правильные параметры каталога и контейнера. Если у вас нет необходимого артефакта и контейнера, тогда вы не сможете использовать эту модель.

Шаг 2: Проверка разрешений

Вы правильно указали, что для доступа к модели требуется соответствующий уровень разрешений. Убедитесь, что учётная запись вашего сервиса (обычно это service-<CODE>@gcp-sa-vertex-op.iam.gserviceaccount.com) имеет роли:

  • roles/aiplatform.admin или roles/aiplatform.user
  • roles/aiplatform.onlinePredictionServiceAgent

Вы можете проверить разрешения, выполнив следующую команду:

gcloud projects get-iam-policy <PROJECT-ID>

Если вы не видите указанные роли, добавьте их с помощью команды:

gcloud projects add-iam-policy-binding <PROJECT-ID> \
  --member="serviceAccount:service-<CODE>@gcp-sa-vertex-op.iam.gserviceaccount.com" \
  --role="roles/aiplatform.user"

Шаг 3: Деплой модели на конечную точку (Endpoint)

После успешной регистрации модели и настройки разрешений, вы можете попробовать задеплоить модель:

gcloud ai endpoints deploy-model <MY-ENDPOINT-ID> \
   --model=projects/<PROJECT-ID>/locations/<REGION>/models/gemini-1.5-flash-002 \
   --region=<REGION> \
   --display-name="flash-deployment" \
   --machine-type="n1-standard-4"

Обратите внимание на правильное указание идентификатора проекта и региона. Если модель уже существует и зарегистрирована правильно, команда должна работать без ошибок.

Шаг 4: Проверка и отладка

Если вы все еще получаете ошибку "PermissionDenied", проверьте:

  • Что сервисный аккаунт, используемый вашим Cloud Run приложением, имеет все необходимые разрешения для выполнения предсказаний модели.
  • Что ваша модель действительно зарегистрирована в правильном проекте и в правильном регионе.

Это позволит вам избежать проблем и делать модель доступной в вашем проекте Google Cloud Run. Если все шаги были выполнены правильно, вы сможете успешно запрашивать предсказания из модели "gemini-1.5-flash-002" без ошибок.

Оцените материал
Добавить комментарий

Капча загружается...