(번역: Youngkyong Ko) Original Blog Post
우리는 최 근 대규모 언어 모델(LLM)을 사용하여 Unity Catalog의 테이블과 열에 대한 문서를 자동으로 생성하는 AI 기반의 문서화 기능을 발표했습니다. 이 기능에 대한 고객들의 반응이 매우 뜨거웠습니다. 현재 데이터브릭스의 테이블 메타데이터 업데이트 중 80% 이상이 AI의 도움으로 이루어 지고 있습니다.
이 글에서는 이 기능을 개발한 경험을 공유합니다. 기존 SaaS 기반 LLM을 이용해 프로토타입을 만드는 해커톤 프로젝트에서 시작하여, 더 좋고, 더 빠르고, 더 저렴한 맞춤형 LLM을 만들기까지의 과정입니다. 새로운 모델을 개발하는 데 엔지니어 2명, 1개월, 1000달러 미만의 컴퓨팅 비용이 소요되었습니다. 이 경험이 다양한 GenAI 사용 사례에 적용될 수 있을 것이라 믿기에, 유용하게 활용되기를 바랍니다. 그리고 더 중요한 것은 이 과정에서 오픈 소스 LLM의 빠른 발전을 활용할 수 있었다는 점입니다.
모든 데이터 플랫폼의 중심에는 방대한 데이터셋이 (대개 테이블 형태로) 존재합니다. 그러나 우리가 함께 일했던 거의 모든 조직에서는 문서화되지 않은 테이블이 대부분이었습니다. 문서화 되지 않으면 사람이 비즈니스 질문에 답하는 데 필요한 데이터를 찾기가 어렵고, 또한 최근에는 AI 에이전트가 질문에 대한 답변으로 사용할 데이터셋을 자동으로 찾는 데 어려움을 겪는 등 여러 가지 문제가 발생합니다. (이는 우리가 데이터 인텔리전스라고 부르는 플랫폼의 핵심 기 능이지요).
이러한 데이터셋을 문서화하기 위해 사람에 의존하는 대신, 상용 SaaS 기반 LLM을 이용하여 테이블 및 컬럼에 대한 문서화를 스키마에 따라 자동 생성하는 새로운 워크플로가 해커톤에서 프로토타입으로 나왔습니다. 이 새로운 워크플로는 테이블과 컬럼에 대한 설명을 자동으로 제안하고, 아래 그림과 같이 사용자가 이 제안을 개별적으로 수락하거나 일괄 수락하거나 또는 더 충실하게 수정할 수 있습니다. 이 프로토타입을 일부 사용자에게 보여줬을 때, 그들의 즉각적인 질문은 한결같이 "언제부터 사용할 수 있게 되나요?" 였습니다.
모든 고객에게 이 기능을 출시하기 위해 노력하는 과정에서 세 가지 문제에 직면했습니다:
다양한 고객들이 LLM 기반 애플리케이션을 개념 증명(proof-of-concept) 단계에서 프로덕션 단계로 전환하는 과정에서 비슷한 고민을 하는 것을 들었고, 그래서 우리와 비슷한 고객들을 위해 대안을 모색할 수 있는 좋은 기회라고 생각했습니다.
다양한 버전의 SaaS LLM을 실험해 보았지만 모두 동일한 문제를 안고 있었습니다. 지금 생각해보면 이는 놀라운 일이 아닙니다. SaaS LLM은 경이로운 엔지니어링 작품이지만, 테이블 생성부터 삶의 의미에 대한 대화에 이르기까지 모든 사용 사례를 다루어야 하는 매우 일반적인 모델입니다. 일반적이라는 것은 엄청나게 많은 매개변수가 필요하다는 것을 하며, 이 때문에 얼마나 빠르고 저렴하게 답을 낼 수 있는가 하는 측면에서는 한계가 있습니다. 다양한 사용 사례에 최적화하기 위해 LLM이 계속 진화함에 따라, 우리가 가진 특정 좁은 사용 사례에서는 오히려 퇴보하기도 합니다.
앞서 언급한 문제를 풀기 위해 우리는 맞춤형 모델을 만들기 시작했습니다. 더 좋고, 더 빠르고, 더 저렴한 맞춤형 소형 LLM을 구축하는 데 엔지니어 2명의 팀이 한 달 걸렸습니다:
첫 번째 단계는 이를 응용 머신 러닝 문제로 취급하는 것이었습니다. "응용 머신 러닝"이 어렵고 복잡하게 들리지만, 다음과 같은 작업이 필요하다는 뜻입니다:
이 미세 조정 작업을 위한 초기 학습 데이터셋은 서로 다른 두 가지 데이터 소스를 사용하여 만들었습니다:
위의 사용 사례 데이터를 이용해 CREATE TABLE 문을 합성하여 다양한 테이블들을 생성한 다음, 다른 LLM을 사용하여 테이블 설명과 컬럼 주석을 포함한 샘플 응답을 생성했습니다. 이렇게 총 3,600여 개의 학습 예제를 생성했습니다.
주목할 점은 모든 고객이 혜택을 누릴 수 있는 이 강력한 기능을 훈련하는 데 고객 데이터를 전혀 사용하지 않았다는 점입니다.
기능 출시 후에는 사용자가 제안을 수락하는 비율과 같은 프로덕션 지표들을 통해 모델의 품질을 측정할 수 있습니다. 하지만 기능을 출시하기 전에 SaaS LLM의 품질과 비교하여 모델의 품질을 평가할 수 있는 방법이 필요했습니다.
편견 없는 방식으로 평가하기 위해, 62개 테이블에 대해 두 비교 대상 모델이 각각 생성한 설명을 직원 4명이 평가하도록 간단한 이중 맹검 평가(double-blind evaluation) 프레임워크를 만들었습니다. 이후, 각 행에 입력을 표시하고 두 출력을 무작위 순서로 보여주는 시트를 생성했습니다. 평가자는 더 나은 샘플에 투표합니다 (동점을 줄 수도 있고요). 그런 다음 여러 평가자의 투표를 처리하여 보고서를 생성하고 각 평가자가 동의한 정도를 합산했습니다.
지금까지의 경험에 비추어 볼 때, 수십에서 수백 개의 데이터 포인트로 구성된 평가 데이터셋은 초기 이정표(milestone)로 충분하며, 이는 다른 사용 사례에도 일반화할 수 있습니다.
모델 선택에는 다음 기준을 고려했습니다:
위 기준에 따라 우리의 LLM 가이드에서 볼 수 있듯이 MPT-7B와 Llama2-7B가 유력한 후보였습니다. MPT-30B와 Llama-2-13B와 같은 더 큰 모델도 고려했습니다. 결국 품질과 추론 성능의 조합이 가장 좋은 MPT-7B를 선택했습니다:
약 3,600개의 예제에서 모델을 미세 조정하는 데 걸린 시간은 총 15분 정도에 불과했습니다!
MPT-7B를 모델로 선택했지만, LLM 환경은 빠르게 변화하고 있으며 오늘의 최고 모델이 내일도 최고 모델이 될 수는 없습니다. 따라서 우리는 이를 반복적이고 지속적인 프로세스라고 생각하고, 효율적이고 빠르게 평가할 수 있는 도구를 사용하는 데 집중하고 있습니다.
데이터브릭스 데이터 인텔리전스 플랫폼의 다음과 같 은 주요 구성 요소를 활용하여 이 과정을 빠르게 구축할 수 있었습니다:
전체 프로젝트의 미세 조정 컴퓨팅 비용은 1000달러 미만이었습니다(각각의 미세 조정 실행 비용은 몇 달러에 불과했습니다). 그 결과 최종적으로 비용을 10배 이상 절감할 수 있었습니다. 비용 절감 효과가 큰 이유는 무엇일까요? 다음과 같은 점을 고려하면 놀라운 일이 아닙니다:
잘 문서화된 데이터를 보유하는 것은 모든 데이터 사용자에게 매우 중요하며, AI 기반 데이터 플랫폼(데이터 인텔리전스라고 부르는)을 강화하기 위해 그 중요성이 날로 커지고 있습니다. 이 새로운 GenAI 기능의 프로토타이핑을 위해 SaaS LLM으로 시작했지만 품질, 성능, 비용에 대한 문제에 부딪혔습니다. 우리는 동일한 작업을 더 나은 품질로 수행하면서도 수평 확장(scale-out)을 통해 처리량을 늘리고 비용을 10배 절감할 수 있는 맞춤형 모델을 구축했습니다. 핵심을 요약하면 다음과 같습니다:
이 경험은 특정 작업을 위한 맞춤형 LLM을 개발 및 배포하는 것이 얼마나 쉬운지 보여줍니다. 이 모델은 현재 아마존 웹 서비스와 구글 클라우드의 데이터브릭스에 탑재되어 있으며, 데이터브릭스 플랫폼에서 대부분의 데이터 주석 강화에 사용되고 있습니다.