이 Codelab 정보
1. 소개
이 실습에서는 원격 모델 ( Gemini 모델)을 사용한 추론에 BigQuery 머신러닝을 사용하여 영화 포스터 이미지를 분석하고 BigQuery 데이터 웨어하우스에서 바로 포스터를 기반으로 영화의 요약을 생성하는 방법을 알아봅니다.
위 사진: 분석할 영화 포스터 이미지 샘플
BigQuery는 데이터의 가치를 극대화하는 데 도움이 되는 완전 관리형 AI 지원 데이터 분석 플랫폼으로서 멀티 엔진, 멀티 형식, 멀티 클라우드로 설계되었습니다. 주요 기능 중 하나인 BigQuery 머신러닝을 사용한 추론을 통해 GoogleSQL 쿼리를 사용하여 머신러닝 (ML) 모델을 만들고 실행할 수 있습니다.
Gemini는 Google에서 개발한 생성형 AI 모델 제품군으로, 멀티모달 사용 사례를 위해 설계되었습니다.
GoogleSQL 쿼리를 사용한 ML 모델 실행
일반적으로 대규모 데이터 세트에서 ML 또는 인공지능(AI)을 수행하려면 ML 프레임워크에 대한 광범위한 프로그래밍과 지식이 필요합니다. 이 때문에 각 회사에서도 극소수의 전문가만 솔루션 개발을 담당할 수 있습니다. 추론을 위한 BigQuery 머신러닝을 사용하면 SQL 실무자는 기존 SQL 도구와 기술을 사용하여 모델을 빌드하고 LLM 및 Cloud AI API에서 결과를 생성할 수 있습니다.
기본 요건
- Google Cloud 콘솔에 관한 기본적인 이해
- BigQuery 경험이 있으면 좋음
학습할 내용
- API를 사용하도록 환경 및 계정을 구성하는 방법
- BigQuery에서 Cloud 리소스 연결을 만드는 방법
- 영화 포스터 이미지용으로 BigQuery에서 데이터 세트 및 객체 테이블을 만드는 방법
- BigQuery에서 Gemini 원격 모델을 만드는 방법
- Gemini 모델에 각 포스터의 영화 요약을 제공하도록 프롬프트하는 방법
- 각 포스터에 표시된 영화의 텍스트 임베딩을 생성하는 방법
- BigQuery
VECTOR_SEARCH
를 사용하여 영화 포스터 이미지를 데이터 세트에서 밀접하게 관련된 영화와 일치시키는 방법
필요한 항목
- 결제가 사용 설정된 Google Cloud 계정 및 Google Cloud 프로젝트
- 웹브라우저(예: Chrome)
2. 설정 및 요구사항
자습형 환경 설정
- Google Cloud Console에 로그인하여 새 프로젝트를 만들거나 기존 프로젝트를 재사용합니다. 아직 Gmail이나 Google Workspace 계정이 없는 경우 계정을 만들어야 합니다.
- 프로젝트 이름은 이 프로젝트 참가자의 표시 이름입니다. 이는 Google API에서 사용하지 않는 문자열이며 언제든지 업데이트할 수 있습니다.
- 프로젝트 ID는 모든 Google Cloud 프로젝트에서 고유하며, 변경할 수 없습니다(설정된 후에는 변경할 수 없음). Cloud 콘솔은 고유한 문자열을 자동으로 생성합니다. 일반적으로는 신경 쓰지 않아도 됩니다. 대부분의 Codelab에서는 프로젝트 ID (일반적으로
PROJECT_ID
로 식별됨)를 참조해야 합니다. 생성된 ID가 마음에 들지 않으면 다른 임의 ID를 생성할 수 있습니다. 또는 직접 시도해 보고 사용 가능한지 확인할 수도 있습니다. 이 단계 이후에는 변경할 수 없으며 프로젝트 기간 동안 유지됩니다. - 참고로 세 번째 값은 일부 API에서 사용하는 프로젝트 번호입니다. 이 세 가지 값에 대한 자세한 내용은 문서를 참고하세요.
- 다음으로 Cloud 리소스/API를 사용하려면 Cloud 콘솔에서 결제를 사용 설정해야 합니다. 이 Codelab 실행에는 많은 비용이 들지 않습니다. 이 튜토리얼이 끝난 후에 요금이 청구되지 않도록 리소스를 종료하려면 만든 리소스 또는 프로젝트를 삭제하면 됩니다. Google Cloud 신규 사용자는 300달러(USD) 상당의 무료 체험판 프로그램에 참여할 수 있습니다.
Cloud Shell 시작
Google Cloud를 노트북에서 원격으로 실행할 수 있지만, 이 Codelab에서는 Cloud에서 실행되는 명령줄 환경인 Google Cloud Shell을 사용합니다.
Google Cloud Console의 오른쪽 상단 툴바에 있는 Cloud Shell 아이콘을 클릭합니다.
환경을 프로비저닝하고 연결하는 데 몇 분 정도 소요됩니다. 완료되면 다음과 같이 표시됩니다.
가상 머신에는 필요한 개발 도구가 모두 들어있습니다. 영구적인 5GB 홈 디렉터리를 제공하고 Google Cloud에서 실행되므로 네트워크 성능과 인증이 크게 개선됩니다. 이 Codelab의 모든 작업은 브라우저 내에서 수행할 수 있습니다. 아무것도 설치할 필요가 없습니다.
3. 시작하기 전에
BigQuery에서 Gemini 모델을 사용하려면 API 사용 설정, Cloud 리소스 연결 생성, Cloud 리소스 연결의 서비스 계정에 특정 권한 부여 등 몇 가지 설정 단계를 거쳐야 합니다. 이 단계는 프로젝트당 한 번만 진행되며 다음 몇 섹션에서 설명합니다.
API 사용 설정
Cloud Shell 내에 프로젝트 ID가 설정되어 있는지 확인합니다.
gcloud config set project [YOUR-PROJECT-ID]
환경 변수 PROJECT_ID
를 설정합니다.
PROJECT_ID=$(gcloud config get-value project)
Vertex AI 모델에 사용할 기본 리전을 구성합니다. Vertex AI를 사용할 수 있는 위치에 대해 자세히 알아보세요. 이 예에서는 us-central1
리전을 사용합니다.
gcloud config set compute/region us-central1
환경 변수 REGION
를 설정합니다.
REGION=$(gcloud config get-value compute/region)
필요한 모든 서비스를 사용 설정합니다.
gcloud services enable bigqueryconnection.googleapis.com \
aiplatform.googleapis.com
위의 모든 명령어를 실행한 후 예상되는 출력은 다음과 같습니다.
student@cloudshell:~ (test-project-001-402417)$ gcloud config set project test-project-001-402417 Updated property [core/project]. student@cloudshell:~ (test-project-001-402417)$ PROJECT_ID=$(gcloud config get-value project) Your active configuration is: [cloudshell-14650] student@cloudshell:~ (test-project-001-402417)$ student@cloudshell:~ (test-project-001-402417)$ gcloud services enable bigqueryconnection.googleapis.com \ aiplatform.googleapis.com Operation "operations/acat.p2-4470404856-1f44ebd8-894e-4356-bea7-b84165a57442" finished successfully.
4. Cloud 리소스 연결 만들기
이 작업에서는 BigQuery가 Cloud Storage의 이미지 파일에 액세스하고 Vertex AI를 호출할 수 있는 Cloud 리소스 연결을 만듭니다.
- Google Cloud 콘솔의 탐색 메뉴 (
)에서 BigQuery를 클릭합니다.
- 연결을 만들기 위해 +추가를 클릭한 다음 외부 데이터 소스에 연결을 클릭합니다.
- '연결 유형' 목록에서 Vertex AI 원격 모델, 원격 함수, BigLake(Cloud 리소스)를 선택합니다.
- 연결을 위해 '연결 ID' 필드에 gemini_conn을 입력합니다.
- 위치 유형에서 멀티 리전을 선택한 다음 드롭다운에서 US 멀티 리전을 선택합니다.
- 다른 설정은 기본값을 그대로 유지합니다.
- 연결 만들기를 클릭합니다.
- 연결로 이동을 클릭합니다.
- '연결 정보' 창에서 다음 작업에 사용할 수 있도록 서비스 계정 ID를 텍스트 파일에 복사합니다. 또한 BigQuery 탐색기에서 프로젝트의 '외부 연결' 섹션에 연결이 추가된 것을 볼 수 있습니다.
5. 연결의 서비스 계정에 IAM 권한 부여
이 작업에서는 역할을 통해 Cloud 리소스 연결의 서비스 계정에 IAM 권한을 부여하여 Vertex AI 서비스에 액세스할 수 있도록 합니다.
- Google Cloud 콘솔의 탐색 메뉴에서 IAM 및 관리자를 클릭합니다.
- 액세스 권한 부여를 클릭합니다.
- 앞에서 복사한 서비스 계정 ID를 새 주 구성원 필드에 입력합니다.
- 역할 선택 필드에서 Vertex AI를 선택한 후 Vertex AI 사용자 역할을 선택합니다.
- 저장을 클릭합니다. 이렇게 하면 이제 서비스 계정 ID에 Vertex AI 사용자 역할이 포함됩니다.
6. BigQuery에서 영화 포스터 이미지의 데이터 세트 및 객체 테이블 만들기
이 작업에서는 프로젝트의 데이터 세트와 포스터 이미지를 저장할 객체 테이블을 만듭니다.
이 튜토리얼에 사용되는 영화 포스터 이미지의 데이터 세트는 공개 Google Cloud Storage 버킷(gs://cloud-samples-data/vertex-ai/dataset-management/datasets/classic-movie-posters
)에 저장됩니다.
데이터 세트 만들기
이 튜토리얼에서 사용되는 테이블과 모델을 비롯한 데이터베이스 객체를 저장할 데이터 세트를 생성합니다.
- Google Cloud 콘솔에서 탐색 메뉴 (
)를 선택한 다음 BigQuery를 선택합니다.
- 탐색기 패널에서 프로젝트 이름 옆에 있는 작업 보기 (
)를 선택한 다음 데이터 세트 만들기를 선택합니다.
- 데이터 세트 만들기 창에 다음 정보를 입력합니다.
- 데이터 세트 ID: gemini_demo
- 위치 유형: 멀티 리전을 선택합니다.
- 멀티 리전: 미국 선택
- 다른 필드는 기본값을 유지합니다.
- 데이터 세트 만들기를 클릭합니다.
이렇게 하면 gemini_demo
데이터 세트가 만들어지고 BigQuery 탐색기의 프로젝트 아래에 나열됩니다.
객체 테이블 만들기
BigQuery는 정형 데이터를 보유할 뿐만 아니라 객체 테이블을 통해 포스터 이미지와 같은 비정형 데이터에 액세스할 수도 있습니다.
Cloud Storage 버킷을 가리켜 객체 테이블을 만들면 결과 객체 테이블에는 버킷의 각 객체에 대한 행과 저장소 경로 및 메타데이터가 포함됩니다.
SQL 쿼리를 사용하여 객체 테이블을 만듭니다.
- +를 클릭하여 새 SQL 쿼리를 만듭니다.
- 쿼리 편집기에 아래 쿼리를 붙여넣습니다.
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/*']
);
- 쿼리를 실행합니다. 이렇게 하면
movie_posters
객체 테이블이gemini_demo
데이터 세트에 추가되고 각 영화 포스터 이미지의URI
(Cloud Storage 위치)와 함께 로드됩니다. - 탐색기에서
movie_posters
아이콘을 클릭하고 스키마와 세부정보를 검토합니다. 자유롭게 테이블을 쿼리하여 특정 레코드를 검토합니다.
7. BigQuery에서 Gemini 원격 모델 만들기
객체 테이블을 만들었으니 이제 테이블로 작업할 수 있습니다. 이 작업에서는 Gemini 1.5 Flash의 원격 모델을 만들어 BigQuery에서 사용할 수 있도록 합니다.
Gemini 1.5 Flash 원격 모델 만들기
- +를 클릭하여 새 SQL 쿼리를 만듭니다.
- 쿼리 편집기에 다음 쿼리를 붙여넣고 실행합니다.
CREATE OR REPLACE MODEL `gemini_demo.gemini_1_5_flash`
REMOTE WITH CONNECTION `us.gemini_conn`
OPTIONS (endpoint = 'gemini-1.5-flash')
이렇게 하면 gemini_1_5_flash
모델이 생성되고 모델 섹션의 gemini_demo
데이터 세트에 해당 모델이 추가된 것을 볼 수 있습니다.
- 탐색기에서
gemini_1_5_flash
모델을 클릭하고 세부정보를 검토합니다.
8. 각 포스터의 영화 요약을 제공하도록 Gemini 모델에 프롬프트 입력하기
이 작업에서는 방금 만든 Gemini 원격 모델을 사용하여 영화 포스터 이미지를 분석하고 각 영화의 요약을 생성합니다.
ML.GENERATE_TEXT
함수를 사용하여 매개변수에서 모델을 참조하여 모델에 요청을 보낼 수 있습니다.
Gemini 1.5 Flash 모델로 이미지 분석하기
- 다음 SQL 문을 사용하여 새 쿼리를 만들고 실행합니다.
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_1_5_flash`,
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. Do not use JSON decorators.' AS PROMPT,
TRUE AS FLATTEN_JSON_OUTPUT)));
쿼리가 실행되면 BigQuery는 객체 테이블의 각 행에 대해 Gemini 모델을 프롬프트하여 이미지를 지정된 정적 프롬프트와 결합합니다. 이렇게 하면 movie_posters_results
테이블이 생성됩니다.
- 이제 결과를 확인해 보겠습니다. 다음 SQL 문을 사용하여 새 쿼리를 만들고 실행합니다.
SELECT * FROM `gemini_demo.movie_posters_results`
결과는 각 영화 포스터의 행 (URI
: 영화 포스터 이미지의 Cloud Storage 위치)과 Gemini 1.5 Flash 모델의 영화 제목 및 영화 개봉 연도가 포함된 JSON 결과입니다.
다음 쿼리를 사용하여 인간이 읽기 더 쉬운 방식으로 이러한 결과를 가져올 수 있습니다. 이 쿼리는 SQL을 사용하여 이러한 응답에서 영화 제목과 발매 연도를 새 열로 가져옵니다.
- 다음 SQL 문을 사용하여 새 쿼리를 만들고 실행합니다.
CREATE OR REPLACE TABLE
`gemini_demo.movie_posters_results_formatted` AS (
SELECT
uri,
JSON_VALUE(ml_generate_text_llm_result, "$.title") AS title,
JSON_VALUE(ml_generate_text_llm_result, "$.year") AS year
FROM
`gemini_demo.movie_posters_results` results )
이렇게 하면 movie_posters_result_formatted
테이블이 생성됩니다.
- 아래의 쿼리를 사용하여 테이블을 쿼리하면 행이 생성됩니다.
SELECT * FROM `gemini_demo.movie_posters_results_formatted`
URI
열 결과는 동일하게 유지되지만 JSON은 각 행의 title
및 year
열로 변환됩니다.
Gemini 1.5 Flash 모델에 영화 요약 제공 프롬프트
각 영화에 대한 추가 정보(예: 각 영화의 텍스트 요약)를 확인하고 싶다면 어떻게 해야 하나요? 이 콘텐츠 생성 사용 사례는 Gemini 1.5 Flash 모델과 같은 LLM 모델에 적합합니다.
- Gemini 1.5 Flash를 사용하여 아래 쿼리를 실행하여 각 포스터의 영화 요약을 제공할 수 있습니다.
SELECT
uri,
title,
year,
prompt,
ml_generate_text_llm_result
FROM
ML.GENERATE_TEXT( MODEL `gemini_demo.gemini_1_5_flash`,
(
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));
결과의 ml_generate_text_llm_result
필드에는 영화에 대한 짧은 요약이 포함되어 있습니다.
9. 원격 모델로 텍스트 임베딩 생성
이제 빌드한 구조화된 데이터를 웨어하우스의 다른 구조화된 데이터와 조인할 수 있습니다. BigQuery에서 사용할 수 있는 IMDB 공개 데이터 세트에는 시청자 평점, 일부 샘플 자유 형식 사용자 리뷰 등 영화에 관한 다양한 정보가 포함되어 있습니다. 이 데이터를 사용하면 영화 포스터에 대한 분석을 심화하고 영화가 어떻게 인식되었는지 파악할 수 있습니다.
데이터를 조인하려면 키가 필요합니다. 이 경우 Gemini 모델에서 생성한 영화 제목이 IMDB 데이터 세트의 제목과 완전히 일치하지 않을 수 있습니다.
이 작업에서는 두 데이터 세트에서 영화 제목과 연도의 텍스트 임베딩을 생성한 다음 이러한 임베딩 간의 거리를 사용하여 가장 가까운 IMDB 제목을 새로 만든 데이터 세트의 영화 포스터 제목과 결합합니다.
원격 모델 만들기
텍스트 임베딩을 생성하려면 text-multilingual-embedding-002 엔드포인트를 가리키는 새 원격 모델을 만들어야 합니다.
- 다음 SQL 문을 사용하여 새 쿼리를 만들고 실행합니다.
CREATE OR REPLACE MODEL `gemini_demo.text_embedding`
REMOTE WITH CONNECTION `us.gemini_conn`
OPTIONS (endpoint = 'text-multilingual-embedding-002')
이렇게 하면 text_embedding
모델이 생성되고 탐색기의 gemini_demo
데이터 세트 아래에 표시됩니다.
포스터와 연결된 제목 및 연도에 대한 텍스트 임베딩 생성
이제 이 원격 모델을 ML.GENERATE_EMBEDDING
함수와 함께 사용하여 각 영화 포스터 제목과 연도의 임베딩을 만듭니다.
- 다음 SQL 문을 사용하여 새 쿼리를 만들고 실행합니다.
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
테이블의 각 행에 연결된 텍스트 콘텐츠의 임베딩이 포함된 movie_poster_results_embeddings
테이블이 생성됩니다.
- 아래의 새 쿼리를 사용하여 쿼리 결과를 확인할 수 있습니다.
SELECT * FROM `gemini_demo.movie_posters_results_embeddings`
모델에서 생성한 각 영화의 임베딩(숫자로 표현된 벡터)을 확인할 수 있습니다.
IMDB 데이터 세트의 하위 집합에 대한 텍스트 임베딩 생성
1935년 이전에 개봉한 영화 (포스터 이미지에서 영화의 알려진 기간)만 포함된 공개 IMDB 데이터 세트의 데이터로 새 보기를 만듭니다.
- 다음 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)
결과는 1935년 이전에 출시된 데이터 세트의 모든 영화에 대한 bigquery-public-data.imdb.reviews
테이블의 고유한 영화 ID, 제목, 출시 연도 목록이 포함된 새 뷰입니다.
- 이제 이전 섹션과 유사한 프로세스를 사용하여 IMDB의 영화 하위 집합에 대한 임베딩을 만듭니다. 다음 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
에 일치시키기
이제 VECTOR_SEARCH
함수를 사용하여 두 테이블을 조인할 수 있습니다.
- 다음 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 1.5 Flash로 식별된 각 영화에 대해 IMDB 데이터 세트에서 가장 유사한 영화를 찾는 데 사용할 수 있습니다. 예를 들어 이 쿼리를 사용하여 IMDB 공개 데이터 세트에서 영어 제목인 'Help!'로 이 영화를 참조하는 영화 'Au Secours!'와 가장 일치하는 항목을 찾을 수 있습니다.
- 새 쿼리를 만들고 실행하여 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 공개 데이터 세트의 별도 테이블에서 각 최근접 이웃 영화의 평균 평점과 투표수도 조인합니다.
10. 축하합니다
축하합니다. Codelab을 완료했습니다. BigQuery에서 포스터 이미지의 객체 테이블을 만들고, 원격 Gemini 모델을 만들고, 이 모델을 사용하여 Gemini 모델에 이미지를 분석하도록 프롬프트하고 영화 요약을 제공하고, 영화 제목의 텍스트 임베딩을 생성하고, 이러한 임베딩을 사용하여 영화 포스터 이미지를 IMDB 데이터 세트의 관련 영화 제목과 일치시켰습니다.
학습한 내용
- API를 사용하도록 환경 및 계정을 구성하는 방법
- BigQuery에서 Cloud 리소스 연결을 만드는 방법
- 영화 포스터 이미지용으로 BigQuery에서 데이터 세트 및 객체 테이블을 만드는 방법
- BigQuery에서 Gemini 원격 모델을 만드는 방법
- Gemini 모델에 각 포스터의 영화 요약을 제공하도록 프롬프트하는 방법
- 각 포스터에 표시된 영화의 텍스트 임베딩을 생성하는 방법
- BigQuery
VECTOR_SEARCH
를 사용하여 영화 포스터 이미지를 데이터 세트에서 밀접하게 관련된 영화와 일치시키는 방법
다음 단계 / 자세히 알아보기