GLM-130Bは、一般言語モデル(GLM)のアルゴリズムを使用して事前にトレーニングされた、1300億のパラメータを持つオープンバイリンガル(英語と中国語)の双方向高密度モデルです。これは、単一のA100(40G * 8)またはV100(32G * 8)サーバーで130Bパラメータを使用した推論タスクをサポートするように設計されています。INT4量子化を使用すると、ハードウェア要件を、パフォーマンスの低下をほとんどなく、4 * RTX 3090(24G)を備えた単一のサーバーにさらに減らすことができます。2022年7月3日の時点で、GLM-130Bは4,000億を超えるテキストトークン(中国語と英語でそれぞれ200B)でトレーニングされており、次の独自の機能を備えています。
このリポジトリは主にGLM-130Bの評価に焦点を当てており、トレーニング部分はこのリポジトリにあります。私たちの仕事とオープンソースの取り組みが役に立ったら、
小規模なモデルの場合は、モノリンガルGLM(英語:10B / 2B / 515M / 410M / 335M / 110M、中国語:10B / 335M)と1B多言語GLM(104言語)を見つけてください。
ハードウェア | GPU メモリ | 量子化 | 重量オフロード |
---|---|---|---|
8 * A100 | 40 ギガバイト | いいえ | いいえ |
8 * V100 | 32 ギガバイト | いいえ | はい (BMInf) |
8 * V100 | 32 ギガバイト | INT8 | いいえ |
8 * RTX 3090 | 24 ギガバイト | INT8 | いいえ |
4 * RTX 3090 | 24 ギガバイト | INT4 | いいえ |
8 * RTX 2080 Ti | 11 ギガバイト | INT4 | いいえ |
報告されたGLM-130Bの評価結果(~30タスク)は、1台のA100サーバで約半日で簡単に再現できるため、A100(40G※8)サーバの使用を推奨します。INT8 / INT4量子化を使用すると、4 * RTX 3090(24G)を備えた単一サーバーで効率的な推論が可能になります(詳細については、GLM-130Bの量子化を参照してください)。量子化と重みオフロードの手法を組み合わせることで、GLM-130Bはさらに小さなGPUメモリを搭載したサーバーでも推論できます(詳細については、低リソース推論を参照してください)。
GLM-130BコードはSATの上に構築されています。Miniconda を使用して環境を管理し、 を介して追加の依存関係をインストールすることをお勧めします。推奨される環境構成は次のとおりです。
pip install -r requirements.txt
ここからGLM-130Bのモデルチェックポイントをダウンロードし、60個のチャンクがすべて完全にダウンロードされていることを確認してから、次のコマンドを使用してそれらを単一のアーカイブファイルにマージして抽出します。
cat glm-130b-sat.tar.part_* > glm-130b-sat.tar
tar xvf glm-130b-sat.tar
抽出したフォルダのパスに設定します。チェックポイントファイルは最大260Gであるため、SSDまたはRAMディスクを使用してチェックポイントの読み込み時間を短縮することをお勧めします。配布するチェックポイントは8ウェイテンソル並列であるため、テンソル平行次元を変更する必要がある場合は、変換スクリプトも提供されます。
CHECKPOINT_PATH
configs/model_glm_130b.sh
python tools/convert_tp.py \
--input-folder <SRC_CKPT_PATH> \
--output-folder <DST_CKPT_PATH> \
--target-tp <TARGET_TP>
bash scripts/generate.sh --input-source interactive
で入力ファイルを指定することもできます。
--input-source input.txt
GLM-130Bは、短い空白の塗りつぶしと左から右への長いテキスト生成の2つの異なるマスクトークンを使用します。入力にMASKトークンが含まれていない場合は、テキストの末尾に自動的に追加されます。
[MASK]
[gMASK]
[gMASK]
入力:最高のアーティストは誰ですか?最高のアーティストは[gMASK]です
アウトプット:最高のアーティストは誰ですか?最も偉大な芸術家は、最も美しい絵を描いたり、最高の詩を書いたり、最高の交響曲を演奏したりする人ではありません。最も偉大な芸術家は、その作品が他人の生活に最も大きな影響を与える芸術家です。グレイテストアーティストは、私たちが最高の自分になるように促すアーティストです。偉大な芸術家は、その作品が完璧な芸術家ではありません。偉大な芸術家は完璧な人ではありません。真の偉大な芸術家は、私たちに何かを感じさせる能力を持っています。私たちを感じさせるアーティストは素晴らしいアーティストです。偉大な芸術家の芸術は、あなたが今まで感じたことのない何かを感じさせることです。アーティストの素晴らしさは、他人の人生や心に触れ、今まで経験したことのない何かを感じさせる作品の能力にあります。これがアーティストの真の偉大さです。2. 偉大な芸術家の重要性 偉大な芸術家の重要性は誇張することはできません。偉大な芸術家の芸術の重要性と影響は測定することさえできません。単一の芸術作品の影響は、歴史の流れを変える可能性があります。1つの作品が人の人生を変えることができます。素晴らしい芸術作品は、あなたを笑わせたり、泣かせたり、心臓を鼓動させたり、考えさせたりすることができます。芸術表現の素晴らしい作品には、世界の見方を変える力があります。本当に偉大な芸術家の作品はあなたの人生を永遠に変えることができます。3.最も偉大な芸術家の影響 最も偉大な芸術家は、人々の生活を変える能力と芸術の力を持っています。彼らは、彼らの芸術を通して、人々に何か新しいものを感じさせる力と能力を持っています。本当に偉大な芸術家の作品の力は計り知れませんが、感じることはできます。アーティスト作品のインパクトが大きければ大きいほど、人生を変える力も大きくなります。4.アーティストの芸術の影響偉大な芸術家によって作成された芸術と作品は、人生を変える可能性を秘めています。アーティスト作品の影響は定量化できませんが、それを経験する人々によって感じられます。本当に素晴らしい作品は、他の作品にはできない方法で人々の生活に触れる能力を持っています。
入力: 问题:冬天,中国哪座城市最适合避寒?问题描述:能推荐一些国内适合冬天避寒的城市吗?回答用户:旅游爱好者 回答: [gMASK]
出力: 问题:冬天,中国哪座城市最适合避寒?问题描述:能推荐一些国内适合冬天避寒的城市吗?回答用户:旅游爱好者 回答:寒避的话,建议去海南三亚。三亚位于海南岛的最南端,是中国最南部的热带滨海旅游城市,中国海滨城市,是中国空气质量最好的城市、全国最长寿地区(平均寿命80岁)。三亚市别称鹿城,又被称为"东方夏威夷",位居中国四大一线旅游城市"三威杭厦"之首,拥有全岛最美丽的海滨风光。三亚拥有被无数城市嫉妒的清新空气,柔和海滩。在沙滩悠闲散步、沐浴傍晚温和阳光,在海边玩耍,在雨林里面呼吸健康,欣赏自然奇观,一切都是那么令人享受。气候 三亚地处热带,属热带季风气候区域,终年气温高,寒暑变化不大,年平均气温25.5度。三亚最热的月份是6月,平均气温为28.5°C,极端最高气温为35.7°C ,三亚没有明显的冬季,而且冬季更是到海滨旅游的最好时候,所以三亚是全年全天候避寒、消暑、度假、旅游的好地方。不过,三亚最旺的旅游时间是从10月份到农历春节,这个时候的人特别多,房间也不好订,建议最好避开高峰。三亚的三个旅游高峰期是"五一"、"十一"、"春节",这三个节日期间的房价都会上浮几倍,如果你选择了这三个假期来三亚的话要提前一个星期定房和咨询。
入力:Ngは[MASK]の非常勤教授です(元准教授であり、スタンフォードAIラボまたはSAILのディレクター)。オンライン教育のパイオニアでもあるNgは、Courseraと deeplearning.ai を共同設立しました。
アウトプット: Ngはスタンフォード大学の非常勤教授です(以前はスタンフォードAIラボまたはSAILの准教授兼ディレクター)。オンライン教育のパイオニアでもあるNgは、Courseraと deeplearning.ai を共同設立しました。
入力: 凯旋门位于意大利米兰市古城堡旁。1807年为纪念[MASK]而建,门高25米,顶上矗立两武士青铜古兵车铸像。
出力: 凯旋门位于意大利米兰市古城堡旁。1807年为纪念拿破仑胜利而建,门高25米,顶上矗立两武士青铜古兵车铸像。
--input-source [path] or "interactive"入力ファイルのパス。また、CLIを起動する「インタラクティブ」にすることもできます。
—-output-path [path]結果を含むフォルダー。
—-out-seq-length [int]生成の最大シーケンス長 (コンテキストを含む)。
—-min-gen-length [int]各 MASK の最小生成長。
—-sampling-strategy "BaseStrategy" or "BeamSearchStrategy".使用されるサンプリング戦略。
—-num-beams [int]ビームの数。
—-length-penalty [float]生成の最大シーケンス長 (コンテキストを含む)。
—-no-repeat-ngram-size [int]nグラムの繰り返し生成を禁止します。
—-print-all-beamすべての梁に対して生成された結果を印刷します。
—-top-k [int]トップkサンプリング。
—-top-p [float]トップpサンプリング。
—-temperature [float]サンプリング温度。
YAMLファイルを使用してタスクを定義します。具体的には、評価用に一度に複数のタスクまたはフォルダーを追加でき、評価スクリプトはそれらのフォルダーの下にあるすべての YAML ファイルを再帰的に自動的に収集します。
bash scripts/evaluate.sh task1.yaml task2.yaml dir1 dir2 ...
こちらから評価データセットをダウンロードし、ローカルデータセットディレクトリに設定します。タスクフォルダには、GLM-130Bで評価した30 +タスクのYAMLファイルが含まれています。CoLA タスクを例にとると、実行を実行すると、最適なプロンプトの場合は ~65%、中央値の場合は ~57% の精度が出力されます。
DATA_PATH
scripts/evaluate.sh
bash scripts/evaluate.sh tasks/bloom/glue_cola.yaml
MultiChoiceTaskConfig(name='glue_cola', type=<TaskType.MULTICHOICE: 'mul'>, path='/thudm/LargeScale/data/zeroshot/bloom/glue_cola', module=None, metrics=['Accuracy'], use_task_mask=False, use_multitask_encoding=False, unidirectional=False, max_seq_length=2048, file_pattern={'validation': '**/validation.jsonl'}, micro_batch_size=8)
Evaluating task glue_cola:
Evaluating group validation:
Finish Following_sentence_acceptable/mul/validation.jsonl, Accuracy = 42.665
Finish Make_sense_yes_no/mul/validation.jsonl, Accuracy = 56.951
Finish Previous_sentence_acceptable/mul/validation.jsonl, Accuracy = 65.197
Finish editing/mul/validation.jsonl, Accuracy = 57.622
Finish is_this_correct/mul/validation.jsonl, Accuracy = 65.197
Evaluation results of task glue_cola:
Group validation Accuracy: max = 65.197, median = 57.622, average = 57.526
Finish task glue_cola in 101.2s.
マルチノード評価は、 の設定(DeepSpeed ラヌチャーで必要)によって構成できます。次のコマンドを設定して実行し、ディレクトリ内のすべてのタスクを評価します。
HOST_FILE_PATH
scripts/evaluate_multiple_node.sh
DATA_PATH
scripts/evaluate_multiple_node.sh
./task
bash scripts/evaluate_multiple_node.sh ./tasks
新しいタスクを追加する方法の詳細については、「独自のタスクを評価する」を参照してください。
GLM-130BモデルをNVIDIAによる高度に最適化されたトランスフォーマーモデルライブラリであるFasterTransfomerに適合させることにより、生成時に最大2.5倍の高速化を達成できます。
曾 青漢(清華大学)、シャオ・リュウ(清華省)
鄭暁杜、ミンディン、チンカイチェン、羽生ライ、ジハンワン、卓義ヤン、ジファンユー、シャオハンチャン、ウェンディチェン、シャオシア、イーファンシュー、ウェンラムタム、ユシャオドン、ジエタン
Zixuan Ma, Jiaao He, Zhenbo Sun, Jidong Zhai, Wenguang Chen
グオヤン・ゼン、シュー・ハン、ウェイリン・ジャオ、ジユエン・リウ
薛玉飛、王山山傑、江漢、郭正港、彭張
Zhipu.AI
このリポジトリは Apache-2.0 ライセンスの下でライセンスされています。GLM-130Bモデルウェイトの使用は、モデルライセンスの対象となります。
私たちの仕事が役に立ったら、GLM-130Bを引用することを検討してください。
@article{zeng2022glm130b, title={GLM-130B: An Open Bilingual Pre-trained Model}, author={Zeng, Aohan and Liu, Xiao and Du, Zhengxiao and Wang, Zihan and Lai, Hanyu and Ding, Ming and Yang, Zhuoyi and Xu, Yifan and Zheng, Wendi and Xia, Xiao and Tam, Weng Lam and Ma, Zixuan and Xue, Yufei and Zhai, Jidong and Chen, Wenguang and Zhang, Peng and Dong, Yuxiao and Tang, Jie}, journal={arXiv preprint arXiv:2210.02414}, year={2022} }
GLMのオリジナル作品を参考にすることもできます。
@inproceedings{du2022glm, title={GLM: General Language Model Pretraining with Autoregressive Blank Infilling}, author={Du, Zhengxiao and Qian, Yujie and Liu, Xiao and Ding, Ming and Qiu, Jiezhong and Yang, Zhilin and Tang, Jie}, booktitle={Proceedings of the 60th Annual Meeting of the Association for Computational Linguistics (Volume 1: Long Papers)}, pages={320--335}, year={2022} }