落ち着きのないアンドレイ・カルパシーには新しいプロジェクトがあります! ここ数日間、OpenAI は非常に活発でした。まず、AI の第一人者である Andrej Karpathy が正式に辞任を発表し、次にビデオ生成モデル Sora が AI 界を震撼させました。 OpenAIからの離脱を発表した後、カルパシーは「今週は休める」とツイートした 86972512239665
この何もすることがない状態はマスクも羨ましい(うらやましい) )。
しかし、もしカルパシーがしばらく休暇を取るだろうと本当に思っているなら、それは少し「若すぎて、あまりにもナビゲート的」です。 いいえ、鋭い目のネチズンが Karpathy の新しいプロジェクトである
minbpe を発見しました。これは、LLM ワード セグメンテーションで一般的に使用される BPE (バイト ペア エンコーディング、バイト ペア エンコーディング) アルゴリズム用の最小限でクリーンで教育的なアルゴリズムの作成に特化しています。コード
わずか 1 日で、このプロジェクトの GitHub スターは 1.2k に達しました。
誰かが、カルパシー「coみんなにたくさん食べさせてくれた」
カルパシーが戻ってきた、と歓声を上げる人もいました。
画像出典:https://twitter.com/fouriergalois/status/1758775281391677477
「minbpe」プロジェクトで具体的にどのようなことが語られているのか見てみましょう。 GitHub 地址:https://github.com/karpathy/minbpe我们知道,BPE 算法是「字节级」的,在 UTF-8 编码的字符串上运行。该算法通过 GPT-2 论文和 GPT-2 相关的代码在大语言模型(LLM)中得到推广。现如今,所有现代的 LLM(比如 GPT、Llama、Mistral)都使用 BPE 算法来训练它们的分词器(tokenizer)。Karpathy 的 minbpe 项目存储库中提供了两个 Tokenizer,它们都可以执行分词器的 3 个主要功能:1)训练 tokenizer 词汇并合并给指定文本,2)从文本编码到 token,3)从 token 解码到文本。
- minbpe/base.py:实现 Tokenizer 类,是基类。它包含了训练、编码和解码存根、保存 / 加载功能,还有一些常见的实用功能。不过,该类不应直接使用,而是要继承。
- minbpe/basic.py:实现 BasicTokenizer,这是直接在文本上运行的 BPE 算法的最简单实现。
- minbpe/regex.py:实现 RegexTokenizer,它通过正则表达式模式进一步拆分输入文本。作为一个预处理阶段,它在分词之前按类别(例如字母、数字、标点符号)拆分输入文本。这确保不会发生跨类别边界的合并。它是在 GPT-2 论文中引入的,并继续在 GPT-4 中使用。
- minbpe/gpt4.py:实现 GPT4Tokenizer。此类是 RegexTokenizer 的轻量级封装,它精确地复现了 tiktoken(OpenAI 开源分词神器)库中 GPT-4 的分词。封装处理有关恢复 tokenizer 中精确合并的一些细节,并处理一些 1 字节的 token 排列。需要注意,奇偶校验尚未完全完成,没有处理特殊的 token。
脚本 train.py 在输入文本 tests/taylorswift.txt 上训练两个主要的 tokenizer,并将词汇保存到磁盘以进行可视化。Karpathy 称,该脚本在他的 MacBook (M1) 上运行大约需要 25 秒。Karpathy 还表示,所有文件都非常短且注释详尽,并包含使用示例。如下为 BPE 维基百科文章的复现例子。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)
此外还提供了如何实现 GPT4Tokenizer,以及它与 tiktoken 的比较。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]
当然,Karpathy 不满足只推出 GitHub 项目,他表示视频很快就会发布。
以上がOpenAIを辞めて無職になったKarpathyさんが新たに大規模なモデルプロジェクトを立ち上げたところ、星の数は1日で1000個を超えた。の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。