이 노트북은 대화형 노트북입니다. 로컬에서 실행하거나 아래 링크를 사용해 보세요:
사전 준비 사항
1. Weave로 프롬프트 생성 및 반복 개선
2. 데이터셋 가져오기
base64로 인코딩되어 있으므로, LLM이 별도의 전처리 없이 바로 사용할 수 있습니다.
3. NER 파이프라인 구축
- 데이터셋에서 PIL 이미지를 입력으로 받아 VLM에 전달할 수 있는
base64로 인코딩된 이미지 문자열을 반환하는encode_image함수 - 이미지와 시스템 프롬프트를 입력으로 받아, 시스템 프롬프트에 설명된 대로 해당 이미지에서 추출된 엔터티를 반환하는
extract_named_entities_from_image함수
named_entity_recognation이라는 함수를 만들어 다음을 수행하세요:
- 이미지 데이터를 NER 파이프라인에 전달하고
- 결과를 올바르게 포맷된 JSON으로 반환합니다
@weave.op() decorator 데코레이터를 사용하여 W&B UI에서 함수 실행을 자동으로 추적하고 기록합니다.
named_entity_recognation 함수를 실행할 때마다 전체 트레이스 결과를 Weave UI에서 확인할 수 있습니다. 트레이스를 보려면 Weave 프로젝트의 Traces 탭으로 이동하세요.
processing_results.json에 저장합니다. 결과는 Weave UI에서도 확인할 수 있습니다.

4. Weave를 사용해 파이프라인 평가하기
- Programatic Scorer
- LLM-as-a-judge Scorer
프로그램 기반 스코어러
check_for_missing_fields_programatically는 모델 출력(named_entity_recognition 함수의 출력)을 입력으로 받아, 결과에서 어떤 keys가 누락되었거나 비어 있는지를 식별합니다.
이 검사는 모델이 어떤 필드도 추출하지 못한 샘플을 식별하는 데 매우 유용합니다.
판사 역할 LLM 점수기
check_for_missing_fields_with_llm은 LLM(구체적으로 OpenAI의 gpt-4o)을 사용해 점수를 산출합니다. eval_prompt의 내용에 따라 check_for_missing_fields_with_llm은 Boolean 값을 출력합니다. 모든 필드가 이미지 정보와 일치하고 형식이 올바르면 Scorer는 true를 반환합니다. 어떤 필드든 누락되어 있거나 비어 있거나 잘못되었거나 불일치가 있으면 결과는 false가 되며, Scorer는 문제를 설명하는 메시지도 함께 반환합니다.
5. 평가 실행
dataset 전체를 자동으로 순회하면서 결과를 Weave UI에 모아서 기록하는 평가 호출을 정의합니다.
다음 코드는 평가를 실행하고, NER 파이프라인의 모든 출력에 두 개의 Scorer를 적용합니다. 결과는 Weave UI의 Evals 탭에서 확인할 수 있습니다.
