これはインタラクティブなノートブックです。ローカルで実行するか、以下のリンクを使用できます。
Chain of Density による要約

Chain of Density要約とは何ですか?
- 最初の要約から始めます
- 重要な情報を維持したまま、要約を反復的に洗練して、より簡潔にします
- 反復のたびに、Entities と技術的な詳細の密度を高めます
なぜ Weave を使用するのか?
- LLM パイプラインをトラッキングする: Weave を使用して、要約プロセスの入力、出力、途中のステップを自動的にログします。
- LLM の出力を評価する: Weave の組み込みツールを使用して、要約を同一条件で厳密に評価します。
- 構成可能なオペレーションを構築する: 要約パイプラインのさまざまな部分で Weave のオペレーションを組み合わせ、再利用します。
- シームレスに統合する: 既存の Python コードに、最小限のオーバーヘッドで Weave を追加します。
環境を設定する
AnthropicのAPIキーを取得するには、次の手順に従います。
- https://www.anthropic.com でアカウントを作成します
- アカウント設定のAPIセクションにアクセスします
- 新しいAPIキーを生成します
- APIキーを .env ファイルに安全に保存します
weave.init(<project name>)を呼び出すと、要約タスク用の新しいWeave projectが設定されます。
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 Model を作成する

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


結論
- 要約プロセスの各ステップに対応する Weave オペレーションを作成する
- トラッキングと評価を容易にするために、パイプラインを Weave Model でラップする
- Weave オペレーションを使用してカスタム評価メトリクスを実装する
- データセットを作成し、パイプラインの評価を実施する