Vessl AI의 MLOps Now Seminar – 스캐터랩의 나만의 sLLM
VESSL-AI에서 MLOps now seminar를 진행했습니다. 그중에서 스캐터랩은 private sLLM (small LLM )에 대해 이야기했습니다. 가장 큰 교훈은 나만의 전략을 만들되 다른 회사의 도움은 필요하다고 이야기했습니다.
을 시작으로 두번쨰 세션은 스캐터랩의 김준성님의 이었으며 마지막으로 W&B의 Akira Shibata님의 로 끝이 났습니다. 이번에 정리할 내용은 김준성님의 Private sLLM(small LLM )입니다. 준성님의 세미나를 선택한 이유에는 스캐터랩이 갖고 있는 고민과 그걸 해결해나가는 과정이 이전에 들을 수 없었던 재미있는 세션이라고 생각이 들었기 때문입니다.
우리만의 LLM을 만들어가는 과정
스캐터랩이 자신들만의 LLM을 만들기 위한 고민을 많이 했습니다. 현재 최고의 성능이라고 불리는 ChatGPT의 경우 스캐터랩의 가장 주력상품이라 부를 수 있는 루다와 같은 “친구 같은 챗봇”과는 거리가 멀었습니다. 이를 해결하기 위해 스캐터랩은 를 도입하기 위해 노력했으며 또한 만들었습니다. 뿐만 아니라 읽씹할 수도 있게 만들었습니다. 이러한 내용을 전부 활용하다고 가정했을 때 실제 챗봇이 대화에 필요로 하는 토큰 수는 2048개가 넘어가며 누적 대화량까지 고려한다고 했을 때는 OpenAI API 비용은 너무 비싸서 문제였다고 합니다.
그래서 스캐터랩은 스캐터랩만의 sLLM을 만들기로 결정했다고 합니다. sLLM을 직접 만들게 된다면 대화 퀄리티가 좋아지고 관계 대화에 필요한 기능을 구현할 수 있습니다. 뿐만 아니라 개인정보 규약을 잘 지킬 수 있으며 운영비용 또한 줄어들게 됩니다. 마지막으로 OpenAI의 경우 서버 트래픽이 자주 몰리다보니 안정성 측면에서 불리합니다. 그러기에 스캐터랩은 자신들만의 sLLM을 구축해 우리의 상황에 맞는 LLM을 만들기로 결정했습니다.
스캐터랩이 sLLM을 만들기로 했을 때 가장 걱정했던 비용은 추론 비용이었습니다. MosaicML Cloud에 따르면 훈련 비용의 경우 70B가 250만달러가 들어간다고 합니다. 그러나 추론 비용의 경우 스캐터랩 자체 조사결과 70B까지는 무리라고 생각해 30B으로 고려해서 사전학습시키기로 결정했다고 합니다.그럼에도 30B 또한 1회 학습에 45만 달러다보니 실패할 경우 많은 비용이 발생하기 때문에 MosaicML Cloud의 도움을 받아 만들었다고 합니다.
VESSL AI 도입기
sLLM을 만들었다면 이제는 파인튜닝을 위해 여러가지 실험을 진행해야 합니다. 파인튜닝을 진행할 때에는 스캐터랩 엔지니어 20명이 ssh로 GPU 클러스터를 이용하면서 LLM 평가, 학습 최적화, RLHF, 서빙 등 다양한 실험을 진행해야 합니다. 이때 가장 큰 문제는 GPU 스케줄링이 되어 있지 않아 활용도가 낮았고 실험, 비용, 실험 재현에 제대로 사용하지 못했습니다.
이때 VESSL AI에 도움을 받았다고 합니다. VESSL AI는 GCP, AWS 뿐만 아니라 자체 GPU 그리고 회사에서 사용하는 클라우드도 지원해주며 체계적인 실험 관리 시스템, 효율적인 GPU 분배가 가능하다고 합니다. 또한 Spot Instance를 활용한 비용을 절감했고 간단하고 직관적인 UX로 머신러닝 엔지니어들도 쉽게 사용할 수 있었다고 합니다. 실제 스캐터랩 엔지니어들도 VESSL AI 도입이후 GPU 사용이 효율적으로 이루어졌으며 모든 GPU를 활용할 수 있게 되었다고 이야기헀습니다.
LLM 서빙을 최적화하는 노력들
마지막으로 LLM의 경우 서빙하는데 비용이 많이 들어가는 것 또한 문제점이라고 이야기했습니다. 이를 해결하기 위해서 여러가지 방법론을 이야기해주셨습니다.
첫번째로 시도한 것은 AWS Inferentia를 이용해 모델 서빙 비용을 최적화하는 방식이 있습니다. 이 방식의 경우 준성님께서 직접 로 작성했습니다. 두번째 방법은 Karpenter와 Spot instance를 이용해 비용을 절감시킬 수 있다고 합니다. 이 2가지 방법의 경우 클라우드를 이용하는 것인데 이때 가장 중요한건 멀티 클라우드로 운영하는 것이라고 이야기했습니다. 각기 다른 GPU 사용가능 풀도 다르고 타입도 다르며 가격 정책뿐만 아니라 할인 정책까지 전부 다르기 때문입니다.
또 한편으로는 양자화기법을 이용해서 모델 크기를 압축하거나 속도를 향상시킬 수 있습니다. 대표적인 방법론으로 GPTQ로 모델을 양자화해 서빙을 최적화시킬 수 있습니다. 마지막으로 현재 우리나라에 있는 회사중에 FriendliAI에서 만든 Periflow Serving Machine을 활용한다면 성능 개선이 확실히 이루어졌다고 이야기했습니다.
결론
스캐터랩이 이번 sLLM을 만들면서 가장 크게 느낀건 인하우스로 모든걸 해결할 수 없다 였습니다. 스캐터랩만의 sLLM을 만들기 위해서 MosaicLM 이 모델을 학습하는 걸 도와주었으며 VESSL AI가 파인튜닝하기 위한 리소스 관리를 했습니다. FreindliAI는 서빙을 돕는 엔진으로 서빙 최적화까지 진행했습니다. 또한 스캐터랩에서 지속적으로 강조하는 내용은 고품질의 데이터를 확보하는 것이 매우 중요하며 최고의 학습 환경과 리소스를 갖고 있어야 된다고 이야기했습니다. 마지막으로 sLLM도 충분히 경쟁력이 있으니 두려워하지 말라는 코멘트까지 남겼습니다.
느낀점
이번 세미나를 들으면서 느낀 것은 실제 sLLM을 만들고 운영하는 회사가 어떤 고민을 하고 만들었는지를 느낄 수 있어서 좋았습니다. 특히 LLM 시대가 오면서 자연어 챗봇에 대한 사람들의 기대치가 높아졌습니다. 네이버와 같은 대기업은 자체적인 LLM을 만들어서 운영하면서 ChatGPT에 대응하는 걸로 보입니다. 그러나 대부분의 스타트업은 OpenAI의 전략을 짜는건 불가능합니다. 많은 기업들은 OpenAI API를 활용해서 성능을 업그레이드했거나 오픈소스 모델인 LLaMA를 튜닝해서 사용하고 있습니다. 그러나 스캐터랩은 자체적인 sLLM을 만들어서 파인튜닝작업까지 진행해 순도 높은 서비스를 보여주었습니다. 이러한 길을 만들어 나가는 스캐터랩이 대단하다고 느꼈습니다.
스캐터랩은 자신들의 능력에 대해 객관적으로 알고 있으며 이를 잘 활용하는 기업이라는 생각도 들었습니다. 보통의 기술 스타트업은 모든걸 In-House로 해결하려고 합니다. 그러나 스캐터랩은 다양한 회사의 도움을 받아서 만들었으며 이걸 대외적으로 이야기하고 공유하는 것에 감탄했습니다.