메인 콘텐츠로 건너뛰기
Colab에서 열기 Instructor는 LLM에서 JSON과 같은 구조화된 데이터를 쉽게 얻을 수 있게 해주는 경량 라이브러리입니다.

트레이싱

개발 중이든 프로덕션이든, 언어 모델 애플리케이션의 트레이스를 한곳에 중앙 집중식으로 저장하는 것이 중요합니다. 이러한 트레이스는 디버깅에 유용할 뿐 아니라, 애플리케이션 개선에 도움이 되는 데이터셋으로도 활용할 수 있습니다. Weave는 Instructor의 트레이스를 자동으로 캡처합니다. 추적을 시작하려면 weave.init(project_name="<YOUR-WANDB-PROJECT-NAME>")를 호출한 다음, 평소처럼 라이브러리를 사용하세요.

직접 만든 ops 추적하기

함수를 @weave.op로 감싸면 입력, 출력, 앱 로직 캡처가 시작되어 앱에서 데이터가 어떻게 흐르는지 디버그할 수 있습니다. ops를 깊게 중첩해 추적하려는 함수들의 트리를 구성할 수 있습니다. 또한 실험하는 동안 코드 버전 관리도 자동으로 시작되어 git에 커밋되지 않은 임시 세부 정보까지 캡처할 수 있습니다. @weave.op으로 데코레이트된 함수를 만들기만 하면 됩니다. 아래 예시에는 extract_person 함수가 있으며, 이 함수는 @weave.op로 감싼 metric 함수입니다. 이를 통해 OpenAI chat completion call과 같은 중간 step를 확인할 수 있습니다.

더 쉽게 실험할 수 있도록 Model 만들기

구성 요소가 많아질수록 실험을 체계적으로 정리하기가 어렵습니다. Model 클래스를 사용하면 시스템 프롬프트나 사용 중인 모델처럼 앱 실험의 세부 정보를 캡처하고 정리할 수 있습니다. 이렇게 하면 앱의 여러 버전을 정리하고 비교하는 데 도움이 됩니다. 코드를 버전 관리하고 입력/출력을 캡처하는 것에 더해, Model은 애플리케이션의 동작을 제어하는 구조화된 파라미터도 캡처하므로 어떤 파라미터가 가장 잘 작동하는지 쉽게 파악할 수 있습니다. Weave Model은 serve(아래 참조) 및 Evaluation과 함께 사용할 수도 있습니다. 아래 예제에서는 PersonExtractor를 실험해 볼 수 있습니다. 이 항목 중 하나를 변경할 때마다 PersonExtractor의 새로운 version이 생성됩니다.

Weave Model 서빙

weave.Model 객체를 가리키는 weave 레퍼런스가 있으면 FastAPI 서버를 실행하고 serve할 수 있습니다. 터미널에서 다음 명령어를 사용해 모델을 서빙할 수 있습니다: