PALM 2.0 学習済み生成モデル-中国語ベース

この記事は約10分で読めます。

PALM模型は汎用的な事前トレーニングされた生成モデルで、様々なダウンストリームの生成タスクを解決するために使用することができます。このモデルは膨大な無監督データを使って、自エンコーディングと自帰帰タスクを組み合わせて事前トレーニングを行っています。テキスト生成に関連するタスクには、テキスト要約、質問生成、data-to-textなどが含まれます。ここでは、PALMのベースバックボーンモデルを提供し、ダウンストリームの生成タスクのファインチューンに使用することができます。

モデルの説明:

実際のシーンで一般的に見られるテキスト生成のニーズに合わせて、独自にPALM事前トレーニング言語生成モデルを開発しました。このモデルは大規模なテキストで事前トレーニングされ、ダウンストリームの自然言語生成タスクのモデルパラメーターとして使用することができます。PALMは以下の特徴があります:

より強い理解能力: コンディショナルジェネレーションのために特別に設計された事前トレーニングタスクにより、モデルの文脈に対する理解能力が強化されます。 より少ないラベルが必要: モデルは大量のテキスト資料で事前トレーニングされ、ダウンストリームの生成タスクに必要なラベルデータの量を大幅に削減します。 優良な性能: 中英両方のモデルは大規模なデータでトレーニングされ、NLGタスクに適応した独自の事前トレーニング目標を採用しています。 様々な生成タスクに適応可能: PALMは要約、質問生成、paraphrasingなど、様々な異なる生成タスクに使用することができます。 使いやすい: ファインチューンが容易で、従来の生成に基づくエンコーダーデコーダーフレームワークを使用しています。 このモデルはPALM汎用事前トレーニング生成モデルであり、すべての中国語生成シーンのトレーニングに使用することができます。例としてはdata-to-text、要約生成などがあります。PALMモデルの詳細は、PALM an Autoencoding&Autoregressive Language Model for Context-conditioned Generationを参照してください。

関連するモデル:

  • PALM 2.0要約生成モデル-中国語-base: PALM2.0中国語ベースモデルに基づいてトレーニングされた要約生成モデル
  • PALM 2.0要約生成モデル-中国語-large: PALM2.0中国語ラージモデルに基づいてトレーニングされた要約生成モデル
  • PALM 2.0商品文生成-中国語-base: PALM2.0中国語ベースでトレーニングされた商品文生成モデル
  • PALM 2.0天気生成モデル-中国語-base: PALM2.0中国語ベースでトレーニングされた天気情報生成モデル

期待されるモデルの使用方法と適応範囲:

このモデルは多くのダウンストリーム生成シーンに主として使用されます。ユーザーは独自の生成の入力出力トレーニングデータを構築することができます。具体的な呼び出し方法については、コードの例を参照してください。

モデルの限界と可能性のあるバイアス:

モデルはデータセットでトレーニングされるため、いくつかのバイアスが生じる可能性があります。ユーザーは自分で評価してどのように使用するかを決定してください。

トレーニングデータの紹介:

このモデルは大量の中国語の無監督データでトレーニングされ、中国語のダウンストリームの複数の生成タスクでSOTAを達成しました。

モデルのトレーニングプロセス:

トレーニング モデルは2つのNVIDIA V100マシンを使用してトレーニングされ、以下のハイパーパラメーター設定がされています:

  • train_epochs=15
  • max_sequence_length=128
  • batch_size=8
  • learning_rate=1e-3
  • optimizer=AdamW

ファインチューンコードの例:

import tempfile
from modelscope.msdatasets import MsDataset
from modelscope.metainfo import Trainers
from modelscope.trainers import build_trainer

# DuReader_robust-QGはサンプルデータセットで、ユーザーは自分のデータセットを使用してトレーニングすることもできます。
dataset_dict = MsDataset.load('DuReader_robust-QG')

# トレーニングデータの入力と出力はテキストで、データセットをsrc_txtへの入力、tgt_txtへの出力の形式に前処理する必要があります。
train_dataset = dataset_dict['train'].remap_columns({'text1': 'src_txt', 'text2': 'tgt_txt'})
eval_dataset = dataset_dict['validation'].remap_columns({'text1': 'src_txt', 'text2': 'tgt_txt'})

# ユーザー独自のデータセットの構成
# train_dataset_dict = {"src_txt": ["text1", "text2"], "tgt_txt": ["text1", "text2"]}
# eval_dataset_dict = {"src_txt": ["text1", "text2"], "tgt_txt": ["text1", "text2"]}
# train_dataset = MsDataset(Dataset.from_dict(train_dataset_dict))
# eval_dataset = MsDataset(Dataset.from_dict(eval_dataset_dict))

num_warmup_steps = 500
def noam_lambda(current_step: int):
    current_step += 1
    return min(current_step**(-0.5), current_step * num_warmup_steps**(-1.5))

# コードでconfigurationの設定を変更することができます。
def cfg_modify_fn(cfg):
    cfg.train.lr_scheduler = {
        'type': 'LambdaLR',
        'lr_lambda': noam_lambda,
        'options': {
            'by_epoch': False
        }
    }
    cfg.train.optimizer = {
        "type": "AdamW",
        "lr": 1e-3,
        "options": {}
    }
    cfg.train.max_epochs = 15
    cfg.train.dataloader = {
        "batch_size_per_gpu": 8,
        "workers_per_gpu": 1
    }
    return cfg

kwargs = dict(
    model='damo/nlp_palm2.0_pretrained_chinese-base',
    train_dataset=train_dataset,
    eval_dataset=eval_dataset,
    work_dir=tempfile.TemporaryDirectory().name,
    cfg_modify_fn=cfg_modify_fn)
trainer = build_trainer(
    name=Trainers.text_generation_trainer, default_args=kwargs)
trainer.train()

トレーニングのヒント:

ハイパーパラメーターの調整は主にlrとepochで、cfg_modify_fnで変更することができます。 生成するデータの長さが短い場合は、トレーニングラウンドを少なくすることができますが、10~20epoch程度です。生成するデータの長さが長い場合は、30~50epochなど、より多くのラウンドが必要です。 生成に必要なデータの量は大きいですが、タスクが簡単な場合は1万~10万で十分ですが、生成が難しいタスクにはより多くのデータが必要です。

データの評価と結果:

モデルはLCSTSテストデータで評価され、以下の結果が出ました。

  • Rouge-1: 43.31
  • Rouge-2: 28.81
  • Rouge-L: 39.78

モデルはADGENテストデータで評価され、以下の結果が出ました。

  • Bleu-4: 10.9
  • Rouge-1: 43.59
  • Rouge-L: 27.49

関連する論文と引用情報:

もし私たちのモデルが役立つなら、私たちの記事を引用してください:

@inproceedings{bi-etal-2020-palm, title = "{PALM}: Pre-training an Autoencoding & Autoregressive Language Model for Context-conditioned Generation", author = "Bi, Bin and Li, Chenliang and Wu, Chen and Yan, Ming and Wang, Wei and Huang, Songfang and Huang, Fei and Si, Luo", booktitle = "Proceedings of the 2020 Conference on Empirical Methods in Natural Language Processing (EMNLP)", month = nov, year = "2020", address = "Online", publisher = "Association for Computational Linguistics", url = "https://aclanthology.org/2020.emnlp-main.700", doi = "10.18653/v1/2020.emnlp-main.700", pages = "8681--8691"}

ドルフィンAIは言語学習アプリケーションのためのプロフェッショナルな発音評価API(pronunciation assessment api)ソリューションを提供します。音素、単語、文章、チャプター、発音矯正、単語矯正、クイズ、フリーダイアログ、多肢選択問題など幅広く提供しています。当社の発音評価製品(pronunciation assessment)は、英語と中国語、クラウドAPI、オンプレミス、オフラインデバイスの展開をサポートしています。当社の発音評価API(pronunciation assessment api)は、正確性、流暢性、完全性、リズムの次元をカバーする豊富な評価指標を提供し、音素、単語、文の異なるレベルの評価スコアも提供します。また、音素、単語、文の異なるレベルでの評価スコアも提供します。数千万人のユーザーに安定した効率的で安全なサービスを提供しています。ドルフィンAIの発音評価製品(pronunciation assessment)を試してみませんか?

タイトルとURLをコピーしました