이 문서는 대화형 노트북입니다. 로컬에서 실행하거나 다음 링크를 이용할 수 있습니다:
프롬프트 라우팅
이 섹션에서는 여러 LLM으로 작업할 때 맞춤형 라우팅이 왜 유용한지 설명합니다. 복잡한 LLM 워크플로를 구축할 때는 정확도, 비용, 또는 call 지연 시간에 따라 서로 다른 모델에 프롬프트를 보내야 할 수 있습니다. Not Diamond를 사용하면 이러한 워크플로에서 프롬프트를 필요에 맞는 적절한 모델로 라우팅하여, 모델 비용을 절감하면서 정확도를 극대화할 수 있습니다. 주어진 데이터 분포에서 단일 모델 하나가 모든 쿼리에서 다른 모든 모델보다 항상 더 뛰어난 성능을 내는 경우는 드뭅니다. 각 LLM을 언제 call할지 학습하는 “메타 모델”로 여러 모델을 결합하면, 개별 모델 각각의 성능을 모두 뛰어넘을 수 있을 뿐 아니라 그 과정에서 비용과 지연 시간도 줄일 수 있습니다.맞춤형 라우팅
프롬프트에 사용할 맞춤형 라우터를 트레이닝하려면 다음 입력이 필요합니다.- LLM 프롬프트 세트: 프롬프트는 strings여야 하며, 애플리케이션에서 사용하는 프롬프트를 잘 대표할 수 있어야 합니다.
- LLM 응답: 각 입력에 대해 후보 LLM이 생성한 응답입니다. 후보 LLM에는 지원되는 LLM과 자체 맞춤형 모델이 모두 포함될 수 있습니다.
- 후보 LLM의 입력별 응답에 대한 평가 점수: 점수는 숫자이며, 요구 사항에 맞는 어떤 metric이든 사용할 수 있습니다.
트레이닝 데이터 설정
이 섹션에서는 맞춤형 라우터가 학습할 트레이닝 데이터와 테스트 데이터를 준비합니다. 실제로는 자체 Evaluations를 사용해 맞춤형 라우터를 트레이닝합니다. 하지만 이 예시 노트북에서는 코딩 작업용 맞춤형 라우터를 트레이닝하기 위해 HumanEval 데이터셋에 대한 LLM 응답을 사용합니다. 먼저 이 예제를 위해 준비된 데이터셋을 다운로드한 다음, LLM 응답을 각 모델의EvaluationResults로 파싱합니다. 이렇게 분리한 트레이닝 데이터와 테스트 데이터는 이후 섹션에서 라우터를 트레이닝하고 표본 외 성능을 평가하는 데 사용됩니다.
맞춤형 라우터 트레이닝하기
이제EvaluationResults가 준비되었으니 이를 Not Diamond에 제출해 맞춤형 라우터를 트레이닝할 수 있습니다. 먼저 계정을 생성하고
API 키를 생성한 다음, 아래 코드에 API 키를 입력하세요. API 키는 트레이닝 요청을 인증합니다.



맞춤형 라우터 평가하기
이 섹션에서는 맞춤형 라우터가 가장 성능이 좋은 개별 모델보다 더 나은지 측정하는 방법을 설명합니다. 맞춤형 라우터를 트레이닝한 후에는 다음 방법 중 하나로 성능을 평가할 수 있습니다:- 트레이닝 프롬프트를 제출해 인샘플 성능을 평가합니다.
- 새 프롬프트 또는 홀드아웃 프롬프트를 제출해 아웃오브샘플 성능을 평가합니다.
