Show HN:Apple Core ML モデルを扱うためのCLI

(Note: "Show HN" is a Hacker News title format; translated as 「Show HN」.)

2026/01/23 5:12

Show HN:Apple Core ML モデルを扱うためのCLI (Note: "Show HN" is a Hacker News title format; translated as 「Show HN」.)

RSS: https://news.ycombinator.com/rss

要約

Japanese Translation:

## Summary

`coreml-cli` は、Xcode や Python スクリプトを使用せずに Apple Core ML モデルの検査・実行・ベンチマーク・コンパイル・メタデータ取得を可能にするネイティブ macOS コマンドラインツールです。

### Core commands
| Command | Purpose |
|---------|---------|
| `inspect` | モデルアーキテクチャとレイヤ詳細を表示 |
| `predict` | 画像、音声、テキストまたはテンソル入力に対して単一推論を実行 |
| `batch`   | ディレクトリ内の多数入力を分類(csv/json 出力対応) |
| `benchmark` | レイテンシとスループットを測定;平均/最小/最大/標準偏差/パーセンタイルを出力 |
| `compile`  | `.mlmodel` を最適化された `.mlmodelc` に変換;オプションで `--validate` |
| `meta get` | モデルメタデータ(作者、説明、ライセンス、バージョン)取得 |

### Global flags
- `--json / -j` – JSON 出力(CI/CD に便利)。  
- `--device <cpu|gpu|ane|all>` – 実行ハードウェアを指定。  
- `--help / -h`, `--version` – 標準 CLI ヘルプとバージョン情報。

### Supported input types
- **Images**: `.jpg`, `.jpeg`, `.png`, `.heic`  
- **Audio**: `.wav`  
- **Text**: `.txt`  
- **Tensors**: `.json`

### Installation
- Homebrew: `brew tap schappim/coreml-cli && brew install coreml-cli`  
- GitHub Releases: macOS 用バイナリをダウンロード。  
- From source (macOS 13+ with Swift 5.9+): リポジトリをクローンし、`swift build -c release` を実行。

### Example usage
```bash
# Inspect a model
coreml inspect MobileNetV2.mlmodel

# Run inference on GPU
coreml predict MobileNetV2.mlmodel --input photo.jpg --device gpu

# Batch classify with CSV output
coreml batch MobileNetV2.mlmodel --dir ./photos --out ./results --format csv

# Benchmark and get JSON for CI
coreml benchmark MobileNetV2.mlmodel --json > bench.json

# Compile for deployment
coreml compile MobileNetV2.mlmodel --validate --output MobileNetV2c

# Get metadata
coreml meta get MobileNetV2.mlmodel

Impact

coreml-cli
は、CPU、GPU、または Apple Neural Engine を直接ターミナルから使用して Core ML モデルを迅速にネイティブテストできるようにします。これによりデプロイサイクルが高速化され、Xcode 中心のワークフローへの依存が減少し、開発者・データサイエンティストおよび CI/CD パイプラインはモデル性能と品質を自動的に検証できます。

本文

coreml‑cli

macOS 上で Apple Core ML モデルを扱うためのネイティブなコマンドラインインターフェースです。
Xcode や Python を使わずに、Core ML モデルの検査・推論実行・ベンチマーク・管理が可能です。


機能

  • Inspect – モデル構造、入力/出力、メタデータを表示
  • Predict – 画像・テキスト・JSON データに対して推論を実行
  • Batch – 複数ファイルを並列で処理
  • Benchmark – 推論遅延とスループットを測定
  • Compile
    .mlmodel
    を最適化された
    .mlmodelc
    形式へ変換
  • Metadata – モデルメタデータの表示・管理

インストール

Homebrew(推奨)

brew tap schappim/coreml-cli
brew install coreml-cli

バイナリをダウンロード

curl -L https://github.com/schappim/coreml-cli/releases/download/v1.0.0/coreml-1.0.0-macos.tar.gz -o coreml.tar.gz
tar -xzf coreml.tar.gz
sudo mv coreml /usr/local/bin/

ソースからビルド

(macOS 13+ と Swift 5.9+ が必要)

git clone https://github.com/schappim/coreml-cli.git
cd coreml-cli
swift build -c release
sudo cp .build/release/coreml /usr/local/bin/

インストール確認

coreml --version   # → coreml 1.0.0

使用方法

モデルの検査

coreml inspect MobileNetV2.mlmodel

出力例

Model: MobileNetV2
Size: 24.7 MB
Compiled: No

Inputs:
  image: image 224x224 BGRA32

Outputs:
  classLabel: string
  classLabelProbs: dictionary

Metadata:
  Author: Original Paper: Mark Sandler, Andrew Howard...
  Description: Detects the dominant objects present in an image...

スクリプト用 JSON 出力:

coreml inspect MobileNetV2.mlmodel --json

推論実行

画像分類

coreml predict MobileNetV2.mlmodel --input photo.jpg

出力例

Input: photo.jpg
Inference time: 1.66 ms

Outputs:
  classLabel: golden retriever
  classLabelProbs: golden retriever: 0.8721, Labrador retriever: 0.0543...

結果をファイルへ保存

coreml predict MobileNetV2.mlmodel --input photo.jpg \
                                   --output results.json --json

計算デバイスの選択

coreml predict MobileNetV2.mlmodel --device ane   # Apple Neural Engine
coreml predict MobileNetV2.mlmodel --device gpu   # GPU
coreml predict MobileNetV2.mlmodel --device cpu   # CPUのみ

バッチ処理

画像ディレクトリを処理

coreml batch MobileNetV2.mlmodel --dir ./photos \
                                 --out ./results --format csv

出力例

Found 100 input files
Results written to: ./results/results.csv

Processed 100 files in 892.45 ms
Average inference time: 2.15 ms

並列度の制御

coreml batch MobileNetV2.mlmodel --dir ./photos \
                                 --out ./results --concurrency 8

性能ベンチマーク

推論遅延を測定

coreml benchmark MobileNetV2.mlmodel --input sample.jpg

出力(抜粋)

Benchmark Results for: MobileNetV2
==================================================

Configuration:
  Device: all
  Iterations: 100
  Warmup: 10

Latency (ms):
  Mean:      1.279
  Min:       1.008
  Max:       1.602
  StdDev:    0.204

Percentiles (ms):
  P50:       1.200
  P95:       1.523
  P99:       1.589

Throughput: 781.86 inferences/sec

カスタムイテレーション

coreml benchmark MobileNetV2.mlmodel --input sample.jpg \
                                     -n 500 --warmup 50

CI/CD 用 JSON 出力

coreml benchmark MobileNetV2.mlmodel --input sample.jpg --json > benchmark.json

モデルのコンパイル

.mlmodel
を最適化された
.mlmodelc
に変換

coreml compile MobileNetV2.mlmodel

出力例

Compilation successful!
  Source: /path/to/MobileNetV2.mlmodel
  Output: /path/to/MobileNetV2.mlmodelc
  Original size: 24.7 MB
  Compiled size: 24.5 MB

検証付き

coreml compile MobileNetV2.mlmodel --validate \
                                   --output-dir ./compiled/

メタデータの表示

モデルメタデータ取得

coreml meta get MobileNetV2.mlmodel

出力(抜粋)

Metadata for: MobileNetV2.mlmodel

  Author:      Original Paper: Mark Sandler, Andrew Howard...
  Description: Detects the dominant objects present in an image...
  License:     Please see https://github.com/tensorflow/tensorflow...
  Version:     1.0

コマンドリファレンス

コマンド説明
coreml inspect <model>
モデル構造とメタデータを検査
coreml predict <model> -i <input>
単一入力に対して推論実行
coreml batch <model> --dir <dir> --out <dir>
複数入力をバッチ処理
coreml benchmark <model> -i <input>
モデル性能をベンチマーク
coreml compile <model>
最適化形式へコンパイル
coreml meta get <model>
メタデータを表示

グローバルオプション

  • --json, -j
    – JSON 形式で出力
  • --device <device>
    – 計算デバイス:
    cpu
    ,
    gpu
    ,
    ane
    , または
    all
  • --help, -h
    – ヘルプを表示
  • --version
    – バージョン情報を表示

サポート入力タイプ

タイプ拡張子用途
画像
.jpg
,
.jpeg
,
.png
,
.heic
Vision モデル
音声
.wav
音声分類
テキスト
.txt
NLP モデル
テンソル
.json
カスタムモデル

画像分類パイプライン

#!/bin/bash
MODEL="MobileNetV2.mlmodel"
INPUT_DIR="./images"
OUTPUT_DIR="./classifications"

# バッチ分類実行
coreml batch "$MODEL" --dir "$INPUT_DIR" \
                      --out "$OUTPUT_DIR" --format csv

# 結果表示
cat "$OUTPUT_DIR/results.csv"

性能比較

#!/bin/bash
MODEL="MobileNetV2.mlmodel"
INPUT="test.jpg"

echo "CPU Only:"
coreml benchmark "$MODEL" -i "$INPUT" --device cpu \
                                   -n 50 --json | jq '.meanLatencyMs'

echo "GPU:"
coreml benchmark "$MODEL" -i "$INPUT" --device gpu \
                                   -n 50 --json | jq '.meanLatencyMs'

echo "Neural Engine:"
coreml benchmark "$MODEL" -i "$INPUT" --device ane \
                                   -n 50 --json | jq '.meanLatencyMs'

CI/CD 統合(GitHub Actions)

- name: Benchmark Model
  run: |
    coreml benchmark model.mlmodel -i test.jpg --json > benchmark.json

- name: Check Performance Regression
  run: |
    LATENCY=$(jq '.meanLatencyMs' benchmark.json)
    if (( $(echo "$LATENCY > 10" | bc -l) )); then
      echo "Performance regression detected: ${LATENCY}ms"
      exit 1
    fi

JSON テンソル入力

input.json
を作成:

[5.1, 3.5, 1.4, 0.2]

推論実行:

coreml predict MyClassifier.mlmodel --input input.json

バッチ処理例:

mkdir json_samples
echo '[5.1, 3.5, 1.4, 0.2]' > json_samples/sample1.json
# ...他のサンプルを追加...

coreml batch MyClassifier.mlmodel --dir json_samples \
                                 --out json_results --format csv

要件

  • macOS 13.0 以降
  • Apple Silicon または Intel Mac
  • Core ML モデル(
    .mlmodel
    ,
    .mlpackage
    ,
    .mlmodelc

ライセンス

MIT License –

LICENSE
を参照。


コントリビューション

貢献歓迎です! issue を開くか pull request を送信してください。


Swift Argument Parser で構築
Apple の Core ML フレームワークを使用

同じ日のほかのニュース

一覧に戻る →

2026/01/23 0:20

**GPTZero、NeurIPS 2025受理論文で新たに100件の幻覚現象を発見**

2026/01/18 8:29

**Scheme を WebAssembly にコンパイル**

## Japanese Translation: --- ## Summary Pythonで実装されたオープンソースScheme実装「Bob」は、15周年を記念してネイティブWASMバイナリを生成するWebAssembly(WASM)コンパイラを追加しました。新しい `WasmCompiler` は解析済みのScheme式を直接WASMテキストに変換し、その後 wasm‑tools スイートでコンパイルされ、Node.js経由で実行されます。 コンパイラの核心は、Schemeプリミティブを実装する約1,000行のWASMコードから成ります: - **オブジェクト表現** – SchemeオブジェクトはWASM GC型にマッピングされます: - `$PAIR` 構造体は `car` と `cdr` を `(ref null eq)` 参照として保持します。 - `$BOOL` 構造体は単一の `i32`(0 = false、非ゼロ = true)を保持します。 - `$SYMBOL` 構造体は線形メモリ内でオフセットと長さを表す2つの `i32` を保存します。 - **数値** – 整数値は `i31` 型を使用してボックス化されていない整数を直接参照します。 - **シンボル** – シンボルは線形メモリに固定オフセット(例: `(data (i32.const 2048) "foo")`)で発行され、アドレス/長さペアで参照されます。 - **組み込み関数** – `write` 関数はWASMテキスト内で直接実装され、ホスト関数として `write_char` と `write_i32` の2つだけをインポートします。 Bobはすでにインタープリタ、コンパイラ、VM、およびカスタムマーク・アンド・スウィープGCを備えたC++ VMを提供しています。追加されたコンパイラは今後さらに進化する予定ですが、現在のwasmtime用Pythonバインディングは2023年10月に仕様に組み込まれたWASM GC提案をまだサポートしていないため、SchemeをWebAssembly上で完全にガベージコレクション実行することが制限されています。 それでもユーザーは今やSchemeを直接WebAssemblyとして実行できるようになり、クロスプラットフォームのデプロイメントとJavaScript/Node.js環境とのより緊密な統合の可能性が開かれます。

2026/01/23 2:41

**CSS の光学的錯覚**

## Japanese Translation: (すべての主要なポイントを統合したもの) > 記事は、マウスホバーに応じて反応するインタラクティブな CSS ベースの錯視デモの CodePen ギャラリーを提示しています。 > 各デモは、Poggendorff の歪んだ線(傾いた 2 つのグラデーションと `::before`/`::after` を使用)、誘導グラデーション効果、Cornsweet & White の色コントラストトリック(黒白格子に `mix-blend-mode` を適用)、リングおよびチェッカーボードパターン、重なり合う線の色球体、曲率盲点、Café Wall イルлю(3 本のグラデーションで平行線を斜めにする)、ペノース三角形やエビングハウス円、カニッツァ四角形など、古典的な視覚現象を示しています。 > ギャラリーには、エビングハウス錯視のアニメーション版、回転する「タワー」、色のファン、逆スピーク、モーションバインディング、メンツラインズ、ウォッリングカラーなども含まれ、ドット線の動きやコントラスト非同期、息を吸う四角形、トロックラー消失といった静的に動きを示唆するパターンも掲載されています。 > すべての効果は CSS グラデーション、疑似要素、`mix-blend-mode`、およびキーフレームアニメーションで実現され、微妙な背景やホバー変更がどれほど印象的な視覚トリックを生み出せるかを示しています。 > コレクションは Patrick Pester の「35 optical…」リストと Michael Bach の「154 Visual Phenomena & Optical Illusions」に触発されています。 > Medium と DEV に公開されており、著者は将来の追加や改良の可能性について読者にコメントを残すよう呼びかけています。 *この改訂された要約は、すべての主要なポイントを完全に反映し、推測を加えず、明確で簡潔に保っています。*

Show HN:Apple Core ML モデルを扱うためのCLI (Note: "Show HN" is a Hacker News title format; translated as 「Show HN」.) | そっか~ニュース