Open su3inni opened 9 months ago
https://engineering.linecorp.com/ko/blog/apply-large-ml-models-for-ai-text-filtering-models
우와
파라미터 수를 급격하게 늘려 단일 언어 모델을 다국어 모델로 확장해서 개발과 서비스에 들어가는 비용을 줄였다고한다. 파라미터 수를 늘린다는 것은 실행 비용은 증가하게 될텐데 이때 trade off에 대해 어떻게 결론을 내리게 되는지 궁금하다.
거대 모델을 다룰 수 있는 기술은 크게 스케일링Scaling 기술과 경량화Lightwegith 기술로 나뉜다.
이때 GPU 종류(ex. V100)은 같아야하는건가? 그럼 각 GPU에서 모델의 학습된 파라미터 값이 다를텐데.. 아 서로 다른 모델을 앙상블하는 느낌..인가
All Reduce
프레임워크 설정을 위해 라이브러리 의존성 파악
Multi-Node
가속 파일을 공유
CUDA 익스텐션 파일
OS 수준에서 라이브러리를 설정하고, 프레임워크를 설정하고, 멀티노드를 구성하기 위한 라이브러리를 설정하는 것으로 해결했다고 나온다.
프레임워크가 작동되는 환경을 만든 뒤 Docker 이미지로 만들어서 설정 절차를 문서로 만드는 것이 중요하다.
단일 노드 환경에서는 GPU가속화를 위한 CUDA Extencion파일을 만들고 이를 기반으로 훈련을 가속화한다.
멀티 노드로 확장하면
각 워커 노드에 직접 생성하면되지만 워커 노드 수가 늘어날 수록 비효율적인 방법이되기 때문에 문제가 될 수 있다.
이때 파일 공유 모듈로 해결할 수 있다.
어느 부분을 병렬화하느냐에 따라 성능차이와 훈련 속도가 차이나므로 병렬화 코드 설계가 중요하다
https://tech-verse.me/ko/sessions/
LINE Engineering Tech Blog
0. 특정 목적에 ML을 도입하는 과정
1. Large ML Model Training Tech
거대 모델을 다룰 수 있는 기술은 크게 스케일링Scaling 기술과 경량화Lightwegith 기술로 나뉜다.
1-1. Scaling 기법
All Reduce
라는 GPU통신을 이용해서 모델 결과를 출력한다.2. 프레임워크 선택 : CPU Offload를 위한 DeepSpeed 프레임워크
프레임워크 설정을 위해 라이브러리 의존성 파악
Multi-Node
가속 파일을 공유
해야하는 문제가 발생한다.CUDA 익스텐션 파일
이 필요하며 이때 라이브러리 버전을 맞춰야한다.프레임워크가 작동되는 환경을 만든 뒤 Docker 이미지로 만들어서 설정 절차를 문서로 만드는 것이 중요하다.
3. Multi Node 사용시 고려해야할 부분
단일 노드 환경에서는 GPU가속화를 위한 CUDA Extencion파일을 만들고 이를 기반으로 훈련을 가속화한다.
멀티 노드로 확장하면
이때 파일 공유 모듈로 해결할 수 있다.
4. Fine-Tuning 시 학습 모델을 병렬화하는 방법
5. 모델 서빙
6. 결과 확인
7. 기대효과