

# Amazon Nova 2 での CPT のデータの準備
<a name="nova-data-prep-cpt-2"></a>

Amazon Nova 2 の CPT は、未加工のテキストをトレーニングして、モデルが特定のドメイン、用語、書き込みパターンに関するより深い知識を取得できるようにします。このページでは、Amazon Nova 2 モデルの CPT トレーニングデータを準備するためのデータ形式、サポートされている機能、制約、およびベストプラクティスについて説明します。

**ヒント**  
トレーニングジョブを開始する前にデータセット形式を検証するには、[検証ツール](nova-data-preparation.md#nova-data-validation-tools) を参照してください。

**Topics**
+ [データ形式](#nova-2-cpt-data-overview)
+ [入力例](#nova-2-cpt-data-examples)
+ [サポートされている機能](#nova-2-cpt-supported-features)
+ [一般的/テキスト理解](#cpt-general-constraints)
+ [CPT 用の構造化ビジネスデータセットの準備](#nova-cpt-2-structured-data)
+ [データの表示方法が重要](#nova-cpt-2-data-presentation)
+ [CPT のサンプルパッキング](#nova-cpt-2-packing)

## データ形式
<a name="nova-2-cpt-data-overview"></a>

CPT トレーニングデータセットと検証データセットは JSONL ファイルである必要があります。各行は、文字列値を持つ 1 つの `text` フィールドを含む JSON オブジェクトです。テキストエントリには、ターゲットドメインを表す、自然に流れる高品質のコンテンツを含める必要があります。

### テキスト
<a name="cpt-field-text"></a>

必須。この例のトレーニングコンテンツを含む文字列。

```
{"text": "{{training content}}"}
```

**注記**  
データ混合を使用する場合は、`max_steps=2` で最初のジョブを実行します。これにより、データアクセスのための最適化をクラスターに作成し、すべてのデータミックスが利用できることを検証できます。

## 入力例
<a name="nova-2-cpt-data-examples"></a>

以下は、複数のテキストサンプルを含む基本的な CPT JSONL データセットの例です。

```
{"text": "AWS stands for Amazon Web Services"}
{"text": "Amazon SageMaker is a fully managed machine learning service"}
{"text": "Amazon Bedrock is a fully managed service for foundation models"}
```

## サポートされている機能
<a name="nova-2-cpt-supported-features"></a>

次の表は、Amazon Nova 2 での CPT の機能サポートをまとめたものです。


**CPT 機能のサポート**  

| 機能 | Amazon Nova 2 の CPT | 
| --- | --- | 
| テキスト理解 | Nova 2.0 Lite でサポートされています。「[一般的/テキスト理解](#cpt-general-constraints)」を参照してください。 | 
| 画像理解 | サポートされていません | 
| 動画理解 | サポートされていません | 
| ドキュメント理解 | サポートされていません | 
| ツール呼び出し | サポートされていません | 
| 推論 | サポートされていません | 

## 一般的/テキスト理解
<a name="cpt-general-constraints"></a>

このセクションでは、Amazon Nova 2 トレーニングデータの CPT を準備するための一般的な制約とベストプラクティスをまとめています。

**制約**


**一般的なデータセットの制約**  

| 制約 | 詳細 | 
| --- | --- | 
| データセット形式 | text 文字列フィールドを含む JSONL (1 行に 1 つの JSON オブジェクト)。 | 
| サポートされているモダリティ | テキストのみ | 
| 推奨データ量 | 最良の結果を得るには、数百億トークン規模のドメイン固有のコンテンツが必要です。 | 

**ベストプラクティス**:
+ ターゲットドメインを表す、自然に流れる高品質のコンテンツを使用してください。
+ トレーニングデータの品質は、継続的な事前トレーニングを成功させるための最も重要な決定要素です。CPT データはよく「ラベルなし」と表現されますが、データの構造化、フォーマット、提示の方法によって、モデルがビジネスユースケースに必要な知識とスキルを習得するかどうかが決まります。
+ CPT の後、モデルが新たに習得した知識を活用して有用なタスクを完了できるように、追加の指示チューニング (SFT または RFT) の実行を計画してください。

**入力例**

### テキストのみのサンプル
<a name="cpt-general-sample"></a>

```
{"text": "AWS stands for Amazon Web Services"}
{"text": "Amazon SageMaker is a fully managed machine learning service"}
{"text": "Amazon Bedrock is a fully managed service for foundation models"}
```

## CPT 用の構造化ビジネスデータセットの準備
<a name="nova-cpt-2-structured-data"></a>

ほとんどの企業は、製品カタログ、ユーザープロファイル、トランザクションログ、フォーム送信、API コール、運用メタデータなど、構造化データの豊富なリポジトリを持っています。一見すると、これは標準の事前トレーニングで通常使用される非構造化ウェブテキストとは大きく異なっているように見えます。

構造化されたビジネスデータから効果的に学習するには、ダウンストリームタスクを慎重に検討し、モデルが適切な予測関係を学習するようにデータの示し方を設計します。

継続的な事前トレーニングの可能性を最大限に引き出すには、次の点を考慮してください。
+ 推論時にモデルが実行するタスク
+ 未加工データに存在する情報
+ モデルが情報を正しく抽出して操作することを学習するようにデータを構築する方法

構造化データをトレーニングにダンプするだけでは、モデルにその推論を教えることはできません。データの示し方を積極的に構想し、モデルが学習する内容を手引きします。

**文献中の CPT の構造化データ**  
CPT はドメインの事実をモデルにパックできますが、入力やタスクがシフトしたときにそれらの事実を取得および操作できるようにすることに失敗することがよくあります。制御された実験から、事前トレーニング中に多様な拡張を行わないと、モデルは後の指示調整後も抽出が難しいままの脆弱な方法で事実を記憶し、トレーニングの早い段階でシグナルのような指示を挿入することを推奨することが示されています。半構造化データの場合、ランダムなシリアル化やその他の拡張によりスキーマのオーバーフィットが軽減されるため、CPT は最初に実行し、後で IFT を実行するのではなく、指示スタイルのタスクとインターリーブする必要があります。財務に重点を置いた作業では、バッチ時に CPT と指示データを一緒に組み合わせることで一般化が向上し、シーケンシャルレシピと比べて忘れることが減ることがさらにわかります。Qwen テクニカルレポートは、高品質の命令データを事前トレーニング自体に統合することで、同じパターンに収束します。これにより、コンテキスト学習が強化され、新しいドメインの知識を取得しながら指示が維持されます。

半構造化コーパスのデータ拡張が主要なレバーです。合成グラフ対応 CPT は、小さなドメインセットをエンティティにリンクされたコーパスに拡張します。エンティティにリンクされたコーポラは、推論時に取得する関係と複合を明示的に学習します。共同 CPT と指示の混合は、財務のシーケンシャルパイプラインよりも優れており、ドメインと一般データとのバランスを取ることで、一般スキルの低下を軽減できます。非常に大規模なドメイン CPT は、幅広い能力を保持し、モデルマージによるトレードオフもできますが、それでも次のステップとして指示チューニングを指し、CPT 中に指示シグナルを導入する価値を強化します。

**ランダム化とシャッフルによる多様性の注入**  
構造化データセットと半構造化データセットからモデルを効果的に教育するのに役立つ一般的な戦略は、データセット内のフィールドの順序をシャッフルし、いくつかのキーをランダムにドロップすることです。

フィールドをシャッフルすると、モデルは各値が表示される場所ではなく意味を読み取って、すべてのフィールド間の関係を学習します。例えば、Amazon ストアに投稿されたビデオゲームの場合、「タイトル」、「プラットフォーム」、「価格」、「条件」、および「編集」が異なる順序で到着すると、モデルは「3 番目のスロットはプラットフォーム」に依拠することはできません。ラベルを値にバインドし、タイトル ⇄ プラットフォーム、プラットフォーム ⇄ 価格、条件 ⇄ 価格など、属性間の相互関係を学習する必要があります。そのため、例えば、ゲーム名と観測価格から潜在的なプラットフォームを推測したり、タイトルとプラットフォームを考慮して妥当な価格範囲を見積もったりすることができます。

シリアル化中にキーをランダムにドロップすると、特徴量のドロップアウトのように動作します。これにより、1 つのフィールドでの同時適応が防止され、モデルが残りの証拠から欠落した情報を復元するように強制されます。「プラットフォーム」がない場合、モデルはタイトル文字列または互換性テキストから取得する必要があります。「価格」が非表示の場合は、プラットフォーム、エディション、および条件の 3 つの情報から価格を推測する必要があります。これにより、対称性 (A→B および B→A)、乱雑な実世界の出品に対する堅牢性、さらにフィールドの欠落、名前の変更、または順序の変更時のスキーマの不変性が構築されます。

ショッピングスタイルの例を使うと、具体的にわかりやすくなります。「Title: 'Elden ring' \| Platform: PlayStation 5 \| Condition: Used—Like New \| Price: $34.99」や「Price: $34.99 \| Title: 'Elden Ring' \| Condition: Used—Like New \| Platform: PlayStation 5」のような並べ替えというように、同じアイテムを複数の方法でシリアル化します。一部のパスでは、説明に「Compatible with PS5」を残したまま「Platform」がドロップします。{title, price} からのプラットフォームの予測や {title, platform} からの価格バケットの予測など、補完的な目標をトレーニングします。キーの順序や存在も異なるため、唯一の安定した戦略は、テンプレートを記憶するのではなく、属性間の真の関係を学習することです。

## データの表示方法が重要
<a name="nova-cpt-2-data-presentation"></a>

LLM は、すでに見たものから次のトークンを予測することで学習します。トレーニング中に表示されるフィールドとイベントの順序によって、モデルが学習できる内容が決まります。トレーニング形式が実際のタスクと一致する場合、損失は正確な決定トークンになります。フィールドが構造なしで一緒に投げられると、モデルはショートカットを学習するか、人気度を記憶し、オプションから選択するように求められたときに失敗します。

まず状況を示し、次にオプションを示し、そして決定を示します。モデルが結果や説明についても学習する必要がある場合は、決定の後にそれらを学習するように順序立てます。

## CPT のサンプルパッキング
<a name="nova-cpt-2-packing"></a>

**パッキングとは?**  
パッキングとは、トレーニングデータの各シーケンスウィンドウを複数の完全なサンプルで埋めることで、ウィンドウがパディングではなく実際のトークンで密集した状態になることを意味します。

**重要な理由**  
トレーニング中に、コンテキストの最大長が設定されます(8,192 トークンなど)。バッチは [バッチサイズ × コンテキスト長] の形になります。トレーニング例がコンテキストの長さより短い場合、残りの位置はパディングされます。損失がマスクされている場合でも、パディング部分はアテンション層と MLP カーネルの処理対象となるため、学習信号を持たないトークンの分も計算リソースが消費されてしまいます。

**パッキングの方法**  
複数のサンプルをパッキングするには、複数のトレーニングサンプルを `[DOC]` 区切り文字で連結し (`[DOC]` の前後のスペースに注意してください)、全長が目的のコンテキストの長さ内に収まるようにします。

パッキングされたドキュメントの例は次のようになります。

```
{"text": "training sample 1 [DOC] training sample 2 [DOC] training sample 3"}
```