Das Projekt ist ein Python -Modul, das Bert -Vorbauern erleichtert. Die aktuelle vorhandene Open -Source -Lösung für das Training dieses spezifischen Modells ist verwickelt. Wir haben das Verfahren vereinfacht. Ziel des Projekts ist es, den Code für die breitere Community für maschinelles Lernen zu öffnen, um ML -Praktikern zu helfen, ihre eigenen Bert -Modelle mithilfe ihrer Daten zu schulen. Der Code wurde erstellt, um die neueste Iteration des Bert -Modells (VMWARE) von VMware (VBERT) zu schulen, um maschinelles Lernen und Forschern der natürlichen Sprache in VMware zu helfen.
Das Demo -Notizbuch befindet sich im Demo -Ordner
Richten Sie eine virtuelle Umgebung von Python 3.7 oder 3.8 ein und installieren Sie die Anforderungen mithilfe der Anforderungen
pip install . aus dem Wurzelordner
oder
pip install git+https://github.com/vmware-labs/bert-pretraining
Erstellen Sie die Vorabendaten mit Create_Pretraining_Data.py von https://github.com/google-research/bert.
Sie können eine separate Eval -Datei erstellen, wenn Sie die MLM- und NSP -Genauigkeiten Ihres Modells auf einem separaten Eval -Set während des Trainings bewerten möchten.
Sie können eine einzelne Datei auch in Trainings- und Bewertungsvektoren teilen, indem Sie den Parameter von Split_ratio im Konfigurationsobjekt verwenden.
Die Vorabendparameter werden durch die Klasse voraberhielt. Bitte folgen Sie der Demo.IPynb, um die A -Probe -Bert -Vorabend auszuführen.
Vorab -Parameter
| Parameter | Standardwert | Beschreibung |
|---|---|---|
| model_name | Demobert | Modellname |
| is_base | WAHR | Boolescher zur Auswahl zwischen Bert-Base und Bert-Large |
| max_seq_length | 128 | MSL, sollte mit der TFRECORD -Datei übereinstimmen (2 separate Dateien generieren, wenn Sie Bert mit unterschiedlichen MSLs, z. B. 128, 512) |
| MAX_PREDICTIONS_PER_SEQ | 20 | Die Anzahl der für MLM maskierten Token sollte mit der TFRECORD -Datei übereinstimmen |
| num_train_steps | 1000 | Anzahl der Schritte zum Training des Modells für, endet, wenn wir das Ende der TFRECORD -Datei erreichen (aussagekräftige Vorabbau würde mehr Trainingsschritte erfordern) |
| num_warmup_steps | 10 | Anzahl der Aufwärmschritte, Bert verwendet 1% der Trainingsschritte als Aufwärmschritte |
| Learning_rate | 1E-05 | Modelllernrate |
| train_batch_size | 32 | Trainings -Chargengröße (über GPUs aufgeteilt) |
| save_intermediate_checkpoints | WAHR | Speichern Sie Checkpoints für alle "X" -Trainingsschritte, die von SARE_Checkpoint_Steps entschieden werden. Der Kontrollpunkt wird am Ende des Trainings immer gespeichert |
| save_intermediate_checkpoint_steps | 25000 | Erspart Checkpoint nach jedem 'X' -Trainingsschritt (ohne Aufwärmschritte) zu sehen) |
| Eval_batch_size | 32 | Bewertungsstapelgröße (über GPUs aufgeteilt) |
| max_eval_steps | 1000 | Anzahl der Schritte zur Ausführung der Bewertung, wenn keine separate Evaly -Datei vorliegt. Wenn eine separate Eval -Datei bereitgestellt wird oder wenn Split_ratio bereitgestellt wird, wird der gesamte Eval -Datensatz zur Bewertung verwendet |
| Eval_Point | 1000 | Führt die Bewertung für alle 'X' -Trainingsschritte durch |
| split_ratio | Keiner | Prozent des Schulungsdatensatzes für die Bewertung, wenn Sie das Training TFRECORD in Zug, eval -Datensätze, teilen möchten. Wenn kein Split -Verhältnis bereitgestellt wird, wird die Trainingsdatei für die Evaulation verwendet (die Anzahl der EV -Schritte wird vom Parameter max_eval_steps gesteuert) |
| init_checkpoint | Keiner | Wenn Sie das Training wieder aufnehmen, geben Sie den Weg zum vorherigen Kontrollpunkt. Wenn Sie das Training aus einem nicht Standard-Checkpoint (Bert-Base, Bert-Large) initialisieren, geben Sie den Namen/Pfad des Modell-Checkpoints an) an. |
| input_file | ./input/demo_msl128.tfrecord | Eingabe tffrecord-Datei, die mit Create_Pretraining_Data.py aus https://github.com/google-research/bert erstellt wurde. |
| Eval_file | Keiner | Wenn Sie einen separaten Eval-Datensatz verwenden möchten, geben Sie die mit Create_Pretraining_Data.py erstellte Eingabe-TFRECORD-Datei von https://github.com/google-research/bert an |
| log_csv | ./eval_results.csv | Datei, in der die Bewertungsergebnisse gespeichert werden ** |
| output_dir | ./ckpts | Verzeichnis zum Speichern der Checkpoints |
| num_gpu | 3 | Anzahl der GPUs, die für das Training verwendet werden sollen |
** Die Ausgabe log_csv -Datei erfasst die Hyperparameter- und Bewertungsergebnisse
Die Demo.tffrecord -Datei wurde aus dem Wikicorpus -Datensatz erstellt.
Das Bert-Pretraining-Projektteam begrüßt Beiträge der Community. Bevor Sie mit diesem Projekt beginnen, lesen und unterschreiben Sie unsere Mitwirkungslizenzvereinbarung (https://cla.vmware.com/cla/1/preview). Wenn Sie Code beitragen möchten und unsere Mitarbeiter -Lizenzvereinbarung (CLA) nicht unterzeichnet haben, fordert unser Bot Sie dazu auf, dies zu tun, wenn Sie eine Pull -Anfrage eröffnen. Informationen zum CLA -Prozess finden Sie in unserem Beitrag.md.
Apache-2.0