模型:
dbmdz/bert-mini-historic-multilingual-cased
我们的历史语言模型库支持以下语言 - 包括它们的训练数据来源:
Language | Training data | Size |
---|---|---|
German | 1234321 | 13-28GB (filtered) |
French | 1234321 | 11-31GB (filtered) |
English | 1236321 | 24GB (year filtered) |
Finnish | 1234321 | 1.2GB |
Swedish | 1234321 | 1.1GB |
目前,模型库中提供以下模型:
Model identifier | Model Hub link |
---|---|
dbmdz/bert-base-historic-multilingual-cased | 1239321 |
dbmdz/bert-base-historic-english-cased | 12310321 |
dbmdz/bert-base-finnish-europeana-cased | 12311321 |
dbmdz/bert-base-swedish-europeana-cased | 12312321 |
我们还发布了多语言模型的较小模型:
Model identifier | Model Hub link |
---|---|
dbmdz/bert-tiny-historic-multilingual-cased | 12313321 |
dbmdz/bert-mini-historic-multilingual-cased | 12314321 |
dbmdz/bert-small-historic-multilingual-cased | 12315321 |
dbmdz/bert-medium-historic-multilingual-cased | 1239321 |
注意:我们之前发布了使用更嘈杂的数据训练的历史德语和法语语言模型 - 有关详细信息,请参阅 this repo :
Model identifier | Model Hub link |
---|---|
dbmdz/bert-base-german-europeana-cased | 12318321 |
dbmdz/bert-base-french-europeana-cased | 12319321 |
我们提供了根据不同的OCR置信度阈值进行统计的数据,以减小语料库大小并使用质量较好的数据:
OCR confidence | Size |
---|---|
0.60 | 28GB |
0.65 | 18GB |
0.70 | 13GB |
对于最终的语料库,我们使用OCR置信度为0.6(28GB)。以下图表显示每年的标记分布:
与德国语料库类似,我们使用不同的OCR置信度阈值:
OCR confidence | Size |
---|---|
0.60 | 31GB |
0.65 | 27GB |
0.70 | 27GB |
0.75 | 23GB |
0.80 | 11GB |
对于最终的语料库,我们使用OCR置信度为0.7(27GB)。以下图表显示每年的标记分布:
元数据来自 here 。包括年份筛选的统计数据:
Years | Size |
---|---|
ALL | 24GB |
>= 1800 && < 1900 | 24GB |
我们使用经过年份筛选的变体。以下图表显示每年的标记分布:
OCR confidence | Size |
---|---|
0.60 | 1.2GB |
以下图表显示每年的标记分布:
OCR confidence | Size |
---|---|
0.60 | 1.1GB |
以下图表显示每年的标记分布:
以下图表显示完整训练语料库每年的标记数量分布:
首次尝试时,我们使用每个预训练语料库的前10GB。我们将芬兰语和瑞典语上采样到约10GB。以下表格显示用于生成32k和64k子词词汇的确切大小:
Language | Size |
---|---|
German | 10GB |
French | 10GB |
English | 10GB |
Finnish | 9.5GB |
Swedish | 9.7GB |
然后,我们计算以下NER语料库中子词率和[UNK]比例:
Language | NER corpora |
---|---|
German | CLEF-HIPE, NewsEye |
French | CLEF-HIPE, NewsEye |
English | CLEF-HIPE |
Finnish | NewsEye |
Swedish | NewsEye |
32k词汇的子词率和未知词元比例的语言细分:
Language | Subword fertility | Unknown portion |
---|---|---|
German | 1.43 | 0.0004 |
French | 1.25 | 0.0001 |
English | 1.25 | 0.0 |
Finnish | 1.69 | 0.0007 |
Swedish | 1.43 | 0.0 |
64k词汇的子词率和未知词元比例的语言细分:
Language | Subword fertility | Unknown portion |
---|---|---|
German | 1.31 | 0.0004 |
French | 1.16 | 0.0001 |
English | 1.17 | 0.0 |
Finnish | 1.54 | 0.0007 |
Swedish | 1.32 | 0.0 |
我们将瑞典语和芬兰语上采样到约27GB。以下是所有预训练语料库的最终统计数据:
Language | Size |
---|---|
German | 28GB |
French | 27GB |
English | 24GB |
Finnish | 27GB |
Swedish | 27GB |
总大小为130GB。
受到 "Well-Read Students Learn Better: On the Importance of Pre-training Compact Models" 论文的启发,我们训练了较小的模型(不同的层数和隐藏大小),并报告了参数数量和预训练成本:
Model (Layer / Hidden size) | Parameters | Pre-Training time |
---|---|---|
hmBERT Tiny ( 2/128) | 4.58M | 4.3 sec / 1,000 steps |
hmBERT Mini ( 4/256) | 11.55M | 10.5 sec / 1,000 steps |
hmBERT Small ( 4/512) | 29.52M | 20.7 sec / 1,000 steps |
hmBERT Medium ( 8/512) | 42.13M | 35.0 sec / 1,000 steps |
hmBERT Base (12/768) | 110.62M | 80.0 sec / 1,000 steps |
然后,我们对多语言 NewsEye 数据集进行下游评估:
我们使用32k词汇在v3-32 TPU上使用官方BERT实现训练了一个多语言BERT模型,参数如下:
python3 run_pretraining.py --input_file gs://histolectra/historic-multilingual-tfrecords/*.tfrecord \ --output_dir gs://histolectra/bert-base-historic-multilingual-cased \ --bert_config_file ./config.json \ --max_seq_length=512 \ --max_predictions_per_seq=75 \ --do_train=True \ --train_batch_size=128 \ --num_train_steps=3000000 \ --learning_rate=1e-4 \ --save_checkpoints_steps=100000 \ --keep_checkpoint_max=20 \ --use_tpu=True \ --tpu_name=electra-2 \ --num_tpu_cores=32
以下图表显示预训练损失曲线:
我们使用与基础模型相同的参数进行训练。
以下图表显示微型模型的预训练损失曲线:
以下图表显示迷你模型的预训练损失曲线:
以下图表显示小型模型的预训练损失曲线:
以下图表显示中型模型的预训练损失曲线:
英语BERT模型 - 使用来自英国图书馆语料库的文本 - 在v3-8 TPU上使用Hugging Face JAX/FLAX实现进行了10个时期(约1M步)的训练,命令如下:
python3 run_mlm_flax.py --model_type bert \ --config_name /mnt/datasets/bert-base-historic-english-cased/ \ --tokenizer_name /mnt/datasets/bert-base-historic-english-cased/ \ --train_file /mnt/datasets/bl-corpus/bl_1800-1900_extracted.txt \ --validation_file /mnt/datasets/bl-corpus/english_validation.txt \ --max_seq_length 512 \ --per_device_train_batch_size 16 \ --learning_rate 1e-4 \ --num_train_epochs 10 \ --preprocessing_num_workers 96 \ --output_dir /mnt/datasets/bert-base-historic-english-cased-512-noadafactor-10e \ --save_steps 2500 \ --eval_steps 2500 \ --warmup_steps 10000 \ --line_by_line \ --pad_to_max_length
以下图表显示预训练损失曲线:
芬兰语BERT模型 - 使用来自芬兰欧洲数字图书馆的文本 - 在v3-8 TPU上使用Hugging Face JAX/FLAX实现进行了40个时期(约1M步)的训练,命令如下:
python3 run_mlm_flax.py --model_type bert \ --config_name /mnt/datasets/bert-base-finnish-europeana-cased/ \ --tokenizer_name /mnt/datasets/bert-base-finnish-europeana-cased/ \ --train_file /mnt/datasets/hlms/extracted_content_Finnish_0.6.txt \ --validation_file /mnt/datasets/hlms/finnish_validation.txt \ --max_seq_length 512 \ --per_device_train_batch_size 16 \ --learning_rate 1e-4 \ --num_train_epochs 40 \ --preprocessing_num_workers 96 \ --output_dir /mnt/datasets/bert-base-finnish-europeana-cased-512-dupe1-noadafactor-40e \ --save_steps 2500 \ --eval_steps 2500 \ --warmup_steps 10000 \ --line_by_line \ --pad_to_max_length
以下图表显示预训练损失曲线:
瑞典语BERT模型 - 使用来自瑞典欧洲数字图书馆的文本 - 在v3-8 TPU上使用Hugging Face JAX/FLAX实现进行了40个时期(约660K步)的训练,命令如下:
python3 run_mlm_flax.py --model_type bert \ --config_name /mnt/datasets/bert-base-swedish-europeana-cased/ \ --tokenizer_name /mnt/datasets/bert-base-swedish-europeana-cased/ \ --train_file /mnt/datasets/hlms/extracted_content_Swedish_0.6.txt \ --validation_file /mnt/datasets/hlms/swedish_validation.txt \ --max_seq_length 512 \ --per_device_train_batch_size 16 \ --learning_rate 1e-4 \ --num_train_epochs 40 \ --preprocessing_num_workers 96 \ --output_dir /mnt/datasets/bert-base-swedish-europeana-cased-512-dupe1-noadafactor-40e \ --save_steps 2500 \ --eval_steps 2500 \ --warmup_steps 10000 \ --line_by_line \ --pad_to_max_length
以下图表显示预训练损失曲线:
本研究得到了来自Google TPU Research Cloud(TRC)计划的云TPU的支持,之前被称为TensorFlow Research Cloud(TFRC)。非常感谢提供TRC访问权限 ❤️
感谢 Hugging Face 团队的慷慨支持,我们可以从他们的S3存储下载带有大小写的模型 ?