AlloyDB Omni의 ai.forecast 함수는 ts_forecasting 모델 유형으로 등록된 모든 모델과 함께 작동하도록 설계되어 있으므로 필요에 가장 적합한 모델을 유연하게 사용할 수 있습니다. 이 문서에서는 TimesFM 사용에 관한
자세한 안내를 제공하지만 원칙을 다른
모델에도 적용할 수 있습니다.
시작하기 전에
시계열 예측을 실행하려면 먼저 예측 데이터베이스 플래그를 AlloyDB Omni에서 사용 설정하고 예측 모델을 등록해야 합니다.
예측 모델 등록
AlloyDB Omni에서 다양한 예측 모델을 사용할 수 있습니다.
이 섹션에서는 TimesFM 모델을 등록하는 방법을 설명합니다. 다른 모델을 등록하는 방법은 모델 엔드포인트 관리를 사용하여 모델 엔드포인트 등록을 참고하세요.
TimesFM 모델 사용
TimesFM 모델은 두 가지 버전으로 제공됩니다.
- TimesFM 1.0: TimesFM 모델의 초기 버전입니다.
- TimesFM 2.0: 이 버전에는 추론 코드가 포함된 5억 개의 파라미터 체크포인트가 포함되어 있습니다. 1.0 모델에 비해 모델 성능이 더 우수합니다.
- TimesFM 2.5: 이 버전에는 추론 코드가 포함된 2억 개의 파라미터 체크포인트가 포함되어 있습니다. 2.0 모델에 비해 모델 성능이 더 우수합니다.
모든 모델은 Model Garden에서 신속하게 배포할 수 있습니다.
TimesFM 모델을 사용하려면 먼저 TimesFM 모델을 Vertex AI 엔드포인트에 배포한 후 AlloyDB Omni에 등록해야 합니다.
Vertex AI 엔드포인트에 TimesFM 모델 배포
콘솔에서 클릭 한 번으로 배포를 사용하거나 Colaboratory 노트북을 사용하여 수동으로 모델을 배포할 수 있습니다. Google Cloud
클릭 한 번으로 배포
클릭 한 번으로 배포를 사용하여 TimesFM 모델을 배포하려면 다음 단계를 따르세요.
Google Cloud 콘솔에서 Model Garden 페이지로 이동합니다.
Model Garden으로 이동- 검색 필드에
TimesFM를 입력합니다. - 검색 결과에서
TimesFM을 클릭합니다. -
TimesFM 페이지에서 다음 단계를 완료합니다.
- 모델 배포를 클릭합니다.
- Vertex AI를 선택합니다.
Vertex AI에 배포 창에서 모델을 구성하고 배포합니다.
- TimesFM 모델의 최신 버전을 사용하려면 리소스 ID 드롭다운에서
google/timesfm-2.0을 선택합니다. - 나중에 배포를 더 쉽게 식별할 수 있도록 다음을 입력합니다.
- 모델 이름에 고유한
MODEL_NAME을 입력합니다. - 엔드포인트 이름에 고유한
ENDPOINT_NAME을 입력합니다.
- 모델 이름에 고유한
- 구성 옵션을 펼치려면 배포 설정에서 고급을 클릭합니다.
- 지연 시간을 최소화하려면 리전 드롭다운에서 AlloyDB Omni 인스턴스가 있는 동일한 리전을 선택합니다.
- 최상의 성능을 위해 머신 사양 드롭다운에서 적절한 머신 사양을 선택합니다. GPU 또는 TPU는 지연 시간이 더 짧을 수 있습니다.
**가용성 정책** 의 **엔드포인트 액세스** 드롭다운에서 **공개 (공유 엔드포인트)** 를 선택합니다.
이렇게 하면 AlloyDB Omni와 함께 작동하는
aiplatform도메인에 엔드포인트가 생성됩니다.- 관리형 엔드포인트에 모델을 배포하려면 배포 를 클릭합니다. 배포에는 약 10~15분이 걸릴 수 있습니다.
- TimesFM 모델의 최신 버전을 사용하려면 리소스 ID 드롭다운에서
- TimesFM 모델이 배포되면
google_timesfm-VERSION-one-click-deploy와 유사한 링크가 엔드포인트에 표시됩니다. - 모델 요청 URL을 가져오려면 엔드포인트에서 배포 링크를 클릭합니다.
- 엔드포인트 세부정보 페이지에서 샘플 요청 을 클릭합니다.
샘플 요청 창에서 모델 요청 URL을 찾아 기록해 둡니다. 이 정보는 AlloyDB Omni에서 TimesFM 모델 등록에 사용됩니다(예:
https://us-central1-aiplatform.googleapis.com/v1/projects/PROJECT_ID/locations/REGION/endpoints/ENDPOINT_ID:predict).요청 URL에
aiplatform.googleapis.com이 포함되어 있는지 확인합니다.
수동 배포
Colaboratory 노트북을 사용하여 TimesFM 모델을 수동으로 배포하려면 다음 단계를 따르세요.
-
콘솔에서 Model Garden 페이지로 이동합니다. Google Cloud
Model Garden으로 이동 - 검색 필드에
TimesFM를 입력합니다. - 검색 결과에서
TimesFM을 클릭하여 모델 카드를 엽니다. - TimesFM 페이지에서 CO 노트북 열기 를 클릭합니다.
- 노트북 열기 창에서 TimesFM 2.0의 Collab Enterprise 링크를 클릭합니다.
-
Collab Enterprise 페이지에서 다음 단계를 완료합니다.
- 런타임 환경에 연결하려면 연결 을 클릭합니다.
-
(선택사항) 필요한 경우 다음 단계를 완료합니다.
-
Google Cloud 프로젝트 설정의 기본 요건 섹션에서 BUCKET_URI 및 REGION을 설정합니다. 예를 들어 BUCKET_URI를
gs://your-unique-bucket-name로, REGION을us-central1로 설정합니다. - Vertex AI 엔드포인트로 TimesFM 배포의 accelerator_type 드롭다운에서 필요한 경우 다른 가속기 유형을 선택합니다.
- 3단계: 최대 예측 범위 설정에서 horizon 및 max_context 필드를 작성합니다. 예를 들어 horizon을
128로, max_context를512로 설정합니다.
-
-
use_dedicated_endpoint체크박스를 해제합니다. - 노트북의 모든 셀을 실행합니다.
노트북의 출력은
projects/PROJECT_ID/locations/REGION/endpoints/ENDPOINT_ID형식으로 엔드포인트 세부정보를 제공합니다. -
SQL 모델 생성 호출을 위한
model_request_url을 구성하려면 이전 단계의 엔드포인트 세부정보로 프로젝트 및 엔드포인트 식별자를 다음과 같이 바꿉니다.CALL google_ml.create_model( model_id => 'timesfm_v2', model_qualified_name => 'timesfm_v2', model_type => 'ts_forecasting', model_provider => 'google', model_request_url => 'https://REGION-aiplatform.googleapis.com/v1/projects/PROJECT_ID/locations/REGION/endpoints/ENDPOINT_ID:predict');
다음 섹션에 설명된 대로 AlloyDB Omni에서 TimesFM 모델을 등록할 때
google_ml.create_model호출에 이model_request_url이 필요합니다. ai.forecast함수가 예상대로 작동하는지 확인하려면 다음 샘플 쿼리를 실행합니다.SELECT * FROM ai.forecast( source_query=> ' SELECT my_timestamp, my_data_value FROM ( VALUES (CAST(''2025-01-01'' AS TIMESTAMP), 10.0), (CAST(''2025-01-02'' AS TIMESTAMP), 12.0), (CAST(''2025-01-03'' AS TIMESTAMP), 11.0), (CAST(''2025-01-04'' AS TIMESTAMP), 13.0), (CAST(''2025-01-05'' AS TIMESTAMP), 15.0), (CAST(''2025-01-06'' AS TIMESTAMP), 14.0), (CAST(''2025-01-07'' AS TIMESTAMP), 16.0), (CAST(''2025-01-08'' AS TIMESTAMP), 18.0), (CAST(''2025-01-09'' AS TIMESTAMP), 17.0), (CAST(''2025-01-10'' AS TIMESTAMP), 20.0) ) AS t (my_timestamp, my_data_value) ' , model_id => 'timesfm_v2', data_col => 'my_data_value', timestamp_col => 'my_timestamp', -- The rest of the parameters are the same horizon => 7, conf_level => 0.80 );
AlloyDB Omni에서 TimesFM 모델 등록
AlloyDB Omni에서 TimesFM 모델을 등록하려면 다음 단계를 따르세요.
예측을 실행할 데이터가 포함된 AlloyDB Omni 데이터베이스에
google_ml_integration확장 프로그램이 설치되어 있는지 확인합니다.google_ml_integration확장 프로그램 버전 1.4.5 이상이 설치되어 있는지 확인합니다.SELECT extversion FROM pg_extension WHERE extname = 'google_ml_integration';다음은 샘플 출력입니다.
extversion ------------ 1.4.5 (1 row)예측 모델 등록에서 기록해 둔 모델 요청 URL을 사용하여
google_ml.create_model을 호출합니다.CALL google_ml.create_model( model_id => 'MODEL_ID', model_qualified_name => 'MODEL_QUALIFIED_NAME', model_type => 'ts_forecasting', model_provider => 'google', model_request_url => 'https://REGION-aiplatform.googleapis.com/v1/projects/PROJECT_ID/locations/REGION/endpoints/ENDPOINT_ID:predict' -- Example endpoint from Model Garden );다음을 바꿉니다.
MODEL_ID: 예측에 사용할 등록된 모델의 고유 식별자(예:vertex_timesfm)MODEL_QUALIFIED_NAME: 모델의 사용자 정의 이름(예:timesfm_v2)REGION: 인스턴스가 배치된 리전(예:us-central1)PROJECT_ID: 모델이 배포된 프로젝트의 이름(예:forecast_project)ENDPOINT_ID: 모델 배포의 이름(예:my-timesfm-endpoint)model_request_url은 모델을 배포한 후 Vertex AI에서 제공합니다. Vertex AI 콘솔의 샘플 요청 창에서 전체 URL을 복사합니다. 올바른 프로젝트 및 엔드포인트 정보가 이미 포함되어 있습니다.
예측 데이터베이스 플래그 사용 설정
등록된 모델을 사용하여 예측을 생성하려면 먼저 google_ml_integration.enable_forecasting 데이터베이스 플래그를 on으로 설정해야 합니다.
현재 세션에 이 플래그를 사용 설정하거나 세션 간에 특정 데이터베이스 또는 사용자에 대해 지속되도록 설정할 수 있습니다. 데이터베이스 플래그를 설정하려면 다음 옵션 중 하나를 선택합니다.
현재 세션에 플래그 사용 설정:
SET google_ml_integration.enable_forecasting = on;특정 데이터베이스에 플래그 사용 설정:
ALTER DATABASE DATABASE_NAME SET google_ml_integration.enable_forecasting = 'on';DATABASE_NAME을 데이터베이스 이름으로 바꿉니다.특정 데이터베이스 사용자에 플래그 사용 설정:
ALTER ROLE postgres SET google_ml_integration.enable_forecasting = 'on';
예측 생성
TimesFM 모델을 등록하고 필요한 플래그를 사용 설정한 후 시계열 데이터가 포함된 소스 테이블 또는 쿼리를 전달하여 예측을 생성할 수 있습니다.
ai.forecast 함수는 별도로 문서화되어 있습니다. 설명과 예시를 포함한 전체
파라미터 목록은
모델 엔드포인트 관리 참조를 참고하세요.
소스 테이블에서 예측 생성
다음 예시에서는 소스 테이블을 사용하여 예측을 생성하는 ai.forecast 함수를 호출하는 방법을 보여줍니다.
SELECT * FROM ai.forecast(
model_id => 'MODEL_ID',
source_table => 'time_series_data',
data_col => 'data_points',
timestamp_col => 'timestamp',
horizon => 2,
conf_level => 0.80
);
쿼리에서 예측 생성
다음 예시에서는 하위 쿼리를 데이터 소스로 사용하여 ai.forecast 함수를 호출하여 예측을 생성하는 방법을 보여줍니다.
SELECT * FROM ai.forecast(
model_id => 'MODEL_ID',
source_query => '(SELECT * FROM time_series_data ORDER BY timestamp LIMIT 1) AS time_series_data',
data_col => 'data_points',
timestamp_col => 'timestamp',
horizon => 2,
conf_level => 0.80
);
다른 예측 모델 사용
AlloyDB Omni에 등록한 다른 시계열 예측 모델과 함께 ai.forecast 함수를 사용할 수 있습니다. 모델이 ts_forecasting 모델 유형으로 등록되어 있는지 확인하는 것이 중요합니다.
다양한 유형의 모델을 등록하는 방법에 관한 자세한 내용은
모델 엔드포인트 관리를 사용하여 원격 AI 모델 등록 및 호출을 참고하세요.
모델이 등록되면 model_id를 지정하여 ai.forecast 함수와 함께 사용할 수 있습니다.