>기술 주변기기 >IT산업 >직접 환경 설정 최적화 (DPO)를 사용하여 Axolotl을 사용하여 오픈 소스 LLM을 미세 조정합니다.

직접 환경 설정 최적화 (DPO)를 사용하여 Axolotl을 사용하여 오픈 소스 LLM을 미세 조정합니다.

尊渡假赌尊渡假赌尊渡假赌
尊渡假赌尊渡假赌尊渡假赌원래의
2025-02-08 09:24:10547검색

Fine-Tuning an Open-Source LLM with Axolotl Using Direct Preference Optimization (DPO) LLMS (Largin Language Models)의 출현은 AI 응용 프로그램에 수많은 새로운 기회를 가져 왔습니다. 항상 자신의 모델을 미세 조정하고 싶다면이 안내서는 코드를 쓰지 않고 쉽게 수행하는 방법을 보여줍니다. Axolotl 및 DPO와 같은 도구를 사용하여 전체 프로세스를 단계별로 안내합니다.

큰 언어 모델 (LLM)이란 무엇입니까?

당신은 Chatgpt 또는 Claude와 같은 제품을 통해 이전에 LLM과 상호 작용했을 수 있으며 개인적으로 인간과 같은 반응을 이해하고 생성하는 능력을 개인적으로 경험했을 수 있습니다.

왜 LLM을 미세 조정해야합니까?

우리는 GPT-4O를 사용하여 모든 것을 처리 할 수 ​​없습니까? 글을 쓰는 시점에서 가장 강력한 모델이지만 항상 가장 실용적인 옵션은 아닙니다. 더 작은 모델 (파라미터 범위 30 억에서 140 억)을 미세 조정하면 비용의 작은 부분에서 비슷한 결과를 얻을 수 있습니다. 또한 미세 조정을 통해 자신의 지적 재산을 소유하고 제 3 자에 대한 의존도를 줄일 수 있습니다.

기본 모델, 지시 모델 및 대화 모델 이해 깊이를 조정하기 전에 사용 가능한 다양한 유형의 LLM을 이해해야합니다.

기본 모델 : 이 모델은 책이나 인터넷 데이터와 같은 많은 비 구조화 된 텍스트에서 미리 훈련됩니다. 그들은 언어에 대한 고유 한 이해를 가지고 있지만 추론에 최적화되지 않으며 일관성이없는 출력을 생성합니다. 기본 모델의 개발은보다 전문적인 모델을 개발하기위한 출발점 역할을하는 것입니다.

명령 모델 : 명령 모델은 기본 모델을 기반으로하며 구조화 된 데이터 (예 : 프롬프트 응답 쌍)를 사용하여 미세 조정됩니다. 그들은 특정 지침을 따르거나 질문에 대한 답변을 제공하도록 설계되었습니다.

대화 모델 :

도 기본 모델을 기반으로하지만 지시 모델과 달리 대화 모델은 대화 데이터에 대한 교육을받을 수 있도록 대화를 나눌 수 있습니다.

강화 학습과 DPO는 무엇입니까?

강화 학습 (RL)은 모델이 행동에 대한 피드백을 받음으로써 학습하는 기술입니다. 출력의 품질을 더욱 향상시키기 위해 교육 모델 또는 대화 모델에 적용됩니다. 일반적으로 RL은 학습 속도가 낮기 때문에 기본 모델 위에 작동하지 않으므로 중대한 변경을 수행하기에 충분하지 않습니다.

DPO는 동일한 프롬프트/대화 답변 쌍의 장단점을 사용하여 모델을 훈련시키는 RL 양식입니다. 이 쌍을 제시 함으로써이 모델은 유리한 예를 배우고 나쁜 예를 피합니다.

dpo를 사용하는시기 DPO는 모델의 스타일이나 동작을 조정하려는 경우 특히 유용합니다.
    스타일 조정 :
  • 응답의 모델 표현식에 대한 길이, 세부 사항 또는 신뢰도를 수정하십시오. 안전 조치 :
  • 교육 모델은 안전하지 않거나 부적절 할 수있는 프롬프트에 대한 답변을 거부합니다.
  • 그러나 DPO는 모델에 대한 새로운 지식이나 사실을 가르치는 데 적합하지 않습니다. 이를 위해 감독 된 미세 조정 (SFT) 또는 검색 강화 생성 (RAG) 기술이 더 적합합니다.

    DPO 데이터 세트를 작성하십시오 프로덕션 환경에서는 일반적으로 사용자 피드백을 사용하여 다음과 같은 DPO 데이터 세트를 생성합니다.
  • 사용자 피드백 :
응답으로 Like/Click 메커니즘을 구현하십시오.

선택 비교 :

는 사용자에게 두 가지 다른 출력을 제시하고 더 나은 것을 선택하도록 요청합니다.

사용자 데이터가 부족한 경우 더 크고 강력한 LLM을 활용하여 합성 데이터 세트를 만들 수도 있습니다. 예를 들어, 작은 모델을 사용하여 잘못된 답변을 생성 한 다음 GPT-4O로 수정할 수 있습니다.

단순화를 위해, 우리는 Huggingface의 기성품 데이터 세트 : olivermolenschot/alpaca_messages_dpo_test를 사용합니다. 데이터 세트를 검사하면 선택한 및 거부 된 답변이 포함 된 힌트가 포함되어 있음을 알 수 있습니다. 이는 좋은 예입니다. 이 데이터는 GPT-3.5-Turbo 및 GPT-4 합성을 사용하여 생성되었습니다.

당신은 보통 과적으로 적합하지 않고 효과적으로 훈련하려면 적어도 500 ~ 1000 쌍의 데이터가 필요합니다. 가장 큰 DPO 데이터 세트에는 최대 15,000-20,000 쌍의 데이터가 포함되어 있습니다.
    axolotl을 사용하여 qwen2.5 3b 명령 모델 를 미세 조정하십시오. 우리는 axolotl을 사용하여 QWEN2.5 3B 명령 모델을 미세 조정할 것입니다. QWEN2.5 3B 명령 모델은 현재 스케일 범주에서 OpenLlm 순위에서 1 위입니다. Axolotl을 사용하면 코드를 작성하지 않고도 모델을 미세 조정할 수 있습니다. Yaml 구성 파일 만 필요합니다. 다음은 다음은 사용할 config.yml입니다
  • 클라우드 환경을 설정 교육을 실행하기 위해 Runpod 또는 Vultr과 같은 클라우드 호스팅 서비스를 사용합니다. 필요한 내용은 다음과 같습니다.
  • Docker Image : Axolotl 팀이 제공 한 Winglian/Axolotl-Cloud : Main Docker Image를 클로닝했습니다.
  • <:> 하드웨어 요구 사항 : 80GB VRAM GPU (예 : 1 × A100 PCIE 노드)는이 크기의 모델에 충분합니다. 스토리지 : 200GB의 볼륨 스토리지는 필요한 모든 파일을 보유합니다. CUDA 버전 : CUDA 버전은 12.1 이상이어야합니다.
(이 유형의 교육은 LLM의 완전한 미세 조정으로 간주되므로 매우 VRAM 집약적으로 간주됩니다. 클라우드 호스트에 의존하지 않고 로컬로 훈련을 실행하려면 감독 된 미세 조정 형태 인 Qlora를 사용해 볼 수 있습니다. DPO와 Qlora는 이론적으로 결합 될 수 있지만 이것은 드물다) 훈련을 시작하는 단계

Huggingface 캐시 디렉토리를 설정하십시오 :

이를 통해 원래 모델이 지속적인 볼륨 저장소에 다운로드되도록합니다.

구성 파일 생성 : config.yml 파일을 저장 /workspace/config.yml로 이전에 작성하십시오.

훈련 시작 :
<code class="language-yaml"># ... (YAML configuration remains the same) ...</code>

봐! 당신의 훈련이 시작되어야합니다. Axolotl에서 모델 및 교육 데이터를 다운로드 한 후에는 다음과 비슷한 출력이 표시됩니다.

<code class="language-yaml"># ... (YAML configuration remains the same) ...</code>
이것은 264 개의 행만있는 더 작은 데이터 세트이므로 훈련에는 몇 분 밖에 걸리지 않아야합니다. 미세 조정 된 모델은 /작업 공간 /DPO 출력에 저장됩니다.

모델을 huggingface 에 업로드하십시오 CLI를 사용하여 모델을 huggingface에 업로드 할 수 있습니다.

Huggingface Hub Cli 설치 :

모델 업로드 :

    yourname/yourrepo를 실제 huggingface 사용자 이름 및 저장소 이름으로 바꾸십시오.
  1. 미세 조정 모델을 평가하십시오 평가를 위해서는 TGI (Text Generation Onference)와 같은 도구를 사용하여 원래 모델과 미세 조정 된 모델을 호스팅하는 것이 좋습니다. 그런 다음 온도 설정을 0으로 사용하여 (결정 론적 출력을 보장하기 위해) 두 모델에 대한 추론과 두 모델의 응답을 수동으로 비교하십시오.
  2. 이 실용적인 접근법은 손실 메트릭이 LLM에서 언어 생성의 미묘함을 포착하지 못할 수 있으므로 손실 지표를 평가하기위한 교육에만 의존하는 것보다 더 나은 통찰력을 제공합니다.
<code class="language-bash">export HF_HOME=/workspace/hf</code>
결론 DPO를 사용하여 미세 조정 LLM을 사용하면 비용을 통제하는 동안 애플리케이션의 요구를보다 잘 충족시키기 위해 모델을 사용자 정의 할 수 있습니다. 이 기사에 요약 된 단계를 따르면 오픈 소스 도구 및 데이터 세트의 성능을 활용하여 특정 요구 사항을 충족하는 모델을 만들 수 있습니다. 응답 스타일을 조정하든 보안 조치를 구현하든 DPO는 LLM을 개선하는 실용적인 방법을 제공합니다.
    나는 당신에게 행복한 미세 조정을 기원합니다!

위 내용은 직접 환경 설정 최적화 (DPO)를 사용하여 Axolotl을 사용하여 오픈 소스 LLM을 미세 조정합니다.의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.