이 저장소에는 일부 공통 언어 쌍에서 번역된 문장의 품질 평가를 수행할 수 있는 애플리케이션을 배포하기 위한 코드 샘플이 포함되어 있습니다. 애플리케이션은 원본 문장과 번역된 대응문을 취하고 대규모 언어 모델을 사용하여 일부 품질 평가를 수행하고 RED, AMBER 또는 GREEN 등급을 제공합니다. 또한 응용 프로그램은 LLM의 추론과 그것이 식별하는 오류 목록을 렌더링합니다.
이 애플리케이션의 용도는 GREEN 등급에 사람의 개입이 필요하지 않은 공통 언어 쌍에 대한 기계 번역 모델의 품질을 평가하는 것입니다. AMBER 등급에는 약간의 수정이 필요하지만 문장의 의도는 번역에서 유지됩니다. RED 등급은 사용할 수 없거나 원본 문장의 의미를 변경하는 품질이 낮은 번역을 식별합니다.
이 응용 프로그램은 다국어 LLM의 흥미로운 기능 중 일부를 보여주기 위한 것이며 프로덕션 준비 시스템이 아닙니다.
이 애플리케이션을 배포하려면 Bedrock 특정 Bedrock 모델에 액세스할 수 있는 AWS 계정이 필요합니다. 필요한 모델을 활성화하려면 다음 단계를 따르세요.
사용할 계정의 AWS 콘솔에 로그인합니다.
배포하려는 지역으로 전환합니다. 먼저 해당 지역에서 Bedrock을 사용할 수 있는지, 사용할 모델도 사용할 수 있는지 확인하십시오(기본적으로 Claude 3 Sonnet 및 Llama2 Chat 70B).
콘솔에서 Bedrock으로 이동하고 드롭다운 메뉴에서 Model access
로 이동합니다.
Modify model access
선택하세요.
기본 모델 목록에서 다음을 선택합니다.
두 모델의 이용 약관을 확인하고 사용량이 이 범위 내에 있는지 확인하세요.
Next
클릭하면 액세스 권한이 즉시 부여됩니다. 몇 분 내에 액세스 권한이 부여되지 않으면 AWS Support에 문의하십시오.
먼저 python3.12 -m venv .venv
사용하여 Python 가상 환경을 생성합니다.
다음으로 가상 환경을 활성화하고 요구 사항을 설치합니다.
source .venv/bin/activate
pip install -r requirements.txt
SAM CLI를 사용하여 애플리케이션 구축
sam build --template template.yaml
그러면 먼저 애플리케이션용 패키지가 빌드되고 로컬에 .aws-sam
폴더가 생성됩니다.
빌드된 아티팩트를 배포합니다. 첫 번째 배포의 경우 --guided
플래그를 사용하여 스택에 대한 일련의 질문에 답하세요. 이러한 매개변수는 로컬에 저장하여 향후 배포에 재사용할 수 있습니다.
sam deploy --guided --profile < AWS_PROFILE >
요청된 첫 번째 매개변수는 스택 이름입니다. 이 문서의 나머지 부분에서는 이를 $STACK_NAME
이라고 부르겠습니다. 이렇게 하면 지정된 AWS 계정에 애플리케이션 배포가 시작됩니다. 배포에는 15분 미만이 소요됩니다. 스택에 대한 전체 출력 세트가 표시되면 다음 단계에서 이를 사용하여 UI를 구성합니다.
UI를 구성하려면 스택 출력 중 일부를 사용해야 합니다.
배포한 AWS 계정의 콘솔로 이동하여 Cloudformation과 Stacks로 이동합니다.
$STACK_NAME
스택을 찾아 열고 출력 탭으로 이동합니다.
로컬에서 ui/src/aws-exports.js
열어 파일을 편집합니다.
Cloudformation 스택의 Outpts 탭에 있는 해당 변수를 사용하여 aws-exports.js
에 다음 값을 입력합니다.
aws_project_region: $Region ,
aws_cognito_region: $Region ,
aws_user_files_s3_bucket_region: $Region ,
aws_user_files_s3_bucket: $S3Bucket ,
aws_cloud_logic_custom: [
{
name: " api " ,
endpoint: " $Endpoint " ,
},
],
aws_user_pools_id: $UserPoolsId ,
aws_cognito_identity_pool_id: $IdentityPoolId ,
aws_user_pools_web_client_id: $UserPoolsWebClientId ,
다음으로 애플리케이션에 액세스하려면 Amazon Cognito에서 사용자를 생성해야 합니다. AWS 콘솔에서 Amazon Cognito를 열고 사용자 풀을 찾습니다. 이름은 UserPool-$UserPoolsId
로 지정됩니다. 사용자 탭에서 사용자 생성을 선택하고 단계에 따라 UI 액세스용 계정을 설정합니다.
프런트 엔드를 로컬로 빌드하려면 다음을 실행하세요.
cd ui
npm install
그런 다음 다음을 사용하여 데모 목적으로 프런트 엔드를 로컬에서 호스팅할 수 있습니다.
npm run dev
그러면 애플리케이션에 액세스하기 위한 localhost URL이 제공됩니다.
ui 폴더 아래 dist 폴더로 이동하여 모든 파일을 수동으로 선택하고 zip 파일을 생성합니다. ui.zip으로 이름을 바꿀 수 있습니다.
AWS 콘솔에 로그인하고 AWS Amplify로 이동합니다.
Create new app
선택하세요.
Deploy without Git
선택한 후 다음을 선택하세요.
로컬 저장소로 이동하여 ui
폴더에서 다음을 실행합니다.
npm run build
그러면 ui/dist
폴더가 생성됩니다.
다음으로 dist 폴더를 압축합니다.
cd dist
zip -r $STACK_NAME *
AWS Amplify 콘솔로 돌아가서 새로 생성된 zip 파일을 업로드한 다음 Save and deploy
누르십시오.
성공하면 Domain
링크가 포함된 페이지가 표시됩니다. 이를 클릭하면 배포된 애플리케이션으로 이동됩니다.
이전 단계에서 생성된 사용자를 사용하여 애플리케이션에 로그인합니다.
향후 요금이 발생하지 않도록 생성된 리소스를 정리하세요.
sam delete $STACK_NAME
AWS 콘솔에서 AWS Amplify를 열고 Amplify 호스팅에 대해 "앱 삭제" 작업을 선택합니다.