이 가이드에서는 AutoML Translation을 사용하여 커스텀 번역 모델을 생성하는 방법을 설명합니다. 이 애플리케이션은 소프트웨어 현지화에서 영어-스페인어 데이터세트의 기술 중심 문장 쌍을 사용하여 커스텀 모델을 학습합니다.
이 가이드에서는 커스텀 모델 학습, 커스텀 모델 성과 평가, 새 콘텐츠 번역에 관해 다룹니다.
기본 요건
프로젝트 환경 구성
- Google Cloud 계정에 로그인합니다. Google Cloud를 처음 사용하는 경우 계정을 만들고 Google 제품의 실제 성능을 평가해 보세요. 신규 고객에게는 워크로드를 실행, 테스트, 배포하는 데 사용할 수 있는 $300의 무료 크레딧이 제공됩니다.
-
Google Cloud Console의 프로젝트 선택기 페이지에서 Google Cloud 프로젝트를 선택하거나 만듭니다.
-
Google Cloud 프로젝트에 결제가 사용 설정되어 있는지 확인합니다. 프로젝트에 결제가 사용 설정되어 있는지 확인하는 방법을 알아보세요.
-
API AutoML Translation 사용 설정
-
Google Cloud Console의 프로젝트 선택기 페이지에서 Google Cloud 프로젝트를 선택하거나 만듭니다.
-
Google Cloud 프로젝트에 결제가 사용 설정되어 있는지 확인합니다. 프로젝트에 결제가 사용 설정되어 있는지 확인하는 방법을 알아보세요.
-
API AutoML Translation 사용 설정
- Google Cloud CLI를 설치합니다.
- 안내를 따라 서비스 계정을 만들고 키 파일을 다운로드합니다.
- 서비스 계정을 만들 때 다운로드한 서비스 계정 키 파일 경로로
GOOGLE_APPLICATION_CREDENTIALS
환경 변수를 설정합니다. 예를 들면 다음과 같습니다.export GOOGLE_APPLICATION_CREDENTIALS=key-file
- 다음 명령을 사용하여 AutoML 편집자 IAM 역할에 새 서비스 계정을 추가합니다. project-id를 Google Cloud 프로젝트 이름으로 바꾸고 service-account-name을 새 서비스 계정의 이름(예:
service-account1@myproject.iam.gserviceaccount.com
)으로 바꿉니다.gcloud auth login gcloud config set project project-id gcloud projects add-iam-policy-binding project-id \ --member=serviceAccount:service-account-name \ --role='roles/automl.editor'
- AutoML Translation 서비스 계정으로 Google Cloud 프로젝트 리소스에 액세스하도록 허용합니다.
gcloud projects add-iam-policy-binding project-id \ --member="serviceAccount:service-project-number@gcp-sa-automl.iam.gserviceaccount.com" \ --role="roles/automl.serviceAgent"
- 클라이언트 라이브러리를 설치합니다.
- PROJECT_ID 및 REGION_NAME 환경 변수를 설정합니다.
project-id를 Google Cloud 프로젝트의 프로젝트 ID로 바꿉니다. AutoML Translation에는 현재us-central1
위치가 필요합니다.export PROJECT_ID="project-id" export REGION_NAME="us-central1"
- Google Cloud Storage 버킷을 만들고 커스텀 모델 학습에 사용할 문서를 저장합니다.
버킷 이름은$PROJECT_ID-vcm
형식이어야 합니다. 다음 명령어는$PROJECT_ID-vcm
이라는us-central1
리전에 스토리지 버킷을 만듭니다.gsutil mb -p $PROJECT_ID -c regional -l $REGION_NAME gs://$PROJECT_ID-vcm/
-
모델 학습에 사용할 샘플 데이터를 포함하는 보관 파일을 다운로드하여 콘텐츠를 추출하고 파일을 Google Cloud Storage 버킷에 업로드합니다.
형식에 대한 자세한 내용은 학습 데이터 준비를 참조하세요.이 가이드의 샘플 코드에서는 영어-스페인어 데이터세트를 사용합니다. 도착어가 독일어, 프랑스어, 러시아어, 중국어인 데이터세트도 사용할 수 있습니다. 이러한 다른 데이터세트 중 하나를 사용하는 경우 샘플의 언어 코드
es
를 적절한 언어 코드로 바꿉니다. - 이전 단계의
en-es.csv
파일에서{project_id}
를 프로젝트의 프로젝트 ID로 바꿉니다.
소스 코드 파일 위치
아래 제공된 위치에서 소스 코드를 다운로드할 수 있습니다. 다운로드 후 소스 코드를 Google Cloud 프로젝트 폴더에 복사할 수 있습니다.
Python
이 가이드는 다음 Python 파일로 구성됩니다.
translate_create_dataset.py
– 데이터세트를 만드는 기능을 포함합니다.import_dataset.py
– 데이터 세트를 가져오는 기능을 포함합니다.translate_create_model.py
– 모델을 만드는 기능을 포함합니다.list_model_evaluations.py
– 모델 평가를 나열하는 기능을 포함합니다.translate_predict.py
- 예측과 관련된 기능을 포함합니다.delete_model.py
- 모델을 삭제하는 기능을 포함합니다.
자바
이 튜토리얼은 다음 자바 파일로 구성됩니다.
TranslateCreateDataset.java
– 데이터 세트를 만드는 기능을 포함합니다.ImportDataset.java
– 데이터 세트를 가져오는 기능을 포함합니다.TranslateCreateModel.java
– 모델을 만드는 기능을 포함합니다.ListModelEvaluations.java
– 모델 평가를 나열하는 기능을 포함합니다.TranslatePredict.java
- 예측과 관련된 기능을 포함합니다.DeleteModel.java
– 모델을 삭제하는 기능을 포함합니다.
Node.js
이 튜토리얼은 다음 Node.js 프로그램으로 구성됩니다.
translate_create_dataset.js
– 데이터 세트를 만드는 기능을 포함합니다.import_dataset.js
– 데이터 세트를 가져오는 기능을 포함합니다.translate_create_model.js
– 모델을 만드는 기능을 포함합니다.list_model_evaluations.js
– 모델 평가를 나열하는 기능을 포함합니다.translate_predict.js
- 예측과 관련된 기능을 포함합니다.delete_model.js
- 모델을 삭제하는 기능을 포함합니다.
애플리케이션 실행
1단계: 데이터 세트 생성
커스텀 모델을 생성하는 첫 단계는 모델 학습용 데이터를 저장할 비어 있는 데이터세트를 만드는 것입니다. 데이터세트를 생성할 때 번역할 출발어와 도착어를 지정합니다.
코드 복사
Python
Java
Node.js
요청
create_dataset
함수를 실행하고 비어 있는 데이터 세트를 만듭니다. 다음 코드 줄을 수정해야 합니다.
project_id
를 PROJECT_ID로 설정합니다.- 데이터세트의
display_name
을 설정합니다(en_es_dataset
). target_language_code
필드를ja
에서es
로 수정합니다.
Python
python translate_create_dataset.py
자바
mvn compile exec:java -Dexec.mainClass="com.example.automl.TranslateCreateDataset"
Node.js
node translate_create_dataset.js
응답
응답에는 향후 요청에 참조할 데이터 세트 ID와 같이 새로 생성된 데이터 세트의 세부정보가 포함됩니다. 반환된 데이터세트 ID 값에 환경 변수 DATASET_ID
를 설정하는 것이 좋습니다.
Dataset name: projects/216065747626/locations/us-central1/datasets/TRL7372141011130533778 Dataset id: TRL7372141011130533778 Dataset display name: en_es_dataset Translation dataset Metadata: source_language_code: en target_language_code: es Dataset example count: 0 Dataset create time: seconds: 1530251987 nanos: 216586000
2단계: 데이터세트로 학습 문장 쌍 가져오기
다음 단계에서는 학습 문장 쌍 목록으로 데이터 세트를 채웁니다.
import_dataset
함수 인터페이스는 모든 학습 문서의 위치와 각 학습 문서에 적절한 라벨을 나열하는 .csv 파일을 입력으로 사용합니다.
(필수 형식에 대한 자세한 내용은 데이터 준비하기를 참조하세요.) 이 가이드에서는 위에서 Google Cloud Storage에 업로드한 en-es.csv
를 사용합니다.
코드 복사
Python
Java
Node.js
요청
import_data
함수를 실행하여 학습 콘텐츠를 가져옵니다. 다음 코드 줄을 수정해야 합니다.
project_id
를 PROJECT_ID로 설정합니다.- 이전 단계의 출력에서 데이터 세트의
dataset_id
를 설정합니다. URI인
path
를 설정합니다(gs://YOUR_PROJECT_ID-vcm/en-es.csv
).
Python
python import_dataset.py
자바
mvn compile exec:java -Dexec.mainClass="com.example.automl.ImportDataset"
Node.js
node import_dataset.js
응답
Processing import... Dataset imported.
3단계: 모델 만들기(학습)
라벨이 지정된 학습 문서 데이터세트를 만들었으므로 이제 새로운 모델을 학습할 수 있습니다.
코드 복사
Python
Java
Node.js
요청
create_model
을 실행하려면 다음 코드 줄을 수정해야 합니다.
project_id
를 PROJECT_ID로 설정합니다.- 이전 단계의 출력에서 데이터세트의
dataset_id
를 설정합니다. 새 모델의
display_name
을 설정합니다(en_es_test_model).
Python
python translate_create_model.py
자바
mvn compile exec:java -Dexec.mainClass="com.example.automl.TranlateCreateModel"
Node.js
node translate_create_model.js
응답
create_model
함수는 학습 작업을 시작하고 작업명을 출력합니다. 학습은 비동기식으로 진행되고 완료하는 데 시간이 걸릴 수 있으므로 작업 ID를 사용하여 학습 상태를 확인할 수 있습니다.
학습이 끝나면 create_model
이 모델 ID를 반환합니다. 데이터 세트 ID와 마찬가지로 MODEL_ID
환경 변수를 반환된 모델 ID 값으로 설정할 수 있습니다.
Training operation name: projects/216065747626/locations/us-central1/operations/TRL3007727620979824033 Training started... Model name: projects/216065747626/locations/us-central1/models/TRL3007727620979824033 Model id: TRL3007727620979824033 Model display name: en_es_test_model Model create time: seconds: 1529649600 nanos: 966000000 Model deployment state: deployed
4단계: 모델 평가하기
학습이 끝난 후 BLEU 점수를 검토하여 모델의 준비 상태를 평가할 수 있습니다.
list_model_evaluations
함수는 모델 ID를 매개변수로 사용합니다.
코드 복사
Python
Java
Node.js
요청
다음 요청을 실행하여 모델의 전체 평가 성능을 표시하도록 요청합니다. 다음 코드 줄을 수정해야 합니다.
project_id
를 PROJECT_ID로 설정합니다.model_id
를 모델의 ID로 설정합니다.
Python
python list_model_evaluations.py
자바
mvn compile exec:java -Dexec.mainClass="com.example.automl.ListModelEvaluations"
Node.js
node list_model_evaluations.js
응답
BLEU 점수가 너무 낮으면 학습 데이터세트를 강화하고 모델을 재학습할 수 있습니다. 자세한 내용은 모델 평가를 참조하세요.
List of model evaluations: name: "projects/216065747626/locations/us-central1/models/5419131644870929143/modelEvaluations/TRL7683346839371803263" create_time { seconds: 1530196488 nanos: 509247000 } evaluated_example_count: 3 translation_evaluation_metrics { bleu_score: 19.23076957464218 base_bleu_score: 11.428571492433548 }
5단계: 모델을 활용한 예측
커스텀 모델이 품질 기준을 충족하면 이를 사용해 새 콘텐츠를 번역할 수 있습니다.
코드 복사
Python
Java
Node.js
요청
predict
함수의 경우 다음 코드 줄을 수정해야 합니다.
project_id
를 PROJECT_ID로 설정합니다.model_id
를 모델의 ID로 설정합니다.file_path
를 다운로드한 파일('resources/input.txt')로 설정합니다.
Python
python tranlsate_predict.py
자바
mvn compile exec:java -Dexec.mainClass="com.example.automl.TranslatePredict"
Node.js
node translate_predict.js predict
응답
이 함수는 번역된 콘텐츠를 반환합니다.
Translated content: Ver y administrar tus cuentas de Google Tag Manager.
위는 영어 문장 'Google 태그 관리자 계정 보기 및 관리'의 스페인어 번역입니다. 이 커스텀 번역과 기본 Google 모델의 번역을 비교합니다.
Ver y administrar sus cuentas de Administrador de etiquetas de Google
6단계: 모델 삭제
샘플 모델 사용을 마치면 영구 삭제할 수 있습니다. 더 이상 예측에 모델을 사용할 수 없습니다.
코드 복사
Python
Java
Node.js
요청
delete_model
작업 유형으로 요청하여 생성한 모델을 삭제합니다. 다음 코드 줄을 수정해야 합니다.
project_id
를 PROJECT_ID로 설정합니다.model_id
를 모델의 ID로 설정합니다.
Python
python delete_model.py
자바
mvn compile exec:java -Dexec.mainClass="com.example.automl.DeleteModel"
Node.js
node delete_model.js
응답
Model deleted.