이 노트북은 대화형입니다. 로컬에서 실행하거나 아래 링크를 통해 열 수 있습니다:
Chain of Density를 활용한 요약

Chain of Density 요약이란?
- 초기 요약을 작성합니다
- 핵심 정보를 유지하면서 요약을 반복적으로 정제해 더 간결하게 만듭니다
- 각 반복마다 엔티티와 기술적 세부 정보의 밀도를 높입니다
왜 Weave를 사용해야 하나요?
- LLM 파이프라인 추적: Weave를 사용해 요약 과정의 입력, 출력, 중간 단계를 자동으로 기록합니다.
- LLM 출력 평가: Weave의 내장 도구를 사용해 요약 결과를 엄밀하고 동일 조건에서 비교 가능하게 평가합니다.
- 조합 가능한 연산 구성: 요약 파이프라인의 여러 부분에서 Weave 연산을 결합해 재사용합니다.
- 원활한 통합: 최소한의 오버헤드로 기존 Python 코드에 Weave를 통합합니다.
환경 설정
Anthropic API key를 발급받으려면:
- https://www.anthropic.com 에서 계정을 생성합니다.
- 계정 설정의 API 섹션으로 이동합니다.
- 새 API key를 생성합니다.
- 생성한 API key를
.env파일에 안전하게 저장합니다.
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 모델 생성하기

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


결론
- 요약 과정의 각 단계에 대해 Weave op를 생성
- 파이프라인을 Weave Model로 래핑해 손쉽게 추적하고 평가할 수 있도록 구성
- Weave op를 사용해 사용자 정의 평가 지표를 구현
- 데이터셋을 생성하고 파이프라인에 대한 평가를 실행