텍스트 임베딩 모델 선택
이 문서에서는 BigQuery ML에서 사용할 수 있는 텍스트 임베딩 모델의 성능과 비용에 대한 벤치마크를 제공합니다. 이 정보를 사용해 사용 사례에 가장 적합한 모델을 결정할 수 있습니다.
모델
이 벤치마크에서는 다음과 같은 모델 유형을 다룹니다.
- Vertex AI
textembedding-gecko@001
기반 모델을 대상으로 하는 원격 모델. 이 모델은ML.GENERATE_EMBEDDING
함수와 함께 사용하여 임베딩을 생성합니다. Vertex AI 엔드포인트로 배포된 BERT 모델을 대상으로 하는 원격 모델. BERT 모델은 Vertex AI Model Garden에 설명된 대로 구성됩니다.
- 머신 유형:
n1-highmem-8
- 가속기 유형:
NVIDIA_TESLA_T4
- 가속기 수:
1
이 모델은
ML.PREDICT
함수와 함께 사용하여 임베딩을 생성합니다.- 머신 유형:
NNLM 및 SWIVEL 모델을 구현하는 가져온 TensorFlow 모델. 이 모델은
ML.PREDICT
함수와 함께 사용하여 임베딩을 생성합니다.
벤치마크는 ML.GENERATE_EMBEDDING
쿼리를 처리하기 위해 ML.GENERATE_EMBEDDING
함수를 사용하여 텍스트 삽입에 설명된 구문을 사용합니다.
벤치마크는 ML.PREDICT
쿼리를 처리하기 위해 텍스트 임베딩 생성에 설명된 구문을 사용합니다.
비용 산정
이 벤치마크는 BigQuery 주문형 컴퓨팅 가격 책정(TiB당 미화 $6.25)을 기준으로 BigQuery 비용을 계산합니다. 이 계산에는 매달 처리되는 컴퓨팅 용량 중 처음 1TiB가 무료라는 점은 반영되지 않습니다.
BERT 모델 호출과 관련된 Vertex AI 비용은 n1-highmem-8
예측률을 사용하여 계산됩니다.
textembedding-gecko
모델 호출과 관련된 Vertex AI 비용은 Embeddings for Text
예측률을 사용하여 계산됩니다.
BigQuery ML 가격 책정에 대한 자세한 내용은 BigQuery ML 가격 책정을 참조하세요.
벤치마크 데이터
벤치마크는 다음과 같이 준비된 bigquery-public-data.hacker_news.full
공개 데이터 세트를 사용합니다.
데이터를 테스트 테이블에 복사하고 각 행을 100번 복제했습니다.
CREATE OR REPLACE TABLE `mydataset.hacker_news.large` AS SELECT base.* FROM `bigquery-public-data.hacker_news.full` AS base, UNNEST(GENERATE_ARRAY(1, 100)) AS repeat_number;
hacker_news.large
테이블을 기반으로 벤치마크에 사용할 다양한 크기의 테스트 테이블을 추가로 만들었습니다. 다음과 같은 크기의 테스트 테이블이 사용되었습니다.- 100,000개 행
- 1,000,000개 행
- 10,000,000개 행
- 100,000,000개 행
- 행 1,000,000,000개
- 10,000,000,000개 행
벤치마킹
다음 표에는 벤치마크 데이터가 포함되어 있습니다.
모델 | 임베딩 측정기준 | 행 수 | 실행 시간 | 총 슬롯 밀리초 | 처리한 바이트 | 사용한 서비스 | 가격(US$) |
---|---|---|---|---|---|---|---|
SWIVEL | 20 | 100,000 | 5초 | 6,128 | 37MB | BigQuery | 0.00022 |
100만 | 1분 1초 | 97,210 | 341MB | 0.00203 | |||
1,000만 | 28초 | 1,203,838 | 3.21GB | 0.01959 | |||
1억 | 32초 | 11,755,909 | 31.9GB | 0.19470 | |||
10억 | 2분 3초 | 135,754,696 | 312.35GB | 1.90643 | |||
100억 | 19분 55초 | 1,257,462,851 | 3.12TB | 19.5 | |||
NNLM | 50 | 100,000 | 18초 | 66,112 | 227MB | BigQuery | 0.00135 |
100만 | 1분 1초 | 666,875 | 531MB | 0.00316 | |||
1,000만 | 19초 | 4,140,396 | 3.39GB | 0.02069 | |||
1억 | 27초 | 14,971,248 | 32.08GB | 0.19580 | |||
10억 | 8분 16초 | 288,221,149 | 312.54GB | 1.90759 | |||
100억 | 19분 28초 | 1,655,252,687 | 3.12TB | 19.5 | |||
BERT1 | 768 | 100,000 | 29분 37초 | 2,731,868 | 38MB | BigQuery | 0.00022 |
Vertex AI | 8.11 | ||||||
100만 | 5시간 10초 | 28,905,706 | 339MB | BigQuery | 0.00196 | ||
Vertex AI | 9.98 | ||||||
Vertex AI textembedding-gecko@001 LLM2 |
768 | 100,000 | 14분 14초 | 1,495,297 | 38MB | BigQuery | 0.00022 |
Vertex AI | 0.73 | ||||||
100만 | 2시간 24분 | 17,342,114 | 339MB | BigQuery | 0.00196 | ||
Vertex AI | 2.97 |
1 BigQuery 쿼리 작업은 6시간으로 제한되므로 이 모델은 최대 100만 개의 행에 대해서만 벤치마킹됩니다. 6시간 내에 더 많은 행을 처리하도록 Vertex AI Model Garden에서 더 많은 컴퓨팅 리소스를 사용할 수 있습니다. 예를 들어 가속기 수를 늘릴 수 있습니다.
2 BigQuery 쿼리 작업은 6시간으로 제한되므로 이 모델은 최대 100만 개의 행에 대해서만 벤치마킹됩니다. 6시간 내에 더 많은 행을 처리하도록 더 높은 할당량을 요청할 수 있습니다. 이 SQL 스크립트 세트 또는 이 Dataform 패키지를 사용하여 6시간의 제한 시간을 초과하여 추론 호출을 반복할 수도 있습니다.