nanogpt 0.1.0 → 0.1.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (4) hide show
  1. checksums.yaml +4 -4
  2. data/exe/nanogpt +38 -4
  3. data/lib/nano_gpt/version.rb +1 -1
  4. metadata +1 -1
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: b10e62747a63be10b519fdd8eb1eaabfc63214b01ab553d4230af865a0a8f327
4
- data.tar.gz: 69db126e3d02c897045e543981223d1d29d72f7625bd381e3ba4badee88b6d20
3
+ metadata.gz: 17c3921412aa2d70e303ba68f979f5ccf9bb3e9b815ddfe3fbfbfcc62b7a3be6
4
+ data.tar.gz: 1b0b97a5513a341ae93bd046a86df8237f3941d3cbe11dec480a6cb59c8ea597
5
5
  SHA512:
6
- metadata.gz: 97f5846373224b889f22b80302a05271c7ab0276037e519c19c58cc0954aa982a4d3ac9992766aa73f6d1eec1dfe2b96b8a750414dd02818529e37789671cd87
7
- data.tar.gz: accd2112564f004cc763dbaac418f35ce24426d4d86e53935a32bdf6411659463ed6cb8e9415146136ee78fa79748e39a1e506b5c44848a7b6e503dfee86e310
6
+ metadata.gz: b3b7d07a8016bb7817f20bb22476d1d85bdaad42600234f8cf6a763316b6b128e473bccf17eef5135486c5b67051c3d1f10278214a28ec72cd26da18a4f68c8c
7
+ data.tar.gz: 90fe296ae42f058d9a918ba630781edca983ef22314797ef44a82e15c257bf06903c10b0442611e78a9ff654c08978720e1ece4bb3bb13b52f5d3cffe2331122
data/exe/nanogpt CHANGED
@@ -6,7 +6,7 @@ $stdout.sync = true
6
6
  require "nano_gpt"
7
7
 
8
8
  class NanoGPTCLI
9
- COMMANDS = %w[train sample bench version help].freeze
9
+ COMMANDS = %w[prepare train sample bench version help].freeze
10
10
 
11
11
  def initialize(args)
12
12
  @command = args.shift
@@ -15,6 +15,8 @@ class NanoGPTCLI
15
15
 
16
16
  def run
17
17
  case @command
18
+ when "prepare"
19
+ prepare
18
20
  when "train"
19
21
  train
20
22
  when "sample"
@@ -35,6 +37,37 @@ class NanoGPTCLI
35
37
 
36
38
  private
37
39
 
40
+ def prepare
41
+ dataset = @args.first
42
+
43
+ # Find available datasets
44
+ data_dir = File.join(File.dirname(__FILE__), "..", "data")
45
+ available = Dir.glob(File.join(data_dir, "*", "prepare.rb")).map do |path|
46
+ File.basename(File.dirname(path))
47
+ end.sort
48
+
49
+ if dataset.nil?
50
+ puts "Usage: nanogpt prepare <dataset>"
51
+ puts ""
52
+ puts "Available datasets:"
53
+ available.each { |d| puts " #{d}" }
54
+ exit 1
55
+ end
56
+
57
+ prepare_script = File.join(data_dir, dataset, "prepare.rb")
58
+
59
+ unless File.exist?(prepare_script)
60
+ puts "Error: Unknown dataset '#{dataset}'"
61
+ puts ""
62
+ puts "Available datasets:"
63
+ available.each { |d| puts " #{d}" }
64
+ exit 1
65
+ end
66
+
67
+ puts "Preparing dataset: #{dataset}"
68
+ load prepare_script
69
+ end
70
+
38
71
  def train
39
72
  config = NanoGPT::TrainConfig.load(@args)
40
73
 
@@ -318,6 +351,7 @@ class NanoGPTCLI
318
351
  Usage: nanogpt <command> [options]
319
352
 
320
353
  Commands:
354
+ prepare Download and prepare a dataset
321
355
  train Train a GPT model
322
356
  sample Generate text from a trained model
323
357
  bench Run performance benchmarks
@@ -325,9 +359,9 @@ class NanoGPTCLI
325
359
  help Show this help message
326
360
 
327
361
  Examples:
328
- nanogpt train --config=config/train_shakespeare_char.json
329
- nanogpt train --dataset=shakespeare_char --max_iters=1000
330
- nanogpt sample --out_dir=out-shakespeare-char --num_samples=3
362
+ nanogpt prepare shakespeare_char
363
+ nanogpt train --dataset=shakespeare_char --device=mps
364
+ nanogpt sample --dataset=shakespeare_char --num_samples=3
331
365
  nanogpt bench --batch_size=8 --block_size=512
332
366
 
333
367
  For more information, visit: https://github.com/khasinski/nanogpt-rb
@@ -1,5 +1,5 @@
1
1
  # frozen_string_literal: true
2
2
 
3
3
  module NanoGPT
4
- VERSION = "0.1.0"
4
+ VERSION = "0.1.1"
5
5
  end
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: nanogpt
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.1.0
4
+ version: 0.1.1
5
5
  platform: ruby
6
6
  authors:
7
7
  - Chris Hasiński