Du musst auch dann noch „rollen“, wenn du keinen Job hast.
Der ruhelose Andrej Karpathy hat ein neues Projekt! In den letzten Tagen ging es bei OpenAI sehr lebhaft zu. Zuerst gab KI-Guru Andrej Karpathy offiziell seinen Rücktritt bekannt, und dann erschütterte das Videogenerationsmodell Sora den KI-Kreis. Nachdem Karpathy seinen Abschied von OpenAI angekündigt hatte, twitterte er: „Ich kann diese Woche eine Pause machen.“ ).
Aber wenn Sie wirklich glauben, dass Karpathy eine Auszeit bekommt, dann ist das ein bisschen „zu jung, zu marineblau“. Nein, scharfäugige Internetnutzer haben Karpathys neues Projekt entdeckt –
minbpe, das sich der Erstellung eines minimalen, sauberen und lehrreichen Algorithmus für den BPE-Algorithmus (Byte Pair Encoding, Bytepaar-Kodierung) widmet, der üblicherweise bei der LLM-Wortsegmentierung verwendet wird Code .
In nur einem Tag hat der GitHub-Stern des Projekts 1,2.000 erreicht.
Quelle: https://twitter.com/ZainHasan6/status/1758727767204495367
Jemand hat ein Bild gepostet, auf dem das steht „hat für alle ein großes Essen gekocht“ ”. Einige Leute jubelten, Karpathy ist zurück.
Bildquelle: https://twitter.com/fouriergalois/status/1758775281391677477
Werfen wir einen Blick darauf, worüber das Projekt „minbpe“ konkret spricht.
GitHub-Adresse: https://github.com/karpathy/minbpeWir wissen, dass der BPE-Algorithmus auf „Byte-Ebene“ arbeitet und mit UTF-8-codierten Zeichenfolgen arbeitet. Der Algorithmus wird in großen Sprachmodellen (LLM) durch das GPT-2-Papier und GPT-2-bezogenen Code verallgemeinert. Heutzutage verwenden alle modernen LLMs (wie GPT, Llama, Mistral) den BPE-Algorithmus, um ihre Tokenizer zu trainieren. Das Minbpe-Projekt-Repository von Karpathy bietet zwei Tokenizer, die beide die drei Hauptfunktionen des Tokenizers ausführen können: 1) Tokenizer-Vokabular trainieren und in den angegebenen Text einbinden, 2) vom Text zum Token kodieren, 3) dekodieren vom Token zum Text. Die detaillierten Repository-Dateien lauten wie folgt:
- minbpe/base.py: implementiert die Tokenizer-Klasse, die die Basisklasse ist. Es umfasst Training, Codierung und Decodierung von Stubs, Speicher-/Ladefunktionen und einige allgemeine Dienstprogrammfunktionen. Allerdings sollte diese Klasse nicht direkt verwendet, sondern geerbt werden.
- minbpe/basic.py: Implementiert BasicTokenizer, die einfachste Implementierung des BPE-Algorithmus, der direkt auf Text arbeitet.
- minbpe/regex.py: Implementiert RegexTokenizer, der Eingabetext weiter nach regulären Ausdrucksmustern aufteilt. Als Vorverarbeitungsstufe wird der Eingabetext vor der Wortsegmentierung nach Kategorien (z. B. Buchstaben, Zahlen, Satzzeichen) aufgeteilt. Dadurch wird sichergestellt, dass es nicht zu einer Zusammenführung über Kategoriegrenzen hinweg kommt. Es wurde im GPT-2-Papier eingeführt und wird weiterhin in GPT-4 verwendet.
- minbpe/gpt4.py: GPT4Tokenizer implementieren. Diese Klasse ist ein leichtes Paket von RegexTokenizer, das die GPT-4-Wortsegmentierung in der Tiktoken-Bibliothek (OpenAI Open-Source-Wortsegmentierungsartefakt) genau reproduziert. Der Wrapper verarbeitet einige Details zur Wiederherstellung der exakten Zusammenführung im Tokenizer und verarbeitet einige 1-Byte-Token-Permutationen. Es ist zu beachten, dass die Paritätsprüfung noch nicht vollständig abgeschlossen ist und keine speziellen Token verarbeitet wurden.
Das Skript train.py trainiert die beiden Haupt-Tokenizer für den Eingabetext „tests/taylorswift.txt“ und speichert das Vokabular zur Visualisierung auf der Festplatte. Karpathy sagt, dass die Ausführung des Skripts auf seinem MacBook (M1) etwa 25 Sekunden dauert. Karpathy gab außerdem an, dass alle Dokumente sehr kurz und gut kommentiert seien und Anwendungsbeispiele enthielten. Unten finden Sie ein reproduziertes Beispiel aus dem BPE-Wikipedia-Artikel. from minbpe import BasicTokenizertokenizer = BasicTokenizer()text = "aaabdaaabac"tokenizer.train(text, 256 + 3) # 256 are the byte tokens, then do 3 mergesprint(tokenizer.encode(text))# [258, 100, 258, 97, 99]print(tokenizer.decode([258, 100, 258, 97, 99]))# aaabdaaabactokenizer.save("toy")# writes two files: toy.model (for loading) and toy.vocab (for viewing)
Nach dem Login kopieren
Außerdem erfahren Sie, wie Sie GPT4Tokenizer implementieren und wie es im Vergleich zu Tiktoken abschneidet. text = "hello123!!!? (안녕하세요!) ?"# tiktokenimport tiktokenenc = tiktoken.get_encoding("cl100k_base")print(enc.encode(text))# [15339, 4513, 12340, 30, 320, 31495, 230, 75265, 243, 92245, 16715, 57037]# oursfrom minbpe import GPT4Tokenizertokenizer = GPT4Tokenizer()print(tokenizer.encode(text))# [15339, 4513, 12340, 30, 320, 31495, 230, 75265, 243, 92245, 16715, 57037]
Nach dem Login kopieren
Natürlich gibt sich Karpathy nicht damit zufrieden, nur das GitHub-Projekt zu starten, er sagte, das Video werde bald veröffentlicht.
Das obige ist der detaillierte Inhalt vonKarpathy, der OpenAI verließ und arbeitslos war, startete ein neues großes Modellprojekt, und die Anzahl der Sterne überstieg 1.000 an einem Tag.. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!