이 노트북은 인터랙티브 노트북입니다. 로컬에서 실행하거나 아래 링크를 사용할 수 있습니다:
Chain of Density를 활용한 요약

Chain of Density 요약이란?
- 초기 요약을 작성한다.
- 핵심 정보를 유지한 채, 요약을 반복적으로 다듬어 더 간결하게 만든다.
- 각 반복마다 Entities와 기술적 세부 정보의 밀도를 높인다.
왜 Weave를 사용하나요?
- LLM 파이프라인 추적: Weave를 사용해 요약 과정의 입력, 출력, 중간 단계를 자동으로 로깅합니다.
- LLM 출력 평가: Weave의 내장 도구를 사용해 요약 결과를 엄밀하고 공정하게 비교·평가합니다.
- 조합 가능한 오퍼레이션 구성: 요약 파이프라인의 여러 부분에서 Weave 오퍼레이션을 결합하고 재사용합니다.
- 원활한 통합: 기존 Python 코드에 최소한의 오버헤드로 Weave를 추가합니다.
환경 설정
Anthropic API 키를 발급받으려면:
- https://www.anthropic.com 에서 계정을 생성합니다.
- 계정 설정에서 API 섹션으로 이동합니다.
- 새 API 키를 생성합니다.
- .env 파일에 API 키를 안전하게 저장합니다.
weave.init(<project name>) 호출은 요약 작업을 위한 새로운 Weave 프로젝트를 초기화합니다.
ArxivPaper 모델 정의
ArxivPaper 클래스를 정의하겠습니다:
PDF 콘텐츠 불러오기
Chain of Density 요약 구현

summarize_current_summary: 현재 상태를 기반으로 한 번의 요약 단계를 생성합니다.iterative_density_summarization:summarize_current_summary를 여러 번 호출하여 CoD 기법을 적용합니다.chain_of_density_summarization: 전체 요약 프로세스를 오케스트레이션하고 결과를 반환합니다.
@weave.op() 데코레이터를 사용하면 Weave가 이 함수들의 입력, 출력, 실행을 추적하도록 할 수 있습니다.
Weave Model 생성

ArxivChainOfDensityPipeline 클래스는 요약 로직을 Weave Model로 캡슐화하여 다음과 같은 주요 이점을 제공합니다:
- 자동 실험 추적: Weave가 모델의 각 run마다 입력, 출력, 파라미터를 자동으로 캡처합니다.
- 버전 관리: 모델의 속성이나 코드에 대한 변경 사항이 자동으로 버전 관리되어, 요약 파이프라인이 시간에 따라 어떻게 발전하는지에 대한 명확한 이력을 생성합니다.
- 재현성: 버전 관리와 추적을 통해 이전의 어떤 결과나 요약 파이프라인 설정도 쉽게 재현할 수 있습니다.
- 하이퍼파라미터 관리:
model과density_iterations같은 모델 속성이 명확하게 정의되고 서로 다른 run 전반에 걸쳐 추적되므로, 실험을 수월하게 진행할 수 있습니다. - Weave 생태계와의 인테그레이션:
weave.Model을 사용하면 평가 및 서빙 기능과 같은 다른 Weave 도구와 매끄럽게 인테그레이션할 수 있습니다.
평가 메트릭 구현
Weave Dataset 생성 및 평가 실행


결론
- 요약 과정의 각 단계에 대해 Weave operation을 생성하는 방법
- 파이프라인을 Weave Model로 래핑하여 손쉽게 추적 및 평가하는 방법
- Weave operation을 사용해 커스텀 평가 메트릭을 구현하는 방법
- 데이터셋을 생성하고 파이프라인을 평가하는 방법