Großsprachige Modelle können mit einer Reihe von Fragen und Antworten eingestellt werden. Um ein Modell für Ihre eigenen Daten weiter zu optimieren, benötigen Sie jedoch eine große Anzahl von Fragen und Antworten zu Ihren Daten. Das Erstellen dieser Fragen und Antworten kann eine Menge manueller Arbeit sein.
Mit diesem Repository können Sie ein nicht feinstimmiges Sprachmodell (CHATGPT) verwenden, um Fragen/Beantworten von Fragen automatisch aus vorhandenen Textdaten zu extrahieren, wodurch alle manuellen Arbeiten beseitigt werden.
Um diesen Code auszuführen, müssen Sie dieses Repository klonen und dann die folgenden Python -Pakete installieren:
tiktoken , der Openai -Tokener,openai , der offizielle OpenAI -API -Kunde,langchain , Klebercode zum Kombinieren von Modellen und Versorgungsunternehmen. Dieses Skript soll einen Ordner von Markdown ( .md ) -Dokumenten in eine .json -Datei verwandeln, die eine Liste von Fragen, Antworten und Pfaden zu den Quelldokumenten enthält, die zur Erstellung verwendet wurden.
Um den Code auszuführen, legen Sie die relevanten Dateipfade in der Datei question_extractor.py (sowohl im Eingabeordner als auch im Ausgabepfad) fest und versichern Sie, dass sich Ihr OpenAI -API -Schlüssel in der Umgebung befindet. Führen Sie dann das Skript mit Python aus:
python3 question_extractor.py
Sobald dies erledigt ist, werden alle Fragen/Antworten als .json -Datei im Ausgabepfad geschrieben.
Die Codeschleifen in allen Dateien extrahiert für jede Datei eine Liste von Fragen mit der folgenden Eingabeaufforderung, gefolgt von einem Textanteil:
You are an expert user extracting information to quiz people on documentation. You will be passed a page extracted from the documentation, write a numbered list of questions that can be answered based *solely* on the given text.
Anschließend schleifen die Fragen eine Antwort durch, indem Sie die folgende Eingabeaufforderung verabschiedet, gefolgt von einem Teil des Textes und einer Frage:
You are an expert user answering questions. You will be passed a page extracted from a documentation and a question. Generate a comprehensive and informative answer to the question based *solely* on the given text.
Der größte Teil der tatsächlichen Logik des Codes ist der gleichzeitigen Verarbeitung der Dateien (für die Geschwindigkeit) und der Versicherung gewidmet, dass Textbrocken, die an das Modell übergeben wurden, klein genug sind, um genug Token für die Beantwortung zu hinterlassen.
Wenn ein Text zu lang ist, um an das Modell gesendet zu werden, wird er entlang seines höchsten Auftriebsschichtpegels aufgeteilt (der Vorgang kann bei Bedarf rekursiv wiederholt werden, bis wir zu einzigen Absätzen gelangen).
In Bezug auf die Leistung kann dieses Skript die vollständige NERSC-Dokumentation in 6 Minuten 1 verarbeiten. 318 Markdown -Dateien in 8005 Fragen für 29 US -Dollar verwandeln.
Laufen mit etwa 93% der Ratenlimit des Modells. ↩