TokenDagger ist ein hochleistungsfähiges Textsegmentierungstool zur Beschleunigung von Aufgaben der natürlichen Sprachverarbeitung (NLP). Es ist eine Alternative zu TikToken von OpenAI, die die Geschwindigkeit der Worttrennung optimiert und besonders gut bei der Arbeit mit Code und umfangreichem Text funktioniert. Das vom Entwickler Matthew Wolfe auf GitHub bereitgestellte Projekt bietet eine mit TikToken 100% kompatible Schnittstelle, die von Entwicklern ohne Änderung des bestehenden Codes verwendet werden kann.TokenDagger nutzt die PCRE2-Engine zur Optimierung des Abgleichs regulärer Ausdrücke, vereinfacht den BPE-Algorithmus (Byte-Pair-Encoding) und verbessert die Leistung drastisch. Tests haben gezeigt, dass es bei der Code-Segmentierung viermal schneller ist als TikToken und bei der Verarbeitung von 1-GB-Textdateien zwei- bis dreimal schneller ist, was den Durchsatz angeht. Das Projekt ist für Entwickler, Datenwissenschaftler und KI-Forscher geeignet, die eine effiziente Textverarbeitung benötigen.
Funktionsliste
- Effiziente Segmentierung: Basierend auf der PCRE2-Engine wird der Abgleich regulärer Ausdrücke optimiert und die Geschwindigkeit der Textsegmentierung erheblich verbessert.
- Kompatibel mit TikToken: Als direkter Ersatz für TikToken kann es ohne Änderung des bestehenden Codes integriert werden.
- Vereinfachter BPE-Algorithmus: optimierte Byte-Paar-Kodierung, reduzierte spezielle Token Leistungsmehrkosten der Verarbeitung.
- Open-Source-Unterstützung: Der vollständige Quellcode ist verfügbar, so dass Entwickler Anpassungen oder Verbesserungen vornehmen können.
- Plattformübergreifende Unterstützung: Unterstützung für Linux, macOS und andere Systeme, einfache Bereitstellung in einer Vielzahl von Entwicklungsumgebungen.
- Test-Suite: Eingebautes Benchmarking-Tool zur Überprüfung der Partizip-Leistung und zum Vergleich mit TikToken.
Hilfe verwenden
Einbauverfahren
TokenDagger ist für Entwickler, die mit Python und Git vertraut sind, einfach zu installieren. Hier sind die detaillierten Installationsschritte, basierend auf Ubuntu/Debian-Systemen (andere Systeme müssen die Befehle zur Installation der Abhängigkeiten entsprechend anpassen):
- Code-Repository klonen
Verwenden Sie den Git-Befehl, um das TokenDagger-Repository lokal zu klonen:git clone git@github.com:M4THYOU/TokenDagger.git
Dadurch wird der neueste Quellcode für TokenDagger heruntergeladen.
- Installation der PCRE2-Entwicklungsbibliothek
TokenDagger verwendet PCRE2 für den effizienten Abgleich regulärer Ausdrücke und erfordert die Installation der Entwicklungsbibliothek:sudo apt install libpcre2-dev
- Aktualisierung von Untermodulen
Das Projekt stützt sich auf eine Reihe von externen Komponenten, die initialisiert und Teilmodule aktualisiert werden müssen:git submodule update --init --recursive
- Installation der Python-Entwicklungsumgebung
Stellen Sie sicher, dass Ihr System über eine Python3-Entwicklungsumgebung verfügt:sudo apt update && sudo apt install -y python3-dev
- TikToken installieren (optional)
Wenn Sie eine Testsuite zum Leistungsvergleich mit TikToken ausführen möchten, müssen Sie TikToken installieren:pip3 install tiktoken
- Kompilieren und ausführen
Wechseln Sie in das Projektverzeichnis und führen Sie das Python-Skript oder die Testsuite aus:cd TokenDagger python3 setup.py install
Einmal installiert, kann TokenDagger über Python importiert und verwendet werden.
Verwendung
Die Kernfunktion von TokenDagger ist die effiziente Worttrennung, die sich für die Verarbeitung von Code, Dokumenten oder umfangreichen Texten eignet. Nachfolgend finden Sie den Arbeitsablauf der Hauptfunktion:
1. die Integration in bestehende Projekte
TokenDagger ist vollständig kompatibel mit der API von TikToken. Entwickler können zum Beispiel die Import-Anweisung von TikToken einfach durch TokenDagger ersetzen:
# 原代码
from tiktoken import encoding_for_model
# 替换为
from tokendagger import encoding_for_model
Ohne nachträgliche Codeänderungen übernimmt TokenDagger die Aufgabe der Wortsegmentierung und sorgt für eine schnellere Verarbeitung.
2. die Segmentierungsvorgänge
TokenDagger unterstützt die standardmäßigen Worttrennungsoperationen. Unten ist ein einfaches Beispiel:
from tokendagger import encoding_for_model
encoder = encoding_for_model("gpt-3.5-turbo")
text = "Hello, this is a sample text for tokenization."
tokens = encoder.encode(text)
print(tokens)
Dieser Code wandelt den Eingabetext in eine Liste von Token um, was schneller ist als TikToken, vor allem, wenn es um langen Text oder Code geht.
3. die Handhabung des Code-Splittings
TokenDagger ist besonders gut bei der Disambiguierung von Code. Angenommen, Sie müssen Python-Code verarbeiten:
code = """
def hello_world():
print("Hello, World!")
"""
tokens = encoder.encode(code)
print(len(tokens)) # 输出 token 数量
Tests haben gezeigt, dass TokenDagger ähnlichen Code 4x schneller verarbeitet als TikToken und sich daher für Szenarien eignet, die ein schnelles Code-Parsing erfordern.
4. die Durchführung von Benchmark-Tests
TokenDagger bietet eine integrierte Testsuite, mit der Entwickler die Leistung überprüfen können:
python3 -m tokendagger.benchmark
Die Testergebnisse zeigen die Geschwindigkeit von TokenDagger im Vergleich zu TikToken bei verschiedenen Datensätzen, z. B. 1-GB-Textdateien oder Codeproben.
5. kundenspezifische Entwicklung
Entwickler können den Quellcode von TokenDagger an ihre spezifischen Bedürfnisse anpassen. Der Projektkatalog ist gut strukturiert, und die zentrale Tokenisierungslogik befindet sich in der tokendagger/core
ein. Entwickler können PCRE2 reguläre Ausdrücke oder BPE-Algorithmen anpassen, um sie für bestimmte Anwendungsfälle zu optimieren.
caveat
- Anforderungen an die UmweltStellen Sie sicher, dass Python 3.6+ und die PCRE2-Bibliothek auf Ihrem System installiert sind.
- Umgebung für LeistungstestsOffizielle Benchmarks wurden mit einem AMD EPYC 4584PX Prozessor durchgeführt, die tatsächliche Leistung kann je nach Hardware variieren.
- Unterstützung der GemeinschaftWenn Sie Probleme haben, melden Sie einen Fehler auf GitHub oder lesen Sie die Dokumentation.
Anwendungsszenario
- Entwicklung von AI-Modellen
TokenDagger eignet sich für die Vorverarbeitungsphase umfangreicher Sprachmodelle (LLMs) und wandelt Text schnell in Token um, um die Trainingseffizienz zu verbessern. KI-Entwickler können damit zum Beispiel große Datensätze verarbeiten und die Zeit für die Datenvorverarbeitung reduzieren. - Code-Analyse-Tools
In Code-Review- oder statischen Analysetools analysiert TokenDagger schnell den Quellcode und generiert Token-Sequenzen für die Erstellung von Funktionen zur Syntaxhervorhebung, Codevervollständigung oder Fehlererkennung. - Big Data Textverarbeitung
Datenwissenschaftler können mit TokenDagger große Textmengen verarbeiten, z. B. Protokolldateien oder Daten aus sozialen Medien. Der hohe Durchsatz reduziert die Verarbeitungszeit erheblich. - Bildung und Forschung
Studenten und Forscher können TokenDagger nutzen, um lexikalische Algorithmen zu erlernen oder mit NLP zu experimentieren. Das Projekt ist quelloffen und für die akademische Erforschung gut dokumentiert.
QA
- Was ist der Unterschied zwischen TokenDagger und TikToken?
TokenDagger ist eine Hochleistungsalternative zu TikToken, die die PCRE2-Engine und optimierte BPE-Algorithmen verwendet und wesentlich schneller ist, insbesondere bei der Codesegmentierung um den Faktor 4 und beim Textverarbeitungsdurchsatz um den Faktor 2-3. - Muss ich meinen Code ändern, um TokenDagger zu verwenden?
TokenDagger ist vollständig mit der API von TikToken kompatibel, so dass Sie nahtlos wechseln können, indem Sie einfach die Import-Anweisung ersetzen. - Welche Programmiersprachen werden von TokenDagger unterstützt?
Sie ist in erster Linie für Python-Entwickler gedacht, aber die Partizip-Funktion kann jeden Text verarbeiten, einschließlich Code in einer Vielzahl von Programmiersprachen. - Wie kann ich die Leistung von TokenDagger überprüfen?
Führen Sie die integrierten Benchmarks auspython3 -m tokendagger.benchmark
Darüber hinaus können Sie die Geschwindigkeit von TokenDagger und TikToken vergleichen.