GPT-3事前学習済み生成モデル-中国語ベース

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

GPT-3 テキスト生成モデルの紹介

GPT-3モデルは、汎用的なプリトレーニング生成モデルで、TransformerのDecoder-only構造を使用しています。これは、特にzero-shot生成能力において優れており、様々なタイプのダウンストリーム生成タスクに適用できます。モデルは大量の無監督データを利用し、自己回帰タスクを通じてプリトレーニングされます。テキスト生成に関連するタスクには、テキスト要約、質問生成、data-to-textなどが含まれます。

モデル説明

GPT-3モデルは、TransformerのDecoder構造を使用し、いくつかの変更を加えています。本来のDecoderには2つのMulti-Head Attention構造が含まれますが、GPT-3はMask Multi-Head Attentionだけを保持しています。これは従来の言語モデリング最適化を使用し、左から右への自己回帰プリトレーニングを行います。このモデルは、GPT-3のコードと大量の中国語無監督データ、ダウンストリームタスクデータに基づいてプリトレーニングされ、ここではGPT-3 Baseモデルを紹介します。GPT-3モデルの詳細については、Language Models are Few-Shot Learnersを参照してください。

このプロジェクトでは、異なるスケールの中国語GPT3モデルのシリーズを再現しました。これにはbase/large/1.3B/2.7B/13B/30B/175Bなどが含まれます。ここでは、baseバージョンのモデルを紹介します。すべてのバージョンは以下の表の通りです。

モデル レイヤー ヘッド d_model LR バッチ base 12 12 768 6.0e-4 0.5M large 24 16 1024 3.0e-4 0.5M 1.3B 24 32 2048 2.0e-4 2M 2.7B 32 32 2560 1.6e-4 2M 13B 40 40 5120 1.0e-4 6M 30B 48 56 7168 1.0e-4 6M 175B(進行中) 96 96 12288 1.2e-4 6M モデルの使用方法と適応範囲 このモデルは、多様なシーンでの入力生成と続き書きに主に使用されます。例えば、ユーザーは様々な内容を入力して、モデルに回答、続き書き、または指令に基づく返信を行わせることができます。

使用方法 ModelScope libraryをインストール後、GPT-3のテキスト生成能力を使用できます。

コード例

python from modelscope.pipelines import pipeline from modelscope.utils.constant import Tasks text_generation_zh = pipeline(Tasks.text_generation, model='damo/nlp_gpt3_text-generation_chinese-base') result_zh = text_generation_zh("随着计算机视觉的飞速发展,人脸识别技术已从简单场景发展到复杂场景,也即姿态、光照、表情、噪声、遮挡、化妆、年龄、种族、性别等差异化所呈现的复杂场景。尽管已有的人脸识别系统在特定约束环境下的识别成功率较高,") print(result_zh['text']) モデルの限界と可能性のある偏差 モデルはデータセットでトレーニングされ、いくつかの偏差を持ち得ます。ユーザーは自ら評価して使用方法を決定してください。

トレーニングデータの紹介 トレーニングデータには、中国語ウィキペディア、インターネット上の公開テキストデータが含まれます。

モデルトレーニングプロセス 前処理 トレーニングデータはsrc_txtフィールドだけを含む必要があります。MsDatasetを使用してModelScopeのTrainerでトレーニングすることをお勧めします。

python import tempfile from datasets import Dataset from modelscope.msdatasets import MsDataset

トレーニングデータセットのシミュレーション

src_dataset_dict = { 'src_txt': [ 'テストテキスト1', 'テストテキスト2', 'テストテキスト3' ] } src_dataset = MsDataset(Dataset.from_dict(src_dataset_dict)) max_epochs = 3 tmp_dir = tempfile.TemporaryDirectory().name トレーニング 以下は、GPT-3中国語ベースモデルを元に詩生成データセットで二次開発トレーニングします。

python from modelscope.msdatasets import MsDataset from modelscope.trainers import build_trainer from modelscope.msdatasets import MsDataset from modelscope.utils.hub import read_config from modelscope.metainfo import Metrics, Trainers from datasets import Dataset from modelscope.msdatasets import MsDataset

dataset_dict = MsDataset.load('chinese-poetry-collection') train_dataset = dataset_dict['train'].remap_columns({'text1': 'src_txt'}) eval_dataset = dataset_dict['test'].remap_columns({'text1': 'src_txt'}) print (eval_dataset) max_epochs = 10 tmp_dir = "./gpt3_poetry"

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

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": 3e-4 } cfg.train.dataloader = {"batch_size_per_gpu": 16, "workers_per_gpu": 1} return cfg

kwargs = dict( model='damo/nlp_gpt3_text-generation_chinese-base', train_dataset=train_dataset, eval_datase=eval_dataset, max_epochs=max_epochs, work_dir=tmp_dir, cfg_modify_fn=cfg_modify_fn)

トレーナーを構築しトレーニングを実施トレーナーを構築しトレーニングを実施

trainer = build_trainer( name=Trainers.nlp_base_trainer, default_args=kwargs) trainer.train() トレーニングのヒント トレーニングlrの設定は、上記の表内の異なるモデルの設定を参照してください。 トレーニングデータが長い場合は、トレーニングepochを適宜増やすことが可能です。

関連する論文および引用情報 GPT-3モデルが役立ちましたら、以下の関連論文を引用してください:

@inproceedings{NEURIPS2020_1457c0d6, author = {Brown, Tom and Mann, Benjamin and Ryder, Nick and Subbiah, Melanie and Kaplan, Jared D and Dhariwal, Prafulla and Neelakantan, Arvind and Shyam, Pranav and Sastry, Girish and Askell, Amanda and Agarwal, Sandhini and Herbert-Voss, Ariel and Krueger, Gretchen and Henighan, Tom and Child, Rewon and Ramesh, Aditya and Ziegler, Daniel and Wu, Jeffrey and Winter, Clemens and Hesse, Chris and Chen, Mark and Sigler, Eric and Litwin, Mateusz and Gray, Scott and Chess, Benjamin and Clark, Jack and Berner, Christopher and McCandlish, Sam and Radford, Alec and Sutskever, Ilya and Amodei, Dario}, booktitle = {Advances in Neural Information Processing Systems}, editor = {H. Larochelle and M. Ranzato and R. Hadsell and M.F. Balcan and H. Lin}, pages = {1877--1901}, publisher = {Curran Associates, Inc.}, title = {Language Models are Few-Shot Learners}, url = {https://proceedings.neurips.cc/paper/2020/file/1457c0d6bfcb4967418bfb8ac142f64a-Paper.pdf}, volume = {33}, year = {2020} }

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

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