Papers › Well-Read Students Learn Better: On the Importance of Pre-training Compact Models

Well-Read Students Learn Better: On the Importance of Pre-training Compact Models

23 Aug 2019ICLR 2020 1arXiv:1908.08962archive 2025-07-28

Iulia Turc, Ming-Wei Chang, Kenton Lee, Kristina Toutanova

Recent developments in natural language representations have been accompanied by large and expensive models that leverage vast amounts of general-domain text through self-supervised pre-training. Due to the cost of applying such models to down-stream tasks, several model compression techniques on pre-trained language representations have been proposed (Sun et al., 2019; Sanh, 2019). However, surprisingly, the simple baseline of just pre-training and fine-tuning compact models has been overlooked. In this paper, we first show that pre-training remains important in the context of smaller architectures, and fine-tuning pre-trained compact models can be competitive to more elaborate methods proposed in concurrent work. Starting with pre-trained compact models, we then explore transferring task knowledge from large fine-tuned models through standard knowledge distillation. The resulting simple, yet effective and general algorithm, Pre-trained Distillation, brings further improvements. Through extensive experiments, we more generally explore the interaction between pre-training and distillation under two variables that have been under-studied: model size and properties of unlabeled task data. One surprising observation is that they have a compound effect even when sequentially applied on the same data. To accelerate future research, we will make our 24 pre-trained miniature BERT models publicly available.

PaperPDFConference PDFCodeCode Syntology ran

In Syntology Open this paper in Syntology's Atlas, the map of the papers in Syntology's graph and their citations.

For agents, Syntology's MCP tool lists every function and class Syntology harvested from this paper and whether it ran (how to connect): get_harvested_code_for_paper(arxiv_id="1908.08962")

Code

Syntology Ran 6 of 32 code samples harvested from 12 repositories linked to this paper; 26 have no recorded run. Of those that ran: 1 ran · honoured contract; 5 ran · our draft was wrong.

By repository: community (archive-listed): 32 samples from 12 repositories, 6 ran. The run record, sample by sample. “Ran” means executed on a synthesized input, not that the code is correct or reproduces the paper.

40 repositories listed; official and paper-mentioned ones first.

google-research/bert officialmentioned on GitHubtfApache-2.0 report
Arthurizijar/Bert_Airport mentioned on GitHubtfApache-2.0 report
Caesarzhang/bert-zh mentioned on GitHubtfApache-2.0 report
Chonwai/Learning_BERT mentioned on GitHubtfApache-2.0 report
DeligientSloth/QQsim mentioned on GitHubtf report
DeligientSloth/bert-tensorflow mentioned on GitHubtf report
MOHAMEDELDAKDOUKY/bert_adjusted mentioned on GitHubtfApache-2.0 report
Maz101/Bert mentioned on GitHubtfApache-2.0 report
Maz101/pretrainingdataset mentioned on GitHubtfApache-2.0 report
PAIR-code/lit mentioned on GitHubpytorchApache-2.0 report
RenXiangyuan/tf_bert mentioned on GitHubtfApache-2.0 report
SpikeKing/My-Bert mentioned on GitHubtfApache-2.0 report
StoneGH/bert mentioned on GitHubtfApache-2.0 report
TonyX19/bert_hyperpartisan mentioned on GitHubtfApache-2.0 report
Walter-B/bert-20-classes mentioned on GitHubtfApache-2.0 report
XINZXZHANG/Bert_repo mentioned on GitHubtfApache-2.0 report
abhiagg92/bert_sentiment mentioned on GitHubtf report
coronazap/bert_client mentioned on GitHubtfApache-2.0 report
cospplay/bert-master mentioned on GitHubtfApache-2.0 report
cuber2460/bert mentioned on GitHubtfApache-2.0 report
dzqjorking/transpose mentioned on GitHubtf report
geondopark/ckd mentioned on GitHubpytorchMIT report
goodluck4s/bert- mentioned on GitHubtf report
google-research/bleurt mentioned on GitHubtfApache-2.0 report
google-research/tapas mentioned on GitHubtf report
halo090770/bert mentioned on GitHubtfApache-2.0 report
krantirk/BERT-Pretrained-model mentioned on GitHubtfApache-2.0 report
llx666/git_demo mentioned on GitHubtfApache-2.0 report
paolanu/BERT_epitope mentioned on GitHubtfApache-2.0 report
pingheng001/Cnn-Bert mentioned on GitHubtfApache-2.0 report
ricardordb/bert mentioned on GitHubtf report
rohan400/PepperQA mentioned on GitHubtfApache-2.0 report
somiltg/bert mentioned on GitHubtfApache-2.0 report
the-Quert/iNLPfun mentioned on GitHubtfApache-2.0 report
theQuert/inlpfun mentioned on GitHubtfApache-2.0 report
thecodemasterk/BERT mentioned on GitHubtf report
thousandvoices/ok_ml_cup mentioned on GitHubpytorch report
xiaopp123/bert_explain mentioned on GitHubtfApache-2.0 report
xitianxiaofeixue/BERT mentioned on GitHubtfApache-2.0 report
yuhangT/tf_bert mentioned on GitHubtfApache-2.0 report

Repository list and official/mentioned flags are the archive's, frozen 2025-07-28. Reachability, where shown, is from one Syntology probe window (2026-09-16 to 2026-09-18); repositories not probed show nothing. GitHub stars are not tracked.

Code Syntology ran Syntology

32 samples harvested; 6 ran; 1 honoured the contract we drafted; 26 have no recorded run. Read from Syntology's graph 2026-09-24; that is when this build read the record, not when the samples ran.

1ran · honoured contract
5ran · our draft was wrong
26unverified

Licence: 0 of the 32 samples are pointer only, meaning Syntology does not serve that copy's text. This page shows no code text for any sample; each one links to its file in the repository.

Harvested from 12 repositories linked to this paper, official or community; each sample names its own and says which. “Ran” means the sample executed on a synthesized input. It does not mean the output is correct, and nothing here reproduces the paper's results. “Honoured” and “violated” refer to a contract Syntology drafted from the code itself; “our draft was wrong” and “fixture could not drive it” are failures of Syntology's instrument, not of the code.

Each sample ends with its code_sha256, Syntology's identity for that exact code. An agent fetches the stored sample with Syntology's MCP tool get_code(code_sha256="…") (how to connect); click an identity to copy that call.

Repository labels, per sample. official repository: The archive marks this repository official for the paper. named in the paper: The archive records that the paper mentions this repository; it is not marked official. community (archive-listed): In the archive's code links for this paper, not marked official and not recorded as mentioned in the paper. found in paper text by Syntology: Syntology found this repository in the paper's own text; whether it is the authors' implementation is not asserted. community: Not in the archive's code links for this paper; a community repository Syntology harvested. Samples from a repository marked official are listed first. Licence labels name the repository's licence as recorded at harvest. “Pointer only” means Syntology does not serve that copy's text, for one of four reasons: no licence file was found; the licence was not identified; the licence is recorded as permissive but that copy's record is not marked cleared; or the licence is outside the permissive list Syntology serves text under (MIT, Apache-2.0, BSD and similar). Some licences outside that list permit redistribution, such as WTFPL, and GPL-3.0 under its conditions; they are simply not on the list. Hover a licence label for the reason. File links open the file on GitHub at the default branch, which may have changed since the harvest.

convert_to_unicode Arthurizijar/Bert_Airport/tokenization.py community (archive-listed) ran · our draft was wrong fingerprinted Apache-2.0 (permissive) · 1923fc05163d207d · report
gelu Arthurizijar/Bert_Airport/modeling.py community (archive-listed) ran · honoured contract fingerprinted Apache-2.0 (permissive) · d08f324f950148de · report
get_activation Arthurizijar/Bert_Airport/modeling.py community (archive-listed) ran · our draft was wrong Apache-2.0 (permissive) · 5842ee67106321d6 · report
get_tokens somiltg/bert/evaluate-v2.0.py community (archive-listed) ran · our draft was wrong fingerprinted Apache-2.0 (permissive) · aa6bc32d9c17a2f1 · report
make_qid_to_has_ans somiltg/bert/evaluate-v2.0.py community (archive-listed) ran · our draft was wrong Apache-2.0 (permissive) · e91c44f5680827e2 · report
normalize_answer somiltg/bert/evaluate-v2.0.py community (archive-listed) ran · our draft was wrong fingerprinted Apache-2.0 (permissive) · 6a96435eba311b08 · report
clones the-Quert/iNLPfun/custom/encoder_ref.py community (archive-listed) unverified Apache-2.0 (permissive) · 7ba03346caea013d · report
convert_example_to_feature paolanu/BERT_epitope/convert_examples_to_features.py community (archive-listed) unverified Apache-2.0 (permissive) · b4a25fd2a133d044 · report
create_float_feature Arthurizijar/Bert_Airport/create_pretraining_data.py community (archive-listed) unverified Apache-2.0 (permissive) · b24b3b9c700da839 · report
create_int_feature Arthurizijar/Bert_Airport/create_pretraining_data.py community (archive-listed) unverified Apache-2.0 (permissive) · dd3ef48a15aec0cd · report
create_optimizer MOHAMEDELDAKDOUKY/bert_adjusted/optimization.py community (archive-listed) unverified Apache-2.0 (permissive) · c070006ff55cd83a · report
create_optimizer SpikeKing/My-Bert/optimization.py community (archive-listed) unverified Apache-2.0 (permissive) · 021cbaa59ced6dac · report
create_optimizer halo090770/bert/optimization_1.py community (archive-listed) unverified Apache-2.0 (permissive) · 5f1c73e253f08c93 · report
download_and_load_datasets Chonwai/Learning_BERT/predicting_movie_reviews_with_bert_on_tf_hub.py community (archive-listed) unverified Apache-2.0 (permissive) · 85813dd1e897d90f · report
extractLabelXml TonyX19/bert_hyperpartisan/seperate.py community (archive-listed) unverified Apache-2.0 (permissive) · 06627935dcb8a0fe · report
file_based_input_fn_builder Arthurizijar/Bert_Airport/run_classifier.py community (archive-listed) unverified Apache-2.0 (permissive) · 1b46c9ce24fc6db3 · report
file_based_input_fn_builder Maz101/Bert/run_classifier.py community (archive-listed) unverified Apache-2.0 (permissive) · 28b353970e44ff54 · report
get_assignment_map_from_checkpoint Arthurizijar/Bert_Airport/modeling.py community (archive-listed) unverified Apache-2.0 (permissive) · 50958618b65e514e · report
get_tasks the-Quert/iNLPfun/code/download_glue_data.py community (archive-listed) unverified Apache-2.0 (permissive) · c54b935b72798660 · report
init_predict_var StoneGH/bert/freeze_graph.py community (archive-listed) unverified Apache-2.0 (permissive) · 5edf8fc5e1137648 · report
input_fn_builder Arthurizijar/Bert_Airport/extract_features.py community (archive-listed) unverified Apache-2.0 (permissive) · 47a3c792cebb6603 · report
loadText TonyX19/bert_hyperpartisan/seperate.py community (archive-listed) unverified Apache-2.0 (permissive) · ce566df49585f2b5 · report
load_dataset Chonwai/Learning_BERT/predicting_movie_reviews_with_bert_on_tf_hub.py community (archive-listed) unverified Apache-2.0 (permissive) · a181d94c3334306d · report
load_directory_data Chonwai/Learning_BERT/predicting_movie_reviews_with_bert_on_tf_hub.py community (archive-listed) unverified Apache-2.0 (permissive) · 0ccbf8e553bab00d · report
load_vocab Arthurizijar/Bert_Airport/tokenization.py community (archive-listed) unverified Apache-2.0 (permissive) · ff83ccc8b0b6462d · report
load_vocab Maz101/Bert/tokenization.py community (archive-listed) unverified Apache-2.0 (permissive) · 30b05f2a415dd132 · report
load_vocab coronazap/bert_client/tokenization.py community (archive-listed) unverified Apache-2.0 (permissive) · 21c6f1a7ac31a2bd · report
printable_text Arthurizijar/Bert_Airport/tokenization.py community (archive-listed) unverified Apache-2.0 (permissive) · 0e5615f8994003cf · report
process_output coronazap/bert_client/run_squad.py community (archive-listed) unverified Apache-2.0 (permissive) · 7b79d58035cd12c2 · report
process_result coronazap/bert_client/run_squad.py community (archive-listed) unverified Apache-2.0 (permissive) · b57e2fc59104beb6 · report
read_squad_examples coronazap/bert_client/run_squad.py community (archive-listed) unverified Apache-2.0 (permissive) · 3cbc0c492348e83d · report
set_logger StoneGH/bert/freeze_graph.py community (archive-listed) unverified Apache-2.0 (permissive) · 9b7c0abd85734790 · report

Tasks

Knowledge DistillationLanguage ModellingModel CompressionSentiment Analysis

Results from the paper archive 2025-07-28

No leaderboard rows for this paper in the archive.

Methods

AdamAttentionAttention DropoutBERTDense ConnectionsDropoutLayer NormalizationLinear LayerLinear Warmup With Linear DecayMulti-Head AttentionResidual ConnectionSoftmaxWeight DecayWordPiece

Report a problem or propose a change · a person checks every report against the paper or source before anything changes; decisions are listed on /corrections