[reinvent 2024] Bloomberg: AWS에서 LLM 구축 및 교육을 통해 배운 교훈

Summary

안전하고 효율적인 모델 훈련은 생성 AI 기능을 구축하여 투자 수익을 얻기 원하는 모든 조직에 필수적입니다. 금융 서비스 분야에서 AI/ML의 선두주자인 블룸버그는 AWS를 활용하여 대형 언어 모델뿐만 아니라 소형 언어 모델을 구축하고 훈련했던 경험에서 얻은 교훈을 공유하고자 합니다. 블룸버그가 모델 개발 과정에서 대규모 GPU 노드 네트워크를 통해 대규모  데이터 볼륨을 어떻게 관리하여 자동화하고 표준화를 시켜 데이터 보안을 유지하면서 훈련 과정을 더욱 안전하게 진행할 수 있었는지를 함께 살펴 보고자 합니다. 모델 훈련 시 인프라, 데이터 저장 및 전송 절차의 자동화가 오류를 줄이는 데 어떠한 도움이 되는지도 알아보시기 바랍니다.


리인벤트 2024 테크 블로그의 더 많은 글이 보고 싶다면?

Tech Blog

AWS re:Invent 2024 Tech Blog written by MegazoneCloud

Overview

  • Title: Bloomberg: Lessons learned from building and training LLMs on AWS
  • Date: 2024년 12월 3일(화)
  • Venue: MGM Grand | Level 1 | Grand 116
  • Speaker:
  • Phil Vachon(Head of Infrastructure, Bloomberg)
  • Vadim Dabravolski(Team Leader, Bloomberg)
  • Vasu Chari(Principal Solutions Architect, Amazon AWS Inc)
  • Industry: Financial Services

들어가며

AI/ML을 앞다투어 도입하고 있는것 같지만, 대규모모델을 구축하는 회사는 거의 없습니다. GPU인프라 운영과 모델학습에 많은 비용과 실력있는 팀이 필요하기 때문입니다. 더 중요한 고품질의 대규모 자료도 조건이 됩니다. 글로벌 금융서비스업의 선도적인 데이터제공업체인 Bloomberg는 이 모든 조건을 갖추고, 자체 대규모 언어모델을 교육했습니다. 

본 세션에서 그들이 BloombergGPT를 만들기위해 마주했던 도전에 대해 알아보시기 바랍니다.

Agenda

Bloomberg는 AWS를 활용하여 자사의 모델을 훈련하는 과정에서 얻은 교훈과 경험을 공유합니다. 이 과정에서 대규모 GPU 네트워크를 통해 방대한 데이터를 관리하고, 인프라를 자동화 및 템플릿화하여 데이터 저장 및 전송 문제를 해결하며, 데이터 보안을 유지하면서 오류를 줄이는 훈련 프로세스를 구축했습니다. 이를 통해 모델 훈련 프로젝트를 더 빠르게 시작하고 혁신과 제품 개발을 가속화할 수 있었습니다.

Bloomberg는 2009년부터 AI를 활용하여 고객들에게 시장 선도적인 통찰을 제공해 왔으며, 지난 3년 동안 100편 이상의 연구 논문을 발표하는 등 AI와 NLP 분야에서 강력한 연구 기반을 유지하고 있습니다. 이러한 기술을 통해 금융 데이터에서 중요한 정보를 찾아내는 데 도움을 주고 있습니다.

  • In the beginning…   ( 처음에 한 일)
  • The training process
  • Managing training infrastructure
  • The results
  • Applying out research in get AI-enhanced products
  • If we had to do it again today?

In the beginning…

블룸버그는 대규모 언어 모델(LLMs)의 잠재력을 인지하고 고객에게 가치를 제공하기 위해 2009년부터 연구를 진행해왔습니다. 그들은 신뢰할 수 있는 요약 및 효율적인 검색 함수를 개선하는 데 주력하고 있습니다. 

주요한 평가 요소로는 학습데이터의 양과 GPU 시간이 고려되었습니다. 금융 분야의 전문 용어를 활용해 금융 서비스에 적합한 특화된 모델을 개발할 가능성을 탐색했습니다. 여기에는 고객의 높은 수준의 기대에 어떻게 부응할 수 있을지 지속적인 의문이 따라다녔습니다. 또한, 모델 학습에 필요한 컴퓨팅 용량의 확보는 고질적인 문제였으며, 특히 GPU자원의 확보는 글로벌 반도체 위기로 더욱 어려웠습니다.

The training process

GPU의 수요에 맞물려 코로나로 인한 칩 공급 부족으로 인해 GPU자원확보가 새로운 걸림돌이 되었습니다.

자원비용 검토를 위해 Bloomberg가 보유한 학습데이터를 계산한 결과, 7000억 개의 토큰으로 식별되었고, 

500억개의 매개변수 모델과 Nvidia A100 GPU로 130만 시간이 필요하다는 것을 확인했습니다. AWS의 예약을 통해 P4 EC2 UltraCluster를 선택하여 GPU자원을 확보할 수 있었습니다.

Amazon SageMaker를 통해 모델 학습을 진행하는 것은 쉬운 결정이었으며, 대부분의 헤비한 작업들은 SageMaker가 대신 처리했으므로, 더 중요한 일에 집중할 수 있었습니다. 예를 들면, 당시 최신의 하드웨어에서 발생하는 하드웨어결함 또는 드라이버 문제 등을 디버깅할 필요없이 AWS를 통해 모델 학습에만 집중할 수 있었습니다. AWS와의 긴밀한 관계와 전문가 지원 덕에 9명의 AI 연구원만으로 모델 학습을 수행할 수 있었습니다.

Managing training infrastructure

데이터센터의 데이터를 Amazon SageMaker와 연결하는 것은 당시의 표준인 테라폼을 적용하여 간단하게 구성되었습니다. AWS를 통해 SageMaker를 배우는 것이 주요한 과제였고, 클러스터가 인터넷으로의 접근을 격리하도록 보장하기위해 오랜시간 공을 들였습니다.

보유한 학습데이터는 3.5TB였고, 매 2시간마다 발생하는 체크포인트는 600GB였습니다. 성능면에서는 GPU가 많은 데이터를 다룰 수 있도록 유지하고, 체크포인트 또한 빠르게 처리되어야 했습니다.

데이터 보호를 위해 백업을 물론, 고가치 데이터의 접근은 보호되는 요구사항 충족을 위해 Amazon FSx를 사용했습니다. 이는 학습데이터가 쉽게 접근가능할 뿐만 아니라, 낮은 지연 시간과 필요한 보안이 적용되었음을 보장해 주었습니다.

학습데이터는 귀중하므로, 노출되지않도록 학습데이터를 읽고쓸 수 있는 권한을 가진 서비스만이 접근할 수 있도록 보장하는 것이 중요합니다. GPU자원 또한 낭비 혹은 탈취되지않도록 권한과 접근제어가 필요하며, 자원사용에 대한 모니터링이 중요했습니다. LM은 그 당시와 지금도 빠르게 발전하는 분야로, 연구자들이 실험을 쉽게 시작하고, 대규모 훈련 작업에서 수집된 학습을 통해 컴플라이언스를 유지할 수 있도록 합니다.

대규모 언어모델의 학습은 분산된 상태의 고비용 작업으로, 수백 개의 복잡한 계산을 수백 개의 노드에 걸쳐 나누어 수행하며, 이를 몇 달 동안 진행하게 됩니다. 

단일 노드에서의 불가피한 실패는 우아하게 처리되어야 하며, 가능할 경우 자동으로 처리되어야 합니다.

비용과 연구 효율성이 가장 중요하므로, 첫 번째 대규모 학습을 시작하기 전에 운영 아키텍처를 계획하는 데 시간을 투자했습니다. 이를 위해 우리는 회복 가능한 오류와 비회복 가능한 오류의 개념을 도입하고, 오류 유형에 따라 서로 다른 수정 제어를 구현했습니다. 수정 작업을 구현하기 위해, CloudWatch Log 및 Metrics와의 네이티브 통합을 광범위하게 사용했습니다.

The results

결과적으로는 BloombergGPT 연구모델이라는 논문으로 도출되는 성과가 있었습니다. 

재무에 특화된 모델로서 당시 사용 가능했던 일반 모델보다 훨씬 더 많은 매개변수를 가진 모델입니다.

중요한 건 이 모델을 어떤 애플리케이션에 사용되도록 의도한 것이 아니라, 대규모 언어모델을 통합하는 애플리케이션을 탐색하는데 도움을 얻었습니다. 당시 많은 사람들이 모델이 사용자경험과 워크플로우에 어떤 식으로 맞춰줘야 하는지 깊이 고민하지 않았습니다. ChatGPT가 대중화한 에이전트기반 모델이 가장 효과적일지는 미지수 인것 입니다.

Applying out research in get AI-enhanced products

구축한 모델을 사용하여 제품과 애플리케이션을 어떻게 구축할지 활용하는 방법에 대한 3가지 원칙을 개발했습니다.

  • 첫번째, 모델의 모든 출력이 신뢰할 수 있는 출처에서 나와야 한다는 것입니다.
  • 두번째, 사용자가 시스템 및 애플리케이션을 사용하는 맥락에서 모델을 평가해야 합니다. 사용자가 사용할 수 있도록 빈칸을 제시하는 프롬프트 인터페이스보다는 안내하는 단계의 인터페이스를 사용해야합니다. 또한, 사용자가 쉽게 피드백을 제공할 수 있는 방법을 제공하고, 이로 얻어진 피드백을 제품에 빠르게 반영해야합니다.
  • 세번째, 가장 중요한 원칙인 투명성은 모델이 데이터의 출처에 대해 투명하게 제공해야한다는 것입니다.

사용자는 특정한 출력의 이유과 원본출처를 볼 수 있고, 그 출처에 접근할 수 있어야합니다.

이렇게 갖춰진 모델에 대해 뭔가를 조회하고 싶을 때, BQL (Bloomberg Query Language)를 통해 매출, 주가정보 등을 조회할 수 있습니다. 더 자세하게 보고싶을때 더 많은 함수를 조합하여 정교한 데이터를 얻어낼 수 있습니다.

BQL전문가가 되어야하고, 모델을 더 깊이 이해해야 하니 효율적으로 보이지 않습니다.

BQL작성 대신 자연어조회를 통해 BQL을 생성하고, 답변을 얻어낼 수 있다면 더 좋을 것입니다.

이 모델은 BQL을 자동생성 및 이해하도록 미세조정되었습니다. 자동생성으로 얻어낸 BQL을 더 발전시켜 활용할 수도 있고, 사용자가 데이터에 더 쉽게 접근할 수 있습니다.

금융가의 수익시즌이 되면, 수백페이지에 달하는 금융보고서가 분석대상이 되고, 분석가는 가능한 한 빨리 통찰력을 발휘해 전체를 볼 수 있어야 합니다. 실제로 이 특정 2024년 3분기 애플 수익 통화에서 자동 요약으로 생성된 몇 가지 발견과 주요 안내를 볼 수 있습니다. 

우리의 목표는 수익 통화의 전체 요약을 제공하는 것뿐만 아니라, 분석가가 이 통화에 대해 가질 수 있는 질문에 답하는 것입니다. 

이를 위해 검색 보강 생성(RAG) 패러다임을 사용하기로 선택했습니다. 금융서비스 고객들의 질문에 답변하는 전문가인 내부분석가들로 하여금 고객이 운영되는 방식, 분석가가 일반적으로 대답할 법한 질문목록에 대한 답변으로 모델을 훈련하여, 고품질의 요약서비스를 제공할 수 있었습니다.

If we had to do it again today?

2년 전에 했던걸, 지금 한다면?

모든 것들이 SageMaker Hyperpod를 통해 턴키교육과 도구 및 라이브러리를 즉시 사용할 수 있습니다. 자동화된 체크포인팅, 심각한 실패에서 회복, 수동개입없이 하드웨어 활용도를 극대화 할 수 있습니다. On-premise환경과 SageMaker환경 관계없이 동일코드기반을 제공한다는 것도 매우 생산적입니다.

대규모 언어 모델 작업을 운영화하기 위한 여정을 시작하면서, LLM에 접근하기 위한 게이트웨이 기능을 제공하는 기존의 오픈 소스 솔루션 중 일부가 강력한 경향 격리, 분기 관리 및 비용 귀속과 같은 필수 기업 기능이 부족하다는 것을 깨달았습니다. 그리고 서로 다른 추론 제공자 간의 고급 라우팅 기능도 부족했습니다.

이러한 격차를 해소하기 위해 블룸버그는 엔보이 커뮤니티와 협력하여 엔보이 AI 게이트웨이를 구축했습니다.

엔보이 AI 게이트웨이 프로젝트는 Bloomberg 팀과 Tatrate 팀에 의해 개발 중이며, 중앙 집중식 API관리, 강력한 접근정책 및 준수관리, 비용 및 용량관리 등의 주요 기능을 가지고 있습니다.

결론

자신들이 가진 방대한 양질의 학습데이터로 대규모 언어모델을 구축하여 학습시키고, 그 결과물을 논문으로 내고, 조회하는 언어를 개발하고, 인터페이스와 가치있는 자동요약까지 도달했습니다.

그러면서, 이렇게 묻습니다. 이 시간과 비용을 들이고도 자신만의 모델을 구축하는게 맞을까요?

오히려, 이미 갖춰진 모델을 활용하여 미세조정하거나 RAG를 사용하여 추가적인 맥락을 제공하는것이 더 핵심이다라는 의견을 내비칩니다. 저도 그 생각에 동의하지만, 끝까지 추진하여 모델과 애플리케이션으로 까지 완성한 뚝심에 박수를 보내고 싶습니다.

글 │메가존클라우드, Strategic Technology Center(STC), CS1그룹, CA1팀, 이태훈 SA
게시물 주소가 복사되었습니다.