Amazon Web Services 한국 블로그

Amazon.Science – AWS의 SK텔레콤의 ‘한국어 자연어 처리기’ 개발 지원기

이 글은 Amazon Science의  Amazon scientists help SK telecom create Korean-based natural language processor (글쓴이 – Douglas Gantenbein)를 한국어로 번역했습니다.

한국어는 전세계에서 8천만 명이 사용하는 주요한 언어입니다. 오래전 만주 지역에서 기원한 것으로 여기지는 긴 역사에도 불구하고, 한국어는 (영어가 프랑스어나 라틴어와 가지는 것과 같은) 다른 언어와의 뚜렷한 연관성이 없는 “고립어”라고 불립니다.

그러나, 한국어는 컴퓨터가 인간의 언어를 인식하고 해석하도록 돕는 인공지능 분야인 자연 언어 처리 기술 혁신의 변화의 도움을 받게 되었습니다. 지난 4월말, 한국의 이동통신 회사인 SK텔레콤이 AWS 연구원들과 협력해서 KoGPT-2라는 최초의 오픈소스 한국어 GPT-2 모델을 공개했습니다. GPT-2는 한 단어 음절만으로 문장 또는 문단의 완성을 “생성”하도록 훈련된 언어 모델이며, 2019년 인공지능 연구 기관인 OpenAI에 의해 개발되었습니다. GPT-2 모델은 스마트폰 키보드의 다음 단어 예측 기능과 비슷하지만 훨씬 더 크고 정교합니다.

KoGPT-2는 한국어 기계학습(ML) 성능의 향상을 위해 한국어 텍스트로 사전 훈련된 오픈소스 GPT-2 모델입니다. KoGPT-2는 챗봇, 검색 엔진 및 기타 다른 용도로 사용할 수 있습니다.

KoGPT-2를 개발하면서, 아마존 머신러닝 솔루션즈 랩(Amazon Machine Learning Solutions Lab)의 딥 러닝 엔지니어 팀은 SK텔레콤 AI 센터의 대화형 AI 팀과 함께 공동 작업을 진행했습니다. 각 연구원들은 SK텔레콤의 대규모 한국어 데이터 세트에 Amazon Elastic Compute Cloud, Amazon Elastic Fabric Adaptor, Amazon FSx for Lustre와 같은 AWS 서비스를 사용하여 KoGPT-2를 만들었습니다.

자연어 처리 모델은 언어 구조, 단어의 의미 등을 컴퓨터에 학습시키기 위해 대규모의 언어 샘플 모음을 사용합니다. GPT-2에서는 질문하는 사람의 의도를 알고리즘이 추론하기 위해 특히 큰 데이터 세트를 필요로 합니다. GPT-2에서 OpenAI는 40 기가바이트 인터넷 데이터의 텍스트 코퍼스에 약 1.5억개의 매개 변수를 사용했습니다. GPT-2는 텍스트 내의 모든 이전 단어들을 고려하여 다음 단어를 예측할 목적으로 훈련됩니다.

OpenAI 연구원들에 따르면 GPT-2 모델은 카멜레온과 비슷하다고 합니다. 즉, 이 모델은 주어진 문장의 스타일과 내용에 적응하기 때문입니다. 그 결과 연구자들과 엔지니어들은 선택된 주제에 대한 일관성 있는 문장을 생성할 수 있습니다. GPT-2는 단지 몇 단어 또는 일반적인 시나리오가 주어지면 아주 그럴듯한 문장을 만들어내는 능력을 보임으로 굉장히 강력한 모델임을 증명했습니다. GPT-2는 새로운 ‘반지의 제왕’ 전투 장면을 창조하거나 대통령 연설 작가를 흉내내는 등 다양한 글솜씨를 선보였습니다.

KoGPT-2 모델 학습을 위해서 SK텔레콤은 한글 위키 프로젝트, 한글 뉴스와 기타 소스들을 활용해서 1억2500만 문장 및 16억개의 단어들을 준비했습니다.

이는 상당한 기술적인 도전에 직면합니다. 아마존 머신러닝 솔루션즈 랩의 김무현 시니어 데이터 사이언티스트는 “이 모델을 학습 시키기 위해서 많은 컴퓨팅 자원이 필요했고, 우리는 64개 GPU를 1주일 동안 사용했습니다. 하지만, 본격적인 학습을 시작하기 전에 우리는 데이터를 분석하고 오류를 해결하면서 최적의 설정을 찾기 위해서 다양한 실험을 진행했습니다”라고 이야기합니다.

그는 또한 “하지만, 사람의 전문 지식이 없이는 어떤 것도 이룰 수 없습니다. 저희의 경험을 기반으로 SK텔레콤을 도와서 모델 학습 코드를 개선하고, 학습 속도도 높였습니다. AWS는 KoGPT-2와 같은 대규모 모델을 학습하는데 최적의 서비스를 제공합니다. 예를 들면, 많은 데이터 통신을 빠르게 하기 위한 넓은 네트워크 대역을 쉽게 사용할 수 있습니다. 하지만, 네트워크의 속도가 빨라도, 스토리지가 느리면 학습 속도는 느려질 것입니다. Amazon FSx for Lustre를 사용해서 우리는 전체 학습 속도를 가속화 할 수 있었습니다.”라고 말합니다.

SK텔레콤은 빠른 모델 학습을 위해서 오픈소스 딥러닝 기반의 자연어 처리 툴킷인 GluonNLP을 사용했습니다.

AWS MXNet 팀의 응용 과학자인 Haibin Lin은 “GluonNLP는 다양한 토크나이저와 데이터 파이프라인 기능을 제공합니다. 이 기능들을 사용하면 커스텀 데이터를 사용해서 가장 성능이 좋은 모델을 학습하는 것을 쉽게 할 수 있습니다. 우리는 Mixed Precision 학습, Activation 함수를 위한 효율적인 GPU 커널 구현과 같은 기법들을 구현했습니다. 또한 GluonNLP를 이용한 대규모 분산학습을 상당히 빠르게 도와주는 Amazon Elastic Fabric Adapter와 연동도 가능하게 했습니다.” 라고 설명합니다.

아마존 머신러닝 솔루션즈 랩이 모델 학습을 위한 대규모 인프라를 구성하고, SK텔리콤 AI센터의 대화형 AI팀은 중요 요소들과 언어 처리에 대한 전문 경험을 제공했습니다. 앞에서 언급했듯이 SK텔레콤은 많은 노력을 통해서 모델 학습에 사용될 데이터셋을 만들었습니다. 또한, 최초로 모델 학습을 위한 코드를 작성했으며, KoGPT-2 모델을 학습을 수행하는 일을 했습니다.

SK텔레콤의 대화형 AI팀 리더인 김태윤 랩장은 “가장 좋은 성능을 발휘하는 KoGPT-2 모델을 학습시킴으로써 SK텔레콤의 급증하는 자연어 처리에 대한 노력들을 더 확장하기를 원했습니다.”라고 밝혔습니다. 그는 또한 “성장하는 한국어 NLP 커뮤니티에 이를 오픈 소스로 기여하는 것이 우리팀의 핵심 가치이기 때문에, 이 모델을 오픈 소스로 공개하는 것은 자연스러운 것이었습니다.”라고 말했습니다.

예를 들어, KoGPT-2 모델은 SK텔레콤 고객이 챗봇과 대화하거나 질문에 대한 답변을 찾을 때 놀라울 정도로 인간과 같은 경험을 제공할 것입니다.

KoGPT-2는 SKT AI센터 Github 리포지터리에 수정된 MIT 라이센스로 공개되었습니다. AWS에서는 KoGPT-2 모델을 Amazon SageMaker로 배포하는 가이드를 aws-samples Github 리포지터리를 통해서 제공합니다. (역자 주:  더 자세한 사항은 Amazon SageMaker의 MXNet 추론 컨테이너를 활용한 KoGPT2 모델 배포하기를 참고하세요.)

– 번역: 강지양 딥러닝 아키텍트, Amazon Machine Learning Solutions Lab, AWS