すべてのオープンソースパッケージ
AISwift

SwiftAI

純粋な Swift による機械学習: デバイス上でモデルを学習、評価、保存します。

9スター数最新リリース: v2.0.0更新日: 2026年10月15日
対応プラットフォーム:iOS 15macOS 12tvOS 15watchOS 8visionOS 1

ライセンス: MIT

SwiftAI は、Apple プラットフォーム上で古典的な機械学習を行うための Swift パッケージです: 数値の表に対する分類、回帰、クラスタリング、次元削減です。データを CSV や配列から読み込み、分割し、1回の関数呼び出しでモデルを学習・評価し、アプリで読み込むために JSON として保存できます。Python のツールチェーンやサーバーは不要です。このパッケージに依存関係はありません。

機能

  • 11種類の教師あり学習モデル: 線形回帰と ridge 回帰、ロジスティック回帰、k 近傍法、ガウス naive Bayes、決定木、ランダムフォレスト、ニューラルネットワーク。さらに k-means クラスタリングと主成分分析 (PCA)
  • scikit-learn 1.9.1 と比較検証: テストは係数、確率、クラスタを比較します(例: ロジスティック回帰の確率は 1e-5、PCA は 1e-10 の精度で)
  • クラッシュではなくエラー: 無効なデータや設定に対しては、何を変更すべきかを示す SwiftAIError を throw します
  • 安全な読み込み: モデル、scaler、pipeline はいずれも Codable で、デコード時に形状、値、クラスのリスト、木の構造を検証します
  • 再現可能: すべての乱数処理は seed を受け取り、同じ seed なら同じモデルになります。並列に学習するフォレストでも同様です
  • Pipeline は前処理を学習データのみに fit させ、以降のすべてのサンプルに同じ方法で適用します
  • strict concurrency チェックを伴う Swift 6 の language mode。4本の記事を含む DocC カタログと、iOS・macOS 向けの ModelLab サンプルアプリ

クイックスタート

swift
1import SwiftUI
2import SwiftAI
3 
4struct ContentView: View {
5 var body: some View {
6 Text(irisSummary())
7 .padding()
8 }
9 
10 func irisSummary() -> String {
11 do {
12 // 1. Split the built-in iris flowers into training and test samples.
13 let (training, test) = try Dataset.iris.stratifiedSplit(testFraction: 0.2, seed: 42)
14 // 2. Train a random forest on the training samples.
15 let model = try RandomForestClassifier.fit(training, seed: 42)
16 // 3. Measure it on the test samples and classify a new flower.
17 let accuracy = try model.accuracy(on: test)
18 let species = try model.predict([6.3, 2.8, 5.1, 1.5])
19 return "Test accuracy: \(accuracy.formatted(.percent))\nNew flower: \(species)"
20 } catch {
21 return error.localizedDescription
22 }
23 }
24}

インストール

Xcode (File › Add Package Dependencies…)

text
1https://github.com/muhittincamdali/SwiftAI.git

Swift Package Manager

swift
1dependencies: [
2 .package(url: "https://github.com/muhittincamdali/SwiftAI.git", from: "2.0.0")
3],
4targets: [
5 .target(name: "YourApp", dependencies: [
6 .product(name: "SwiftAI", package: "SwiftAI")
7 ])
8]

スクリーンショット

アイリスの花びらの測定値で学習した4つの分類器。各モデルが平面全体で予測する種と、交差検証による精度(k 近傍法 96.0%、ロジスティック回帰 95.3%、決定木 94.0%、ニューラルネットワーク 96.0%)
決定境界の画像のダークモード版: アイリスの花びらの測定値で学習した4つの分類器と、その交差検証による精度

タイムライン

  1. アプリアーキテクチャのレイヤーや Vision、NLP のコードを含む、幅広い AI フレームワークとしてリポジトリが公開されました

  2. 1.0.0 がリリースされ、その3日後にアプリアーキテクチャのモジュールが削除され、より小さな機械学習のコアが書かれました

  3. 整理: テストは単一の placeholder ファイルに縮小され、小さな stub レイヤーが追加されました

  4. 依存関係のない古典的機械学習パッケージとしてゼロから作り直され、2.0.0 としてリリースされました。1.0.0 の API は残っていません

リンク

関連記事

記事を読む