Anda tetap perlu "berguling" walaupun anda tidak mempunyai pekerjaan.
Andrej Karpathy yang resah mempunyai projek baharu! Selepas mengumumkan pemergiannya dari Openai, Karpathy tweet bahawa "Saya boleh berehat minggu ini." ).
Tetapi jika anda benar-benar fikir Karpathy akan mempunyai sedikit masa, itu agak "terlalu muda, terlalu tentera laut". Tidak, netizen yang tajam mata menemui projek baharu Karpathy -
minbpe, yang didedikasikan untuk mencipta algoritma minimum, bersih dan pendidikan untuk algoritma BPE (Byte Pair Encoding, byte pair encoding) yang biasa digunakan dalam pembahagian perkataan LLM kod .
Hanya dalam satu hari, bintang GitHub projek telah mencapai 1.2k.
Sumber: https://twitter.com/ZainHasan6/status/1758727767204495367🜎 "memasak hidangan besar untuk semua orang" ”.
Ada yang bersorak, Karpathy kembali. Sumber imej: https://twitter.com/fouriergalois/status/1758775281391677477Mari kita lihat apa yang dibincangkan secara khusus oleh projek "minbpe".
Pengenalan Projek
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 präzisen 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 Reproduktionsbeispiel 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)
Salin selepas log masuk
Außerdem erfahren Sie, wie Sie GPT4Tokenizer implementieren und wie es mit Tiktoken verglichen wird. 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]
Salin selepas log masuk
Natürlich gibt sich Karpathy nicht damit zufrieden, nur das GitHub-Projekt zu starten, er sagte, das Video werde bald veröffentlicht.
Atas ialah kandungan terperinci Karpathy, yang meninggalkan OpenAI dan menganggur, memulakan projek model berskala besar baharu, dan bilangan bintang melebihi 1,000 dalam sehari.. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!