개요
InstructLab은 생성형 AI 애플리케이션에서 사용되는 대규모 언어 모델(LLM)을 개선하기 위한 오픈소스 프로젝트입니다. IBM과 Red Hat이 함께 만든 InstructLab 커뮤니티 프로젝트에서는 LLM 조정을 개선하는 비용 효율적인 솔루션을 제공하고, 머신 러닝 경험이 적은 사용자가 기여할 수 있는 기회를 열어 줍니다.
InstructLab이 하는 일
LLM은 챗봇 및 코딩 어시스턴트와 같이 여러 유용한 애플리케이션을 지원할 수 있습니다. 이러한 LLM은 독점 모델일 수도 있고(예: OpenAI의 GPT 모델, Anthropic의 Claude 모델) 개방성 정도가 다양한 사전 훈련 데이터 및 사용 제한 모델일 수도 있습니다(예: Meta의 Llama 모델, Mistral AI의 Mistral 모델, IBM의 Granite 모델).
AI 실무자가 사전 훈련된 LLM을 특정 비즈니스 목표에 맞게 조정해야 하는 경우도 있지만, LLM을 수정하는 방법에는 한계가 있습니다.
- 특정 지식 또는 기술 영역을 이해하기 위해 LLM을 미세 조정하려면 기존의 개방형 모델을 분할해 비용과 리소스가 많이 드는 학습을 실행해야 합니다.
- 개선 사항을 업스트림 프로젝트에 다시 통합할 수 있는 방법이 없기 때문에 커뮤니티 기여를 통해 모델을 지속적으로 개선할 수 없습니다.
- 일반적으로 LLM을 개선하려면 사람이 생성한 대규모 데이터가 필요한데, 이러한 데이터를 얻는 데 시간과 비용이 많이 소요됩니다.
InstructLab은 이러한 한계를 극복하는 접근 방식을 따릅니다. 즉, 일반적으로 모델을 재훈련하는 데 사용하는 양보다 사람이 생성한 정보와 컴퓨팅 리소스를 훨씬 적게 사용하여 LLM을 개선할 수 있습니다. 또한 업스트림 기여를 통해 모델을 지속적으로 개선할 수 있습니다.
InstructLab은 IBM Research의 LAB(Large-scale Alignment for chatBots) 연구를 기반으로 한 명칭입니다. 해당 랩 방식은 MIT-IBM Watson AI Lab 및 IBM Research 연구원들이 작성한 2024 연구 논문에 설명되어 있습니다.
InstructLab은 모델에 구애받지 않으며 원하는 LLM에 맞게 추가 기술과 지식을 미세 조정할 수 있습니다. 이 '기술과 지식 트리 구조'는 커뮤니티 기여를 통해 지속적으로 개선되며 향상된 LLM의 정기 빌드를 지원하는 데 적용할 수 있습니다. InstructLab은 향상된 버전의 IBM Granite를 유지 관리합니다. IBM에서 출시한 기타 두 가지 랩 강화 모델에는 Llama 2에서 파생된 Labradorite와 Mistral에서 파생된 Merlinite가 포함됩니다. InstructLab 프로젝트는 신속한 반복(iteration)을 우선으로 모델을 정기적으로 재학습시키는 것이 목표입니다. 조직은 자체적으로 보유한 독점 기술과 지식으로 프라이빗 LLM을 훈련하는 데 InstructLab 모델 조정 툴을 사용할 수도 있습니다.
InstructLab의 작동 방식
LAB 방식은 3가지 요소로 구성됩니다.
- 분류 체계 기반의 데이터 큐레이션. 분류 체계는 사람이 모델에 대한 새로운 지식과 기술의 예시로 엄선한 다양한 학습 데이터들의 세트입니다.
- 대규모 합성 데이터 생성. 그런 다음 이 모델은 시드 학습 데이터를 기반으로 새 예시를 생성하는 데 사용됩니다. 합성 데이터의 품질이 균일하지 않을 수 있으므로 LAB 방식은 예시 답변을 개선하는 자동화된 단계를 추가하여 답변이 근거가 있고 안전한지 확인합니다.
- 반복적인 대규모 조정 튜닝. 마지막으로 합성 데이터 세트를 기반으로 모델을 재학습시킵니다. LAB 방식에는 지식 튜닝과 기술 튜닝이라는 두 가지 튜닝 단계가 포함됩니다.
커뮤니티의 데이터 기여로 향상된 LLM을 정기적이고 반복적으로 빌드할 수 있으며 각 빌드는 커뮤니티 기여를 통해 생성된 기술 트리로 한층 더 개선됩니다.
InstructLab은 다른 LLM 훈련 방식과 어떻게 다른가요?
LLM을 생성하고 개선하는 데 InstructLab과 기타 방식이 어떻게 다른지 살펴보겠습니다.
사전 훈련
LLM은 사전 훈련 시 레이블이 지정되지 않은 데이터로 구성된 수조 개의 토큰을 사용하여 다음 토큰을 예측하도록 훈련됩니다. 이러한 훈련은 상당히 많은 비용이 들고 수천 개의 GPU와 몇 달의 시간이 필요할 수도 있습니다. 기능이 뛰어난 LLM을 사전 훈련하는 작업은 충분한 리소스를 보유한 조직에서만 가능합니다.
조정 튜닝
사전 훈련을 마친 LLM 모델은 최대한 정확하고 유용한 답변을 생성하도록 조정 튜닝 과정을 거칩니다. 조정 튜닝의 첫 번째 단계는 일반적으로 명령어 튜닝으로, 특정 태스크에 대해 모델을 직접 훈련합니다. 다음은 기본 설정 튜닝으로, 사람의 피드백을 통한 강화 학습(Reinforcement Learning From Human Feedback, RLHF)이 포함될 수 있습니다. 이 단계에서는 사람이 모델을 테스트하고 출력을 평가하여 모델의 답변이 바람직한지 확인합니다. RLHF 프로세스에는 모델을 최적화하기 위해 여러 번의 피드백과 개선이 포함될 수 있습니다.
연구자들은 이 조정 튜닝 단계에서 피드백의 양이 초기의 훈련 데이터 세트보다 훨씬 적을 수 있으나(사전 훈련에 필요한 수조 개의 데이터 토큰에 비해 수만 개의 인간 주석에 불과함), 모델의 잠재적 기능을 발굴할 수 있다는 사실을 알았습니다.
InstructLab
LAB 방식은 사람이 생성한 훨씬 작은 데이터 세트에서도 모델 조정의 이점을 실현할 수 있어야 한다는 아이디어에서 탄생했습니다. AI 모델에서는 사람이 제공하는 일부 예시를 사용하여 대규모 합성 데이터를 생성하고 해당 목록을 개선해 품질을 높인 다음 그러한 고품질의 합성 데이터 세트를 사용해 추가로 튜닝하고 훈련할 수 있습니다. 일반적으로 수천 개의 인간 피드백 예시가 필요한 명령어 튜닝과 달리 LAB은 사람이 제공하는 상대적으로 적은 수의 예시를 사용하여 훨씬 더 나은 모델을 만들 수 있습니다.
InstructLab은 검색 증강 생성과 어떻게 다른가요?
간단히 말해서 InstructLab과 검색 증강 생성(Retrieval-Augmented Generation, RAG)은 서로 다른 문제를 해결합니다.
RAG는 사전 학습에 포함되지 않은 도메인별 지식으로 LLM을 보완하는 비용 효율적인 방법입니다. RAG 방식에서는 모델 재훈련 없이도 챗봇이 특정 분야나 비즈니스와 관련된 질문에 정확하게 답할 수 있습니다. 지식 문서가 벡터 데이터베이스에 저장된 다음 사용자 쿼리에 따라 청크로 검색되어 모델로 전송됩니다. 이러한 방식은 정보 제어 권한을 유지하면서 LLM에 상용 데이터를 추가하려는 사람이나 적시에 정보에 액세스하기 위해 LLM을 필요로 하는 사람에게 유용합니다.
향상된 버전의 LLM 정기 빌드를 지원하기 위해 최종 사용자 기여를 소싱하는 InstructLab 방식과는 대조됩니다. InstructLab은 지식을 추가하고 LLM의 새로운 기능을 활용하는 데 도움이 됩니다.
InstructLab으로 튜닝한 모델에 RAG 기술을 사용하면 RAG 프로세스를 '강화'할 수 있습니다.
InstructLab 프로젝트의 구성 요소는 무엇인가요?
InstructLab은 여러 프로젝트로 구성됩니다.
분류 체계
InstructLab은 주로 수동으로 신중하게 생성하는 분류 체계를 기반으로 합니다. InstructLab에는 사용자가 사람이 제공한 데이터를 사용하여 튜닝된 모델을 생성하는 분류 체계 트리가 포함되며, 이러한 데이터는 이후 합성 데이터 생성을 통해 개선됩니다.
커맨드라인 인터페이스(CLI)
InstructLab CLI를 사용하면 기여자가 자신의 노트북이나 워크스테이션을 사용하여 기여 내용을 테스트할 수 있습니다. 커뮤니티 구성원은 InstructLab 기술을 사용하여 특화된 하드웨어에 액세스하지 않고도 합성 데이터 생성과 모델 명령어 튜닝에 대한 대략적인 근사치를 생성할 수 있습니다.
모델 훈련 인프라
마지막으로 개선된 LLM을 생성하는 프로세스가 있습니다. 커뮤니티의 새로운 기여를 기반으로 모델을 정기적으로 재훈련하려면 GPU 집약적인 인프라가 필요합니다. IBM은 InstructLab 프로젝트의 향상된 모델을 자주 재학습시키는 데 필요한 인프라를 기부하고 유지 관리합니다.
Red Hat Enterprise Linux AI 살펴보기
엔터프라이즈에 AI를 도입하려는 경우 Red Hat® Enterprise Linux® AI는 Granite 제품군의 오픈소스 라이선스 LLM, InstructLab 모델 조정 툴, 부팅 가능한 Red Hat Enterprise Linux 이미지, 엔터프라이즈급 기술 지원, 모델 지식재산권 보상을 함께 제공합니다.
Red Hat Enterprise Linux는 글로벌 업계를 주도하는 엔터프라이즈 Linux 플랫폼으로, 수백 개의 클라우드와 수천 개의 하드웨어 및 소프트웨어 벤더의 인증을 받았습니다. Red Hat의 오픈 하이브리드 클라우드 전략은 Linux, 컨테이너, 자동화라는 기술적 파운데이션으로 어디서나 유연하게 AI 애플리케이션을 실행할 수 있도록 지원합니다.
Red Hat Enterprise Linux AI와 InstructLab 프로젝트는 이러한 비전을 한층 더 끌어올려 AI 모델의 실험과 빌드에 필요한 비용 및 리소스를 줄이고 차세대 지능형 워크로드를 개발하는 데 필요한 툴과 데이터, 개념을 제공합니다.