Skip to content

Commit 2ccd6a5

Browse files
committed
Adopt Sendable protocol for tokenizer protocols and conforming types
1 parent b1b300e commit 2ccd6a5

File tree

4 files changed

+8
-8
lines changed

4 files changed

+8
-8
lines changed

Sources/Tokenizers/BPETokenizer.swift

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -9,7 +9,7 @@
99
import Foundation
1010
import Hub
1111

12-
struct BytePair: Hashable {
12+
struct BytePair: Hashable, Sendable {
1313
let a: String
1414
let b: String
1515
init(_ a: String, _ b: String) {
@@ -32,7 +32,7 @@ struct BytePair: Hashable {
3232
}
3333
}
3434

35-
class BPETokenizer: PreTrainedTokenizerModel {
35+
class BPETokenizer: PreTrainedTokenizerModel, @unchecked Sendable {
3636
let bpeRanks: [BytePair: Int]
3737
private let tokensToIds: [NSString: Int]
3838
private let idsToTokens: [Int: NSString]

Sources/Tokenizers/BertTokenizer.swift

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -9,7 +9,7 @@
99
import Foundation
1010
import Hub
1111

12-
public class BertTokenizer {
12+
public class BertTokenizer: @unchecked Sendable {
1313
private let basicTokenizer: BasicTokenizer
1414
private let wordpieceTokenizer: WordpieceTokenizer
1515
private let maxLen = 512

Sources/Tokenizers/Tokenizer.swift

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -150,7 +150,7 @@ public enum ChatTemplateArgument {
150150
case name(String)
151151
}
152152

153-
public protocol Tokenizer {
153+
public protocol Tokenizer: Sendable {
154154
func tokenize(text: String) -> [String]
155155

156156
/// Main entry point
@@ -268,7 +268,7 @@ let specialTokenAttributes: [String] = [
268268
"additional_special_tokens",
269269
]
270270

271-
public class PreTrainedTokenizer: Tokenizer {
271+
public class PreTrainedTokenizer: @unchecked Sendable, Tokenizer {
272272
let model: TokenizingModel
273273

274274
public var bosToken: String? { model.bosToken }
@@ -654,7 +654,7 @@ public extension AutoTokenizer {
654654

655655
// MARK: - Tokenizer model classes
656656

657-
class T5Tokenizer: UnigramTokenizer {}
657+
class T5Tokenizer: UnigramTokenizer, @unchecked Sendable {}
658658

659659
// MARK: - PreTrainedTokenizer classes
660660

@@ -703,7 +703,7 @@ func maybeUpdatePostProcessor(tokenizerConfig: Config, processorConfig: Config?)
703703
}
704704

705705
/// See https://github.com/xenova/transformers.js/blob/1a9964fb09b8f54fcbeac46dc6aae8d76795809d/src/tokenizers.js#L3203 for these exceptions
706-
class LlamaPreTrainedTokenizer: PreTrainedTokenizer {
706+
class LlamaPreTrainedTokenizer: PreTrainedTokenizer, @unchecked Sendable {
707707
let isLegacy: Bool
708708

709709
required init(tokenizerConfig: Config, tokenizerData: Config, strict: Bool = true) throws {

Sources/Tokenizers/UnigramTokenizer.swift

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -9,7 +9,7 @@
99
import Foundation
1010
import Hub
1111

12-
class UnigramTokenizer: PreTrainedTokenizerModel {
12+
class UnigramTokenizer: PreTrainedTokenizerModel, @unchecked Sendable {
1313
struct SentencePieceToken {
1414
var token: String
1515
var score: Float

0 commit comments

Comments
 (0)