스켈터랩스 NLP팀의 엔비디아 해커톤 참여 및 TensorRT-LLM을 효과적으로 활용한 후기와 NLP팀의 개발 방식은 어떤지 살짝 엿보도록 합니다.
지난 4월, 스켈터랩스가 엔비디아(NVIDIA)에서 개최한 프라이빗 해커톤에 참여하였습니다.
이번 해커톤은 엔비디아의 최신 기술인 TensorRT-LLM을 효과적으로 활용하고, 기업 도입을 촉진을 목적으로 마련되었는데요.
스켈터랩스는 두 가지 주요 목표를 가지고 이번 엔비디아 해커톤에 참여하였습니다.
첫째, 기술적으로 엔비디아와의 직접적인 협업을 통해 실시간으로 문제를 해결하고 피드백을 받을 수 있는 기회를 가지기 위함이었습니다. 둘째, 자체 개발 중인 sLLM 모델의 추론 속도와 효율성을 극대화할 수 있는 방안을 모색하고자 했습니다.
이번 블로그 글에서는 엔비디아 해커톤에 참여한 스켈터랩스 NLP 팀의 생생한 후기를 인터뷰 방식으로 전달합니다.
💡 먼저, 엔비디아-HPE 해커톤에 대해 생소한 분들이 많을 것 같은데, 간단히 소개를 부탁드립니다.
엔비디아와 Hewlett Packard Enterprise (HPE)이 협력하여 주최한 이번 해커톤은 특정 기업들을 대상으로 private하게 진행되었습니다.
이번 ‘TensorRT - LLM Enterprise’ 해커톤의 핵심 목적은 엔비디아의 새로운 제품인 'TensorRT-LLM'을 더욱 효과적으로 사용할 수 있는 방법을 찾고, 이를 널리 홍보하여 더 많은 기업들이 도입하도록 장려하는 것이었는데요.
TensorRT-LLM은 처음 출시된 이래 지속적으로 새로운 LLM 추론 속도 가속화 기법을 반영하면서 발전해오고 있는데요, 다른 LLM 추론 라이브러리에 비해 활용 편의성이나 최선의 사용 방식 사례 발굴을 위한 노력이 좀더 필요하다는 인식이 있는 편입니다.
이에 이번 해커톤은 자체적으로 LLM 추론 서비스를 운용해야 하는 기업 고객 사용자가 자체 LLM 모델의 특성에 맞게 좀더 최적화된 형태로 TensorRT-LLM 제품을 효과적으로 활용할 수 있도록 돕기 위해 마련되었습니다.
💡 스켈터랩스가 이번 엔비디아 해커톤에 참여하게 된 목적은 무엇인가요?
스켈터랩스가 이번 엔비디아 해커톤에 참여하게된 목적은 두 가지가 있었습니다.
첫째, 기술적 협업을 통해 실시간으로 문제를 해결하고 피드백을 받을 수 있는 직접적인 기회를 확보하기 위함입니다. 이를 통해, 스켈터랩스는 엔비디아의 전문 지식과 노하우를 직접 체험하고, 최신 기술 및 연구 개발 동향을 이해할 수 있었어요. 이런 직접적인 교류는 자사의 제품과 서비스에 엔비디아 기술을 효과적으로 적용하는 방법을 탐색하는 데 큰 도움이 되었습니다.
둘째, 스켈터랩스는 자체 개발 중인 sLLM 모델의 추론 속도와 효율성을 극대화할 수 있는 방안을 모색하고자 하였습니다. 이 목표는 추론 속도의 향상이 필수적인 sLLM의 제품화를 지원하기 위해 세워졌는데요. 스켈터랩스의 스피치 팀이 엔비디아의 TensorRT를 활용하여 STT 모델의 추론 속도를 향상시켰던 사례를 바탕으로, 엔비디아의 TensorRT-LLM 기술을 적용하였을 때 자체 개발 중인 sLLM 모델에서도 추론 속도 향상 효과를 가져올 수 있을지 확인해보고자 하였습니다.
▲ NVIDIA-HPE 해커톤에서 스켈터랩스가 발표하는 현장💡 해커톤의 전반적인 분위기가 어땠나요?
전반적인 분위기는 매우 협업적이고 생산적이었습니다!
스켈터랩스는 Mob 프로그래밍 방식을 활용해 모든 팀원이 동시에 하나의 화면을 보고 협력했는데요. 한 사람이 타이핑을 담당하고 나머지 팀원들이 아이디어를 제공하며 실시간으로 피드백을 주고받는 식이었습니다. 문제를 빠르게 해결하고 효율적으로 작업을 진행하는 데 효과적인 방법이었어요.
또한, 예정된 엔비디아 측 엔지니어가 팀에 합류하지 못한 상황에서도, 스켈터랩스는 현장에서 발생하는 상황을 메신저를 통해 실시간으로 전달하며 원활한 진행을 도모했습니다.
특히, 성과 발표 중에는 엔비디아 엔지니어들로부터 직접적인 버그 확인 및 피드백을 받는 상황이 발생하는 등 스켈터랩스의 효과적인 문제 해결 능력이 강조되는 뿌듯한 순간들도 있었죠.
💡 본격적으로 스켈터랩스가 엔비디아 해커톤에서 얻은 인사이트들에 대해 이야기 나누어보려고 합니다. 위에서 잠깐 언급하셨던 TensorRT-LLM이 무엇인가요?
TensorRT-LLM은 엔비디아가 제공하는 라이브러리로, LLM을 TensorRT 엔진으로 변환하여 AI 모델의 추론 속도를 향상시키기 위해 설계되었습니다. TensorRT는 이미 여러 AI 모델에서 성능 최적화를 위해 널리 사용되는 소프트웨어 라이브러리로, AI 네트워크를 최적화 하는 기술은 아래와 같습니다:
- GPU 커널 최적화: TensorRT-LLM은 엔비디아의 GPU 디바이스에 맞춰 특별히 최적화되어 있습니다. 이 최적화는 모델이 GPU 상에서 실행될 때 효율성을 극대화하여, 필요한 연산을 더 빠르게 처리할 수 있도록 합니다.
- Operator Fusion: 추론 과정 중에는 다수의 연산(Operator)이 필요하며, 각 Operator 사이에는 데이터 이동이 필요합니다. 이 데이터 이동은 GPU와 CPU 사이에서 발생하며, 대부분의 시간이 이 데이터 이동에 소요되는데요. Operator Fusion은 여러 연산을 하나의 복합 연산으로 결합하여 이 데이터 이동을 줄입니다. 결과적으로, 데이터 이동이 감소하면 추론 시간이 단축되며 전체적인 효율이 향상됩니다.
- In-flight Batching: Continuous batching이라 불리기도 하는 In-flight Batching은 여러 요청이 하나의 배치로 입력되어 배치에 위치한 모든 요청의 생성이 완료되어야 모든 요청에 대한 응답이 반환되는 static batching과는 다르게 모델에 요청이 들어왔을 때 모델의 가용 가능한 배치 공간이 있다면 생성이 시작되고 생성이 완료된 요청이 있다면 즉시 해당 요청에 대한 응답을 반환하는 방식으로 효율적인 생성 AI 추론을 위한 필수적인 요소로 자리잡았습니다. TensorRT-LLM에서는 이러한 In-flight Batching 기법을 C++ 언어로 구현하여 제공하고 있습니다.
💡 해커톤을 본격적으로 시작하기 전, 기술적인 측면에서 많은 것들을 목표로 세우셨어요. 간략히 설명 부탁드립니다.
이번 엔비디아 해커톤에서 스켈터랩스가 세운 목표들은 여러가지가 있지만, 그 중에서 꼽아보자면:
- Medusa Decoding 적용 : LLM 모델의 추론 속도 향상을 위해 Assistant model을 활용하는 Speculative Decoding, EAGLE 등 다양한 Decoding 기법들이 제안되고 있습니다. 스켈터랩스에서는 이러한 기법들 중 Medusa Decoding 기법을 TensorRT-LLM과 함께 적용해보고 이를 통한 성능 향상을 확인해보고자 하였습니다.
- 추론 속도 향상과 리소스 최적화: 스켈터랩스는 제한된 하드웨어 리소스 상에서 모델의 추론 속도를 최대한 빠르게 할 수 있는 기술을 실제로 활용하고 그 효용성을 검증하고자 했습니다. 이를 통해, 스켈터랩스가 실제 운영 환경에서 모델의 효율성을 높이고 비용을 절감할 수 있는 방법을 모색했습니다.
- 모델 최적화와 설정 노하우 습득: 사용 중인 모델을 최적화하는 방법과 관련 설정을 구성하는 데 필요한 노하우를 습득하는 것이 목표였습니다. 이 과정을 통해 스켈터랩스는 자체 모델을 보다 효과적으로 배포하고 관리할 수 있는 방법을 학습하고자 했습니다.
- 측정 방법론의 학습 및 차이 분석: 스켈터랩스는 엔비디아와 같은 큰 규모의 조직이 사용하는 추론 속도 및 사용자 처리량 측정 방식을 배우고자 했습니다. 이를 통해 자체 측정 방법을 개선하고, 큰 조직의 방법을 흡수하여 자체적인 테스트 및 성능 평가 방식을 향상시키고자 했습니다.
💡 엔비디아의 TensorRT-LLM 기능을 저희 제품인 BELLA LLM에 적용해 보면서 어떤 새로운 점을 배울 수 있었나요? 우리 제품에 TensorRT-LLM를 활용할 수 있을까요?
TensorRT-LLM을 BELLA LLM에 적용해 보면서 스켈터랩스가 배울 수 있었던 주요 사항은 다음과 같습니다:
- 추론 가속의 필수성 확인: BELLA LLM에 TensorRT-LLM을 적용함으로써, 특정 기능들이 모델의 추론 속도를 가속화하는 데 필수적임을 확인할 수 있었습니다.
- 파라미터 탐색 노하우 습득: TensorRT-LLM을 적용하는 과정에서는 다양한 파라미터를 실험하고 최적화하는 과정을 거쳤는데요. 이를 통해 스켈터랩스는 파라미터 조정과 관련된 중요한 노하우를 습득할 수 있었습니다. 이 노하우는 다른 프로젝트나 모델에도 적용 가능하여, 향후 모델 성능 최적화에 큰 도움이 될 것으로 기대하고 있습니다.
- 추론 속도 향상에 대한 확신: TensorRT-LLM의 주요 목적은 LLM 모델의 추론 속도를 향상시키는 것입니다. 이 기술을 적용함으로써, 스켈터랩스가 준비하고 있는 자체 sLLM 모델의 추론 속도가 현저히 향상됨을 확인할 수 있었고, 이에 따라 전체적인 모델 성능 및 효율성이 개선될 것이라는 확신을 얻었습니다.
다양한 기술을 비교 분석한 결과, TensorRT-LLM이 가장 빠른 성능을 보였습니다. 동시에 여러 사용자의 요청을 처리하거나, 요청에 대한 응답 속도를 향상시키는 등 모든 면에서 우수한 결과를 보였기에 활용할 수 있을 것 같습니다.
💡 슬슬 인터뷰를 마무리하려고 하는데요. 인터뷰를 끝까지 읽으신 분들은 엔비디아 해커톤에서 인상 깊은 성과를 낸 주역들을 많이 궁금해할 것 같아요. 스켈터랩스에서는 어떤 일을 하고 있는지, 맡으신 업무를 가장 기억에 남았던 업무와 함께 소개해주실 수 있으실까요?
- NLP팀 리더 변규홍 님🧐
자연어 처리 기술 전반을 담당하고 있습니다. 지난 6년 간 기술 발전을 따라 형태소 분석 기반부터 머신러닝 기반까지 다양한 형태의 챗봇 솔루션을 개발해 왔습니다. 자체적으로 훈련한 한국어, 일본어 최적화 SpanBERT 기반의 기계독해(MRC) 챗봇도 그 중 하나입니다.
ChatGPT 등장 초기, LLM 모델에 내재된 지식만으로 생성한 답변에 비해 지식기반(Knowledge Base) 검색을 통한 MRC 기반 챗봇의 답변이 좀더 근거 있는 답변이라는 점을 확인하고 이를 기반으로 Azure OpenAI에 RAG 기술을 접목하여 한국어에 최적화된 검색증강생성의 가능성을 실증한 순간이 가장 기억에 남습니다.
- NLP팀 방진현 님🤓
자체적인 한국어 Retriever-Augmented Generation (RAG) 모델 및 다양한 다운스트림 태스크에 적용 가능한 sLLM을 구축하는 업무를 맡고 있습니다.
BELLA LLM 프로덕트 오너(PO)로서, 이 프로젝트를 통해 실제 비즈니스 문제에 대응할 수 있는 맞춤형 솔루션을 제공하는 것이 목표입니다. 스켈터랩스에서 가장 보람을 느꼈던 순간은 RAG 모델을 통해 실제 사용자의 질의에 대해 더 정확하고 유용한 정보를 제공하는 챗봇 시스템을 개발한 것이라고 할 수 있겠네요.
- NLP팀 정구익 님😎
sLLM 구축을 위한 모델 학습 환경의 구축 및 관리 업무를 담당하고 있습니다. 학습 및 평가 파이프라인의 구축을 통해 모델의 성능을 체계적으로 평가하고 개선하는 작업을 수행합니다.
스켈터랩스 NLP팀에서 제가 성과를 낸 부분이 있다면, 모델의 학습 및 평가 파이프라인 구축을 통해 실험에 대한 편의성을 제공하며, 이를 통해 모델의 성능을 지속적으로 향상시킨 것을 꼽겠습니다ㅎㅎ
▲ (우측 하단) 멘토님과 함께
이렇듯 스켈터랩스는 혁신적인 기술을 활용해 새로운 도전을 지속적으로 추구하는 개발 문화를 장려합니다.
엔비디아 해커톤 참여 역시 바로 그러한 문화의 연장선상에서 이루어졌으며, 기술적 한계를 넘어서 새로운 가능성을 탐색할 수 있는 뜻깊은 기회였는데요. 이번 경험을 통해 NLP팀은 확실히 전문성을 강화하고 시야를 넓히는 계기가 되었다고 합니다 :)
기술은 끊임없이 진화하며, 스켈터랩스 엔지니어들의 학습 방식도 마찬가지여야 합니다.
때문에 앞으로도 스켈터랩스는 우리의 아이디어와 기술을 실제 문제에 적용해 볼 수 있는 기회의 장에 끊임없이 참여하며 성장을 지속하고, B2B향 대화형 AI 서비스를 제공할 수 있도록 전력투구 할 것 입니다.