CMake-Implementierung von GPT-2 veröffentlicht
Eine Implementierung des Sprachmodells GPT-2, die vollständig in CMake geschrieben ist und mit Q16.16-Festkommaarithmetik ausgeführt wird, wurde veröffentlicht. Sie verwendet vortrainierte Gewichte von Hugging Face und steht unter der BSD-3-Clause-Lizenz.
Mit KI erstellt◆ Fakten auf einen Blick
- Es existiert eine Implementierung von GPT-2, die in reinem CMake geschrieben ist und mit Q16.16-Ganzzahlarithmetik ausgeführt wird.
- Die Implementierung lädt vortrainierte Modellgewichte von Hugging Face (openai-community/gpt2) und benötigt Python-Skripte zur Vorbereitung (gen_full.py, gen_tables.py, gen_model.py).
- Die Lizenz der Implementierung ist BSD 3-Clause.
- Festkommaformate wie Q16.16 haben einen festen Bereich für Ganz- und Nachkommateil; die Präzision ist über den darstellbaren Bereich gleichmäßig, der Dynamikbereich jedoch begrenzt.
- Quantisierung von Transformer-Modellen kann zu einem Trade-off zwischen numerischer Präzision und Ausdrucksfähigkeit führen.
CMake-Implementierung von GPT-2 veröffentlicht
Eine neue Implementierung des Sprachmodells GPT-2 ist veröffentlicht worden, die vollständig in CMake geschrieben ist und zur Ausführung Q16.16-Festkommaarithmetik nutzt. Es handelt sich um die erste Sichtung dieser Art. Die Projektdaten belegen die Existenz dieser Implementierung: Sie enthalten den Befehl `cmake -P gpt2_full.cmake` sowie den Hinweis „GPT-2 in pure CMake, executed with Q16.16 integer arithmetic“. Die Berechnungen erfolgen nicht mit Gleitkommazahlen, sondern mit ganzzahliger Festkommaarithmetik im Format Q16.16. Das Projekt ist unter der BSD-3-Clause-Lizenz veröffentlicht. Die Implementierung lädt vortrainierte Modellgewichte von Hugging Face (openai-community/gpt2).
Technische Details und Lizenz
Für den Betrieb lädt die Implementierung vortrainierte Modellgewichte von Hugging Face, konkret aus dem Repository openai-community/gpt2. Die benötigten Dateien sind model.safetensors, vocab.json und merges.txt. Zur Vorbereitung sind Python-Skripte erforderlich: gen_full.py, gen_tables.py und gen_model.py. Anschließend wird das Modell mit cmake -P ausgeführt, entweder als gpt2_full.cmake oder gpt2.cmake. Die Lizenz des Projekts ist BSD 3-Clause. Das verwendete Festkommaformat Q16.16 stellt Zahlen mit einem festen Bereich für Ganz- und Nachkommateil dar. Die Präzision ist über den darstellbaren Bereich gleichmäßig, der Dynamikbereich jedoch begrenzt. Bei der Quantisierung von Transformer-Modellen besteht ein Trade-off zwischen numerischer Präzision und Ausdrucksfähigkeit. Die Reduktion der Zahlenauflösung kann dazu führen, dass feinere Unterschiede in den Berechnungen verloren gehen und das Modell komplexe Muster schlechter abbildet.


