이 문서는 대화형 노트북입니다. 로컬에서 실행하거나 아래 링크를 사용할 수 있습니다:
사전 요구 사항
pip를 사용해weave,pandas,unsloth,wandb,litellm,pydantic,torch,faiss-gpu를 설치합니다.
- 환경에 설정된 필요한 API 키를 추가합니다.
- W&B에 로그인한 다음 새 프로젝트를 만듭니다.
Models Registry에서 ChatModel을 다운로드하고 UnslothLoRAChatModel 구현하기
unsloth 라이브러리로 파인튜닝되어 있으며, W&B Models Registry에서 사용할 수 있습니다. 이 step에서는 레지스트리에서 파인튜닝된 ChatModel을 조회해 RagModel과 호환되도록 weave.Model로 변환합니다.
아래에서 참조하는
RagModel은 완전한 RAG 애플리케이션으로 볼 수 있는 최상위 weave.Model입니다. 여기에는 ChatModel, 벡터 데이터베이스, 프롬프트가 포함됩니다. ChatModel 역시 weave.Model이며, W&B 레지스트리에서 아티팩트를 다운로드하는 코드를 포함합니다. ChatModel은 RagModel의 일부로서 다른 유형의 LLM 채팅 모델도 지원할 수 있도록 모듈식으로 변경할 수 있습니다. 자세한 내용은 Weave에서 모델 보기를 참고하세요.ChatModel을 로드하려면 어댑터가 포함된 unsloth.FastLanguageModel 또는 peft.AutoPeftModelForCausalLM을 사용하면 앱에 효율적으로 인테그레이션할 수 있습니다. 레지스트리에서 모델을 다운로드한 후에는 model_post_init 방법을 사용해 초기화 및 예측 로직을 설정할 수 있습니다. 이 step에 필요한 코드는 레지스트리의 Use 탭에서 확인할 수 있으며, 구현에 직접 복사해 사용할 수 있습니다.
아래 코드는 W&B Models Registry에서 조회한 파인튜닝된 Llama-3.2 모델을 관리, 초기화, 사용하기 위한 UnslothLoRAChatModel 클래스를 정의합니다. UnslothLoRAChatModel은 최적화된 Inference를 위해 unsloth.FastLanguageModel을 사용합니다. model_post_init 방법은 모델 다운로드와 설정을 처리하고, predict 방법은 사용자 쿼리를 처리해 응답을 생성합니다. 사용 사례에 맞게 코드를 조정하려면 MODEL_REG_URL을 파인튜닝된 모델의 올바른 레지스트리 경로로 업데이트하고, 하드웨어나 requirements에 따라 max_seq_length 또는 dtype 같은 parameter를 조정하세요.”
새 ChatModel 버전을 RagModel에 통합하기
RagModel을 조회하고, 새로 미세 조정한 모델을 사용하도록 해당 ChatModel을 업데이트합니다. 이렇게 원활하게 교체하면 벡터 데이터베이스(VDB)와 프롬프트 같은 다른 컴포넌트는 그대로 유지되므로, 애플리케이션의 전체 구조를 보존하면서 성능을 향상시킬 수 있습니다.
아래 코드는 Weave 프로젝트의 레퍼런스를 사용해 RagModel 객체를 조회합니다. 그런 다음 RagModel의 chat_model 속성을 업데이트해 이전 step에서 생성한 새 UnslothLoRAChatModel 인스턴스를 사용하도록 합니다. 그 후 업데이트된 RagModel을 게시하여 새 버전을 생성합니다. 마지막으로 업데이트된 RagModel을 사용해 샘플 예측 쿼리를 실행하여 새 채팅 모델이 사용되고 있는지 확인합니다.
weave.Evaluation 실행
weave.Evaluation을 사용해 업데이트된 RagModel의 성능을 평가합니다. 이 과정은 새로 파인튜닝된 채팅 모델이 RAG 애플리케이션에서 예상대로 동작하는지 확인합니다. 인테그레이션을 간소화하고 Models 팀과 Apps 팀 간 협업을 지원하기 위해 평가 결과를 모델의 W&B run과 Weave workspace에 모두 로깅합니다.
In Models:
- 평가 summary는 파인튜닝된 채팅 모델을 다운로드하는 데 사용한 W&B run에 로깅됩니다. 여기에는 분석을 위해 workspace view에 표시되는 summary 메트릭과 그래프가 포함됩니다.
- 평가 트레이스 ID는 run의 설정에 추가되며, Model Team이 더 쉽게 추적할 수 있도록 Weave 페이지로 직접 연결됩니다.
ChatModel의 아티팩트 또는 레지스트리 링크는RagModel의 입력으로 저장됩니다.- 더 풍부한 컨텍스트를 위해 W&B run ID가 평가 트레이스의 추가 column으로 저장됩니다.
RagModel을 사용해 평가를 실행한 뒤, 결과를 W&B와 Weave에 모두 로깅하는 방법을 보여줍니다. 평가 레퍼런스(WEAVE_EVAL)가 프로젝트 설정과 일치하는지 확인하세요.
새 RAG Model을 레지스트리에 저장
RagModel을 앞으로 Models 팀과 Apps 팀 모두가 사용할 수 있도록 W&B Models Registry에 레퍼런스 아티팩트로 푸시합니다.
아래 코드는 업데이트된 RagModel의 weave 객체 버전과 이름을 조회한 다음, 이를 사용해 레퍼런스 링크를 생성합니다. 이어서 모델의 Weave URL이 포함된 메타데이터와 함께 새 아티팩트를 W&B에 생성합니다. 이 아티팩트는 W&B Registry에 로깅되고 지정된 레지스트리 경로에 연결됩니다.
코드를 실행하기 전에 ENTITY 및 PROJECT 변수가 W&B 설정과 일치하는지, 그리고 대상 레지스트리 경로가 올바르게 지정되었는지 확인하세요. 이 과정은 새 RagModel을 W&B 생태계에 게시해 협업과 재사용을 쉽게 할 수 있도록 하여 워크플로를 마무리합니다.