주요 컨텐츠로 이동
미분류

테스트 - LLM 미세 조정 및 맞춤형 LLM 구축을 위한 간결한 가이드

작성자: Team Databricks

소개

생성형 AI(GenAI)는 AI를 민주화하고, 모든 산업을 혁신하며, 모든 직원을 지원하고, 모든 고객과 소통할 수 있는 잠재력을 가지고 있습니다. 가장 유용하게 활용되려면 GenAI 모델은 조직의 엔터프라이즈 데이터를 깊이 이해해야 합니다. 현재까지 GenAI 모델에 엔터프라이즈 지식을 부여하는 가장 인기 있는 기술은 프롬프트 엔지니어링, 검색 증강 생성(RAG), 체인 및 에이전트입니다. 그러나 이러한 기술은 특정 도메인 및 애플리케이션에 맞춤화되지 않은 일반 모델을 사용할 때 한계에 부딪힙니다. 생성된 결과물을 개선하고 비용을 절감하려면 GenAI 애플리케이션 개발자는 미세 조정(fine-tuning) 또는 사전 학습(pretraining)을 통해 맞춤형 모델을 구축해야 합니다.

미세 조정(fine-tuning)은 더 작은 맞춤형 데이터 세트로 기존 AI 모델을 추가 학습시켜 특정 도메인 또는 작업에 특화시킵니다. 이 기술에는 지시 따르기 또는 채팅을 위한 지도 미세 조정(supervised fine-tuning)과 지속적인 사전 학습(continued pretraining)이 포함됩니다. 사전 학습(pretraining)은 완전히 맞춤 설정 가능한 데이터로 처음부터 학습시켜 완전히 새로운 모델을 만듭니다. 이러한 모든 기술을 통해 개발자는 자신의 도메인 또는 애플리케이션을 위한 지적 재산과 차별점을 구축할 수 있으며, 이를 통해 더 좋고 정확한 모델을 만들고 더 작고 저렴한 모델 아키텍처를 사용할 수 있습니다.

맞춤형 모델 생성 가이드에서는 다음 내용을 다룹니다.

  • 동기: 맞춤형 GenAI 모델을 구축해야 하는 이유와 시기는 언제인가요?
  • 원칙: 맞춤형 모델을 구축할 때 어떤 상위 수준의 관행이 전략과 구현을 안내해야 할까요?
  • 기술: 맞춤형 모델을 어떻게 구축할 수 있나요? 데이터 준비, 학습 및 평가를 위해 어떤 기술과 “주의할 점”을 알아야 할까요?

이 가이드는 맞춤형 모델 구축을 계획하는 실무자를 대상으로 합니다. 이 가이드는 프롬프트 엔지니어링, RAG, 에이전트, 미세 조정(fine-tuning)사전 학습(pretraining)과 같은 용어를 포함하여 GenAI 및 대규모 언어 모델(LLM)에 대한 이해를 전제로 합니다. 기본 자료에 대해서는 생성형 AILLM에 대한 자세한 내용을 참조하십시오.

Databricks Mosaic AI 소개

Databricks Mosaic AI는 예측 모델 구축부터 최신 GenAI 및 LLM에 이르기까지 AI 및 ML 솔루션을 구축, 배포 및 모니터링하기 위한 통합 툴링을 제공합니다. Databricks Data Intelligence Platform을 기반으로 구축된 Mosaic AI는 조직이 모든 GenAI 모델을 사용하여 엔터프라이즈 데이터를 AI 수명 주기에 안전하고 비용 효율적으로 통합할 수 있도록 지원합니다. Databricks는 고객이 Meta Llama 3, DBRX 또는 BGE와 같이 Databricks에서 미세 조정(fine-tuned) 또는 사전 배포된 모델이나 Azure OpenAI GPT-4, Anthropic Claude, AWS Bedrock 및 AWS SageMaker와 같은 다른 모든 모델 제공업체의 모델을 배포, 관리, 쿼리 및 모니터링할 수 있도록 합니다. 엔터프라이즈 데이터로 모델을 맞춤 설정하기 위해 Databricks Mosaic AI는 프롬프트 엔지니어링, RAG, 미세 조정(fine-tuning) 및 사전 학습(pretraining)에 이르는 모든 아키텍처 패턴을 제공합니다.

Mosaic AI는 다른 어떤 AI 플랫폼도 따라올 수 없는 GenAI 미세 조정(fine-tuning) 및 사전 학습(pretraining) 기능을 제공합니다. 2024년 6월 현재, Mosaic AI 고객들은 지난 한 해 동안 20만 개 이상의 맞춤형 AI 모델을 구축했습니다. 또한 Databricks는 고객이 직접 사용할 수 있는 사전 학습된 모델을 보유하고 있습니다. 2024년 3월, Databricks는 상업적으로 실행 가능한 라이선스 하에 처음부터 사전 학습된 새로운 최고 성능의 오픈 소스 LLM인 DBRX를 출시했습니다. 2024년 6월, Databricks와 Shutterstock은 또 다른 사전 학습된 모델인 최첨단 텍스트-이미지 모델인 Shutterstock ImageAI, Powered by Databricks를 출시했습니다.

이러한 최고 성능 모델을 구축하는 데 사용된 인프라와 기술은 고객에게 제공되는 인프라 및 기술과 동일합니다. 모든 산업 분야에서 데이터 및 AI 성공 사례를 읽으려면 Databricks 고객 사례를 참조하십시오.

동기: LLM을 미세 조정하거나 맞춤형으로 구축해야 하는 이유는 무엇인가요?

고객은 일반적으로 기존 모델이 품질, 비용 또는 지연 시간에서 심각한 한계를 가질 때 맞춤형 GenAI 모델을 구축하기 시작합니다. 구체적인 내용은 사용 사례마다 다르지만, 다음을 포함합니다.

  • “내 제품의 특수 쿼리 언어를 생성하는 모델이 필요합니다. 모델 API와 Few-shot 프롬프팅을 사용하여 할 수 있지만, 매우 느리고 비용이 많이 듭니다.”
  • “내 RAG 봇은 잘 작동하지만, 처리량이 많은 사용 사례에는 너무 비싼 크고 강력한 모델 API를 사용하고 있습니다. 그렇게 일반적인 모델은 필요 없으므로 작고, 특정 목적에 맞는 저렴한 모델을 미세 조정하고 싶습니다.”
  • “언어 X에 능숙한 오픈 소스 모델을 찾을 수 없어서 X를 이해하도록 맞춤화된 모델을 구축하고 싶습니다.”

가장 유명한 GenAI 모델은 (거의) 모든 것을 수행하도록 만들어진 일반 모델입니다. 인상적이기는 하지만, 이러한 모델은 대부분의 사용 사례에 비해 지나치게 크고 비싸며, 고객의 독점 데이터나 애플리케이션에 대해서는 아무것도 알지 못합니다. 위에서 언급된 모든 예시에서 맞춤형 전문 모델을 구축함으로써 품질이 향상되거나 비용 및 지연 시간이 감소했습니다. 맞춤형 모델은 지적 재산이 되었고 고객 제품에 경쟁 우위를 제공했습니다.

맞춤형 모델 구축에 대한 덜 일반적이지만 더 시급한 동기는 법적 또는 규제적 우려에서 비롯되며, 특히 규제가 더 엄격한 산업에서 그렇습니다. 일부 고객은 모델 학습을 위한 콘텐츠의 불법 사용 혐의와 같은 위험을 관리하기 위해 모델에 대한 완전한 통제를 원하거나 필요로 합니다. 완전히 맞춤형 모델을 사전 학습함으로써 모델이 어떻게 생성되었는지 정확히 알고 증명할 수 있습니다.

그렇다면 어떻게 시작할 수 있을까요? GenAI는 복잡한 연구 분야이지만, GenAI 모델을 맞춤 설정하는 것은 간단하게 시작할 수 있습니다. 기본적인 미세 조정(fine-tuning)부터 복잡한 사전 학습(pretraining)까지 자연스러운 경로가 있으며, Databricks Mosaic AI 플랫폼은 이 전체 워크플로우를 지원합니다. 이 경로를 따라가면서 미래의 더 복잡한 모델 맞춤 설정 유형에 활용될 전문 지식과 데이터를 축적하게 될 것입니다.

원칙: 맞춤형 모델을 미세 조정하거나 구축해야 하는 시기와 방법은 무엇인가요?

맞춤형 모델을 언제, 왜, 어떻게 구축해야 할까요?

상위 수준에서 GenAI 시스템은 두 가지 방식으로 맞춤 설정할 수 있습니다.

  • 복합 AI: 하나 이상의 기존 모델을 기반으로 RAG, 에이전트 및 기타 복합 AI 시스템을 구축할 수 있습니다.
  • 맞춤형 모델: 기존 모델을 맞춤 설정(미세 조정)하거나 완전히 새로운 모델을 구축(사전 학습)할 수 있습니다.

이 두 가지 옵션은 미세 조정된 LLM을 사용하는 RAG와 같이 결합될 수 있습니다. 이러한 조합과 GenAI 개발 속도는 GenAI 애플리케이션의 계획 및 구축을 복잡하게 만들 수 있습니다. 접근 방식을 단순화하기 위해 세 가지 기본 원칙을 권장합니다.

원칙 1: 작게 시작하여 점진적으로 확장하기

모든 GenAI 애플리케이션에 대해 간단하게 시작하고 필요에 따라 복잡성을 추가하는 것을 권장합니다. 이는 기존 모델(예: Databricks Foundation Model API)로 시작하여 간단한 프롬프트 엔지니어링을 수행하는 것을 의미할 수 있습니다. 그런 다음 품질, 비용 및 속도와 관련된 지표를 개선하기 위해 필요에 따라 기술을 추가하십시오.

기술의 “사다리”는 아래에 설명된 내부 및 외부 개발 루프로 나눌 수 있습니다.

외부 루프: 모델 맞춤 설정 사다리

각 단계는 더 높은 품질, 더 낮은 비용 및/또는 더 낮은 지연 시간을 가진 모델을 생성할 잠재력을 가지고 있습니다.

필요한 데이터

개발 시간

개발 비용

기존 모델

기존 모델 또는 모델 API로 시작하고, 먼저 내부 루프를 반복합니다.

없음, 또는 RAG용 데이터

시간

$

지도 미세 조정

특정 작업을 더 잘 처리하도록 모델을 맞춤 설정합니다.

“이런 쿼리를 예상하고, 저런 응답을 반환하세요.”

100개~10,000개 예시

수일

$$

지속적인 사전 학습

도메인을 더 잘 이해하도록 모델을 맞춤 설정합니다.

“이 틈새 애플리케이션 도메인의 언어를 학습하세요.”

수백만~수십억 개의 토큰

수주

$$$

사전 학습

완전한 제어, 맞춤 설정 및 소유권을 갖는 새로운 모델을 만듭니다.

“모든 것을 처음부터 학습하세요!”

수십억~수조 개의 토큰

수개월

$$$$$$

내부 루프: 복합 AI 기술

아래 각 기술은 특정 모델의 생성 품질을 향상시킬 수 있습니다. 이 기술들은 (대략적인) 복잡도 순서로 나열되어 있지만, 혼합하여 사용할 수 있습니다.

프롬프트 엔지니어링

모델 동작을 유도하기 위한 작업별 프롬프트를 구축합니다.

퓨샷 프롬프팅

추론 시 모델을 학습시키기 위해 프롬프트에 데이터를 제공합니다.

RAG

모델에 쿼리별 데이터를 추가 컨텍스트로 제공합니다.

에이전트

호출 가능한 도구 및/또는 복잡한 제어 흐름을 모델에 제공합니다.

외부 루프에서 한 단계 위로 이동하는 것에 비해 내부 루프의 기술을 채택하는 것은 비교적 저렴하고 빠릅니다. 따라서 외부 루프에서 위로 이동할 때마다 내부 루프의 일부 또는 모든 기술을 반복하는 것이 좋습니다. 이 “내부” 대 “외부” 명칭은 시스템 아키텍처에서 예상하는 것과는 반대입니다. 복합 AI의 “내부” 루프는 모델의 “외부” 루프를 감쌉니다. 모델 맞춤 설정을 “외부” 루프라고 부르는 이유는 내부 및 외부 루프의 상대적 비용에 따라 워크플로 측면에서 외부 루프이기 때문입니다.

원칙 2: 데이터 기반 접근

어떤 프로젝트에든 진지하게 투자하기 전에 성공의 척도를 신중하게 정의하고 널리 사용되는 평가 기반 개발 관행을 따르세요.

AI 시스템 수준에서는 품질, 비용, 지연 시간(latency)에 대한 지표를 고려하세요.

  • 품질에는 정확도, 사용자 피드백, 유해성 등 여러 지표가 포함될 수 있습니다.
  • 운영 중인 시스템의 비용은 일반적으로 모델 추론 및 데이터 서비스에 중점을 둡니다.
  • 지연 시간은 종단 간 지연 시간 또는 더 상호작용적인 애플리케이션의 경우 첫 번째 토큰까지의 시간을 의미할 수 있습니다.

성공을 선언하려면 이러한 지표가 어떤 수치를 달성해야 할까요? 좋은 사용자 경험, 긍정적인 투자 수익 또는 기타 비즈니스 요구 사항을 보장하기 위해 이러한 지표에 대해 어떤 엄격한 제약 조건을 가지고 있습니까? 최고 AI 과학자의 강연을 참조하여 더 자세히 논의하세요.

프로젝트 및 비즈니스 수준에서는 투자 수익률을 분석하세요.

  • 비용(투자)은 두 단계로 나눌 수 있습니다.
    • 개발 비용에는 데이터 준비, 모델 학습 및 시스템 개발을 위한 컴퓨팅 및 인력 비용이 포함될 수 있습니다.
    • 지속적인 비용에는 모델 및 데이터 서비스와 유지 보수 인력 시간이 포함될 수 있습니다.
  • 비즈니스 영향(수익)
    • 수익 또는 기타 비즈니스 목표 및 핵심 결과(OKR)는 인력 시간 절약(GenAI 지원 봇의 경우)부터 직접 수익(GenAI 기반 제품의 경우)까지 다양할 수 있습니다.
    • 새로운 모델이나 데이터와 같은 IP 생성은 측정하기 가장 어려운 영향일 수 있지만 장기적으로 가장 큰 영향을 미칠 수 있습니다. 모든 사람이 동일한 모델 제공업체 API를 사용할 수 있지만, 독점 모델과 데이터는 귀하만 사용할 수 있습니다.

데이터 기반 목표는 모델 맞춤 설정(원칙 1)에 대한 선택에 영향을 미칠 것입니다. 예를 들어, 고가의 모델 API를 사용하여 품질 지표는 충족하지만 비용 제약을 초과하는 경우, 품질을 유지하면서 비용을 절감하기 위해 특정 작업에 맞춰진 더 작고 효율적인 모델을 미세 조정하는 방향으로 전환할 수 있습니다. 미세 조정은 추가 개발 비용을 발생시키지만 지속적인 비용을 절감하고 장기적으로 전체 비용을 줄일 것입니다.

원칙 3: 실용성을 유지하세요

GenAI 모델 및 시스템을 평가하는 것은 어렵습니다. 미세 조정 및 사전 학습 기술은 뜨거운 연구 분야입니다. 학계와 산업계의 열기(및 LLM)는 읽을 수 있는 것보다 훨씬 더 많은 콘텐츠를 생성하고 있습니다. 이러한 혼란의 원인으로 인해 어떤 기술을 언제 사용해야 할지 알기 어렵습니다. (“LoRA가 필요한가요? 커리큘럼 학습은 무엇인가요? 어떤 모델 아키텍처가 가장 좋나요?”)

GenAI를 처음 접하는 많은 사람들은 GenAI에 엄청난 양의 데이터를 쏟아부으면 놀라운 것을 학습할 것이라고 들었습니다. 이러한 기대치를 조절하세요. 데이터 양도 중요하지만, 데이터 품질, 학습 기술 및 평가도 중요합니다.

Databricks 고객은 GenAI 맞춤 설정의 단계를 올라가는 과정에서 Mosaic AI에 내장된 지침에 부분적으로 의존할 수 있습니다. 이 지침은 일반 모델을 위한 간단한 API부터 RAG 및 에이전트를 위한 Agent Bricks Custom Agents, 미세 조정을 위한 UI 및 API, 심지어 사전 학습을 위한 가이드 API까지 다양합니다.

하지만 맞춤 설정을 더 많이 할수록 더 많은 기술과 결정을 내려야 합니다. 실용성을 유지하는 것을 권장합니다. 연구에서 효과가 있었던 기술이 실제 애플리케이션에서는 작동하지 않을 수 있습니다. 한 작업에 좋은 모델이 다른 작업에는 좋지 않을 수 있습니다. 최고의 기술은 시간이 지남에 따라 변할 것입니다. 이러한 복잡성을 헤쳐나가려면 원칙 1과 2를 염두에 두세요. 북극성을 정의하고 데이터와 지표를 기반으로 따르세요.

또한 저희와 협력하는 것을 권장합니다. 직속 Databricks 팀 외에도, 저희 전문 서비스 팀은 초기 개념 증명부터 전체 사전 학습 실행까지 안내해 드릴 수 있습니다. 저희 Mosaic Research 팀은 많은 고객과 사전 학습 실행을 위해 협력하여 최첨단 지식과 조언을 제공합니다.

맞춤형 LLM 구축 기술

모델 맞춤 설정의 외부 루프를 오르려는 경우, 원칙 1에서 소개된 기술에 어떻게 접근해야 할까요? 이 섹션에서는 평가에 대해 논의한 다음 주요 맞춤 설정 기술에 대해 자세히 설명합니다.

참고: 이 가이드는 고정된 모델을 반복하는 내부 루프에 중점을 두지 않습니다. 이러한 기술에 대한 자세한 내용은 Generative AI FundamentalsGenerative AI Engineering With Databricks 과정을 참조하세요.

이 섹션에서는 원칙 1의 외부 루프에서 이전에 설명한 사용자 지정 기술을 개발합니다. 여기에 기술을 나열하며, 기술 선택은 주로 사용 가능한 데이터(원칙 2)에 따라 결정된다는 점에 유의하십시오.

외부 루프: 모델 사용자 지정 단계

필요한 데이터 유형

데이터 크기 지침

기존 모델

NA

없음, 또는 RAG용 데이터

지도 미세 조정

질의-응답 데이터 (또는 "레이블이 지정된" 데이터)

최소 수백~수만 개의 예시

계속된 사전 학습

다음 토큰 예측을 위한 "원시" 텍스트

수백만에서 수십억 개의 토큰, 또는 원본 학습 세트의 1% 이상

사전 학습

다음 토큰 예측을 위한 "원시" 텍스트

수십억에서 수조 개의 토큰

다음 섹션에서는 모든 기술에 걸쳐 일관되게 적용되는 지침부터 시작하여 각 기술에 대해 더 자세히 다룹니다.

데이터

데이터는 사용 사례와 일치해야 합니다. 특정 방식으로 응답하도록 모델을 미세 조정하는 경우, 학습 데이터는 "좋은" 응답을 보여주어야 합니다. 특정 도메인을 이해하기 위해 계속된 사전 학습을 수행하는 경우, 데이터는 해당 도메인을 대표해야 합니다.

처음부터 법적 및 라이선스 문제를 해결하세요. 공개 데이터를 사용할 때, 특히 사전 학습을 위해 사용할 때는 일부 공개 데이터셋이 법적 문제를 피하기 위해 잘 관리되어 있지만 그렇지 않은 데이터셋도 있다는 점을 유의해야 합니다. 자체 기업 데이터를 사용할 때는 출처, 특히 데이터가 고객으로부터 왔는지 또는 제한적인 라이선스를 가진 GenAI 모델에서 왔는지 확실히 확인해야 합니다.

데이터를 일찍 그리고 자주 수집하세요. 오늘날 애플리케이션에서 발생하는 질의, 응답 및 사용자 피드백은 미래의 GenAI 모델 튜닝 및 학습을 위한 입력이 될 수 있습니다. 하지만 신중하게 관리해야 합니다. 많은 독점 및 오픈 소스 모델에는 사용 제한이 있으므로 생성된 응답의 출처를 신중하게 추적해야 합니다. 미래의 유연성을 확보하려면 호환되지 않는 라이선스를 가진 모델과 데이터를 혼합하지 말고 오픈 라이선스를 선호하십시오.

합성 데이터를 신중하게 사용하세요. 합성 데이터는 유용할 수 있지만, 실제 기업 데이터는 거의 항상 더 가치가 있습니다. "실제" 데이터는 LLM에게 합성 데이터를 생성하는 방법을 알려주는 데 사용될 수 있으며, 이는 이 가이드의 뒷부분에서 배우게 될 것입니다. 합성 데이터는 여전히 활발한 연구 분야입니다.

모델

기반 모델과 지시/채팅 모델을 구분하세요. 대부분의 주요 LLM 릴리스에는 기반 모델(사전 학습되었지만 미세 조정되지 않음)과 지시를 따르거나 채팅하는 변형 모델(미세 조정됨)이 모두 포함됩니다. 다음 섹션에서 어떤 유형을 사용할지에 대한 권장 사항을 참조하십시오.

Mosaic AI 기능에서 제안하는 모델을 사용하세요. Mosaic Research는 최첨단 모델 아키텍처를 연구하고, 몇 가지 GenAI 모델에 대한 주요 권장 사항을 공유하며, Databricks Model Training 및 기타 기능에서 이러한 주요 모델의 우선순위를 정합니다.

필요에 따라 더 사용자 지정된 코드를 사용하세요. 기본 모델이나 학습 방법이 요구 사항에 맞지 않으면 언제든지 "스택을 내려가" 더 사용자 지정된 코드를 사용할 수 있습니다. Databricks GPU 가속 클러스터(일반 컴퓨팅)와 Databricks Model Training(특수 딥러닝 컴퓨팅)은 GenAI 및 기타 딥러닝 모델을 위한 임의의 학습 코드를 모두 지원합니다.

사용 사례에 유망한 모델을 식별하세요. 튜닝하기 전에 일반 모델이 애플리케이션에 유망한지 검토하십시오. "유망성"은 AI Playground를 사용한 임시 수동 테스트 또는 벤치마크 데이터셋이나 사용자 지정 평가 데이터셋을 사용한 더 엄격한 테스트를 통해 측정될 수 있습니다. 테스트에는 소규모 학습이 필요할 수 있습니다. 미세 조정의 경우, 100개의 작은 예시 세트로 미세 조정한 후 모델이 개선됩니까? 사전 학습의 경우, 특정 데이터셋에 대한 계속된 사전 학습을 통해 모델이 개선됩니까?

제약 조건을 기억하세요. 추론 시 비용 및 지연 시간 제약 조건에 따라 모델 크기를 선택하십시오. 또한 사용자 지정 모델을 구축하는 것은 외부 루프일 뿐이며, 더 간단한 요청을 더 작은 모델로 라우팅하는 것과 같이 내부 루프에서도 비용과 지연 시간을 최적화할 수 있다는 점을 기억하십시오.

팁: 더 간단한 기술에 대한 작업은 낭비되지 않습니다. 이러한 기술은 순서를 이루기 때문입니다. 예를 들어, 모델을 사전 학습한 후에는 일반적으로 지도 미세 조정을 수행합니다.

평가

원칙 2는 지표를 기반으로 데이터 중심적인 접근 방식을 권장합니다. 사용자 지정 모델 구축에 대한 세부 사항을 다루기 전에, 작업에 도움이 될 수 있는 평가 및 품질 관련 지표에 대해 설명하겠습니다.

소프트웨어 엔지니어링과 마찬가지로, 테스트 피라미드를 따르는 것을 권장합니다.

소프트웨어 테스트 비유

속도/비용 vs. 충실도

예시

단위 테스트

빠르고 저렴한 대리 측정

정답/오답 테스트

통합 테스트

중간 속도/비용 테스트

벤치마크 데이터셋에 대한 LLM-as-a-judge 지표

종단 간 테스트

느리지만 현실적인 테스트

사람의 피드백

위 테스트 피라미드의 예시는 일반적인 방식으로 작성되었으며, 모델 테스트(원칙 1의 외부 루프)와 복합 AI 시스템(내부 루프) 테스트 간의 질문을 피합니다. 사용자 지정 모델을 구축할 때는 모델 자체와 이를 사용할 AI 시스템을 모두 테스트해야 합니다. 예를 들어, "LLM-as-a-judge 지표"는 모델의 지시 따르기 능력을 테스트하는 데 사용될 수 있으며, RAG 시스템의 검색 지표 및 질문-답변 지표를 테스트하는 데도 사용될 수 있습니다.

특정 모델 vs. 일반 모델 및 작업

특정 작업을 위해 모델을 미세 조정할 때와 범용 모델을 사전 학습할 때의 테스트 피라미드는 매우 다르게 보일 것입니다. 데이터 및 지표 중심적이라는 것은 모델의 하위 사용 사례에 맞게 테스트 피라미드를 조정하는 것을 의미합니다.

특정 작업을 위해 모델을 미세 조정하는 경우, 작게 시작하는 것을 기억하십시오(원칙 1). 예를 들어 다음과 같이 할 수 있습니다.

  • 평가를 위한 "골든" 질의-응답 데이터셋을 구축합니다. 잠재적인 질의와 주제에 걸쳐 균형을 이루도록 합니다.
  • LLM-as-a-judge 지표를 사용하여 평가를 확장합니다. 특정 작업에 맞는 지표를 선택하거나 사용자 지정합니다.
  • 최종 테스트로 사람 또는 사용자 평가를 사용합니다.

계속된 사전 학습 또는 전체 사전 학습을 시작하면 평가가 더 복잡해질 수 있습니다. 테스트 피라미드를 계획할 때, 모델에 필요하다고 생각하는 다양한 기술 세트에 따라 평가를 세분화하여 중요한 영역에 집중할 수 있도록 하십시오. 이는 다음을 의미할 수 있습니다.

  • 기술(예: 일반 지식, 논리 또는 독해력)
  • 도메인(예: 금융, 법률 또는 의료)
  • 언어(자연어 또는 프로그래밍 언어 포함)
  • 기타 차원(컨텍스트 길이부터 내장된 가드레일까지)

팁:

  • 사용 사례에 맞게 평가를 조정하세요. 예를 들어, 더 긴 컨텍스트 길이를 처리하도록 모델을 수정하는 경우, 지속적인 사전 학습(continued pretraining)의 혼란도(perplexity) 지표만으로는 충분하지 않다는 점을 기억하세요. 평가 데이터셋에는 긴 컨텍스트 작업도 포함되어야 합니다.
  • 학습과 망각을 모두 테스트하세요. 특정 언어(예: 말레이어)에 대한 모델의 이해도를 높이기 위해 지속적인 사전 학습을 수행하는 경우, 사용 사례에서 해당 모델이 기존 언어(예: 영어)에 대한 이해도를 유지해야 하는지 고려하세요. 그렇다면 평가에서는 말레이어 영어 모두를 테스트해야 합니다.
  • 고객이 실제로 사용할 것을 테스트하세요. 새로운 (기반) 모델을 사전 학습하는 경우, 고객이 실제로 사용할 모델 버전을 만들기 위해 명령어 미세 조정(instruction fine-tuning)을 수행할 가능성이 높습니다. 최종 (종단 간) 평가는 기반 모델이 아닌 미세 조정된 모델에서 이루어져야 합니다.

DBRX 구축 사례

2024년 5월, Databricks는 DBRX를 출시했습니다. DBRX는 당시 최첨단 오픈 소스 LLM이었습니다. DBRX의 평가 스위트는 아래에 설명된 테스트 피라미드의 좋은 예시를 제공합니다.

소프트웨어 테스트 비유

DBRX 구축 사례의 지표

단위 테스트

Mosaic Evaluation Gauntlet

언어 이해, 독해, 상징적 문제 해결, 세계 지식, 상식 및 프로그래밍의 6가지 핵심 역량으로 나뉜 39개의 공개 벤치마크

통합 테스트

MT-Bench

다중 턴 대화 및 명령어 따르기 벤치마크 데이터

IFEval

명령어 따르기 벤치마크 데이터

Arena Hard

Chatbot Arena–기반의 인간 선호도 벤치마크 데이터 생성기

종단 간 테스트

내부 및 고객 피드백, A/B 테스트

A/B 테스트 지표와 사람의 주석을 모두 수집하기 위한 내부 및 외부 사용자와의 반복적인 테스트

레드 팀 테스트

바람직하지 않은 출력(공격적, 편향적 또는 기타 안전하지 않은)을 생성하기 위한 전문가 테스트

평가 지표에 대한 더 자세한 내용은 다음 Generative AI Engineering 과정을 추천합니다. 도구로는 자동화된 (LLM-as-a-judge) 지표, 평가 데이터셋 및 인간 평가 앱을 지원하는 Databricks MLflow를 추천합니다. 에이전트 평가는 오픈 소스 MLflow APIs for LLM evaluation을 사용합니다. 사전 학습을 위한 더 복잡한 평가를 위해서는 맞춤형 평가 계획을 개발하는 데 도움을 드릴 수 있습니다.

지도 미세 조정

대부분의 실무자가 사용하는 모델 사용자 정의의 첫 번째 기술은 지도 미세 조정(SFT)으로, 특정 작업이나 동작에 최적화하기 위해 레이블이 지정된 데이터로 모델을 훈련하는 것입니다.

일반적인 사용 사례는 다음과 같습니다.

  • 개체명 인식: 도메인별 개체를 인식하도록 모델을 미세 조정합니다
  • 채팅 완성 및 질문 답변: 특정 어조로 응답하도록 모델을 미세 조정합니다
  • 출력 형식 지정: 특정 구조화된 출력으로 응답하도록 모델을 미세 조정합니다
  • 명령어 따르기: 일반 모델을 사전 학습한 후, 단순히 완성 텍스트를 생성하는 대신 명령어와 쿼리에 응답하도록 모델을 가르치기 위해 명령어 미세 조정을 사용하는 것이 일반적입니다

용어: "미세 조정(Fine-tuning)"은 종종 "지도 미세 조정(supervised fine-tuning)"을 의미하는 데 사용되지만, 기술적으로 "미세 조정"은 기존 모델의 모든 적응을 말합니다. 지속적인 사전 학습(continued pretraining)과 인간 피드백을 통한 강화 학습(RLHF)도 미세 조정의 한 유형입니다.

미세 조정은 단연코 가장 빠르고 저렴한 모델 사용자 정의 유형입니다. 예를 들어, 2023년 5월에 출시된 MPT-7B 모델의 경우, 명령어 미세 조정은 960만 토큰을 처리하는 데 46달러가 들었지만, 사전 학습은 1조 토큰을 처리하는 데 250,800달러가 들었습니다.

데이터

데이터를 준비할 때, 콘텐츠와 형식이 핵심입니다. 미세 조정의 큰 부분은 모델에게 어떤 입력을 기대하고 어떤 출력을 기대하는지 가르치는 것입니다. 형식, 어조, 주제 범위 또는 기타 측면에서 사용자 쿼리가 어떻게 보일 것으로 예상하십니까? 훈련 데이터는 이러한 기대를 나타내야 합니다.

데이터 크기는 흔한 질문 주제이며 궁극적으로 사용 사례에 따라 달라집니다. 어떤 경우에는 수백 또는 수천 개의 작은 데이터셋으로 미세 조정을 통해 좋은 결과를 얻었지만, 일부 애플리케이션은 수만 또는 수십만 개의 예시를 요구합니다. 계획을 검증하기 위해 작게 시작한 다음, 필요한 경우 훈련 데이터셋을 구축하면서 반복적으로 확장하세요.

합성 데이터는 SFT에 유용할 수 있으며, 가장 일반적으로 너무 작은 "실제" 데이터 세트를 확장하는 데 사용됩니다. LLM은 실제 데이터의 예시와 유사한 합성 SFT 데이터를 생성하도록 프롬프트될 수 있습니다.

또한 Databricks Model Training을 위한 데이터 준비 문서를 참조하세요.

모델

이 가이드의 앞부분에서 우리는 기본적으로 Databricks Model Training에서 지원하는 모델을 사용하고 사용 사례에 대한 모델의 가능성을 테스트할 것을 권장했습니다. MPT에서 좋은 예시가 나왔습니다. MPT는 일본어를 염두에 두고 훈련되지 않았지만, 100개의 일본어 프롬프트-응답 예시로 빠른 미세 조정 테스트를 수행한 결과 고객에게 놀랍도록 효과적인 모델이 탄생했습니다. 이 빠른 테스트는 접근 방식을 검증하고 대규모 미세 조정을 위한 길을 열었습니다.

모델 크기를 선택할 때, 더 큰 모델로 시작하는 것을 고려하세요. 작은 데이터셋으로 튜닝할 때, 더 큰 모델이 작은 모델보다 좋은 결과를 낼 가능성이 높습니다. 큰 모델로 시작하면 데이터와 사용 사례의 잠재력을 파악할 수 있으며, SFT는 비교적 저렴합니다. 잠재력을 확인한 후에는 더 작은 모델과 더 많은 데이터로 테스트할 수 있습니다.

모델의 기본(base) 또는 명령어/채팅(instruct/chat) 변형 중 하나에서 SFT를 실행할 수 있습니다. 기본적으로, 특히 데이터셋이 작은 경우 명령어/채팅 변형을 사용하는 것을 권장합니다. 사용자 지정 기본 모델을 만들기 위해 지속적인 사전 학습을 실행했다면, 사용자 지정 기본 모델에서 SFT를 실행할 수 있습니다.

Databricks Model Training

Databricks Model Training은 지도 미세 조정 작업을 위한 간단한 인터페이스(UIAPI)를 제공합니다. 이 가이드에서 이미 제시된 데이터 및 모델에 대한 팁 외에 다음을 고려하세요.

  • 작업: SFT 작업은 예상 쿼리 형식에 따라 다양한 방식으로 지정될 수 있습니다. 일반적인 표준에 맞추기 위해 명령어 따르기 작업에서도 기본적으로 채팅 완성 형식을 권장합니다.
  • 구성: 반복할 때 최적화할 첫 번째 하이퍼파라미터는 학습률입니다. 전통적인 머신러닝(ML) 알고리즘에서 학습률을 조정하는 것과 유사하게, 다양한 학습률 그리드를 시도한 다음 최적의 초기 학습률을 중심으로 더 세분화된 학습률 그리드로 범위를 좁혀보세요. 학습 진행 상황 플롯을 기반으로 훈련 기간(에포크 또는 토큰)을 조정하는 것도 고려해 보세요. 일부 미세 조정 작업은 적은 에포크로도 가능하며, 일부는 50개 이상의 에포크에서 이점을 얻습니다.
  • 평가: 평가 데이터셋 지정하여 Databricks Model Training이 초기 평가(“단위 테스트”)를 수행하도록 하세요. 50개의 질의-응답 쌍으로 구성된 작은 데이터셋으로도 신호를 얻을 수 있지만, 더 크고 다양한 데이터셋이 더 좋습니다. 특히 훈련 시 평가 손실(또는 정확도)이 최종 사용자 평가와 잘 상관관계가 없을 수 있으므로, 더 철저한 평가를 위해 Databricks MLflow를 사용하세요.

지도 미세 조정에 대한 추가 정보

기본적으로 간단하고 효율적인 워크플로우를 위해 Databricks Model Training을 권장합니다. 하지만 지원되지 않는 모델 아키텍처를 사용해야 하거나 더 맞춤화된 튜닝 방법이 필요한 경우, Databricks GPU 가속 클러스터 (일반 컴퓨팅) 및 Databricks Model Training에서 완전히 사용자 지정 코드를 실행할 수 있습니다.

이 가이드에서는 미세 조정 및 추론을 더 효율적으로 만드는 저랭크 적응(LoRA)과 같은 기술군인 PEFT(Parameter-Efficient Fine-Tuning)에 대해 자세히 다루지 않습니다. 이러한 기술에 대한 설명과 예시는 이 블로그, 이 블로그 또는 Hugging Face PEFT를 참조하세요.

계속된 사전 훈련

지도 미세 조정(SFT)은 모델이 새로운 도메인을 이해하도록 가르치기 위해 설계되지 않았습니다. 새로운 언어, 특정 산업 또는 기타 특정 영역을 이해하도록 모델을 맞춤화하려면, 실무자들은 계속된 사전 훈련(CPT)을 사용할 수 있습니다. CPT는 기존의 사전 훈련된 모델을 가져와 새로운 데이터를 사용하여 사전 훈련 프로세스를 계속한다는 점을 제외하고는 사전 훈련과 유사합니다. 새로운 도메인에 적응하기 위한 CPT 후, 모델은 일반적으로 지도 미세 조정을 통해 특정 작업에 맞게 조정됩니다.

일반적인 사용 사례는 다음과 같습니다:

  • 언어: 일반 모델은 훈련 데이터에서 많은 자연어를 접했지만, 주요 언어를 제외하고는 약할 수 있습니다. CPT는 특정 언어에 대한 모델의 이해도를 높일 수 있습니다.
  • 프로그래밍: 일반 모델은 훈련 데이터에서 적어도 몇 가지 프로그래밍 언어를 접했지만, 모델이 코딩을 위해 주로 설계되지 않았거나 특정 프로그래밍 언어를 잘 이해하지 못할 수 있습니다. CPT는 모델에게 특정 프로그래밍 언어로 코딩하는 방법을 가르칠 수 있습니다.
  • 산업 도메인: 일반 모델은 분자 생물학, 환경법 또는 금융 규제와 같은 특정 주제 영역에 대한 심층적인 지식이 없을 수 있습니다. CPT는 특정 도메인에 대한 모델의 지식과 이해도를 높일 수 있습니다.

RAG Q&A 봇의 지시 따르기 모델을 개선하려면 지도 미세 조정(SFT) 또는 계속된 사전 훈련(CPT)을 사용해야 할까요?

두 기술 모두 적용 가능하지만, 보유한 훈련 데이터와 모델에서 개선하고자 하는 사항에 따라 달라집니다. 모델이 특정 방식으로 응답하도록 가르치고 싶다면, 훈련을 위한 질의-응답 데이터가 있을 경우 SFT를 사용하세요. 모델이 도메인이나 언어를 이해하지 못한다면, 훈련을 위한 상당한 양의 텍스트 데이터가 있을 경우 CPT를 사용하세요. CPT 후에는 모델이 질의에 응답하는 방법을 다시 가르치기 위해 SFT를 실행해야 할 가능성이 높다는 점을 명심하세요.

SFT 또는 CPT를 사용하여 모델에 새로운 지식과 사실을 가르칠 수 있나요?

네, 두 기술 모두 어느 정도 지식을 전달할 수 있지만, CPT가 더 적합합니다. 그럼에도 불구하고, 원본 데이터로 답변을 근거하여 AI 시스템을 견고하게 만들려면 RAG를 사용해야 할 수도 있습니다.

데이터

CPT에 필요한 데이터를 고려할 때, 원칙 2(“데이터 기반”)를 기억하세요. 원본 모델에서 무엇을 개선하고 싶으신가요? 데이터는 모델에 주입하고자 하는 도메인, 언어, 지식 등을 나타내야 합니다. 특정 사용 사례의 경우, 이는 해당 사용 사례와 관련된 독점적인 기업 데이터(내부 지식 기반 문서, 지난 20년간의 관련 연구 논문 등)에 대한 CPT 실행으로 이어질 가능성이 높습니다. 더 일반적인 모델의 경우, 데이터에 대한 저희의 지침은 사전 훈련과 더 유사해지며, 사용 사례에 중요한 다양한 기술 세트를 나타내기 위해 여러 데이터셋을 선택할 수 있습니다.

팁: 망각 대 학습. CPT를 테스트할 때, 과거 지식을 잊는 것과 새로운 지식을 학습하는 것 사이에는 상충 관계가 있다는 점을 명심하세요. 목표는 모델 동작을 CPT 훈련 데이터를 모방하도록 전환하는 것이지만, 이는 원래 사전 훈련 데이터의 측면을 잊어버리는 것을 의미할 수 있습니다. 따라서 CPT 훈련 데이터와 평가 스위트 모두 관심 있는 도메인을 다루는지 확인하세요.

데이터 형식의 경우, 데이터는 “원시” 텍스트가 됩니다. 즉, 사전 훈련과 마찬가지로 다음 토큰 예측을 수행하는 CPT를 실행하게 됩니다.

데이터 크기의 경우, CPT는 적은 토큰을 사용하여 모델을 미세 조정하는 것부터 많은 토큰을 사용하여 모델을 크게 변경하는 것까지 다양하게 적용될 수 있습니다. “적은” 토큰과 “많은” 토큰은 모델 크기에 따라 달라지지만, 현대의 중간 규모 LLM의 경우 수십억 개의 토큰이 합리적인 추정치입니다. 일반적인 규칙은 CPT가 원래 훈련 세트 크기의 최소 ~1%를 필요로 한다는 것입니다.

CPT를 위한 원시 데이터와 SFT를 위한 프롬프트-응답 데이터가 모두 필요한가요?

CPT 다음에 SFT를 실행하는 경우, 네 그렇습니다. 하지만 CPT를 위한 데이터는 있지만 SFT를 위한 데이터가 거의 없다면, 다른 SFT 데이터셋이나 합성 데이터를 사용하여 작은 SFT 데이터셋을 질의-응답 데이터로 보강할 수 있습니다.

합성 데이터는 CPT에 유용할 수 있으며, 특히 대규모의 강력한 모델이 더 작은 모델을 훈련하기 위한 데이터를 생성하는 증류(distillation)에 유용합니다. 증류는 더 작고, 빠르며, 저렴한 모델을 만드는 데 도움이 될 수 있으며, 사용 사례에 특화된 비합성 데이터를 보완할 수 있습니다.

또한 Databricks Model Training을 위한 데이터 준비에 대한 문서를 참조하세요.

모델

SFT와 마찬가지로, 기본적으로 Databricks Model Training에서 지원하는 모델을 사용하고 사용 사례에 대한 가능성을 테스트할 것을 권장합니다.

기본 모델과 지시/채팅 변형 모델 튜닝에 대한 권장 사항, 그리고 CPT 후 SFT 실행에 대한 권장 사항은 서로 얽혀 있습니다. 가장 일반적인 경로이자 저희의 기본 권장 사항은 기본 모델에 CPT를 실행한 다음, 지시 또는 채팅 미세 조정을 위해 SFT를 실행하는 것입니다. 하지만 몇 가지 미묘한 차이가 있습니다:

  • 기본 모델 대 지시/채팅 변형 모델: 기본 모델에 CPT를 실행하는 것이 가장 일반적입니다. 지시 또는 채팅 변형 모델에 대규모 데이터셋으로 CPT를 실행하면 해당 모델이 일부 지시 따르기 또는 채팅 능력을 잃을 수 있습니다.
  • CPT 후 SFT: 많은 양의 데이터로 CPT를 실행하는 경우, 이어서 SFT를 실행할 가능성이 높습니다. 하지만 적은 양의 데이터를 사용하여 지시 따르기 또는 채팅 모델에 CPT를 실행하는 경우, 나중에 SFT가 필요하지 않을 수도 있습니다. 일부 고객은 이렇게 한 다음 결과 모델을 애플리케이션에서 직접 사용하는 것을 보았습니다.

Databricks Model Training

Databricks Model Training은 CPT를 위한 간단한 인터페이스(UIAPI)를 제공합니다. 이 가이드에서 앞서 언급된 SFT 팁은 대부분 CPT에도 적용됩니다. 편리하게도, Model Training 기능은 CPT와 SFT를 모두 실행하는 데 사용될 수 있습니다.

CPT가 SFT보다 모델을 더 근본적으로 변경할 수 있으므로, 이전 평가 논의에서 다룬 테스트 피라미드는 더 강력하고 일반적인 테스트가 필요할 것입니다. CPT를 확장함에 따라 테스트 피라미드는 사전 훈련 테스트 스위트와 더 유사해질 수 있습니다.

CPT에 대한 추가 정보

CPT 워크로드가 더욱 맞춤화되고 커짐에 따라, 아래에서 논의할 사전 훈련 스택을 탐색해 볼 수도 있습니다.

CPT는 사전 훈련을 위한 데이터를 테스트하는 데 유용합니다. CPT 데이터가 새로운 도메인(예: 새로운 코딩 언어)을 다루는 경우, CPT를 통해 성공을 보여주는 것은 해당 데이터가 사전 훈련 데이터셋의 일부로 유용할 수 있음을 나타냅니다.

사전 훈련

GenAI 애플리케이션이 지속적인 사전 훈련을 통해 발전했고, 완전히 맞춤형 모델을 사전 훈련하는 것이 애플리케이션 개선에 필요한 다음 단계라고 생각한다고 가정해 봅시다. 이 섹션에서는 프로세스와 모범 사례를 개략적으로 설명하지만, 실제로는 Databricks 팀과 함께 사전 훈련 프로세스를 진행해야 합니다.

사전 훈련으로 바로 넘어가야 할까요?

아니요. 규제 또는 기타 제약으로 인해 완전히 소유하는 새 모델을 만들어야 하는 경우에도, 먼저 맞춤화 단계의 낮은 수준에서 프로토타입을 만드는 것이 좋습니다. 이를 통해 더 비용이 많이 들고 복잡한 사전 훈련 실행의 위험을 줄일 수 있습니다.

사전 훈련 단계는 무엇인가요?

사전 훈련은 반복적이고 적응적인 프로세스이지만, 높은 수준의 일반적인 사전 훈련 단계는 다음과 같습니다.

  1. 먼저 미세 조정 및 지속적인 사전 훈련을 통해 진행합니다. 실사를 수행하세요!
  2. 데이터셋을 준비합니다. 이는 1단계에서 CPT가 특정 데이터셋의 유용성을 테스트하는 데 도움이 되는 과정에서 이루어집니다.
  3. 텍스트 완성을 수행할 수 있는 기본 모델을 사전 훈련합니다. 여기에는 훈련 모니터링, 실행 과정에서 조정, 그리고 커리큘럼 학습과 같은 적응형 기술을 사용하여 데이터 혼합을 조정하는 것이 포함됩니다.
  4. 지시 또는 채팅 미세 조정을 실행하여 지시/채팅 변형을 만듭니다.
  5. 인간 피드백 기반 강화 학습(RLHF)과 같은 기술을 사용하여 모델을 추가로 조정할 수도 있습니다.
  6. 위 모든 단계에서 모델을 지속적으로 평가합니다.

이 간략한 절차 요약은 완전한 사전 훈련의 상대적으로 높은 비용 때문에 실사와 평가를 강조합니다. 이전에 언급된 MPT-7B 모델의 예를 상기해 보세요. 이 모델의 사전 훈련 비용은 지시 미세 조정보다 5452배 더 많이 들었습니다.

데이터

데이터 선택과 처리는 사전 훈련 실행의 성공을 결정하는 데 큰 역할을 할 것입니다.

어떤 데이터인가요?

대상 애플리케이션을 대표하도록 데이터 혼합을 신중하게 선택해야 합니다.

  • 평가가 모델이 갖추기를 원하는 기술 세트별로 분류되어야 하는 것처럼, 사전 훈련에 가져오는 각 데이터셋이 모델에 무엇을 가르칠지 고려해야 합니다. 지속적인 사전 훈련을 사용하여 이러한 데이터셋의 영향을 미리 테스트할 수 있습니다.
  • 최고 성능 모델 중 데이터 혼합에 대한 세부 정보를 공개하는 경우는 거의 없습니다. 일부 오래된 모델은 공개된 목록을 가지고 있습니다(예: MPT, LLaMA, OLMo). 이 데이터 혼합 논의도 참조하세요.
  • 공개 데이터셋과 독점 데이터셋을 혼합하여 사용할 가능성이 높습니다. 적절하게 검증된 공개 데이터셋은 언어 능력, 일반 지식 및 일부 특정 기술 세트를 가르치는 것과 같은 훈련 요구 사항의 일부를 충족할 수 있습니다. 독점 데이터셋은 다른 누구도 가질 수 없는 경쟁 우위를 모델에 제공합니다.

데이터 양 품질은 중요하지만, 시기에 따라 다릅니다. 품질 관리가 덜 엄격한 "모든 데이터"로 사전 훈련을 시작하는 것이 일반적입니다. 초기에는 더 많은 토큰이 기본적인 언어 능력 학습으로 이어집니다. 그러나 나중에 사전 훈련 중에는 데이터 혼합을 더 작고 고품질의 세트로 변경하는 것이 일반적입니다. "고품질"은 학술적인 정의는 없지만, 직관적으로 상식적인 기술을 사용하여 큐레이션된 것을 의미합니다. 데이터 준비에 대한 자세한 내용은 다음을 참조하세요.

데이터는 얼마나 필요한가요?

  • 데이터 크기는 모델 크기와 아키텍처를 고려하여 선택해야 합니다.
    • "Chinchilla" 경험 법칙은 가장 유명한 규칙입니다: # 토큰 = 20 * # 매개변수. 추론 비용을 낮추기 위해, 이 LLaMA 논문의 결과에 따라 더 많은 데이터로 더 작은 모델을 훈련하여 유사한 생성 품질을 달성하는 것을 권장합니다.
    • MoEs(Mixture of experts) 아키텍처는 이 계산을 변경할 수 있으며, 종종 주어진 모델 크기에 대해 더 적은 데이터를 요구합니다. MoEs의 경우, 이 계산을 위해 활성 매개변수 수(총 매개변수 아님)를 사용하세요.
  • 일부 작업은 다른 작업보다 어렵다는 점을 명심하세요. 예를 들어, 7B 매개변수 모델은 HumanEval 코딩 벤치마크를 해결하기 위해 일반적으로 최소 2조 개의 훈련 데이터 토큰을 필요로 합니다.

데이터는 어떻게 준비해야 하나요?

  • 다운로드 및 파싱: 일반적으로 데이터를 직접 확보해야 합니다. 인터넷 규모의 데이터를 미리 다운로드하여 제공하는 공급자는 거의 없으며, 규제 요구 사항은 고객마다 다를 수 있습니다.
  • 클리닝: 사전 훈련은 대량의 저품질 데이터를 활용할 수 있지만, 데이터 품질을 개선하는 것이 가치 있습니다. 예를 들어, 이 RefinedWeb 논문은 Common Crawl의 약 11%가 유용하다고 추정합니다. 사전 훈련을 위한 데이터 클리닝은 활발한 연구가 진행 중인 크고 복잡한 주제입니다. 다음을 포함한 일반적인 단계에 대한 훌륭한 조사는 이 논문을 참조하세요.
    • 언어 필터링: 관심 있는 주요 언어로 텍스트를 줄입니다.
    • 휴리스틱 필터링: 상용구 텍스트, 너무 짧거나 긴 문서, 비자연어 텍스트 등을 제거합니다.
    • 품질 필터링: 사람이 작성했거나 검토했을 가능성이 더 높은 텍스트를 식별합니다.
    • 도메인 필터링: 관심 있는 도메인에 대한 텍스트를 식별합니다.
    • 데이터셋 내 또는 데이터셋 간 콘텐츠 중복 제거
    • 출처 또는 텍스트를 기반으로 유해하고 노골적인 콘텐츠 필터링
    • 이러한 모든 기술에는 주의 사항이 따릅니다. 각 기술에 대해 정밀도와 재현율을 절충하기 위해 필터 엄격도를 조정해야 합니다. 일부의 경우 필터가 잘못될 수 있습니다. 중복은 텍스트가 더 유효하거나 중요함을 나타낼 수 있으며, 유해한 콘텐츠를 본 적이 없는 모델은 유해성을 인식하지 못하여 유해한 사용자 입력을 쉽게 반복할 수 있습니다.
    • 앞서 언급했듯이, 초기 사전 훈련은 품질 관리가 덜 엄격한 더 많은 데이터를 사용할 수 있지만, 나중의 사전 훈련은 더 신중하게 클리닝된 데이터 하위 집합에 초점을 맞출 수 있습니다.
  • 사전 계산: 사전 훈련을 위한 데이터 형식을 최적화하기 위해 데이터를 사전 토큰화하고 연결하면 효율성을 향상시킬 수 있습니다.

데이터 처리는 Databricks의 원래 강점입니다. 다음을 활용하세요.

모델

연구자들이 새로운 모델 아키텍처를 훌륭한 혁신으로 자연스럽게 선전하지만, 2017년부터 존재했음에도 불구하고 트랜스포머 아키텍처가 여전히 지배적인 이유가 있습니다. 정말 잘 작동하기 때문입니다. 마찬가지로, 일반적으로 다음과 같은 검증된 아키텍처 선택을 고수하는 것을 권장합니다.

  • 연구에서 덜 검증된 방법보다는 쿼드라틱 어텐션 또는 FlashAttention-2와 같은 표준 어텐션 메커니즘을 사용하세요.
  • 더 효율적인 학습 및 추론, 그리고 낮은 정밀도 연산을 위해 MoEs(Mixture of Experts) 아키텍처를 고려하세요.
  • 다음 토큰 예측을 사용하여 트랜스포머를 학습시키세요.

Databricks는 임의의 아키텍처에 대한 사전 학습을 지원하지만, Databricks Model Training을 통해 가장 권장되는 아키텍처를 위한 더 간단한 사전 학습 설정을 제공합니다. 이는 Mosaic LLM FoundryMosaic Diffusion과 같은 도구의 관리되고 최적화된 버전을 제공합니다. 이 도구는 표준적이고 잘 테스트된 기본값을 제공하여 선택을 단순화할 수 있습니다. 예를 들어, 2024년 7월 현재 LLM Foundry는 FlashAttention-2를 표준 어텐션 메커니즘으로 권장하며, DBRX와 같은 MoEs 아키텍처를 지원합니다. 특정 애플리케이션에 대해서는 아키텍처 세부 사항에 대해 조언해 드릴 수 있습니다.

모델 크기에 관해서는 작게 시작하는 것을 기억하세요( 원칙 1). 70억 매개변수 모델을 학습하는 데는 700억 매개변수 모델보다 약 10배 적은 비용이 들며, 이는 규모를 확장할 때 모델링 선택에 도움이 될 수 있습니다. 또한, 잠재적인 모델 크기에 대한 상한선으로 사용 사례의 지연 시간 및 비용 제약을 고려하세요.

학습 스택 및 인프라

데이터 및 모델링 선택을 준비했다면 이제 사전 학습을 시작할 준비가 되었을 수 있습니다. 이는 GenAI를 사용하는 데 있어 가장 비용이 많이 드는 단계일 수 있으므로, 이전 단계에서 신중한 준비가 필요합니다. 이 단계에서는 사전 학습이 원활하게 진행되도록 강력한 도구와 전문가의 조언을 활용하는 것이 중요합니다.

사전 학습 실행에는 많은 어려움이 따릅니다. Databricks Mosaic AI 플랫폼은 이러한 어려움 중 다수를 사용자에게 자동으로 처리해 줍니다.

과제

Mosaic AI

데이터 로딩: 수조 개의 토큰을 로드해야 할 수도 있습니다.

Mosaic AI는 빠른 시작 및 복구 시간을 제공합니다.

스케일링 및 최적화: 수십 개에서 수천 개의 GPU로 확장해야 할 수도 있습니다. 학습 성능을 최적화하는 데는 매우 많은 기술이 있습니다.

Mosaic AI는 데이터 병렬 처리 및 FSDP를 통한 원활한 스케일 아웃과 구성 가능한 최적화 라이브러리를 제공합니다. 최고 수준의 모델 FLOPS 활용(MFU)을 달성합니다.

장애 복구: 대부분의 클라우드에서 1000 GPU-일당 약 1회의 인프라 장애를 예상할 수 있습니다. 사전 학습 작업에서 손실 급증 또는 발산을 볼 수 있습니다.

Mosaic AI는 자동으로 장애를 감지하고 빠른 재시작을 수행합니다. 학습 스택은 또한 손실 급증을 줄입니다.

결정론: 분산 데이터 로딩 및 학습은 결정론을 어렵게 만들지만, 복구 및 재현성에 중요합니다.

Mosaic AI 데이터 로딩 및 학습 알고리즘은 사전 학습을 훨씬 더 재현 가능하게 만듭니다.

Mosaic AI Training 스택은 하드웨어부터 워크로드 관리까지 아우릅니다. 다음 표는 먼저 알아야 할 주요 구성 요소를 나열합니다.

단계

Mosaic AI 구성 요소

세부 정보

데이터 로딩

StreamingDataset

빠른 시작 및 재시작을 포함하여 클라우드 스토리지에서 학습 데이터를 빠르고 재현 가능하게 스트리밍합니다.

학습

Composer

효율적인 분산 학습을 위한 구성 가능한 모범 사례 및 기술을 제공합니다.

워크플로 구성

LLM Foundry

데이터 준비, 학습, 미세 조정 및 평가를 포함한 워크플로를 간단하게 정의할 수 있습니다. Databricks는 일반적인 아키텍처 사전 학습을 시작하는 데 도움이 되는 표준 구성을 제공할 수 있습니다.

실험 추적

MLflow

사전 학습 실행 중 평가 및 기타 지표를 추적합니다. Mosaic AI는 Weights & Biases도 지원합니다.

사용 사례가 LLM Foundry가 제시하는 구성 “레시피”와 같이 잘 알려진 경로를 따를 경우, 워크플로는 구성 중심적일 수 있습니다. 또는 더 많은 사용자 지정 아키텍처나 코드가 필요한 경우, MCLI와 같은 스택의 하위 수준 부분에 집중하여 Mosaic AI 인프라와 더 직접적으로 작업할 수 있습니다.

계산 및 비용

모델을 사전 학습하기 전에 비용을 추정하는 것이 중요합니다. 사전 학습 컴퓨팅 비용은 데이터 및 모델 크기를 기반으로 GPU 시간을 추정하는 것으로 귀결되므로 추정하기 쉬운 경우가 많습니다. Databricks 팀은 정확한 추정치를 제공할 수 있지만, 어떤 공급업체든 두 가지 주요 계산을 이해해야 합니다.

FLOPS = 6 x parameters x tokens

이 경험 법칙은 컴퓨팅(및 비용)이 모델 크기 및 데이터 크기에 따라 선형적으로 확장된다는 것을 알려줍니다. MoEs와 같은 희소 아키텍처의 경우 “매개변수”는 “활성 매개변수”로 해석됩니다.

모델 FLOPS 활용(MFU) = 실제 평균 GPU 활용률

MFU는 실제로는 결코 100%가 아니며, 종종 훨씬 낮습니다. 다른 모델과 데이터 유형은 다른 MFU를 달성할 수 있습니다. Mosaic AI 스택은 최고 성능의 MFU를 달성하도록 최적화되어 있습니다.

에포크는 어떻습니까?

N 에포크 동안 학습하는 데는 1 에포크 학습 비용의 N배가 듭니다. 그러나 사전 학습의 경우, 학습에서 일부 핵심 고품질 데이터를 반복할 수 있지만 단일 에포크를 사용하는 것이 일반적입니다. 이는 더 전통적인 딥러닝에서 사용되는 많은 에포크와는 다릅니다. 이 논문에서 더 자세한 배경 정보를 확인하세요.

사전 학습 컴퓨팅 비용 외에도 다음 사항에 대한 추정치를 작성하세요.

  • 구매, 큐레이션 및 레이블링을 포함한 데이터 비용
  • 추론 비용

사전 학습 중

사전 학습을 시작하면 Databricks에서 "그냥 작동"할 수도 있지만, 학습을 모니터링하고 디버깅하거나 학습을 개선하는 방법을 아는 것이 여전히 중요합니다. Databricks 팀이 문제 모니터링 및 디버깅을 지원할 수 있습니다.

모니터링은 두 가지 주요 영역을 포함합니다.

  • 인프라: Mosaic AI Training은 대부분의 인프라 문제를 자동으로 처리합니다. 예를 들어, GPU, 네트워킹 또는 기타 인프라에 장애가 발생하면 자동으로 체크포인트를 설정하고 학습을 재개합니다. 그러나 특히 비표준 구성을 사용할 때는 활용률을 모니터링하는 것이 중요합니다.
  • 학습 진행 상황: 데이터 및 구성 문제를 확인하기 위해 학습 및 평가 데이터의 손실 및 기타 지표를 모니터링해야 합니다. 가장 흔하게 나타나는 증상은 손실 급증(loss spikes)과 발산(divergence)입니다. Mosaic AI Training에서는 실시간 모니터링 및 사후 검토를 위해 기본적으로 MLflow Experiments에 로깅하는 것을 권장합니다.

디버깅은 주로 다음을 조정해야 합니다.

  • 구성: 구성이 잘못 설정된 경우, 이러한 문제는 학습 초기에 자주 나타납니다. 학습률(learning rate)은 조정이 가장 자주 필요한 구성입니다.
  • 데이터: 예를 들어, 흔한 학습 문제 중 하나는 데이터셋이 제대로 섞이지 않아 손실 급증이 발생하는 것입니다. Mosaic AI Training은 Mosaic Streaming 라이브러리를 통해 셔플링을 간단하게 만들지만, 셔플링에는 비용이 발생하므로 Streaming은 품질-비용 균형을 맞추기 위해 다양한 셔플링 설정을 지원합니다. 손실 급증이 발생한다면, Streaming에서 더 강력한 셔플링 설정을 적용하여 급증을 방지할 수 있습니다. 예를 들어, 데이터가 다른 버킷(도메인, 언어 등)에서 오고 제대로 섞이지 않았다면, 손실 급증이 발생할 가능성이 더 높습니다.

커리큘럼 학습: 사전 학습은 종종 단일하고 균일한 데이터셋에서 실행되지 않습니다. 최종 모델은 학습 과정에서 데이터 혼합을 다양하게 함으로써 개선될 수 있으며, 이를 위한 가장 일반적인 기술은 학습 후반에 데이터 혼합에서 더 높은 품질과 더 목표 지향적인 데이터셋이 강조되는 커리큘럼 학습입니다. 데이터 혼합은 미리 지정될 수도 있고, 특정 영역에서 모델을 강화하기 위해 수동으로 조정될 수도 있습니다.

사전 학습 후

사전 학습 후, 최종 애플리케이션을 위한 모델을 준비하기 위한 추가 단계가 있을 수 있습니다. 예를 들어:

  1. 모델을 미세 조정하기 위한 추가 커리큘럼 학습 또는 지속적인 사전 학습
  2. 지시 따르기 또는 채팅과 같은 지도 미세 조정
  3. 인간 피드백 기반 강화 학습(RLHF)은 인간의 선호도에 맞게 모델을 미세 조정하는 고급 기술입니다. 이 기술은 매우 강력하지만 제대로 구현하기는 복잡하며, 모든 애플리케이션에 필요한 것은 아닙니다. 많은 애플리케이션의 경우, 지도 미세 조정 또는 가드레일로 충분할 수 있습니다.
  4. 모델 또는 애플리케이션에 대한 최종 사용자 평가를 기반으로 위 단계를 반복

미래

GenAI 개발 속도는 늦춰지지 않고 있습니다. GPU 및 기타 특수 하드웨어는 더 빠르고 저렴해질 것입니다. 소프트웨어 스택은 개선될 것입니다. 새로운 모델 아키텍처와 학습 기술은 연구에서 실제 적용으로 전환될 것입니다. 어떻게 준비할 수 있을까요?

Mosaic AI를 통해 기본적으로 많은 개발을 활용할 수 있습니다. Databricks Model Training, Model Serving 및 기타 기능은 최신 최고 모델에 대한 지원을 계속 추가할 것입니다. 새로운 학습 및 추론 기술이 내부적으로 통합될 것입니다. 더 크고 복잡한 워크로드의 경우, Mosaic AI는 완전한 맞춤화를 지원하며, 가장 최첨단 워크로드는 Mosaic Research 팀과 협력하여 수행될 것입니다.

조직에서는 현재와 미래에 유연하고 맞춤 설정 가능한 워크로드를 지원하는 데 집중하세요.

  • AI 인프라 개발. AI 게이트웨이를 통해 모델 API 거버넌스를 설정하세요. AI 보안 프레임워크를 사용하여 보안 프로세스를 설정하세요. Unity Catalog 아래에서 데이터 및 AI 거버넌스를 표준화하고 통합하세요. Agent Framework를 사용하여 내부 루프를 개발하고 Model Training을 사용하여 외부 루프를 개발하세요. 강력한 Model ServingMonitoring을 포함하여 MLOps 실무를 개발하세요.
  • AI 전문성 개발. Databricks 팀과 협력하여 AI 우수성 센터(CoE)를 개발하세요. 팀의 역할에 맞춰진 학습 경로를 안내하기 위해 Databricks Training을 활용하세요.
  • 지적 재산 개발. 이 IP는 맞춤형 모델뿐만 아니라, 더 중요하게는 기업의 데이터를 포함할 것입니다. 현재 애플리케이션 및 사용자로부터 데이터를 수집하고, 출처를 추적하며, 규제 및 라이선스에 유의하세요. 이 데이터는 내부 루프의 RAG와 외부 루프의 튜닝 및 사전 학습을 포함하여 모든 GenAI 맞춤화를 지원할 것입니다.

자료

강의

읽을거리

Data + AI Summit 2024 강연

Databricks 소개

Databricks는 데이터 및 AI 기업입니다. Block, Comcast, Condé Nast, Rivian, Shell 및 Fortune 500대 기업의 70%를 포함한 전 세계 10,000개 이상의 조직이 Databricks Data Intelligence Platform을 사용하여 데이터를 제어하고 AI와 함께 활용하고 있습니다. Databricks는 샌프란시스코에 본사를 두고 전 세계에 지사를 운영하고 있으며, Lakehouse, Apache SparkTM, Delta Lake 및 MLflow의 원 개발자들이 설립했습니다. 더 자세한 정보를 원하시면 Databricks를 팔로우하세요: LinkedIn, XFacebook.

맞춤형 데모를 원하시면 문의하세요:

databricks.com/contact

(이 글은 AI의 도움을 받아 번역되었습니다. 원문이 궁금하시다면 여기를 클릭해 주세요)

최신 게시물을 이메일로 받아보세요

블로그를 구독하고 최신 게시물을 이메일로 받아보세요.