transformers-rb 0.1.6 → 0.2.0

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.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 607afc7b4cc3bb62f8ae2aab693863d2cd1456d0c90b20dc0eb4f682fc788cfb
4
- data.tar.gz: 3a6ad9f7f624e77e077bf4d7e1d945ee8f6e26d805e08a574d5d583e231500fb
3
+ metadata.gz: 40fb96eeb1204ea7b669c60479ca5170d11ecd78a923a6939bb358112f6bca5c
4
+ data.tar.gz: b069363067e3c40371bbba3967d5cad86b6f0d6060cca15c757f806f8f152508
5
5
  SHA512:
6
- metadata.gz: ab988a57c8af7883894163b149528172a8602d9031f9c6e6880d6bb32f42842cbfa566ac4f347168a230218565cc7550c99043286e5a31d0d104ba3b250b2483
7
- data.tar.gz: 7f29ee6adcc0566ce1d1905e557288dec78b8befcc98f9a46c71c0fe8580dd14c914afcb1c1477df65aecc3b106cf799975c2b46ba73a4ec7d93ea34a908b688
6
+ metadata.gz: 53bac82a7496acaf5da0e5d9636841d4ef3e32cb69177233375d88d989d00c147e1630e9844cdb0f3e7ed3e2fc26dea40c72b6115790ca89d873954ee417d759
7
+ data.tar.gz: d7cd31d7cdc821ff689c4c4136f4ee06247a0978b25d36d8aefe9da5cfd20301a33daceb98ee74a291bf8754859dc00d27080b9d2a33d83f1e69b22738334449
data/CHANGELOG.md CHANGED
@@ -1,3 +1,13 @@
1
+ ## 0.2.0 (2026-04-04)
2
+
3
+ - Switched to `numo-narray-alt`
4
+ - Removed `SentenceTransformer` class (use `pipeline` instead)
5
+ - Dropped support for Ruby < 3.3
6
+
7
+ ## 0.1.7 (2026-01-07)
8
+
9
+ - Switched to `cgi/escape` for Ruby 4.0
10
+
1
11
  ## 0.1.6 (2024-12-29)
2
12
 
3
13
  - Fixed error with failed HTTP requests
@@ -36,7 +36,7 @@ module Transformers
36
36
 
37
37
  # Setting the position-ids to the registered buffer in constructor, it helps
38
38
  # when tracing the model without passing position-ids, solves
39
- # isues similar to issue #5664
39
+ # issues similar to issue #5664
40
40
  if @position_ids
41
41
  position_ids = @position_ids[0.., 0...seq_length]
42
42
  else
@@ -115,23 +115,24 @@ module Transformers
115
115
  @framework = framework
116
116
 
117
117
  if device.nil?
118
- if Torch::CUDA.available? || Torch::Backends::MPS.available?
119
- Transformers.logger.warn(
120
- "Hardware accelerator e.g. GPU is available in the environment, but no `device` argument" +
121
- " is passed to the `Pipeline` object. Model will be on CPU."
122
- )
123
- end
118
+ device = 0
124
119
  end
125
120
 
126
- if @framework == "pt"
127
- if device.is_a?(String)
128
- @device = Torch.device(device)
129
- else
130
- # TODO update default in 0.2.0
131
- @device = @model.device
132
- end
121
+ if device == -1 && !@model.device.nil?
122
+ device = @model.device
123
+ end
124
+ if device.is_a?(Torch::Device)
125
+ @device = device
126
+ elsif device.is_a?(String)
127
+ @device = Torch.device(device)
128
+ elsif device < 0
129
+ @device = Torch.device("cpu")
130
+ elsif Torch::CUDA.available?
131
+ @device = Torch.device("cuda:%d" % device)
132
+ elsif Torch::Backends::MPS.available?
133
+ @device = Torch.device("mps:%d" % device)
133
134
  else
134
- raise Todo
135
+ @device = Torch.device("cpu")
135
136
  end
136
137
 
137
138
  # TODO Fix eql? for Torch::Device in Torch.rb
@@ -166,7 +166,7 @@ module Transformers
166
166
  end
167
167
 
168
168
  def preprocess(example, padding: "do_not_pad", doc_stride: nil, max_question_len: 64, max_seq_len: nil)
169
- # XXX: This is specal, args_parser will not handle anything generator or dataset like
169
+ # XXX: This is special, args_parser will not handle anything generator or dataset like
170
170
  # For those we expect user to send a simple valid example either directly as a SquadExample or simple dict.
171
171
  # So we still need a little sanitation here.
172
172
  if example.is_a?(Hash)
@@ -1,3 +1,3 @@
1
1
  module Transformers
2
- VERSION = "0.1.6"
2
+ VERSION = "0.2.0"
3
3
  end
data/lib/transformers.rb CHANGED
@@ -1,11 +1,11 @@
1
1
  # dependencies
2
- require "numo/narray"
2
+ require "numo/narray/alt"
3
3
  require "safetensors"
4
4
  require "tokenizers"
5
5
  require "torch-rb"
6
6
 
7
7
  # stdlib
8
- require "cgi"
8
+ require "cgi/escape"
9
9
  require "fileutils"
10
10
  require "io/console"
11
11
  require "json"
@@ -30,7 +30,6 @@ require_relative "transformers/image_processing_utils"
30
30
  require_relative "transformers/image_transforms"
31
31
  require_relative "transformers/modeling_outputs"
32
32
  require_relative "transformers/modeling_utils"
33
- require_relative "transformers/sentence_transformer"
34
33
  require_relative "transformers/tokenization_utils_base"
35
34
  require_relative "transformers/tokenization_utils"
36
35
  require_relative "transformers/tokenization_utils_fast"
metadata CHANGED
@@ -1,13 +1,13 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: transformers-rb
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.1.6
4
+ version: 0.2.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Andrew Kane
8
8
  bindir: bin
9
9
  cert_chain: []
10
- date: 2024-12-29 00:00:00.000000000 Z
10
+ date: 1980-01-02 00:00:00.000000000 Z
11
11
  dependencies:
12
12
  - !ruby/object:Gem::Dependency
13
13
  name: logger
@@ -24,19 +24,19 @@ dependencies:
24
24
  - !ruby/object:Gem::Version
25
25
  version: '0'
26
26
  - !ruby/object:Gem::Dependency
27
- name: numo-narray
27
+ name: numo-narray-alt
28
28
  requirement: !ruby/object:Gem::Requirement
29
29
  requirements:
30
30
  - - ">="
31
31
  - !ruby/object:Gem::Version
32
- version: 0.9.2
32
+ version: '0.10'
33
33
  type: :runtime
34
34
  prerelease: false
35
35
  version_requirements: !ruby/object:Gem::Requirement
36
36
  requirements:
37
37
  - - ">="
38
38
  - !ruby/object:Gem::Version
39
- version: 0.9.2
39
+ version: '0.10'
40
40
  - !ruby/object:Gem::Dependency
41
41
  name: safetensors
42
42
  requirement: !ruby/object:Gem::Requirement
@@ -144,7 +144,6 @@ files:
144
144
  - lib/transformers/pipelines/text_classification.rb
145
145
  - lib/transformers/pipelines/token_classification.rb
146
146
  - lib/transformers/ruby_utils.rb
147
- - lib/transformers/sentence_transformer.rb
148
147
  - lib/transformers/tokenization_utils.rb
149
148
  - lib/transformers/tokenization_utils_base.rb
150
149
  - lib/transformers/tokenization_utils_fast.rb
@@ -169,14 +168,14 @@ required_ruby_version: !ruby/object:Gem::Requirement
169
168
  requirements:
170
169
  - - ">="
171
170
  - !ruby/object:Gem::Version
172
- version: '3.1'
171
+ version: '3.3'
173
172
  required_rubygems_version: !ruby/object:Gem::Requirement
174
173
  requirements:
175
174
  - - ">="
176
175
  - !ruby/object:Gem::Version
177
176
  version: '0'
178
177
  requirements: []
179
- rubygems_version: 3.6.2
178
+ rubygems_version: 4.0.6
180
179
  specification_version: 4
181
180
  summary: State-of-the-art transformers for Ruby
182
181
  test_files: []
@@ -1,21 +0,0 @@
1
- module Transformers
2
- # TODO remove in 0.2.0
3
- class SentenceTransformer
4
- def initialize(model_id)
5
- @model_id = model_id
6
- @model = Transformers.pipeline("embedding", model_id)
7
- end
8
-
9
- def encode(sentences)
10
- # TODO check modules.json
11
- if [
12
- "sentence-transformers/all-MiniLM-L6-v2",
13
- "sentence-transformers/multi-qa-MiniLM-L6-cos-v1"
14
- ].include?(@model_id)
15
- @model.(sentences)
16
- else
17
- @model.(sentences, pooling: "cls", normalize: false)
18
- end
19
- end
20
- end
21
- end