단일 명령어로 Llama-2 언어 모델 미세 조정하기

Claude-llm-trainer는 단일 설명으로 다운스트림 작업에 대해 Llama-2-7B를 미세 조정하는 Google Colab 프로젝트입니다.

2024년 4월 4일 오후 12:58- 5달 전BDTECHTALKS.COM- Ben Dickson

단일 명령어로 Llama-2 언어 모델 미세 조정하기

요약생성

바쁠 때는 리얼라이즈가 내용을 요약해 드려요.

Llama-2 및 Mistral과 같은 오픈소스 대형 언어 모델(LLM)은 유연성과 접근성이 뛰어나 인기를 얻고 있습니다. 이러한 모델을 서버와 컴퓨터에 배포하고 애플리케이션에 맞게 미세 조정할 수 있습니다. 잘 배포된 Llama-2 모델은 조직의 시간과 비용을 절약하고 데이터 개인 정보 보호 요구 사항을 충족하는 데 도움이 될 수 있습니다.

그러나 LLM을 미세 조정하려면 데이터를 수집하고 준비하고, 모델 학습을 위한 코드를 작성하고, 하이퍼파라미터를 조정하고, 학습 및 테스트를 수행하는 등의 작업이 필요합니다. 이러한 어려움으로 인해 사람과 조직이 맞춤형 모델을 만드는 데 어려움을 겪는 경우가 많습니다.

이러한 문제를 해결하기 위해 OthersideAI의 설립자이자 CEO인 Matt Shumer는 단일 명령어로 Llama-2를 특정 작업에 맞게 미세 조정할 수 있는 도구인 claude-llm-trainer를 만들었습니다.

claude-llm-trainer 사용 방법

Claude-llm-trainer는 특정 작업에 맞게 Llama-2 7B를 미세 조정하는 코드가 포함된 Google Colab 노트북입니다. claude-llm-trainer를 사용하려면 첫 번째 셀에서 모델을 학습시키려는 작업에 대한 설명, 예제 수, Claude API 키를 포함한 설정을 구성하기만 하면 됩니다. (Claude 키가 없는 경우 무료 계정에 가입하고 Anthropic Console)에서 API 키를 만들 수 있습니다).

그런 다음 노트북의 끝에 도달할 때까지 셀을 순차적으로 실행합니다. 모델은 Google Drive에 저장됩니다. 이제 모델을 다운로드하여 서버에서 사용할 수 있습니다.

학습 예제 생성 및 모델 미세 조정 기간은 Colab 및 Claude 구독에 따라 다릅니다. 작업 구성 외에도 학습된 모델을 구성하기 위해 수행할 수 있는 몇 가지 기본적인 작업은 다음과 같습니다.

  • claude-llm-trainer의 기본 기본 모델은 “NousResearch/llama-2-7b-chat-hf”입니다. 모델 유형을 변경하려면 셀 7에서 “model_name” 변수를 원하는 모델의 경로로 변경합니다. 예를 들어 Mistral-7B 모델을 사용하려면 “mistralai/Mistral-7B-Instruct-v0.2”로 설정하면 됩니다.

  • 학습된 모델의 저장 위치를 변경하려면 셀 10에서 “model_path” 변수를 원하는 Google Drive 위치로 설정합니다.

  • 학습 예제가 100개이고 더 작은 모델 중 하나를 미세 조정하는 경우 프로세스는 무료 Colab 등급에서 충분히 잘 작동합니다. 그러나 더 큰 모델에 대해 더 무거운 학습을 수행하려면 Pro 등급에 가입하고 더 강력한 GPU를 사용하는 것이 좋습니다.

  • Amazon AWS 또는 Microsoft Azure와 같은 더 강력한 컴퓨터 클러스터에 액세스할 수 있는 경우 Colab을 노트북 문서로 다운로드하여 원하는 컴퓨팅 플랫폼에서 사용할 수 있습니다. 그러나 저장소 플랫폼(Amazon S3, Azure Blob, 로컬 저장소 등)에 맞게 셀 10을 수정해야 합니다.

claude-llm-trainer 작동 방식

claude-llm-trainer는 매우 편리하지만 모든 애플리케이션에 적합한 것은 아닙니다. 작업에 적합한지 여부를 파악하려면 작동 방식을 알아야 합니다.

셀 2에서 claude-llm-trainer는 Claude 3을 사용하여 학습 예제를 생성합니다. 이 프로세스를 모델 증류라고 하며, 여기서 “교사”라고도 하는 강력한 모델(예: GPT-4 또는 Claude 3)을 사용하여 “학생”이라고 하는 더 약한 모델(예: Llama-2 또는 Mistral)을 학습시킵니다.

학습자 모델이 대상 작업을 수행할 수 없는 경우 모델 증류를 애플리케이션에 사용하는 것이 유용하지 않기 때문에 이 점을 아는 것이 중요합니다. 예를 들어 회사와 관련된 독점적인 지식이 필요한 매우 특별한 작업에 맞게 LLM을 미세 조정하려는 경우 모델 증류가 그다지 효과적이지 않을 수 있습니다. 가장 좋은 방법은 교사 모델을 실험해 보고 LLM을 학습시키려는 대상 작업을 수행할 수 있는지 확인하는 것입니다. 기본적으로 claude-llm-trainer는 Claude 3 제품군 중 가장 작고 빠른 Haiku를 교사 모델로 사용하여 예제를 생성합니다. 셀 2에서 교사 모델을 수정할 수 있습니다.

셀 3에서 claude-llm-trainer는 Claude 3 Opus를 사용하여 학습된 모델에 대한 시스템 프롬프트를 생성합니다. 셀이 실행되면 시스템 프롬프트가 표시됩니다. 시스템 프롬프트가 만족스럽지 않으면 셀을 여러 번 실행할 수 있습니다. 나중에 미세 조정된 LLM을 다운스트림 작업에 사용할 때 이 시스템 프롬프트가 필요합니다.

셀 4 및 5에서 생성된 예제는 Pandas DataFrame으로 컴파일되고 학습 및 테스트 세트로 분할됩니다. 또한 이 도구는 데이터 세트를 노트북에 json 파일로 저장합니다. 나중에 사용하기 위해 다운로드할 수 있습니다. (Colab 환경의 파일은 세션이 종료되면 삭제됩니다.)

셀 6에서는 LLM을 미세 조정하는 데 필요한 라이브러리를 다운로드합니다. 미세 조정하려는 모델을 변경하는 경우 라이브러리 버전을 변경해야 할 수 있습니다. 셀 7에서는 모델을 미세 조정하기 위한 하이퍼파라미터를 구성합니다. 여기서 모델의 학습을 개선하기 위해 추가 조정을 수행할 수 있습니다.

셀 8은 실제 작업이 수행되고 모델이 미세 조정되는 곳입니다. 학습 epoch를 거치면서 학습 및 테스트 데이터 세트에 대한 진행 상황과 모델의 성능 개선 사항을 추적할 수 있습니다. claude-llm-training은 저순위 적응(LoRA)을 사용하여 모델을 학습시킵니다. LoRA는 미세 조정 프로세스 중에 기본 모델의 매개변수 하위 집합을 사용하는 기술로, 더 빠르고 메모리 효율성이 높습니다.

셀 9에서는 샘플 명령으로 학습된 모델을 테스트합니다. 작업에 맞게 프롬프트를 변경해야 합니다.

셀 10에서 LoRA 어댑터는 메인 모델에 병합되어 Google Drive에 저장됩니다. 마지막 두 개의 셀에는 모델을 로드하고 애플리케이션에서 사용하는 데 필요한 코드가 포함되어 있습니다.

Colab 프로젝트는 여기에서 액세스할 수 있습니다.