データセット準備

Prev Next

Classic/VPC環境で利用できます。

データセット準備では、データセットの規格やデータセットの作成方法、作成例について説明します。データセットは、言語モデルをユーザーが望むタスクに最適化された形で学習させるために使用するデータの集まりです。

HyperCLOVA X言語モデルに学習させるには、Instructionデータセットガイドに従ってデータセットを準備する必要があります。

注意

個人情報を含むデータセットをアップロードすることで発生する問題や結果に対するすべての責任はユーザーにあります。

Instructionデータセット

Instructionデータセットは、HyperCLOVA Xが持つ能力を引き出すデータであり、データの量よりも質が重要です。長くて詳しく書くほど、目的の回答形式を具体的に書くほど、チューニングのパフォーマンスを向上させることができます。ユーザーのタスクによって必要なデータの量が異なる場合がありますが、チューニングの性能を高めるためには、1ターン(Text、Completionペア)基準で最低400件以上のデータが必要です。HyperCLOVA Xがまだ学習していない分野である場合、より多くのデータが必要です。

Instructionデータセットのファイル形式

Instructionデータセットのファイル形式は、次の通りです。

項目 説明
ファイルの拡張子 .csvまたは.jsonl
ファイルエンコードの形式 UTF-8
最小データ
  • 最小: 100行
  • 推奨: 1000行~100,000行
ファイル容量 1TB以下(Ncloud Object Storageの可能範囲)

Instructionデータセットテンプレート

Instructionデータセットを構成するフィールドは、次の通りです。

フィールド 説明
System_Prompt CLOVA Studioが実行する具体的な指示文(選択項目)
C_ID Conversation ID。同じテーマで構成された会話シナリオに付与する番号。0から始まり1ずつ増加
T_ID Turn ID。1つの会話シナリオ内で行われる質問(Text)、回答(Completion)ペアに付与する数字。0から始まり1ずつ増加
Text 予想されるユーザーのすべての発話内容
Completion 予想される CLOVA Studioが答えるべきすべての発話内容
参考
  • 1行(System_Prompt(任意)、Text、Completionのペア)のデータは、空白を含めて8000文字以内で入力してください。8000文字を超える場合、データセットの一部のみがアップロードされます。
  • ドキュメント分類タスク用データセットの場合、各分類のカテゴリごとに最低200行以上のデータを入力してください。
    例) 肯定30%(300件)、否定30%(300件)、中立40%(400件)
  • 複数の分類タスク用データセットの場合、分類ラベルを最大15個まで入力できます。
  • 分類ラベルは1つの単語のみ使用することをお勧めします。スペースや記号は使用できません。

Instructionデータセットのファイル形式

Instructionデータセットは、CSV形式または JSON形式で作成します。ファイル形式が CSVファイルの場合は、必ず Instructionデータセットテンプレートをご利用ください。テンプレートに合わないファイルはアップロードできません。

CSVファイル

CSVファイルでデータセットを構成するには、必ず以下の内容をご確認ください。

  • 最初の行には「C ID」、「T ID」、「Text」、「Completion」を正確に入力し、4つの列のみで構成されている必要があります。
  • 空行と列は必ず削除します。
  • 改行が必要な場合、「\n」で区切ります。

JSONLファイル

JSONLファイルでデータセットを構成するには、必ず以下の内容をご確認ください。

  • 各行は、{"C ID": 順序, "T ID": 順序, "Text": "入力値", "Completion": "目的の結果値"}で構成する必要があり、"入力値"と"目的の結果値"には少なくとも1文字以上を含める必要があります。
  • 二重引用符は、""で表記します。
  • 改行が必要な場合、「\n」で区切ります。

会話シナリオの方式

ユーザーの目的に応じてシングルターン対話シナリオまたはマルチターン対話シナリオでデータセットを構成できます。シングルターンは質問1つで答えを得る方式で、マルチターンは対話を交わしながら目的の結果を具体化する方式です。

参考

シングルターン

シングルターンシナリオは、特定の C IDに対して1ターン(T ID=0)のみで構成します。1つの C IDが1つの T IDを持つので、T_IDの値はすべて「0」になります。

clovastudio-dataset_singleturn_ko

マルチターン

マルチターンシナリオは、特定の C IDに対して2ターン以上(T ID=0)で構成します。1つの会話テーマで3ターン以上を構成することをお勧めします。

clovastudio-dataset_multiturn_ko

データセットフィールド作成

データセットの各フィールドを作成する方法について説明します。

System_Prompt

CLOVA Studioが実行する具体的な指示文です。System Promptフィールドは選択項目ですが、学習時にデータセットに System Promptフィールドを追加すると CLOVA Studioが指示したタスクをより実行しやすくなります。
データセットに System Promptフィールドを含める場合、1列目に追加する必要があります。フィールドの大小文字は区分しません。同じ C IDには同じ内容の指示文(System Prompt)を入力し、インファレンス時にも同じ指示文を適用します。

AIアシスタントは、与えられた内容を正確に理解して質問に回答します。

C_ID

C_IDは、同じテーマで構成された対話シナリオに付与する番号です。0から始まり1ずつ増加します。

T_ID

T_IDは、1つの対話シナリオ内で行われる質問(Text)、回答(Completion)ペアに付与する番号です。0から始まり1ずつ増加します。

Text

Textはユーザーの要件です。様々なテーマや言い回しで作成します。どんな内容でも構わず、タイプミスや碑文などが混ざっていても構いません。

  • 指示文のみで構成する場合

    今日は本当に退屈だな(泣)
    
    ワセリンは何でできていますか?
    
    俺今日めっちゃ具合悪いから、職場の上司に出勤遅れそうだとメッセージ送ってぇぇー
    
  • 指示文と付加情報を一緒に構成する場合

    次の段落をもう少し共感できる文章に書き直して。 
    {フォーマルな段落}
    
    次のドキュメントを読んで、質問に正確に答えて。
    {ドキュメント}
    {質問}
    
    次のコードが果たすロールは何?
    {コード}
    

Completion

Completionはユーザーの要件に対するレスポンスです。長く、詳しく作成します。順序、点リスト、改行、マークダウン形式の表形式など、好きな回答形式を作成するほど良いです。

上着のネックラインには様々な種類があります。一般的に以下のような種類があります。 
1. ラウンドネック(Round Neck)
2. Vネック(V-neck)
3. クルーネック(Crew Neck)
4. スクエアネック(Square Neck)
5. ボートネック(Boat Neck)
上着のネックラインには様々な種類があります。以下のように表でまとめることができます。 
| ネックラインの種類 | 説明 |
| ラウンドネック(Round Neck) | 首をやさしく包み込む形 |
| Vネック(V-neck) | 首元を深く掘り下げ、涼しげな印象を与える形 |
| クルーネック(Crew Neck) | ラウンドネックより少し広めの形 |
| スクエアネック(Square Neck) | 四角い形状で首を包み込む形 |
| ボートネック(Boat Neck) | 横方向に広い形状でやさしい感じを与える |
旅行に出かけるときは、次のようなことを用意する必要があります。
- パスポートの日付と目的地の決定
- パスポート、ビザ、予防接種など必要書類の準備 
- 旅行保険加入
- 旅行パッキング 
- 旅行中に必要な持ち物の購入 
- 航空会社、ホテル、交通手段の予約 
- 旅行先情報の収集
- 予期せぬ事態への備え 

データセットアップロード

Object Storageにデータセットをアップロードして、学習作成 APIを呼び出す際に活用する方法について説明します。

データセットアップロードのシナリオ

学習を行う際に必要なデータセットのアップロード時に Object Storageを活用します。 Object Storageにデータセット専用バケットを作成してデータセットをアップロードすると、学習作成 APIの呼び出し時に Object Storageにアップロードされたデータセットを読み取って学習を行えます。
このプロセスで安全にデータセットを管理するため、データセットをアップロードする権限とバケット内のファイルリストを照会できる権限をポリシーとして作成し、サブアカウントに付与します。

データセットをアップロードし、それを活用して学習作成 APIを呼び出すシナリオは、次の通りです。

  1. バケット作成を参照して Object Storageにデータをアップロードするバケットを作成します。
  2. [サブアカウント作成](#서브 계정 생성)を参照し、データのアップロード用に使用するサブアカウントを作成します。
  3. [サブアカウントに適用するポリシーの作成](#서브 계정 생성)、サブアカウントにポリシーを適用を参照してサブアカウントのポリシーを作成し、適用します。
  4. データセットのアップロードを参照してバケットにデータセットをアップロードします。
  5. 学習作成 APIの呼び出し時に必要な情報確認を参照し、以下の情報を確認します。
    • 学習に活用するデータセットが位置したバケット名
    • 学習に活用するデータセットのファイルパス
    • 学習に活用するデータセットにアクセスする時に必要なアクセスキー
    • 学習に活用するデータセットにアクセスする時に必要なシークレットキー
  6. 5番で確認した情報を活用して学習作成 APIを呼び出します。
参考
  • Sub Accountとは、複数のユーザーが同じリソースを利用・管理できるサブアカウントを提供するサービスです。Sub Accountに関する詳細は、Sub Account ご利用ガイドをご参照ください。
  • Object Storageとは、ファイル保存場所を提供するサービスです。Object Storageに関する詳細は、Object Storage ご利用ガイドをご参照ください。

バケット作成

データセットをアップロードするバケットを作成する方法は、次の通りです。

  1. NAVERクラウドプラットフォームコンソールで、 i_menu > Services > Storage > Object Storage メニューを順にクリックします。
  2. [ご利用の申し込み] ボタンをクリックしてご利用の申し込みを完了します。
  3. Bucket Management メニューで [バケット作成] ボタンをクリックします。
  4. 作成するバケット名を入力した後、 [次へ] ボタンをクリックします。
    • 学習作成 APIの呼び出し時にバケットの名前が必要です。
  5. 設定管理画面が表示されたら設定を変更せず、 [次へ] ボタンをクリックします。
  6. 権限管理画面が表示されたら全体公開項目で公開しないを選択した後、 [次へ] ボタンをクリックします。
  7. 設定内容を確認した後、 [バケット作成] ボタンをクリックします。

サブアカウント作成

アクセス権限が制限されたサブアカウントを活用するとデータセットを安全にアップロードできます。
サブアカウントを作成する方法は次の通りです。

  1. NAVERクラウドプラットフォームコンソールで、 i_menu > Services > Management & Governance > Sub Account メニューを順にクリックします。
  2. Sub Accounts メニューで、 [サブアカウント作成] ボタンをクリックします。
  3. サブアカウントの情報を入力します。
    • ログイン ID : ログイン時に使用する IDを入力
    • ユーザー名 : サブアカウントユーザーの名前を入力
    • アクセス権限
      • コンソールアクセス のチェックボックスを解除
      • API Gatewayアクセス のチェックボックスを選択した後、 すべての Sourceからアクセス可能を選択
    • 2段階認証 : 2段階認証手段の使用有無を選択
    • ログインパスワード : 直接入力を選択した後、パスワードを設定
    • パスワード再設定のお知らせ : チェックボックスを解除
  4. [作成] ボタンをクリックします。
  5. 作成完了画面が表示されたらサブアカウント情報をコピーした後、 [確認] ボタンをクリックします。
  6. サブアカウントの詳細情報画面が表示されたら、 [Access Key] タブで [追加] ボタンをクリックします。
    • Access Key Idと Secret Key情報を作成します。

サブアカウントに適用するポリシー作成

Object Storageの特定バケットにデータセットをアップロードし、バケットのファイルリストを照会できる権限をポリシーとして作成した後、サブアカウントに付与します。
サブアカウントに適用するポリシーを作成する方法は、次の通りです。

  1. NAVERクラウドプラットフォームコンソールで、 i_menu > Services > Management & Governance > Sub Account メニューを順にクリックします。
  2. Policies メニューで [ポリシー作成] ボタンをクリックします。
  3. ポリシー情報とその適用対象を設定します。
    • ポリシー名 : 作成するポリシー名を入力
    • プラットフォーム : VPCポリシーを選択
    • サービス : Object Storageを選択
  4. アクション名 領域が表示されたら、書き込み権限[開く] ボタンをクリックした後、writeObject を選択します。
  5. Resources 領域で Bucketのリソース指定有無を有効にした後、 [リソース選択] ボタンをクリックします。
  6. Bucketリソース指定画面が表示されたら、データセットをアップロードするバケットを選択し後、 image.png アイコンをクリックします。
  7. データセットをアップロードするバケットが指定されたリソースリストに追加されたら、 [適用] ボタンをクリックします。
  8. [適用対象の追加] ボタンをクリックします。
  9. 適用対象に Object Storageが追加されたことを確認した後、 [作成] ボタンをクリックします。

サブアカウントにポリシーを適用

サブアカウントにポリシーを適用する方法は、次の通りです。

  1. NAVERクラウドプラットフォームコンソールで、 i_menu > Services > Management & Governance > Sub Account メニューを順にクリックします。
  2. サブアカウント名をクリックします。
  3. サブアカウントの詳細情報画面の [ポリシー] タブで [個別権限の追加] ボタンをクリックします。
  4. ポリシー追加画面が表示されたら、 [ユーザー定義ポリシー] タブをクリックして作成したポリシーのチェックボックスを選択した後、 [追加] ボタンをクリックします。

データセットアップロード

Object Storageバケットにデータセットをアップロードする方法は、次の通りです。

  1. データセットをアップロードするユーザーにサブアカウント情報と Access Key Id、Secret Key情報を転送します。
  2. Object Storage APIガイドを参照してデータセットを Object Storageにアップロードします。

学習作成 API呼び出し時に必要な情報確認

Object Storageにアップロードしたデータセットを活用して学習作成 APIを呼び出す時に必要な情報を確認する方法は、次の通りです。

  1. NAVERクラウドプラットフォームコンソールで、 i_menu > Services > Storage > Object Storage メニューを順にクリックします。
  2. Bucket Management メニューで、データセットをアップロードしたバケットの名前をコピーして trainingDatasetBucketに適用します。
  3. バケットにアップロードされたファイルをクリックした後、詳細情報の Linkのうちバケット名を除いたバケット内のパスを trainingDatasetFilePathに適用します。
  4. NAVERクラウドプラットフォームコンソールで、 i_menu > Services > Management & Governance > Sub Account メニューを順にクリックします。
  5. バケットにアクセス可能なサブアカウントをクリックした後、詳細情報で [Access Key] タブをクリックします。
  6. Access Key Id 情報を trainingDatasetAccessKeyに適用します。
  7. Secret Key 情報を trainingDatasetSecretKeyに適用します。
参考

学習作成 APIの詳細な説明は、CLOVA Studio APIガイドをご参照ください。