summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJonas Knobloch <jonas.knobloch@t-online.de>2026-04-30 13:26:16 +0200
committerJonas Knobloch <jonas.knobloch@t-online.de>2026-04-30 13:26:49 +0200
commita421c03b3de473c7082132717574ae61cf2969cd (patch)
tree44c48f56ff4670d8374d7314ce81b30fab592c6d
parente2aa50000f5ac1a0672c25a1e116e81ff54009c8 (diff)
Add MiniPile preparation
-rw-r--r--llmc/cmd/data/main.go1
-rw-r--r--llmc/cmd/data/minipile.go47
2 files changed, 48 insertions, 0 deletions
diff --git a/llmc/cmd/data/main.go b/llmc/cmd/data/main.go
index b12d124..27c5ac1 100644
--- a/llmc/cmd/data/main.go
+++ b/llmc/cmd/data/main.go
@@ -3,4 +3,5 @@ package main
func main() {
// tinyShakespeare()
// fineWeb()
+ // miniPile()
}
diff --git a/llmc/cmd/data/minipile.go b/llmc/cmd/data/minipile.go
new file mode 100644
index 0000000..2afeffe
--- /dev/null
+++ b/llmc/cmd/data/minipile.go
@@ -0,0 +1,47 @@
+package main
+
+import (
+ "log"
+
+ "go.jknobloc.com/x/dataset"
+ "go.jknobloc.com/x/llm"
+ "go.jknobloc.com/x/llmc"
+ "go.jknobloc.com/x/shelf"
+ "go.jknobloc.com/x/tokenizer/bpe"
+)
+
+func miniPile() {
+ prepareSplit := func(datasetPath, shardName string) {
+ var reader dataset.Reader
+
+ if r, err := dataset.NewParquetReader(datasetPath); err != nil {
+ log.Fatal(err)
+ } else {
+ reader = r
+ }
+
+ var tokenizer llm.Tokenizer
+
+ v := shelf.Abs("tokenizers/tokenizer_gpt2_50256_m000_minipile/vocab.json")
+ m := shelf.Abs("tokenizers/tokenizer_gpt2_50256_m000_minipile/merges.txt")
+
+ if t, err := bpe.NewTokenizerFromFiles(v, m, bpe.DefaultConfig()); err != nil {
+ log.Fatal(err)
+ } else {
+ tokenizer = t
+ }
+
+ docs := llmc.TokenizeAll(reader, tokenizer, 50256)
+
+ if _, err := llmc.WriteShards(shelf.Abs("llmc/minipile/m000"), "", 100_000_000, docs); err != nil {
+ log.Fatal(err)
+ }
+
+ if err := reader.Err(); err != nil {
+ log.Fatal(err)
+ }
+ }
+
+ prepareSplit(shelf.Abs("data/minipile/train"), "minipile_train")
+ prepareSplit(shelf.Abs("data/minipile/validation"), "minipile_val")
+}