솔루션 (AWS SDK) 만들기 - Personalize

기계 번역으로 제공되는 번역입니다. 제공된 번역과 원본 영어의 내용이 상충하는 경우에는 영어 버전이 우선합니다.

솔루션 (AWS SDK) 만들기

중요

솔루션을 만든 후에는 구성을 변경할 수 없습니다. 기본적으로 모든 새 솔루션은 자동 교육을 사용합니다. 자동 교육을 사용하면 솔루션이 활성화되는 동안 교육 비용이 발생합니다. 불필요한 비용을 피하려면 완료 후 솔루션을 삭제해야 합니다. 교육 비용에 대한 자세한 내용은 Amazon Personalize 요금을 참조하십시오.

AWS SDK로 솔루션을 생성하려면 CreateSolution API 작업을 사용하십시오. 다음 코드는 자동 학습을 사용하는 솔루션을 만드는 방법을 보여줍니다. 5일마다 새 솔루션 버전이 자동으로 생성됩니다.

코드를 사용하려면 솔루션에 이름을 지정하도록 업데이트하고, 데이터세트 그룹의 Amazon Resource Name (ARN) 을 지정하고, 선택적으로 훈련 빈도를 변경하고, 사용하려는 레시피의 ARN을 지정하십시오. 레시피에 대한 자세한 내용은 레시피 선택 단원을 참조하십시오.

SDK for Python (Boto3)
import boto3 personalize = boto3.client('personalize') create_solution_response = personalize.create_solution( name = 'solution name', recipeArn = 'recipe ARN', datasetGroupArn = 'dataset group ARN', performAutoTraining = True, solutionConfig = { "autoTrainingConfig": { "schedulingExpression": "rate(5 days)" } } ) solution_arn = create_solution_response['solutionArn'] print('solution_arn: ', solution_arn)
SDK for JavaScript v3
import { CreateSolutionCommand, PersonalizeClient, } from "@aws-sdk/client-personalize"; // create client const personalizeClient = new PersonalizeClient({ region: "REGION" }); // set the solution parameters export const solutionParam = { datasetGroupArn: "DATASET_GROUP_ARN" /* required */, recipeArn: "RECIPE_ARN" /* required */, name: "SOLUTION_NAME" /* required */, performAutoTraining: true /* optional, default is true */, solutionConfig: { autoTrainingConfig: { schedulingExpression: "rate(5 days)" /* optional, default is every 7 days */, }, }, }; export const run = async () => { try { const response = await personalizeClient.send( new CreateSolutionCommand(solutionParam) ); console.log("Success", response); return response; // For unit tests. } catch (err) { console.log("Error", err); } }; run();

솔루션을 생성한 후 나중에 사용할 수 있도록 솔루션 ARN을 기록해 두십시오. 자동 교육을 사용하면 솔루션이 활성화된 후 1년 이내에 솔루션 버전 생성이 시작됩니다. 한 시간 내에 솔루션 버전을 수동으로 만들면 솔루션은 첫 번째 자동 교육을 건너뛰게 됩니다. 교육이 시작되면 ListSolutionVersionsAPI 작업을 통해 솔루션 버전의 Amazon 리소스 이름 (ARN) 을 가져올 수 있습니다. 상태를 확인하려면 DescribeSolutionVersionAPI 작업을 사용하십시오.

다음 Python 코드를 사용하여 자동 학습이 시작될 때까지 기다릴 수 있습니다. wait_for_training_to_start메서드는 첫 번째 솔루션 버전의 ARN을 반환합니다.

import time import boto3 def wait_for_training_to_start(new_solution_arn): max_time = time.time() + 3 * 60 * 60 # 3 hours while time.time() < max_time: list_solution_versions_response = personalize.list_solution_versions( solutionArn=new_solution_arn ) solution_versions = list_solution_versions_response.get('solutionVersions', []) if solution_versions: new_solution_version_arn = solution_versions[0]['solutionVersionArn'] print(f"Solution version ARN: {new_solution_version_arn}") return new_solution_version_arn else: print(f"Training hasn't started yet. Training will start within the next hour.") time.sleep(60) personalize = boto3.client('personalize') solution_arn = "solution_arn" solution_version_arn = wait_for_training_to_start(solution_arn)

솔루션 버전이 ACTIVE이면 해당 버전을 사용하여 권장 사항을 받을 수 있습니다. 액티브 솔루션 버전을 사용하는 방법은 권장 사항을 받는 방법에 따라 달라집니다.