これはインタラクティブなノートブックです。ローカルで実行するか、以下のリンクから開くことができます:
Chain of Density を用いた要約

Chain of Density 要約とは?
- まず初期要約を作成する
- 要約を反復的に洗練し、重要な情報を保持しつつ、より簡潔にしていく
- 各反復ごとに、Entities や技術的な詳細の密度を高めていく
なぜ Weave を使うのか?
- LLM パイプラインを追跡する: Weave を使って、要約プロセスの入力、出力、および中間ステップを自動でログに記録します。
- LLM の出力を評価する: Weave の組み込みツールを使って、要約結果を厳密かつ公平に評価します。
- 合成可能なオペレーションを構築する: 要約パイプラインのさまざまな部分で再利用できる Weave のオペレーション(operation)を組み合わせて構築します。
- シームレスに統合する: 既存の Python コードに、最小限のオーバーヘッドで Weave を組み込みます。
環境を設定する
Anthropic の APIキーを取得するには:
- https://www.anthropic.com でアカウントを作成します
- アカウント設定内の API セクションに移動します
- 新しい APIキーを生成します
- APIキーを
.envファイル内に安全に保存します
weave.init(<project name>) の呼び出しにより、要約タスク用の新しい Weave プロジェクトが初期化されます。
ArxivPaper モデルを定義する
ArxivPaper クラスを作成します。
PDF コンテンツを読み込む
Chain of Density 要約を実装する

summarize_current_summary: 現在の状態に基づいて、要約の 1 ステップ分を生成します。iterative_density_summarization:summarize_current_summaryを複数回呼び出して、CoD 手法を適用します。chain_of_density_summarization: 要約処理全体をオーケストレーションし、その結果を返します。
@weave.op() デコレーターを使用することで、これらの関数の入力、出力、実行が Weave によってトラッキングされます。
Weave モデルを作成する

ArxivChainOfDensityPipeline クラスは、要約ロジックを Weave のモデルとしてカプセル化しており、次のような主な利点があります。
- 実験の自動トラッキング: Weave は、モデルの各 run に対して入力・出力・パラメータを記録します。
- バージョニング: モデルの属性やコードの変更は自動的にバージョン管理され、要約パイプラインが時間とともにどのように進化してきたかの明確な履歴が作成されます。
- 再現性: バージョニングとトラッキングにより、要約パイプラインの過去の任意の結果や設定を簡単に再現できます。
- ハイパーパラメータ管理: モデル属性(
modelやdensity_iterationsなど)が明確に定義され、run 間で追跡されるため、実験がしやすくなります。 - Weave エコシステムとのインテグレーション:
weave.Modelを使用することで、評価やサービング機能など、他の Weave ツールとシームレスに統合できます。
評価メトリクスを実装する
Weave Dataset を作成して評価を実行する


結論
- 要約プロセスの各ステップに対して Weave operation を作成する方法
- パイプラインを Weave モデルでラップして、追跡と評価を容易にする方法
- Weave operation を使ってカスタム評価メトリクスを実装する方法
- データセットを作成し、パイプラインの評価を実行する方法