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