[Hot Update] 현재의 폴더에서 "문장 유사성 분석 폴더" 가 추가 되었습니다. 아래 링크를 통해서 확인 해주세요.
Hugging Face는 Transformer 를 이용하여 자연어 처리, 이미지 등의 작업을 쉽게 하기 위해서 만들어진 오픈 소스 라이브러리 입니다. Hugging Face 는 SageMaker 와 협업을 통하여 조금 더 쉽게 실무에 적용할 수 있게 해주고 있습니다. 이 워크샵에서는 네이버 영화 리뷰 데이터 셋을 통한 감성 분석을 박장원님이 만드신 KoELECTRA Pre-Trained Model 를 통해서 Downstream Task 의 하나인 감성 분석을 하겠습니다. 또한 김대근님이 만든신 모두를 위한 클라우드 네이티브 한국어 자연어 처리 모델 훈련 및 활용법 (부제: 허깅페이스(Hugging Face)와 Amazon SageMaker가 만났다!) 워크샵의 많은 내용을 참조 하였습니다.
- Hugging Face 의 한국어 감성(Sentiment) 분석에 대해서 "스크래치 코드" 가지고 파인 튜닝을 배움.
- 사용자 데이터 셋을 생성하여 Pytorch, HF Trainer 를 통해 훈련
- 세이지 메이커에서 "스크래치 코드" 를 훈련 할 수 있게 로컬 모드, 호스트 모드로 훈련 함. (로컬 모드, 호스트 모드는 하단의 "참고" 섹션 참조)
- Pytorch SubsetSampler 등을 통하여 개발의 용이성을 높임.
- 세이지 메이커 "실험" 을 통한 훈련 잡 추적
- Hugging Face 세이지 메이커 빌트인 도커를 사용하여 세이지 메이커 앤드포인트 생성 및 추론
- 네이버 영화 리뷰 테스트 데이터에 대한 (약 50,000 개) 감성 분류 (약 89% 정확도 보임.)
- 200-300 (중급)
- (참고: 100-200: 초급, 200-300: 중급, 300-400: 상급 )
- 참고: 100 -200 초급 핸즈온 자료
- 세이지 메이커 스터디 가이드
- 크게 아래의 두개의 폴더로 구성되어 있습니디.
- 1_NSMC-Classification
- 모든 실습 코드가 이 폴더에 있고, NSMC(Naver Sentimental Movie Corpus) 데이터 셋으로 감성 분류 (영화 리뷰의 긍정, 부정 분류)를 하는 예시 코드 입니다.
- 2_Placeholder-Classification
- 이 폴더는 아무것도 없습니다. 이 폴더를 만든 의도는 1_NSMC-Classification 폴더의 사용된 NSMC 데이터 셋을 사용자의 데이터 셋으로 바꾸시고, 코드를 복사하시면서 사용을 하시라고 만들어 놓았습니다. 즉 사용자의 작업용 폴더 입니다.
- 1_NSMC-Classification
- 세이지 메이커 노트북 인스턴스 ml.p3.2xlarge , ml.p3.8xlarge 의 conda_python3 에서 테스트 됨.
- 처음 실습은 ml.p3.2xlarge 로 노트북 인스턴스를 만드세요.
- [중요] 로컬 디스크(EBS) 는 30GB 이상으로 해주세요. (디폴트는 5GB 입니다.)
-
1_Setup (필수)
- -0.0.Setup-Environment.ipynb
-
2_WarmingUp (옵션)
- 이 폴더는 생략 가능합니다. Hugging Face 에 익숙해지기 위한 연습 노트북이 있습니다.
-
3_Training (필수)
- 1.1.Prepare_Data_Naver_Review.ipynb
- 네이버 영화 감성 리뷰 데이터
- 2.1.Train_Scratch.ipynb
- 감성 분류 (긍정, 부정) 을 위한 파인 튜닝 스케치
- 2.2.Train_HF_Container.ipynb
- 세이지 메이커를 이용한 감성 분류 (긍정, 부정) 을 위한 파인 튜닝 (로컬 모드, 호스트 모드), Hugging Face 에서 제공하는 Trainer 를 통해 훈련
- [옵션] 2.3.Train_Local_Script_Mode.ipynb
- 세이지 메이커를 이용한 감성 분류 (긍정, 부정) 을 위한 파인 튜닝 (로컬 모드, 호스트 모드), 단 Pytorch 로 훈련 함.
- 1.1.Prepare_Data_Naver_Review.ipynb
-
4_Serving (필수)
- 1.1.Rreal_time_endpoint.ipynb
- 세이지 메이커 앤드 포인트를 생성하여 추론
- 1.1.Rreal_time_endpoint.ipynb
|-1_Setup
| |-0.0.Setup-Environment.ipynb
|-2_WarmingUp
| |-0.1.warming_up_yelp_review.ipynb
| |-0.2.warming_up_imdb_custom_dataset.ipynb
| |-0.3.warming_up_naver_review.ipynb
|-3_Training
| |-1.1.Prepare_Data_Naver_Review.ipynb
| |-2.1.Train_Scratch.ipynb
| |-2.2.Train_HF_Container.ipynb
| |-2.3.Train_Local_Script_Mode.ipynb
| |-src
| | |-data_util.py
| | |-train_Trainer.py
| | |-train.py
| | |-train_util.py
| | |-requirements.txt
| | |-config.py
|-4_Serving
| |-1.1.Rreal_time_endpoint.ipynb
| |-src
| | |-inference_utils.py
-
Use Hugging Face with Amazon SageMaker
-
SageMaker Python SDK : Hugging Face
-
Hugging Face Site: Deploy models to Amazon SageMaker
-
Hugging Face: Fine Tuning
-
On-Side Workshop: Hugging Face Transformers on Amazon SageMaker
-
Hugging Face Official Repo
-
세이지 메이커로 파이토치 사용
-
Use PyTorch with the SageMaker Python SDK
-
Amazon SageMaker Local Mode Examples
- TF, Pytorch, SKLean, SKLearn Processing JOb에 대한 로컬 모드 샘플
- Pytorch 로컬 모드
-
pytorch dataset 정리