From e70d791f8c63598984ca77e0f78a5a2e4db5e82d Mon Sep 17 00:00:00 2001 From: Mattt Zmuda Date: Wed, 17 Sep 2025 06:33:02 -0700 Subject: [PATCH 1/2] Remove TensorUtils dependency from Models target --- Package.swift | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Package.swift b/Package.swift index 9490524..5d89402 100644 --- a/Package.swift +++ b/Package.swift @@ -33,7 +33,7 @@ let package = Package( .target(name: "Tokenizers", dependencies: ["Hub", .product(name: "Jinja", package: "Jinja")]), .target(name: "TensorUtils"), .target(name: "Generation", dependencies: ["Tokenizers", "TensorUtils"]), - .target(name: "Models", dependencies: ["Tokenizers", "Generation", "TensorUtils"]), + .target(name: "Models", dependencies: ["Tokenizers", "Generation"]), .testTarget(name: "TokenizersTests", dependencies: ["Tokenizers", "Models", "Hub"], resources: [.process("Resources"), .process("Vocabs")]), .testTarget(name: "HubTests", dependencies: ["Hub", .product(name: "Jinja", package: "Jinja")], swiftSettings: swiftSettings), .testTarget(name: "TensorUtilsTests", dependencies: ["TensorUtils", "Models", "Hub"], resources: [.process("Resources")]), From d77f66f1af72a242a72edd6cb03eb93e47f80901 Mon Sep 17 00:00:00 2001 From: Mattt Zmuda Date: Wed, 17 Sep 2025 06:49:59 -0700 Subject: [PATCH 2/2] Consolidate TensorUtils into Generation and reorganize targets --- Package.swift | 10 +++++----- Sources/Generation/Generation.swift | 1 - .../LogitsWarper/LogitsProcessor.swift | 0 .../LogitsWarper/LogitsWarper.swift | 0 .../LogitsWarper/RepetitionPenaltyWarper.swift | 0 .../LogitsWarper/TemperatureLogitsWarper.swift | 0 .../LogitsWarper/TopKLogitsWarper.swift | 0 .../LogitsWarper/TopPLogitsWarper.swift | 0 .../MLMultiArray+Utils.swift | 0 .../MLShapedArray+Utils.swift | 0 Sources/{TensorUtils => Generation}/Math.swift | 0 Sources/{TensorUtils => Models}/Weights.swift | 0 .../LogitsWarperTests.swift | 2 +- .../MathTests.swift} | 6 +++--- .../TestUtils.swift | 0 .../Resources/tensor-1d-int32.safetensors | Bin .../Resources/tensor-2d-float64.safetensors | Bin .../Resources/tensor-3d-float32.safetensors | Bin .../Resources/tensor-4d-float32.safetensors | Bin .../WeightsTests.swift | 2 +- 20 files changed, 10 insertions(+), 11 deletions(-) rename Sources/{TensorUtils => Generation}/LogitsWarper/LogitsProcessor.swift (100%) rename Sources/{TensorUtils => Generation}/LogitsWarper/LogitsWarper.swift (100%) rename Sources/{TensorUtils => Generation}/LogitsWarper/RepetitionPenaltyWarper.swift (100%) rename Sources/{TensorUtils => Generation}/LogitsWarper/TemperatureLogitsWarper.swift (100%) rename Sources/{TensorUtils => Generation}/LogitsWarper/TopKLogitsWarper.swift (100%) rename Sources/{TensorUtils => Generation}/LogitsWarper/TopPLogitsWarper.swift (100%) rename Sources/{TensorUtils => Generation}/MLMultiArray+Utils.swift (100%) rename Sources/{TensorUtils => Generation}/MLShapedArray+Utils.swift (100%) rename Sources/{TensorUtils => Generation}/Math.swift (100%) rename Sources/{TensorUtils => Models}/Weights.swift (100%) rename Tests/{TensorUtilsTests => GenerationTests}/LogitsWarperTests.swift (99%) rename Tests/{TensorUtilsTests/TensorUtilsTests.swift => GenerationTests/MathTests.swift} (94%) rename Tests/{TensorUtilsTests => GenerationTests}/TestUtils.swift (100%) rename Tests/{TensorUtilsTests => ModelsTests}/Resources/tensor-1d-int32.safetensors (100%) rename Tests/{TensorUtilsTests => ModelsTests}/Resources/tensor-2d-float64.safetensors (100%) rename Tests/{TensorUtilsTests => ModelsTests}/Resources/tensor-3d-float32.safetensors (100%) rename Tests/{TensorUtilsTests => ModelsTests}/Resources/tensor-4d-float32.safetensors (100%) rename Tests/{TensorUtilsTests => ModelsTests}/WeightsTests.swift (99%) diff --git a/Package.swift b/Package.swift index 5d89402..f856f70 100644 --- a/Package.swift +++ b/Package.swift @@ -29,13 +29,13 @@ let package = Package( ] ), .executableTarget(name: "HubCLI", dependencies: ["Hub", .product(name: "ArgumentParser", package: "swift-argument-parser")]), + .target(name: "Generation", dependencies: ["Tokenizers"]), .target(name: "Hub", resources: [.process("FallbackConfigs")], swiftSettings: swiftSettings), - .target(name: "Tokenizers", dependencies: ["Hub", .product(name: "Jinja", package: "Jinja")]), - .target(name: "TensorUtils"), - .target(name: "Generation", dependencies: ["Tokenizers", "TensorUtils"]), .target(name: "Models", dependencies: ["Tokenizers", "Generation"]), - .testTarget(name: "TokenizersTests", dependencies: ["Tokenizers", "Models", "Hub"], resources: [.process("Resources"), .process("Vocabs")]), + .target(name: "Tokenizers", dependencies: ["Hub", .product(name: "Jinja", package: "Jinja")]), + .testTarget(name: "GenerationTests", dependencies: ["Generation"]), .testTarget(name: "HubTests", dependencies: ["Hub", .product(name: "Jinja", package: "Jinja")], swiftSettings: swiftSettings), - .testTarget(name: "TensorUtilsTests", dependencies: ["TensorUtils", "Models", "Hub"], resources: [.process("Resources")]), + .testTarget(name: "ModelsTests", dependencies: ["Models", "Hub"], resources: [.process("Resources")]), + .testTarget(name: "TokenizersTests", dependencies: ["Tokenizers", "Models", "Hub"], resources: [.process("Resources"), .process("Vocabs")]), ] ) diff --git a/Sources/Generation/Generation.swift b/Sources/Generation/Generation.swift index fe6f87c..bea0827 100644 --- a/Sources/Generation/Generation.swift +++ b/Sources/Generation/Generation.swift @@ -6,7 +6,6 @@ // import CoreML -import TensorUtils import Tokenizers public enum GenerationMode { diff --git a/Sources/TensorUtils/LogitsWarper/LogitsProcessor.swift b/Sources/Generation/LogitsWarper/LogitsProcessor.swift similarity index 100% rename from Sources/TensorUtils/LogitsWarper/LogitsProcessor.swift rename to Sources/Generation/LogitsWarper/LogitsProcessor.swift diff --git a/Sources/TensorUtils/LogitsWarper/LogitsWarper.swift b/Sources/Generation/LogitsWarper/LogitsWarper.swift similarity index 100% rename from Sources/TensorUtils/LogitsWarper/LogitsWarper.swift rename to Sources/Generation/LogitsWarper/LogitsWarper.swift diff --git a/Sources/TensorUtils/LogitsWarper/RepetitionPenaltyWarper.swift b/Sources/Generation/LogitsWarper/RepetitionPenaltyWarper.swift similarity index 100% rename from Sources/TensorUtils/LogitsWarper/RepetitionPenaltyWarper.swift rename to Sources/Generation/LogitsWarper/RepetitionPenaltyWarper.swift diff --git a/Sources/TensorUtils/LogitsWarper/TemperatureLogitsWarper.swift b/Sources/Generation/LogitsWarper/TemperatureLogitsWarper.swift similarity index 100% rename from Sources/TensorUtils/LogitsWarper/TemperatureLogitsWarper.swift rename to Sources/Generation/LogitsWarper/TemperatureLogitsWarper.swift diff --git a/Sources/TensorUtils/LogitsWarper/TopKLogitsWarper.swift b/Sources/Generation/LogitsWarper/TopKLogitsWarper.swift similarity index 100% rename from Sources/TensorUtils/LogitsWarper/TopKLogitsWarper.swift rename to Sources/Generation/LogitsWarper/TopKLogitsWarper.swift diff --git a/Sources/TensorUtils/LogitsWarper/TopPLogitsWarper.swift b/Sources/Generation/LogitsWarper/TopPLogitsWarper.swift similarity index 100% rename from Sources/TensorUtils/LogitsWarper/TopPLogitsWarper.swift rename to Sources/Generation/LogitsWarper/TopPLogitsWarper.swift diff --git a/Sources/TensorUtils/MLMultiArray+Utils.swift b/Sources/Generation/MLMultiArray+Utils.swift similarity index 100% rename from Sources/TensorUtils/MLMultiArray+Utils.swift rename to Sources/Generation/MLMultiArray+Utils.swift diff --git a/Sources/TensorUtils/MLShapedArray+Utils.swift b/Sources/Generation/MLShapedArray+Utils.swift similarity index 100% rename from Sources/TensorUtils/MLShapedArray+Utils.swift rename to Sources/Generation/MLShapedArray+Utils.swift diff --git a/Sources/TensorUtils/Math.swift b/Sources/Generation/Math.swift similarity index 100% rename from Sources/TensorUtils/Math.swift rename to Sources/Generation/Math.swift diff --git a/Sources/TensorUtils/Weights.swift b/Sources/Models/Weights.swift similarity index 100% rename from Sources/TensorUtils/Weights.swift rename to Sources/Models/Weights.swift diff --git a/Tests/TensorUtilsTests/LogitsWarperTests.swift b/Tests/GenerationTests/LogitsWarperTests.swift similarity index 99% rename from Tests/TensorUtilsTests/LogitsWarperTests.swift rename to Tests/GenerationTests/LogitsWarperTests.swift index 321cbd4..20a77d2 100644 --- a/Tests/TensorUtilsTests/LogitsWarperTests.swift +++ b/Tests/GenerationTests/LogitsWarperTests.swift @@ -5,7 +5,7 @@ // import CoreML -@testable import TensorUtils +@testable import Generation import XCTest final class LogitsWarperTests: XCTestCase { diff --git a/Tests/TensorUtilsTests/TensorUtilsTests.swift b/Tests/GenerationTests/MathTests.swift similarity index 94% rename from Tests/TensorUtilsTests/TensorUtilsTests.swift rename to Tests/GenerationTests/MathTests.swift index 86f8bee..9d1ae4d 100644 --- a/Tests/TensorUtilsTests/TensorUtilsTests.swift +++ b/Tests/GenerationTests/MathTests.swift @@ -1,14 +1,14 @@ // -// TensorUtilsTests.swift +// MathTests.swift // // Created by Jan Krukowski on 25/11/2023. // import CoreML -@testable import TensorUtils +@testable import Generation import XCTest -final class TensorUtilsTests: XCTestCase { +final class MathTests: XCTestCase { private let accuracy: Float = 0.00001 func testCumsum() { diff --git a/Tests/TensorUtilsTests/TestUtils.swift b/Tests/GenerationTests/TestUtils.swift similarity index 100% rename from Tests/TensorUtilsTests/TestUtils.swift rename to Tests/GenerationTests/TestUtils.swift diff --git a/Tests/TensorUtilsTests/Resources/tensor-1d-int32.safetensors b/Tests/ModelsTests/Resources/tensor-1d-int32.safetensors similarity index 100% rename from Tests/TensorUtilsTests/Resources/tensor-1d-int32.safetensors rename to Tests/ModelsTests/Resources/tensor-1d-int32.safetensors diff --git a/Tests/TensorUtilsTests/Resources/tensor-2d-float64.safetensors b/Tests/ModelsTests/Resources/tensor-2d-float64.safetensors similarity index 100% rename from Tests/TensorUtilsTests/Resources/tensor-2d-float64.safetensors rename to Tests/ModelsTests/Resources/tensor-2d-float64.safetensors diff --git a/Tests/TensorUtilsTests/Resources/tensor-3d-float32.safetensors b/Tests/ModelsTests/Resources/tensor-3d-float32.safetensors similarity index 100% rename from Tests/TensorUtilsTests/Resources/tensor-3d-float32.safetensors rename to Tests/ModelsTests/Resources/tensor-3d-float32.safetensors diff --git a/Tests/TensorUtilsTests/Resources/tensor-4d-float32.safetensors b/Tests/ModelsTests/Resources/tensor-4d-float32.safetensors similarity index 100% rename from Tests/TensorUtilsTests/Resources/tensor-4d-float32.safetensors rename to Tests/ModelsTests/Resources/tensor-4d-float32.safetensors diff --git a/Tests/TensorUtilsTests/WeightsTests.swift b/Tests/ModelsTests/WeightsTests.swift similarity index 99% rename from Tests/TensorUtilsTests/WeightsTests.swift rename to Tests/ModelsTests/WeightsTests.swift index 8a4eccc..ac21b7a 100644 --- a/Tests/TensorUtilsTests/WeightsTests.swift +++ b/Tests/ModelsTests/WeightsTests.swift @@ -1,5 +1,5 @@ @testable import Hub -@testable import TensorUtils +@testable import Models import XCTest class WeightsTests: XCTestCase {