Software V0.0.1
Browse files- mainXXX.md +36 -2
mainXXX.md
CHANGED
|
@@ -1,71 +1,105 @@
|
|
| 1 |
**Ausführen des Programms**
|
| 2 |
|
| 3 |
Installiere die benötigten Python-Pakete:
|
|
|
|
| 4 |
pip install datasets
|
|
|
|
| 5 |
pip install transformers
|
|
|
|
| 6 |
pip install torch
|
|
|
|
| 7 |
pip install huggingface-hub
|
| 8 |
|
| 9 |
**CUDA**
|
| 10 |
Stellen Sie sicher, dass CUDA und cuDNN korrekt installiert sind.
|
|
|
|
| 11 |
nvcc --version
|
| 12 |
|
| 13 |
PyTorch mit CUDA Unterstützung installieren:
|
|
|
|
| 14 |
pip install torch torchvision torchaudio --extra-index-url https://download.pytorch.org/whl/cu111
|
| 15 |
|
| 16 |
**Führe das Skript aus:**
|
| 17 |
-
python
|
|
|
|
|
|
|
|
|
|
|
|
|
| 18 |
|
| 19 |
Ersetze /pfad/zu/deinem/verzeichnis durch den tatsächlichen Pfad zu dem Verzeichnis, das du durchsuchen möchtest.
|
| 20 |
|
| 21 |
**Kurzfassung:**
|
| 22 |
Dieses Skript durchsucht das Verzeichnis, extrahiert die erforderlichen Parameter, speichert sie in einer SQLite-Datenbank,
|
|
|
|
| 23 |
konvertiert diese Daten in ein HuggingFace Dataset, trainiert ein Modell und speichert das trainierte Modell auf der Festplatte neben der Datenbank.
|
| 24 |
|
| 25 |
**Ausführlich:**
|
| 26 |
Dieses Python-Programm durchläuft einen angegebenen Verzeichnisbaum,
|
|
|
|
| 27 |
extrahiert Informationen über bestimmte Dateitypen,
|
|
|
|
| 28 |
speichert diese Informationen in einer SQLite-Datenbank,
|
|
|
|
| 29 |
erstellt ein Hugging Face Dataset aus den gespeicherten Daten,
|
|
|
|
| 30 |
trainiert ein Modell für die Klassifikation von Dateien basierend auf deren Pfaden
|
|
|
|
| 31 |
und speichert das trainierte Modell sowie den Tokenizer.
|
| 32 |
|
| 33 |
Hier ist eine einfache und verständliche Erklärung, wie das Programm funktioniert:
|
| 34 |
|
| 35 |
1. **Extrahiere Parameter aus Dateien (`extrahiere_parameter(file_path)`)**:
|
| 36 |
- Öffnet eine Datei und liest deren Zeilen.
|
|
|
|
| 37 |
- Sammelt Informationen wie Anzahl der Zeilen, Anzahl der Zeichen und ob der Text lang ist (>1000 Zeilen).
|
|
|
|
| 38 |
- Gibt diese Informationen zurück, außer wenn ein Lesefehler auftritt.
|
| 39 |
|
| 40 |
2. **Durchsuche Verzeichnis und extrahiere Parameter (`durchsuchen_und_extrahieren(root_dir, db_pfad)`)**:
|
| 41 |
- Verbindet sich mit einer SQLite-Datenbank (`db_pfad`).
|
|
|
|
| 42 |
- Erstellt eine Tabelle (`dateiparameter`) für die gesammelten Dateiinformationen, falls diese noch nicht existiert.
|
|
|
|
| 43 |
- Durchläuft rekursiv das angegebene Verzeichnis (`root_dir`) und extrahiert Parameter von Dateien mit unterstützten Dateitypen.
|
|
|
|
| 44 |
- Speichert die extrahierten Parameter in der SQLite-Datenbank.
|
| 45 |
|
| 46 |
3. **Extrahiere Parameter aus der SQLite-Datenbank (`extrahiere_parameter_aus_db(db_pfad)`)**:
|
| 47 |
- Verbindet sich mit der SQLite-Datenbank.
|
|
|
|
| 48 |
- Führt eine Abfrage aus, um alle gespeicherten Dateiparameter zu erhalten.
|
|
|
|
| 49 |
- Gibt die abgerufenen Daten zurück, außer wenn ein Fehler auftritt.
|
| 50 |
|
| 51 |
4. **Konvertiere zu Hugging Face Dataset (`konvertiere_zu_hf_dataset(daten)`)**:
|
| 52 |
- Nimmt die aus der SQLite-Datenbank abgerufenen Daten und wandelt sie in ein Hugging Face Dataset um.
|
|
|
|
| 53 |
- Fügt Platzhalterwerte für Trainings- und Testdaten hinzu.
|
| 54 |
|
| 55 |
5. **Trainiere und speichere Modell (`trainiere_und_speichere_modell(hf_dataset_pfad, output_model_dir)`)**:
|
| 56 |
- Lädt das Hugging Face Dataset von der Festplatte.
|
|
|
|
| 57 |
- Erstellt einen Tokenizer (`AutoTokenizer`) für BERT.
|
|
|
|
| 58 |
- Definiert eine Funktion zum Tokenisieren der Dateipfade im Dataset.
|
|
|
|
| 59 |
- Erstellt ein Modell (`AutoModelForSequenceClassification`) für die Klassifikation der Dateipfade.
|
|
|
|
| 60 |
- Konfiguriert Trainingsargumente und einen Trainer für das Modell.
|
|
|
|
| 61 |
- Trainiert das Modell mit den trainierten und Testdaten aus dem Dataset.
|
|
|
|
| 62 |
- Speichert das trainierte Modell und den Tokenizer im angegebenen Ausgabeverzeichnis (`output_model_dir`).
|
| 63 |
|
| 64 |
6. **Main-Funktion (`if __name__ == "__main__":`)**:
|
| 65 |
- Überprüft, ob ein Verzeichnispfad als Argument übergeben wurde; andernfalls wird das aktuelle Verzeichnis verwendet.
|
|
|
|
| 66 |
- Erstellt einen SQLite-Datenbanknamen aus dem Basisnamen des Verzeichnisses.
|
|
|
|
| 67 |
- Führt die Funktionen aus, um Daten zu extrahieren, ein Hugging Face Dataset zu erstellen und ein Modell zu trainieren.
|
|
|
|
| 68 |
- Gibt eine Erfolgsmeldung aus, wenn das Modell erfolgreich gespeichert wurde.
|
| 69 |
|
| 70 |
-
Das Programm ist darauf ausgelegt, durch Verzeichnisse zu navigieren, Dateiinformationen zu extrahieren,
|
|
|
|
| 71 |
diese in einem maschinenlesbaren Format zu speichern, ein Hugging Face Dataset zu erstellen und ein Modell zu trainieren, das auf diesen Daten basiert.
|
|
|
|
| 1 |
**Ausführen des Programms**
|
| 2 |
|
| 3 |
Installiere die benötigten Python-Pakete:
|
| 4 |
+
|
| 5 |
pip install datasets
|
| 6 |
+
|
| 7 |
pip install transformers
|
| 8 |
+
|
| 9 |
pip install torch
|
| 10 |
+
|
| 11 |
pip install huggingface-hub
|
| 12 |
|
| 13 |
**CUDA**
|
| 14 |
Stellen Sie sicher, dass CUDA und cuDNN korrekt installiert sind.
|
| 15 |
+
|
| 16 |
nvcc --version
|
| 17 |
|
| 18 |
PyTorch mit CUDA Unterstützung installieren:
|
| 19 |
+
|
| 20 |
pip install torch torchvision torchaudio --extra-index-url https://download.pytorch.org/whl/cu111
|
| 21 |
|
| 22 |
**Führe das Skript aus:**
|
| 23 |
+
python main_GPU.py /pfad/zu/deinem/verzeichnis
|
| 24 |
+
|
| 25 |
+
oder
|
| 26 |
+
|
| 27 |
+
python main_CUDA.py /pfad/zu/deinem/verzeichnis
|
| 28 |
|
| 29 |
Ersetze /pfad/zu/deinem/verzeichnis durch den tatsächlichen Pfad zu dem Verzeichnis, das du durchsuchen möchtest.
|
| 30 |
|
| 31 |
**Kurzfassung:**
|
| 32 |
Dieses Skript durchsucht das Verzeichnis, extrahiert die erforderlichen Parameter, speichert sie in einer SQLite-Datenbank,
|
| 33 |
+
|
| 34 |
konvertiert diese Daten in ein HuggingFace Dataset, trainiert ein Modell und speichert das trainierte Modell auf der Festplatte neben der Datenbank.
|
| 35 |
|
| 36 |
**Ausführlich:**
|
| 37 |
Dieses Python-Programm durchläuft einen angegebenen Verzeichnisbaum,
|
| 38 |
+
|
| 39 |
extrahiert Informationen über bestimmte Dateitypen,
|
| 40 |
+
|
| 41 |
speichert diese Informationen in einer SQLite-Datenbank,
|
| 42 |
+
|
| 43 |
erstellt ein Hugging Face Dataset aus den gespeicherten Daten,
|
| 44 |
+
|
| 45 |
trainiert ein Modell für die Klassifikation von Dateien basierend auf deren Pfaden
|
| 46 |
+
|
| 47 |
und speichert das trainierte Modell sowie den Tokenizer.
|
| 48 |
|
| 49 |
Hier ist eine einfache und verständliche Erklärung, wie das Programm funktioniert:
|
| 50 |
|
| 51 |
1. **Extrahiere Parameter aus Dateien (`extrahiere_parameter(file_path)`)**:
|
| 52 |
- Öffnet eine Datei und liest deren Zeilen.
|
| 53 |
+
-
|
| 54 |
- Sammelt Informationen wie Anzahl der Zeilen, Anzahl der Zeichen und ob der Text lang ist (>1000 Zeilen).
|
| 55 |
+
-
|
| 56 |
- Gibt diese Informationen zurück, außer wenn ein Lesefehler auftritt.
|
| 57 |
|
| 58 |
2. **Durchsuche Verzeichnis und extrahiere Parameter (`durchsuchen_und_extrahieren(root_dir, db_pfad)`)**:
|
| 59 |
- Verbindet sich mit einer SQLite-Datenbank (`db_pfad`).
|
| 60 |
+
-
|
| 61 |
- Erstellt eine Tabelle (`dateiparameter`) für die gesammelten Dateiinformationen, falls diese noch nicht existiert.
|
| 62 |
+
-
|
| 63 |
- Durchläuft rekursiv das angegebene Verzeichnis (`root_dir`) und extrahiert Parameter von Dateien mit unterstützten Dateitypen.
|
| 64 |
+
-
|
| 65 |
- Speichert die extrahierten Parameter in der SQLite-Datenbank.
|
| 66 |
|
| 67 |
3. **Extrahiere Parameter aus der SQLite-Datenbank (`extrahiere_parameter_aus_db(db_pfad)`)**:
|
| 68 |
- Verbindet sich mit der SQLite-Datenbank.
|
| 69 |
+
-
|
| 70 |
- Führt eine Abfrage aus, um alle gespeicherten Dateiparameter zu erhalten.
|
| 71 |
+
-
|
| 72 |
- Gibt die abgerufenen Daten zurück, außer wenn ein Fehler auftritt.
|
| 73 |
|
| 74 |
4. **Konvertiere zu Hugging Face Dataset (`konvertiere_zu_hf_dataset(daten)`)**:
|
| 75 |
- Nimmt die aus der SQLite-Datenbank abgerufenen Daten und wandelt sie in ein Hugging Face Dataset um.
|
| 76 |
+
-
|
| 77 |
- Fügt Platzhalterwerte für Trainings- und Testdaten hinzu.
|
| 78 |
|
| 79 |
5. **Trainiere und speichere Modell (`trainiere_und_speichere_modell(hf_dataset_pfad, output_model_dir)`)**:
|
| 80 |
- Lädt das Hugging Face Dataset von der Festplatte.
|
| 81 |
+
-
|
| 82 |
- Erstellt einen Tokenizer (`AutoTokenizer`) für BERT.
|
| 83 |
+
-
|
| 84 |
- Definiert eine Funktion zum Tokenisieren der Dateipfade im Dataset.
|
| 85 |
+
-
|
| 86 |
- Erstellt ein Modell (`AutoModelForSequenceClassification`) für die Klassifikation der Dateipfade.
|
| 87 |
+
-
|
| 88 |
- Konfiguriert Trainingsargumente und einen Trainer für das Modell.
|
| 89 |
+
-
|
| 90 |
- Trainiert das Modell mit den trainierten und Testdaten aus dem Dataset.
|
| 91 |
+
-
|
| 92 |
- Speichert das trainierte Modell und den Tokenizer im angegebenen Ausgabeverzeichnis (`output_model_dir`).
|
| 93 |
|
| 94 |
6. **Main-Funktion (`if __name__ == "__main__":`)**:
|
| 95 |
- Überprüft, ob ein Verzeichnispfad als Argument übergeben wurde; andernfalls wird das aktuelle Verzeichnis verwendet.
|
| 96 |
+
-
|
| 97 |
- Erstellt einen SQLite-Datenbanknamen aus dem Basisnamen des Verzeichnisses.
|
| 98 |
+
-
|
| 99 |
- Führt die Funktionen aus, um Daten zu extrahieren, ein Hugging Face Dataset zu erstellen und ein Modell zu trainieren.
|
| 100 |
+
-
|
| 101 |
- Gibt eine Erfolgsmeldung aus, wenn das Modell erfolgreich gespeichert wurde.
|
| 102 |
|
| 103 |
+
Das Programm ist darauf ausgelegt, durch Verzeichnisse zu navigieren, Dateiinformationen zu extrahieren,
|
| 104 |
+
|
| 105 |
diese in einem maschinenlesbaren Format zu speichern, ein Hugging Face Dataset zu erstellen und ein Modell zu trainieren, das auf diesen Daten basiert.
|