아제르셀, AWS 협업으로 아제르바이잔어 LLM 훈련 처리량 23% 높였다
아제르바이잔 1위 통신사 아제르셀(Azercell Telecom LLC)이 통신 업무와 고객 응대 챗봇에 쓸 아제르바이잔어 대형언어모델(LLM)을 아마존 세이지메이커 AI 위에서 구축했다. 형태론적으로 복잡한 데다 학습 데이터가 부족하고 효율적 LLM 훈련의 선례조차 없는 언어를 다루는 것이 과제였고, AWS는 이 협업 사례를 머신러닝 블로그에 공개했다.
아제르셀은 AWS 생성형 AI 혁신센터와 6주간 협업해 세이지메이커 AI 기반의 양산형 훈련 프레임워크를 만들었다. ml.p5.48xlarge 인스턴스에서 커널 수준 최적화를 적용해 훈련 처리량을 23% 끌어올리고 최대 GPU 메모리 사용량을 58% 줄였다. 또한 맞춤 토크나이저로 단어당 토큰 수를 2배 개선해, 모델의 컨텍스트 창에 담기는 아제르바이잔어 텍스트 양을 사실상 두 배로 늘렸다.
프레임워크는 세 단계로 순차 구성된다. 1단계는 아제르바이잔어용 효율적 토크나이저 개발, 2단계는 기반 모델인 Llama 3.2 1B를 아제르바이잔어에 적응시키는 연속 사전학습(CPT), 3단계는 LoRA를 이용한 지도 미세조정이다. 각 단계의 산출물이 다음 단계의 입력으로 이어진다.
아제르바이잔어는 영어라면 여러 단어로 표현할 의미를 접미사 하나에 담는 형태론적으로 풍부한 언어다. 영어에 최적화된 표준 토크나이저는 이런 단어를 잘게 쪼갠다. 예를 들어 '책들로부터'를 뜻하는 'kitablardan'을 여러 서브워드 토큰으로 분할해 고정된 컨텍스트 창에 담기는 실제 내용을 줄인다. 연구진은 이를 해결하기 위해 바이트 단위 BPE(BBPE) 알고리즘으로 맞춤 토크나이저를 직접 학습했다.
어휘 크기는 5만~10만 토큰 범위에서 실험한 끝에 10만 토큰으로 확정했다. 그 결과 단어당 평균 토큰 수(fertility)가 기본 Llama 3.2 토크나이저의 3.22에서 맞춤 토크나이저는 1.59로 약 2배 개선됐다. Llama 3.2의 12만8천 토큰 컨텍스트 창 기준으로 보면, 기본 토크나이저로는 약 4만 단어가 담기던 것이 최적화 토크나이저에서는 약 8만 단어로 늘어난다.
품질 저하 없이 효율만 높아졌는지는 어휘 차이를 정규화해 비교할 수 있는 바이트당 비트(BPB) 지표로 검증했다. 맞춤 토크나이저를 적용한 모델은 검증셋에서 BPB 0.5795를 기록해 기본값 0.6830보다 우수했다. 인코딩 효율 개선이 모델링 품질을 희생하지 않았음을 확인한 것이다.
연속 사전학습 단계의 핵심 병목은 GPU 메모리였다. 연구진은 A100 8장을 쓰는 ml.p4d.24xlarge와 H100 8장을 쓰는 ml.p5.48xlarge에서 벤치마크했다. 모델 전체를 각 GPU에 복제하는 표준 DDP 대신 파라미터·그래디언트·옵티마이저 상태를 GPU에 나눠 저장하는 FSDP를 적용하자, ml.p4d.24xlarge에서 GPU당 모델 상태 메모리가 9.23GB에서 1.17GB로 줄어 더 큰 배치 크기를 위한 여유가 생겼다.
여기에 트리톤(Triton) 기반의 메모리 효율적 연산 구현인 Liger 커널을 결합했다. 여러 연산을 단일 GPU 커널 실행으로 융합해 중간 메모리 할당을 줄이면서도 수치적으로 동일한 결과를 낸다. 함수 한 번 호출로 모델에 적용되며 PyTorch FSDP와도 수정 없이 함께 쓸 수 있다. 훈련 작업(CPT와 LoRA 미세조정)은 세이지메이커 통합 스튜디오에서 세이지메이커 AI 훈련 작업으로 실행돼, 작업마다 새 EC2 인스턴스를 띄우고 완료 후 종료하므로 유휴 클러스터 비용 없이 실제 연산 시간만큼만 과금된다.
이 프레임워크는 각 단계를 독립적으로 최적화할 수 있는 모듈식 구조로, 토크나이저 개선은 이후 모든 훈련 단계에 도움이 된다. 분산 학습 설정은 1B 모델에서 검증돼 더 큰 모델로 확장할 때 파이프라인 재설계 없이 설정 변경만으로 대응할 수 있다. AWS는 저자원 언어나 형태론적으로 복잡한 언어를 다루는 팀이라면 이 접근법을 검토해볼 만하다고 제안했다.