arrow_back

원격 모델로 BigQuery에서 영화 포스터 분석

로그인 가입
지식을 테스트하고 커뮤니티와 공유하기

원격 모델로 BigQuery에서 영화 포스터 분석

실습 1시간 universal_currency_alt 크레딧 5개 show_chart 중급
info 이 실습에는 학습을 지원하는 AI 도구가 통합되어 있을 수 있습니다.
지식을 테스트하고 커뮤니티와 공유하기

GSP1247

개요

이 실습에서는 개념 증명 프로젝트의 일환으로 원격 모델(Gemini AI 모델)에서 BigQuery 머신러닝을 사용한 추론으로 영화 포스터를 분석하고 포스터 요약을 생성하는 방법을 알아봅니다.

BigQuery는 데이터의 가치를 극대화하는 데 도움이 되는 완전 관리형 AI 지원 데이터 분석 플랫폼으로서 멀티 엔진, 멀티 형식, 멀티 클라우드로 설계되었습니다. 주요 기능인 BigQuery 머신러닝을 사용한 추론을 통해 GoogleSQL 쿼리를 사용하여 머신러닝(ML) 모델을 만들고 실행할 수 있습니다.

Gemini는 Google DeepMind에서 개발한 생성형 AI 모델 제품군으로, 멀티모달 사용 사례를 위해 설계되었습니다. Gemini API를 통해 Gemini Pro Vision 및 Gemini Pro 모델에 액세스할 수 있습니다.

GoogleSQL 쿼리를 사용한 ML 모델 실행

일반적으로 대규모 데이터 세트에서 ML 또는 인공지능(AI)을 수행하려면 ML 프레임워크에 대한 광범위한 프로그래밍과 지식이 필요합니다. 이러한 요건 때문에 각 회사에서도 극소수의 직원만 솔루션 개발을 담당할 수 있으며, 데이터를 이해하더라도 ML 및 프로그래밍 전문 지식이 부족한 데이터 분석가는 개발에 참여하지 못합니다. 하지만 BigQuery 머신러닝을 사용한 추론을 이용하면 SQL 실무자는 기존 SQL 도구와 기술을 사용하여 모델을 빌드하고 LLM 및 Cloud AI API로 결과를 생성할 수 있습니다.

목표

이 실습에서는 다음을 수행하는 방법에 대해 알아봅니다.

  • API를 사용하도록 환경 및 계정 구성
  • BigQuery에서 Cloud 리소스 연결 생성
  • BigQuery에서 영화 포스터 이미지의 데이터 세트 및 객체 테이블 만들기
  • BigQuery에서 Gemini 원격 모델 만들기
  • 각 포스터의 영화 요약을 제공하도록 Gemini에 프롬프트 입력
  • 각 포스터에 나온 영화의 텍스트 임베딩 생성
  • BigQuery VECTOR_SEARCH를 사용해 영화 포스터 이미지와 데이터 세트 내 가장 관련성 있는 영화 매칭

설정 및 요건

실습 시작 버튼을 클릭하기 전에

다음 안내를 확인하세요. 실습에는 시간 제한이 있으며 일시중지할 수 없습니다. 실습 시작을 클릭하면 타이머가 시작됩니다. 이 타이머는 Google Cloud 리소스를 사용할 수 있는 시간이 얼마나 남았는지를 표시합니다.

실무형 실습을 통해 시뮬레이션이나 데모 환경이 아닌 실제 클라우드 환경에서 실습 활동을 진행할 수 있습니다. 실습 시간 동안 Google Cloud에 로그인하고 액세스하는 데 사용할 수 있는 새로운 임시 사용자 인증 정보가 제공됩니다.

이 실습을 완료하려면 다음을 준비해야 합니다.

  • 표준 인터넷 브라우저 액세스 권한(Chrome 브라우저 권장)
참고: 이 실습을 실행하려면 시크릿 모드(권장) 또는 시크릿 브라우저 창을 사용하세요. 개인 계정과 학습자 계정 간의 충돌로 개인 계정에 추가 요금이 발생하는 일을 방지해 줍니다.
  • 실습을 완료하기에 충분한 시간(실습을 시작하고 나면 일시중지할 수 없음)
참고: 이 실습에는 학습자 계정만 사용하세요. 다른 Google Cloud 계정을 사용하는 경우 해당 계정에 비용이 청구될 수 있습니다.

실습을 시작하고 Google Cloud 콘솔에 로그인하는 방법

  1. 실습 시작 버튼을 클릭합니다. 실습 비용을 결제해야 하는 경우 결제 수단을 선택할 수 있는 대화상자가 열립니다. 왼쪽에는 다음과 같은 항목이 포함된 실습 세부정보 창이 있습니다.

    • Google Cloud 콘솔 열기 버튼
    • 남은 시간
    • 이 실습에 사용해야 하는 임시 사용자 인증 정보
    • 필요한 경우 실습 진행을 위한 기타 정보
  2. Google Cloud 콘솔 열기를 클릭합니다(Chrome 브라우저를 실행 중인 경우 마우스 오른쪽 버튼으로 클릭하고 시크릿 창에서 링크 열기를 선택합니다).

    실습에서 리소스가 가동되면 다른 탭이 열리고 로그인 페이지가 표시됩니다.

    팁: 두 개의 탭을 각각 별도의 창으로 나란히 정렬하세요.

    참고: 계정 선택 대화상자가 표시되면 다른 계정 사용을 클릭합니다.
  3. 필요한 경우 아래의 사용자 이름을 복사하여 로그인 대화상자에 붙여넣습니다.

    {{{user_0.username | "Username"}}}

    실습 세부정보 창에서도 사용자 이름을 확인할 수 있습니다.

  4. 다음을 클릭합니다.

  5. 아래의 비밀번호를 복사하여 시작하기 대화상자에 붙여넣습니다.

    {{{user_0.password | "Password"}}}

    실습 세부정보 창에서도 비밀번호를 확인할 수 있습니다.

  6. 다음을 클릭합니다.

    중요: 실습에서 제공하는 사용자 인증 정보를 사용해야 합니다. Google Cloud 계정 사용자 인증 정보를 사용하지 마세요. 참고: 이 실습에 자신의 Google Cloud 계정을 사용하면 추가 요금이 발생할 수 있습니다.
  7. 이후에 표시되는 페이지를 클릭하여 넘깁니다.

    • 이용약관에 동의합니다.
    • 임시 계정이므로 복구 옵션이나 2단계 인증을 추가하지 않습니다.
    • 무료 체험판을 신청하지 않습니다.

잠시 후 Google Cloud 콘솔이 이 탭에서 열립니다.

참고: Google Cloud 제품 및 서비스에 액세스하려면 탐색 메뉴를 클릭하거나 검색창에 제품 또는 서비스 이름을 입력합니다.

작업 1. API를 사용하도록 환경 및 프로젝트 구성

이 작업에서는 Gemini용 Cloud AI Companion API와 Vertex AI Platform API를 프로젝트에서 사용할 수 있도록 실습 환경을 구성합니다.

참고: Cloud Shell에 익숙하지 않은 경우 Cloud Shell 사용을 참조하세요.
  1. 실습 사용자 인증 정보로 Google Cloud 콘솔에 로그인하고 Cloud Shell 터미널 창을 엽니다.

  2. Cloud Shell에서 프로젝트 ID 및 리전 환경 변수를 설정하려면 다음 명령어를 실행합니다.

    PROJECT_ID=$(gcloud config get-value project) REGION={{{project_0.default_region|set at lab start}}} echo "PROJECT_ID=${PROJECT_ID}" echo "REGION=${REGION}"
  3. 로그인한 Google 사용자 계정을 환경 변수에 저장하려면 다음 명령어를 실행합니다.

    USER=$(gcloud config get-value account 2> /dev/null) echo "USER=${USER}"
  4. Gemini용 Cloud AI Companion API 및 Vertex AI API를 사용 설정합니다.

    gcloud services enable cloudaicompanion.googleapis.com --project ${PROJECT_ID} gcloud services enable aiplatform.googleapis.com --project ${PROJECT_ID}
  5. Gemini를 사용하기 위해 Google Cloud Qwiklabs 사용자 계정에 필요한 IAM 역할을 부여합니다.

    gcloud projects add-iam-policy-binding ${PROJECT_ID} --member user:${USER} --role=roles/cloudaicompanion.user gcloud projects add-iam-policy-binding ${PROJECT_ID} --member user:${USER} --role=roles/serviceusage.serviceUsageViewer

    이러한 역할을 추가하면 사용자가 Gemini의 지원을 받을 수 있습니다.

목표를 확인하려면 내 진행 상황 확인하기를 클릭합니다. 관련 API 사용 설정 및 IAM 역할 설정

작업 2. Cloud 리소스 연결 만들기

이 작업에서는 Gemini Pro 및 Gemini Pro Vision 모델로 작업할 수 있도록 BigQuery에서 Cloud 리소스 연결을 만듭니다.

  1. Google Cloud 콘솔의 탐색 메뉴에서 BigQuery를 클릭합니다.

  2. 시작 팝업에서 완료를 클릭합니다.

  3. 연결을 만들기 위해 +추가를 클릭한 다음 외부 데이터 소스에 연결을 클릭합니다.

  4. '연결 유형' 목록에서 Vertex AI 원격 모델, 원격 함수, BigLake(Cloud 리소스)를 선택합니다.

  5. 연결을 위해 '연결 ID' 필드에 gemini_conn을 입력합니다.

  6. 위치 유형에서 멀티 리전을 선택한 다음 드롭다운에서 US 멀티 리전을 선택합니다.

  7. 다른 설정은 기본값을 그대로 유지합니다.

  8. 연결 만들기를 클릭합니다.

  9. 연결로 이동을 클릭합니다.

  10. '연결 정보' 창에서 다음 작업에 사용할 수 있도록 서비스 계정 ID를 텍스트 파일에 복사합니다. 또한 BigQuery 탐색기에서 프로젝트의 '외부 연결' 섹션에 연결이 추가된 것을 볼 수 있습니다.

내 진행 상황 확인하기를 클릭하여 목표를 확인합니다. Cloud 리소스 연결 만들기

작업 3. 연결의 서비스 계정에 IAM 권한 부여

이 작업에서는 역할을 통해 Cloud 리소스 연결의 서비스 계정에 IAM 권한을 부여하여 Vertex AI 서비스에 액세스할 수 있도록 합니다.

  1. Google Cloud 콘솔의 탐색 메뉴에서 IAM 및 관리자를 클릭합니다.

  2. 액세스 권한 부여를 클릭합니다.

  3. 앞에서 복사한 서비스 계정 ID를 새 주 구성원 필드에 입력합니다.

  4. 역할 선택 필드에서 Vertex AI를 선택한 후 Vertex AI 사용자 역할을 선택합니다.

  5. 저장을 클릭합니다.

    이렇게 하면 이제 서비스 계정 ID에 Vertex AI 사용자 역할이 포함됩니다.

내 진행 상황 확인하기를 클릭하여 목표를 확인합니다. 연결의 서비스 계정에 IAM 권한 부여

작업 4. BigQuery에서 영화 포스터 이미지의 데이터 세트 및 객체 테이블 만들기

이 작업에서는 프로젝트의 데이터 세트를 만들고 포스터 이미지를 저장할 객체 테이블을 만듭니다.

데이터 세트 만들기

  1. Google Cloud 콘솔에서 탐색 메뉴()를 선택한 다음 BigQuery를 선택합니다.

  2. 탐색기 패널의 에서 작업 보기()를 선택한 다음 데이터 세트 만들기를 선택합니다.

    테이블과 모델을 비롯한 데이터베이스 객체를 저장할 데이터 세트를 생성합니다.

  3. 데이터 세트 만들기 창에 다음 정보를 입력합니다.

    필드
    데이터 세트 ID gemini_demo
    위치 유형 멀티 리전 선택
    멀티 리전 US 선택

    다른 필드는 기본값을 유지합니다.

  4. 데이터 세트 만들기를 클릭합니다.

    이렇게 하면 gemini_demo 데이터 세트가 만들어지고 BigQuery 탐색기의 프로젝트 아래에 나열됩니다.

객체 테이블 만들기

SQL 쿼리를 사용하여 객체 테이블을 만듭니다.

  1. +를 클릭하여 새 SQL 쿼리를 만듭니다.

  2. 쿼리 편집기에 아래 쿼리를 붙여넣습니다.

    CREATE OR REPLACE EXTERNAL TABLE `gemini_demo.movie_posters` WITH CONNECTION `us.gemini_conn` OPTIONS ( object_metadata = 'SIMPLE', uris = ['gs://cloud-samples-data/vertex-ai/dataset-management/datasets/classic-movie-posters/*'] );
  3. 쿼리를 실행합니다.

    이렇게 하면 movie_posters 객체 테이블이 gemini_demo 데이터 세트에 추가되고 각 영화 포스터 이미지의 URI(Cloud Storage 위치)와 함께 로드됩니다.

  4. 탐색기에서 movie_posters를 클릭하고 스키마와 세부정보를 검토합니다. 자유롭게 테이블을 쿼리하여 특정 레코드를 검토합니다.

내 진행 상황 확인하기를 클릭하여 목표를 확인합니다. BigQuery에서 영화 포스터 이미지의 데이터 세트 및 객체 테이블 만들기

작업 5. BigQuery에서 Gemini 원격 모델 만들기

객체 테이블을 만들었으니 이제 테이블로 작업할 수 있습니다. 이 작업에서는 BigQuery를 사용해 Gemini Pro 및 Gemini Pro Vision 모델의 원격 모델을 만듭니다.

Gemini Pro 모델 만들기

  1. +를 클릭하여 새 SQL 쿼리를 만듭니다.

  2. 쿼리 편집기에 다음 쿼리를 붙여넣고 실행합니다.

    CREATE OR REPLACE MODEL `gemini_demo.gemini_pro` REMOTE WITH CONNECTION `us.gemini_conn` OPTIONS (endpoint = 'gemini-pro')

    이렇게 하면 gemini_pro 모델이 생성되어 모델 섹션의 gemini_demo 데이터 세트에 추가됩니다.

  3. 탐색기에서 gemini_pro 모델을 클릭하고 스키마와 세부정보를 검토합니다.

Gemini Pro Vision 모델 만들기

  1. +를 클릭하여 새 SQL 쿼리를 만듭니다.

  2. 쿼리 편집기에 다음 쿼리를 붙여넣고 실행합니다.

    CREATE OR REPLACE MODEL `gemini_demo.gemini_pro_vision` REMOTE WITH CONNECTION `us.gemini_conn` OPTIONS (endpoint = 'gemini-pro-vision')

    이렇게 하면 gemini_pro_vision 모델이 생성되어 모델 섹션의 gemini_demo 데이터 세트에 추가됩니다.

  3. 탐색기에서 gemini_pro_vision 모델을 클릭하고 스키마와 세부정보를 검토합니다.

내 진행 상황 확인하기를 클릭하여 목표를 확인합니다. BigQuery에서 Gemini 원격 모델 만들기

작업 6. 각 포스터의 영화 요약을 제공하도록 Gemini에 프롬프트 입력

이 작업에서는 Gemini(방금 만든 Gemini Pro 및 Vision 모델)를 사용하여 영화 포스터 이미지를 분석하고 각 영화의 요약을 생성합니다.

Gemini Pro Vision 모델을 사용하여 이미지 분석

  1. +를 클릭하여 새 SQL 쿼리를 만듭니다.

  2. 쿼리 편집기에 다음 쿼리를 붙여넣고 실행합니다.

    CREATE OR REPLACE TABLE `gemini_demo.movie_posters_results` AS ( SELECT uri, ml_generate_text_llm_result FROM ML.GENERATE_TEXT( MODEL `gemini_demo.gemini_pro_vision`, TABLE `gemini_demo.movie_posters`, STRUCT( 0.2 AS temperature, 'For the movie represented by this poster, what is the movie title and year of release? Answer in JSON format with two keys: title, year. title should be string, year should be integer.' AS PROMPT, TRUE AS FLATTEN_JSON_OUTPUT)));

    이렇게 하면 movie_posters_results 테이블이 생성됩니다.

  3. 탐색기에서 movie_posters_results 테이블을 클릭하고 스키마와 세부정보를 검토합니다.

  4. +를 클릭하여 새 SQL 쿼리를 만듭니다.

  5. 쿼리 편집기에 다음 쿼리를 붙여넣고 실행합니다.

    SELECT * FROM `gemini_demo.movie_posters_results`

    이렇게 하면 각 영화 포스터의 행이 URI(영화 포스터 이미지의 Cloud Storage 위치) 및 JSON 결과(Gemini Pro Vision 모델의 영화 제목 및 영화 개봉 연도 포함)와 함께 표시됩니다.

    다음 쿼리를 사용하여 인간이 읽기 더 쉬운 방식으로 이러한 결과를 가져올 수 있습니다.

  6. +를 클릭하여 새 SQL 쿼리를 만듭니다.

  7. 쿼리 편집기에 다음 쿼리를 붙여넣고 실행합니다.

    CREATE OR REPLACE TABLE `gemini_demo.movie_posters_results_formatted` AS ( SELECT uri, JSON_QUERY(RTRIM(LTRIM(results.ml_generate_text_llm_result, " ```json"), "```"), "$.title") AS title, JSON_QUERY(RTRIM(LTRIM(results.ml_generate_text_llm_result, " ```json"), "```"), "$.year") AS year FROM `gemini_demo.movie_posters_results` results )

    이렇게 하면 movie_posters_result_formatted 테이블이 생성됩니다.

  8. 아래의 쿼리를 사용하여 테이블을 쿼리하면 행이 생성됩니다.

    SELECT * FROM `gemini_demo.movie_posters_results_formatted`

    URI 열 결과는 동일하게 유지되지만 JSON은 각 행의 제목 및 연도 열로 변환됩니다.

영화 요약을 제공하도록 Gemini Pro에 프롬프트 입력

  1. Gemini Pro를 사용하여 아래 쿼리를 실행하면 각 포스터의 영화 요약이 제공됩니다.

    SELECT uri, title, year, prompt, ml_generate_text_llm_result FROM ML.GENERATE_TEXT( MODEL `gemini_demo.gemini_pro`, ( SELECT CONCAT('Provide a short summary of movie titled ',title, ' from the year ',year,'.') AS prompt, uri, title, year FROM `gemini_demo.movie_posters_results_formatted` LIMIT 20 ), STRUCT(0.2 AS temperature, TRUE AS FLATTEN_JSON_OUTPUT));

    이전 쿼리와 유사한 결과가 반환되지만 이번에는 Gemini에 사용한 프롬프트가 프롬프트 열에 표시되고 이 프롬프트를 사용한 결과가 ml_generate_text_llm_result 필드에 포함됩니다. 이 필드에 영화의 간략한 요약이 포함됩니다.

내 진행 상황 확인하기를 클릭하여 목표를 확인합니다. 각 포스터의 영화 요약을 제공하도록 Gemini에 프롬프트 입력

작업 7. 원격 모델로 텍스트 임베딩 생성

이 작업에서는 추가 분석을 수행하기 위해 원격 모델을 사용하여 텍스트 임베딩을 생성합니다.

원격 모델 만들기

텍스트 임베딩을 생성하려면 엔드포인트에서 호스팅되는 원격 text-multilingual-embedding-002 모델을 사용해야 합니다. 그런 다음 임베딩을 생성할 수 있습니다.

  1. +를 클릭하여 새 SQL 쿼리를 만듭니다.

  2. 쿼리 편집기에 다음 쿼리를 붙여넣고 실행합니다.

    CREATE OR REPLACE MODEL `gemini_demo.text_embedding` REMOTE WITH CONNECTION `us.gemini_conn` OPTIONS (endpoint = 'text-multilingual-embedding-002')

    이렇게 하면 text_embedding 모델이 생성되어 탐색기에서 gemini_demo 데이터 세트 아래에 표시됩니다.

포스터와 관련된 제목 및 연도의 텍스트 임베딩 생성

결과를 저장할 테이블을 만들어야 합니다.

  1. +를 클릭하여 새 SQL 쿼리를 만듭니다.

  2. 쿼리 편집기에 다음 쿼리를 붙여넣고 실행합니다.

    CREATE OR REPLACE TABLE `gemini_demo.movie_posters_results_embeddings` AS ( SELECT * FROM ML.GENERATE_EMBEDDING( MODEL `gemini_demo.text_embedding`, ( SELECT CONCAT('The movie titled ', title, ' from the year ', year,'.') AS content, title, year, uri FROM `gemini_demo.movie_posters_results_formatted` ), STRUCT(TRUE AS flatten_json_output)));

    이렇게 하면 gemini_demo.movie_posters_results_formatted 테이블에서 가져온 텍스트 콘텐츠(URI, 영화 제목, 개봉 연도)의 임베딩 생성 결과가 포함된 movie_poster_results_embeddings 테이블이 생성됩니다.

    참고: 임베딩을 생성하기 위해 ML.GENERATE_EMBEDDING 함수를 사용합니다. 이 함수에는 3개의 인수가 있습니다.
    • 첫 번째 인수는 임베딩 생성에 사용할 모델의 이름입니다. 이 경우에는 모델의 이름이 gemini_demo.text_embedding입니다.
    • 두 번째 인수는 삽입할 텍스트 콘텐츠를 선택하는 서브 쿼리입니다. 이 경우 서브 쿼리에서 각 영화의 제목과 연도를 선택하여 하나의 문자열로 연결합니다.
    • 세 번째 인수는 임베딩의 출력 형식을 지정하는 구조체입니다. 이 경우 flatten_json_output 필드가 TRUE로 설정되므로 임베딩이 단일 JSON 객체로 평면화됩니다.
  3. 아래의 새 쿼리를 사용하여 쿼리 결과를 확인할 수 있습니다.

    SELECT * FROM `gemini_demo.movie_posters_results_embeddings`

    모델에서 생성한 각 영화의 임베딩(숫자로 표현된 벡터)을 확인할 수 있습니다.

IMDB 데이터 세트에 속한 하위 집합의 텍스트 임베딩 생성

데이터 세트에서 1935년 이전에 개봉한 영화만 포함된 새 뷰를 만들어 보겠습니다.

  1. 다음 SQL 문을 사용하여 새 쿼리를 만들고 실행합니다.

    CREATE OR REPLACE VIEW `gemini_demo.imdb_movies` AS ( WITH reviews AS ( SELECT reviews.movie_id AS movie_id, title.primary_title AS title, title.start_year AS year, reviews.review AS review FROM `bigquery-public-data.imdb.reviews` reviews LEFT JOIN `bigquery-public-data.imdb.title_basics` title ON reviews.movie_id = title.tconst) SELECT DISTINCT(movie_id), title, year FROM reviews WHERE year < 1935)

    이렇게 하면 bigquery-public-data.imdb.reviews 테이블에서 1935년 이전에 개봉한 데이터 세트의 모든 영화에 대한 고유한 영화 ID, 제목, 개봉 연도 목록이 포함된 새 뷰가 생성됩니다.

  2. 다음 SQL 문을 사용하여 새 쿼리를 만들고 실행합니다.

    CREATE OR REPLACE TABLE `gemini_demo.imdb_movies_embeddings` AS ( SELECT * FROM ML.GENERATE_EMBEDDING( MODEL `gemini_demo.text_embedding`, ( SELECT CONCAT('The movie titled ', title, ' from the year ', year,'.') AS content, title, year, movie_id FROM `gemini_demo.imdb_movies` ), STRUCT(TRUE AS flatten_json_output) ) WHERE ml_generate_embedding_status = '' );

    쿼리 결과로 gemini_demo.imdb_movies 테이블에 있는 텍스트 콘텐츠의 임베딩이 포함된 테이블이 반환됩니다.

BigQuery VECTOR_SEARCH를 사용하여 영화 포스터 이미지와 IMDB movie_id 매칭

  1. 다음 SQL 문을 사용하여 새 쿼리를 만들고 실행합니다.

    SELECT query.uri AS poster_uri, query.title AS poster_title, query.year AS poster_year, base.title AS imdb_title, base.year AS imdb_year, base.movie_id AS imdb_movie_id, distance FROM VECTOR_SEARCH( TABLE `gemini_demo.imdb_movies_embeddings`, 'ml_generate_embedding_result', TABLE `gemini_demo.movie_posters_results_embeddings`, 'ml_generate_embedding_result', top_k => 1, distance_type => 'COSINE');

    이 쿼리는 VECTOR_SEARCH 함수를 사용하여 gemini_demo.movie_posters_results_embeddings 테이블의 각 행에 해당하는 최근접 이웃을 gemini_demo.imdb_movies_embeddings 테이블에서 찾습니다. 최근접 이웃은 두 임베딩이 얼마나 유사한지 결정하는 코사인 거리 측정항목을 사용하여 찾습니다.

    이 쿼리를 사용하면 영화 포스터에서 Gemini Pro Vision으로 식별한 각 영화와 가장 유사한 영화를 IMDB 데이터 세트에서 찾을 수 있습니다. 예를 들어 이 쿼리를 사용하여 영화 포스터 중 하나에서 Gemini Pro Vision으로 식별한 영화인 'Au Secours!'와 가장 매칭되는 영화를 IMDB 공개 데이터 세트에서 찾을 수 있습니다. 이 경우 IMDB 공개 데이터 세트에서 해당 영화는 영어 제목인 'Help!'로 표시됩니다.

  2. 새 쿼리를 만들고 실행하여 IMDB 공개 데이터 세트에 제공된 영화 평점의 추가 정보를 조인합니다.

    SELECT query.uri AS poster_uri, query.title AS poster_title, query.year AS poster_year, base.title AS imdb_title, base.year AS imdb_year, base.movie_id AS imdb_movie_id, distance, imdb.average_rating, imdb.num_votes FROM VECTOR_SEARCH( TABLE `gemini_demo.imdb_movies_embeddings`, 'ml_generate_embedding_result', TABLE `gemini_demo.movie_posters_results_embeddings`, 'ml_generate_embedding_result', top_k => 1, distance_type => 'COSINE') DATA LEFT JOIN `bigquery-public-data.imdb.title_ratings` imdb ON base.movie_id = imdb.tconst ORDER BY imdb.average_rating DESC

    이 쿼리는 이전 쿼리와 유사합니다. 이 경우에도 벡터 임베딩이라는 특수한 수치적 표현을 사용하여 특정 영화 포스터와 유사한 영화를 찾습니다. 하지만 이 쿼리는 IMDB 공개 데이터 세트의 별도 테이블에서 각 최근접 이웃 영화의 평균 평점과 투표수도 조인합니다.

내 진행 상황 확인하기를 클릭하여 목표를 확인합니다. IMDB 데이터 세트에 속한 하위 집합의 텍스트 임베딩 생성

수고하셨습니다

BigQuery에서 포스터 이미지의 객체 테이블을 만들고, 원격 Gemini 모델을 만들고, 모델을 사용해 Gemini에 이미지 분석과 영화 요약을 요청하는 프롬프트를 입력하고, 영화 제목의 텍스트 임베딩을 생성하고, 임베딩을 사용하여 영화 포스터 이미지를 IMDB 데이터 세트의 관련 영화 제목과 매칭했습니다.

다음 단계/더 학습하기

Google Cloud 교육 및 자격증

Google Cloud 기술을 최대한 활용하는 데 도움이 됩니다. Google 강의에는 빠른 습득과 지속적인 학습을 지원하는 기술적인 지식과 권장사항이 포함되어 있습니다. 기초에서 고급까지 수준별 학습을 제공하며 바쁜 일정에 알맞은 주문형, 실시간, 가상 옵션이 포함되어 있습니다. 인증은 Google Cloud 기술에 대한 역량과 전문성을 검증하고 입증하는 데 도움이 됩니다.

설명서 최종 업데이트: 2024년 10월 4일

실습 최종 테스트: 2024년 5월 23일

Copyright 2025 Google LLC All rights reserved. Google 및 Google 로고는 Google LLC의 상표입니다. 기타 모든 회사명 및 제품명은 해당 업체의 상표일 수 있습니다.

Before you begin

  1. Labs create a Google Cloud project and resources for a fixed time
  2. Labs have a time limit and no pause feature. If you end the lab, you'll have to restart from the beginning.
  3. On the top left of your screen, click Start lab to begin

현재 이 콘텐츠를 이용할 수 없습니다

이용할 수 있게 되면 이메일로 알려드리겠습니다.

감사합니다

이용할 수 있게 되면 이메일로 알려드리겠습니다.

One lab at a time

Confirm to end all existing labs and start this one

Use private browsing to run the lab

Use an Incognito or private browser window to run this lab. This prevents any conflicts between your personal account and the Student account, which may cause extra charges incurred to your personal account.