transformers-rb 0.1.7 → 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: c1fa37e7471df9836adbb814ac2098b685fd71d879bc83778e97a200db6c9d1b
4
- data.tar.gz: 99d487b130a5cf67f7c853eeb4d57f17b6cd7d9fe28cf0d39e31d1172ff99936
3
+ metadata.gz: 40fb96eeb1204ea7b669c60479ca5170d11ecd78a923a6939bb358112f6bca5c
4
+ data.tar.gz: b069363067e3c40371bbba3967d5cad86b6f0d6060cca15c757f806f8f152508
5
5
  SHA512:
6
- metadata.gz: a1849c202c5d053eb82643ff1050594b26520fa53ee49e70a33a37ff39ee8e22244ee5ff799ee7961d7434030dd715d2b15a8ba9e7bf75585b947b8f73f36924
7
- data.tar.gz: b577a028df70e8b90840efb88e49793a1ae5a26faa7420e7fbafd8d1aef1ae55accd025713866095d678dbad9fcdbfd2b757eb89b78172da3fcac7800535342f
6
+ metadata.gz: 53bac82a7496acaf5da0e5d9636841d4ef3e32cb69177233375d88d989d00c147e1630e9844cdb0f3e7ed3e2fc26dea40c72b6115790ca89d873954ee417d759
7
+ data.tar.gz: d7cd31d7cdc821ff689c4c4136f4ee06247a0978b25d36d8aefe9da5cfd20301a33daceb98ee74a291bf8754859dc00d27080b9d2a33d83f1e69b22738334449
data/CHANGELOG.md CHANGED
@@ -1,3 +1,9 @@
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
+
1
7
  ## 0.1.7 (2026-01-07)
2
8
 
3
9
  - Switched to `cgi/escape` for Ruby 4.0
@@ -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
@@ -1,3 +1,3 @@
1
1
  module Transformers
2
- VERSION = "0.1.7"
2
+ VERSION = "0.2.0"
3
3
  end
data/lib/transformers.rb CHANGED
@@ -1,5 +1,5 @@
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"
@@ -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,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: transformers-rb
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.1.7
4
+ version: 0.2.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Andrew Kane
@@ -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: 4.0.3
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