의역된 텍스트를 식별하는 것은 많은 사용 사례에서 비즈니스 가치가 있습니다. 예를 들어, 문장 의역을 식별함으로써 텍스트 요약 시스템은 중복 정보를 제거할 수 있습니다. 또 다른 응용 프로그램은 표절 문서를 식별하는 것입니다. 이 포스트에서 우리는 미세 조정 포옹하는 얼굴 변압기 켜기 아마존 세이지 메이커 몇 단계로 의역된 문장 쌍을 식별합니다.
진정으로 강력한 모델은 사용된 언어가 완전히 다를 수 있는 경우 의역된 텍스트를 식별할 수 있으며, 사용된 언어의 어휘 중복이 높은 경우에도 차이점을 식별할 수 있습니다. 이 게시물에서는 후자 측면에 중점을 둡니다. 특히, 어휘 중첩이 높고 의미가 매우 다르거나 반대인 두 문장의 차이를 식별할 수 있는 모델을 훈련할 수 있는지 여부를 살펴봅니다. 예를 들어, 다음 문장은 단어는 같지만 의미는 반대입니다.
- 나는 뉴욕에서 파리까지 비행기를 탔다
- 나는 파리에서 뉴욕으로 비행기를 탔다
솔루션 개요
다음과 같은 상위 단계를 안내합니다.
- 환경을 설정합니다.
- 데이터를 준비하십시오.
- 데이터세트를 토큰화합니다.
- 모델을 미세 조정합니다.
- 모델을 배포하고 추론을 수행합니다.
- 모델 성능을 평가합니다.
환경 설정을 건너뛰려면 다음 노트북을 사용할 수 있습니다. GitHub의 SageMaker에서 코드를 실행합니다.
Hugging Face와 AWS는 2022년 초 SageMaker에서 Hugging Face 모델을 더욱 쉽게 훈련할 수 있는 파트너십을 발표했습니다. 허깅페이스 개발을 통해 제공되는 기능입니다. AWS 딥 러닝 컨테이너(DLC). 이러한 컨테이너에는 Hugging Face Transformers, Tokenizers 및 Datasets 라이브러리가 포함되어 있어 교육 및 추론 작업에 이러한 리소스를 사용할 수 있습니다. 사용 가능한 DLC 이미지 목록은 다음을 참조하십시오. 사용 가능한 딥 러닝 컨테이너 이미지. 보안 패치로 유지 관리되고 정기적으로 업데이트됩니다. 이 DLC와 포옹 얼굴 모델을 훈련하는 방법에 대한 많은 예를 찾을 수 있습니다 허깅페이스 파이썬 SDK 다음에서 GitHub 레포.
PAWS 데이터세트
의역 없이 어휘 중복이 높은 효율적인 문장 쌍 데이터셋의 부족을 깨닫고, PAWS 2019년에 발표된 데이터 세트는 자연어 처리(NLP) 커뮤니티에 의역 감지 모델을 교육하고 평가하기 위한 새로운 리소스를 제공하기 위해 출시되었습니다. PAWS 문장 쌍은 다음을 사용하여 두 단계로 생성됩니다. 위키 백과 그리고 Quora 질문 쌍 (QQP) 데이터 세트. 언어 모델은 먼저 문장 쌍을 생성하기 위해 동일한 BOW(Bag of Words)로 문장 쌍의 단어를 교환합니다. 그런 다음 역번역 단계에서는 BOW 겹침이 높지만 다른 단어 순서를 사용하는 의역을 생성합니다. 최종 PAWS 데이터 세트에는 총 108,000개의 인간 레이블이 지정된 쌍과 656,000개의 시끄러운 레이블이 지정된 쌍이 포함되어 있습니다.
이 게시물에서 우리는 PAWS-Wiki 레이블(최종) 허깅페이스의 데이터셋. Hugging Face는 이미 우리를 위해 데이터 분할을 수행하여 훈련 데이터 세트에 49,000개의 문장 쌍이 생성되고 검증 및 테스트 데이터 세트에 대해 각각 8,000개의 문장 쌍이 생성됩니다. 교육 데이터 세트의 두 문장 쌍 예가 다음 예에 나와 있습니다. 레이블이 1이면 두 문장이 서로의 의역임을 나타냅니다.
문장 1 | 문장 2 | 라벨 |
교체가 가능하지만 2대의 차체 부품은 유사하지 않습니다. | 비슷하지만 차체 부품은 2대의 차량에서 교환할 수 없습니다. | 0 |
Katz는 1947년 스웨덴에서 태어나 1살 때 뉴욕으로 이주했습니다. | Katz는 1947년 스웨덴에서 태어나 한 살 때 뉴욕으로 이주했습니다. | 1 |
사전 조건
다음 전제 조건을 완료해야 합니다.
- AWS 계정이 없으면 가입하십시오. 자세한 내용은 Amazon SageMaker 사전 조건 설정.
- 시작하기 SageMaker 노트북 인스턴스.
- 권리를 설정 AWS 자격 증명 및 액세스 관리 (IAM) 권한. 자세한 내용은 SageMaker 역할.
환경 설정
모델 미세 조정을 위한 데이터 검사 및 준비를 시작하기 전에 환경을 설정해야 합니다. SageMaker 노트북 인스턴스를 시작하여 시작하겠습니다. AWS 계정에서 AWS 리전을 선택하고 지침에 따라 SageMaker 노트북 인스턴스 생성. 노트북 인스턴스를 가동하는 데 몇 분 정도 걸릴 수 있습니다.
노트북 인스턴스가 실행 중일 때 다음을 선택합니다. conda_pytorch_p38
커널 유형으로. Hugging Face 데이터셋을 사용하려면 먼저 Hugging Face 라이브러리를 설치하고 가져와야 합니다.
다음으로 SageMaker 세션을 설정하겠습니다. 우리는 기본값을 사용합니다 아마존 단순 스토리지 서비스 PAWS 데이터 세트 및 모델 아티팩트를 저장하기 위해 SageMaker 세션과 연결된 (Amazon S3) 버킷:
데이터 준비
PAWS 데이터 세트의 Hugging Face 버전을 로드할 수 있습니다. load_dataset()
명령. 이 호출은 Hugging Face GitHub 리포지토리에서 PAWS Python 처리 스크립트를 다운로드하고 가져옵니다. 그러면 스크립트에 저장된 원래 URL에서 PAWS 데이터 세트를 다운로드하고 데이터를 화살표 테이블로 드라이브에 캐시합니다. 다음 코드를 참조하십시오.
사전 훈련된 BERT 모델의 미세 조정을 시작하기 전에 대상 클래스 분포를 살펴보겠습니다. 사용 사례의 경우 PAWS 데이터 세트에는 이진 레이블이 있습니다(0은 문장 쌍이 의역이 아님을 나타내고 1은 있음을 나타냄). 다음 코드와 같이 클래스 분포를 볼 수 있는 세로 막대형 차트를 만들어 보겠습니다. 훈련 세트에 약간의 클래스 불균형 문제가 있음을 알 수 있습니다(56% 음성 샘플 대 44% 양성 샘플). 그러나 불균형은 클래스 불균형 완화 기술을 사용하지 않을 만큼 충분히 작습니다.
데이터세트 토큰화
미세 조정을 시작하기 전에 데이터 세트를 토큰화해야 합니다. 시작점으로 미세 조정 및 평가를 원한다고 가정해 보겠습니다. roberta-base
변신 로봇. 우리는 선택했다 roberta-base
방대한 영어 데이터에 대해 사전 훈련을 받았고 다양한 NLP 작업에서 자주 높은 성능을 보인 범용 변환기이기 때문입니다. 이 모델은 원래 논문에서 소개되었습니다. RoBERTa : 강력하게 최적화 된 BERT 사전 훈련 접근법.
우리는 다음을 사용하여 문장에 대해 토큰화를 수행합니다. roberta-base
Hugging Face의 토크나이저는 바이트 수준 바이트 쌍 인코딩을 사용하여 문서를 토큰으로 분할합니다. RoBERTa 토크나이저에 대한 자세한 내용은 다음을 참조하십시오. 로버타토크나이저. 입력이 문장 쌍이기 때문에 두 문장을 동시에 토큰화해야 합니다. 대부분의 BERT 모델은 고정된 토큰화된 입력 길이를 갖는 입력을 요구하기 때문에 다음 매개변수를 설정합니다. max_len=128
와 truncation=True
. 다음 코드를 참조하십시오.
BERT 모델을 미세 조정하기 위한 마지막 전처리 단계는 토큰화된 훈련 및 검증 데이터 세트를 PyTorch 텐서로 변환하고 S3 버킷에 업로드하는 것입니다.
모델 미세 조정
이제 데이터 준비가 완료되었으므로 사전 훈련된 데이터를 미세 조정할 준비가 되었습니다. roberta-base
의역 식별 작업에 대한 모델입니다. SageMaker Hugging Face Estimator 클래스를 사용하여 두 단계로 미세 조정 프로세스를 시작할 수 있습니다. 첫 번째 단계는 훈련 하이퍼파라미터와 메트릭 정의를 지정하는 것입니다. 메트릭 정의 변수는 Hugging Face Estimator에게 모델의 훈련 로그에서 추출할 메트릭 유형을 알려줍니다. 여기서 우리는 주로 각 훈련 에포크에서 검증 세트 메트릭을 추출하는 데 관심이 있습니다.
두 번째 단계는 Hugging Face Estimator를 인스턴스화하고 다음으로 미세 조정 프로세스를 시작하는 것입니다. .fit()
방법:
미세 조정 프로세스는 지정된 하이퍼파라미터를 사용하여 약 30분이 소요됩니다.
모델 배포 및 추론 수행
SageMaker는 사용 사례에 따라 여러 배포 옵션을 제공합니다. 한 번에 하나의 예측을 수행하는 영구적인 실시간 엔드포인트의 경우 다음을 사용하는 것이 좋습니다. SageMaker 실시간 호스팅 서비스. 트래픽 급증 사이에 유휴 기간이 있고 콜드 스타트를 허용할 수 있는 워크로드가 있는 경우 다음을 사용하는 것이 좋습니다. 서버리스 추론. 서버리스 엔드포인트는 컴퓨팅 리소스를 자동으로 시작하고 트래픽에 따라 확장 및 축소하므로 인스턴스 유형을 선택하거나 확장 정책을 관리할 필요가 없습니다. 실시간 추론 끝점과 서버리스 추론 끝점 모두에 미세 조정된 포옹 얼굴 모델을 배포하는 방법을 보여줍니다.
실시간 추론 엔드포인트에 배포
다음을 사용하여 SageMaker 내에서 실시간 추론 호스팅에 교육 개체를 배포할 수 있습니다. .deploy()
방법. 허용되는 매개변수의 전체 목록은 다음을 참조하십시오. 포옹 얼굴 모델. 시작하려면 다음 매개변수를 전달하여 모델을 하나의 인스턴스에 배포해 보겠습니다. initial_instance_count
, instance_type
및 endpoint_name
. 다음 코드를 참조하십시오.
모델을 배포하는 데 몇 분 정도 걸립니다. 모델이 배포된 후 추론을 위해 보이지 않는 테스트 데이터 세트의 샘플 레코드를 엔드포인트로 제출할 수 있습니다.
Serverless Inference 엔드포인트에 배포
교육 개체를 서버리스 엔드포인트에 배포하려면 먼저 다음을 사용하여 서버리스 구성 파일을 지정해야 합니다. memory_size_in_mb
와 max_concurrency
인수 :
memory_size_in_mb
서버리스 엔드포인트의 총 RAM 크기를 정의합니다. 최소 RAM 크기는 1024MB(1GB)이며 최대 6144MB(6GB)까지 확장할 수 있습니다. 일반적으로 최소한 모델 크기만큼 큰 메모리 크기를 선택하는 것을 목표로 해야 합니다. max_concurrency
단일 엔드포인트에 대해 동시에 처리할 수 있는 동시 호출 수(최대 50개의 동시 호출)에 대한 할당량을 정의합니다.
또한 다음 코드를 사용하여 검색할 수 있는 포옹 얼굴 추론 이미지 URI를 제공해야 합니다.
이제 서버리스 구성 파일이 있으므로 다음을 사용하여 실시간 추론 엔드포인트와 동일한 방식으로 서버리스 엔드포인트를 생성할 수 있습니다. .deploy()
방법:
끝점은 몇 분 안에 생성되어야 합니다.
모델 추론 수행
예측을 하려면 다음을 추가하여 문장 쌍을 만들어야 합니다. [CLS]
와 [SEP]
특수 토큰을 생성하고 이후에 모델 엔드포인트에 입력을 제출합니다. 실시간 추론과 서버리스 추론의 구문은 동일합니다.
다음 예에서 모델이 입력 문장 쌍에 의역된 문장이 포함되어 있는지 여부를 올바르게 분류할 수 있음을 알 수 있습니다.
다음은 실시간 추론 예시이다.
다음은 Serverless Inference 예제입니다.
모델 성능 평가
모델을 평가하기 위해 앞의 코드를 확장하고 8,000개의 보이지 않는 테스트 레코드를 모두 실시간 엔드포인트에 제출해 보겠습니다.
다음으로 추출된 예측을 사용하여 분류 보고서를 만들 수 있습니다.
다음 테스트 점수를 얻습니다.
우리는 그것을 관찰할 수 있습니다 roberta-base
결합된 거시 평균 F1 점수는 92%이며 의역인 문장을 감지하는 데 약간 더 나은 성능을 보입니다. 그만큼 roberta-base
모델은 잘 수행되지만 적어도 하나의 다른 모델을 사용하여 모델 성능을 계산하는 것이 좋습니다.
다음 표는 roberta-base
라고 하는 다른 미세 조정된 변압기에 대한 동일한 테스트 세트의 성능 결과 paraphrase-mpnet-base-v2
, 의역 식별 작업을 위해 특별히 사전 훈련된 문장 변환기. 두 모델 모두 ml.p3.8xlarge 인스턴스에서 훈련되었습니다.
결과는 다음을 보여줍니다 roberta-base
SageMaker에서 실시간 추론 호스팅을 사용하여 매우 유사한 훈련 및 추론 시간으로 F1 점수가 1% 더 높습니다. 모델 간의 성능 차이는 상대적으로 미미하지만, roberta-base
성능 메트릭이 약간 더 우수하고 훈련 및 추론 시간이 거의 동일하기 때문에 궁극적으로 승자가 됩니다.
Precision | 소환 | F1 점수 | 교육 시간(청구 가능) | 추론 시간(전체 테스트 세트) | |
로베르타 베이스 | 0.92 | 0.93 | 0.92 | 18 분 | 2 분 |
의역-mpnet- 기본 v2 |
0.92 | 0.91 | 0.91 | 17 분 | 2 분 |
정리
모델 엔드포인트 사용을 마치면 해당 엔드포인트를 삭제하여 향후 요금이 발생하지 않도록 할 수 있습니다.
결론
이 게시물에서 우리는 SageMaker에서 Hugging Face 변환기를 사용하여 의역 식별 모델을 빠르게 구축하는 방법에 대해 논의했습니다. 우리는 두 개의 사전 훈련된 변압기를 미세 조정했으며, roberta-base
와 paraphrase-mpnet-base-v2
, PAWS 데이터 세트(높은 어휘 중복이 있는 문장 쌍 포함)를 사용합니다. 실시간 추론과 서버리스 추론 배포의 이점을 시연하고 논의했습니다. 후자는 급증하는 워크로드를 대상으로 하고 조정 정책을 관리할 필요가 없는 새로운 기능입니다. 8,000개의 레코드가 있는 보이지 않는 테스트 세트에서 우리는 두 모델 모두 1% 이상의 F90 점수를 달성했음을 보여주었습니다.
이 솔루션을 확장하려면 다음을 고려하십시오.
- 사용자 정의 데이터 세트로 미세 조정을 시도하십시오. 훈련 레이블이 충분하지 않은 경우 사용자 지정 테스트 데이터 세트에 대해 이 게시물에서 설명한 것과 같은 미세 조정된 모델의 성능을 평가할 수 있습니다.
- 이 미세 조정된 모델을 두 문장(또는 텍스트 블록)이 서로의 의역인지 여부에 대한 정보가 필요한 다운스트림 애플리케이션에 통합합니다.
행복한 건물!
저자에 관하여
발라 크리슈나무티 AWS Professional Services의 데이터 과학자로 기계 학습을 적용하여 고객 비즈니스 문제를 해결하는 것을 즐깁니다. 그는 자연어 처리 사용 사례를 전문으로 하며 소프트웨어, 금융 및 의료와 같은 산업 분야의 고객과 협력했습니다. 여가 시간에는 새로운 음식을 맛보고, 코미디와 다큐멘터리를 보고, Orange Theory에서 운동하고, 물놀이(패들 보딩, 스노클링, 곧 잠수)를 즐깁니다.
이반 추이 AWS Professional Services의 데이터 과학자로, 고객이 AWS에서 기계 학습을 사용하여 솔루션을 구축하고 배포할 수 있도록 지원합니다. 그는 소프트웨어, 금융, 제약 및 의료를 포함한 다양한 산업 분야의 고객과 함께 일했습니다. 여가 시간에는 책을 읽고 가족과 시간을 보내고 주식 포트폴리오를 극대화하는 것을 즐깁니다.
- '
- "
- 000
- 10
- 100
- 2019
- 2022
- 84
- 소개
- ACCESS
- 계정
- 달성
- 가로질러
- All
- 이미
- 아마존
- 발표
- 다른
- 어플리케이션
- 적용
- 대략
- 인수
- 가능
- AWS
- 존재
- 혜택
- 몸
- 경계
- 빌드
- 사업
- 전화
- 수
- 자동차
- 가지 경우
- 요금
- 왼쪽 메뉴에서
- City
- 수업
- 분류
- 암호
- 단
- 결합 된
- 커뮤니티
- 완전히
- 계산
- 자신
- 용기
- 이 포함되어 있습니다
- 수
- 만들
- 만든
- 관습
- 고객
- 고객
- 데이터
- 데이터 과학자
- 보여
- 시연
- 의존
- 배포
- 배포
- 전개
- 세부설명
- Detection System
- 개발
- 다른
- 분포
- 다큐멘터리
- 서류
- 다운로드
- 드라이브
- 효율적인
- 종점
- 영어
- 환경
- 세우다
- 평가
- 예
- 전시회
- 펼치기
- 페이스메이크업
- 가족
- 특색
- 재원
- 먼저,
- 항공편
- 초점
- 따라
- 수행원
- 식품
- 무료
- 가득 찬
- 기능
- 기능
- 미래
- 범용
- 일반적으로
- 생성
- GitHub의
- 좋은
- 큰
- 건강 관리
- 신장
- 도움이
- 여기에서 지금 확인해 보세요.
- 높은
- 더 높은
- 호스팅
- 방법
- How To
- HTTPS
- 식별
- 확인
- 식별
- 통합 인증
- 영상
- 포함
- 포함
- 산업
- 정보
- 입력
- 설치
- 관심있는
- 발행물
- IT
- 작업
- 레이블
- 언어
- 넓은
- 시작
- 배우기
- 도서관
- 명부
- 하중
- 기계
- 기계 학습
- 제작
- 관리
- 메모리
- 통계
- ML
- 모델
- 모델
- 배우기
- 가장
- 여러
- 자연의
- 부정
- 뉴욕
- 뉴욕시
- 수첩
- 제공
- 최적화
- 옵션
- 주문
- 기타
- 자신의
- 서
- 파리
- 파트너스
- 통과
- 패치
- 성능
- 미문
- 제약
- 포인트 적립
- 정책
- 유가 증권
- 긍정적인
- 연습
- 예측
- 예측
- 문제
- 방법
- 처리
- 링크를
- 제공
- 문제
- Quora의
- 램
- 랜드
- 읽기
- 실시간
- 권하다
- 기록
- 출시
- 신고
- 저장소
- 필요
- 의지
- 자료
- 결과
- return
- 달리기
- 달리는
- 규모
- 스케일링
- 과학자
- 보안
- 선택된
- 서버리스
- 서비스
- 세트
- 설정
- 비슷한
- 단순, 간단, 편리
- 크기
- 작은
- 소프트웨어
- 고체
- 해결책
- 솔루션
- 풀다
- 특별한
- 전문적으로
- 구체적으로
- 지출
- 회전
- 분열
- 스타트
- 시작
- 시작
- 재고
- 저장
- 저장
- 그후
- 공급
- 스웨덴
- 체계
- 목표
- 작업
- 기법
- 말하다
- test
- 을 통하여
- 시간
- 토큰 화
- 토큰 화 된
- 토큰
- 상단
- 토치
- 교통
- 트레이닝
- 번역
- us
- 사용
- 확인
- 가치
- 종류
- 관측
- 물
- 뭐
- 여부
- 위키 백과
- 이내
- 없이
- 말
- 일
- 일하는
- 운동