![見出し画像](https://assets.st-note.com/production/uploads/images/125292583/rectangle_large_type_2_d3ab6c844979cfcbd2114c511a009b68.jpeg?width=1200)
Google AI SDK for Swift を試す
先日発表された Gemini API 等のGoogleの生成AIモデルをSwiftから使えるようにするSDKが公開されている。
iOS / macOSだけでなく、visionOSやwatchOSもサポートしているようだ。
![](https://assets.st-note.com/img/1703235973417-W6bwvGL2kJ.png)
Gemini Proモデルであれば日本語もサポートしている。
また、冒頭に
Gemini API 等のGoogleの生成AIモデル
と書いた通り、Gemini Pro以外のモデルも使える。
サンプルを試す最小手順
READMEに書かれているそのまんまですが…
git clone する
API keyを取得する(ここからサクッと2クリックぐらいで取得できる)
Examples配下にあるGenerativeAISampleプロジェクトをXcodeで開く
一度ビルドする → スクリプトが走り、GenerativeAI-Info.plist 等が生成される
`GenerativeAI-Info.plist` の `API_KEY` の値に2で取得したAPI keyをペースト
アプリをRun
ちなみにこのプロジェクトひとつで4つぐらいのサンプルアプリが入っている。
![](https://assets.st-note.com/img/1703237794942-P7kBlesRpe.png)
ChatSampleはこんな感じ。前述の通り、日本語もバッチリ。
![](https://assets.st-note.com/img/1703237998774-Tdiq4dI7kE.png?width=1200)
他のサンプル
マルチモーダル・サンプル
GenerativeAIMultimodalSample は画像について質問できるサンプル。
![](https://assets.st-note.com/img/1705522358618-EN8Y5fUrwr.png?width=1200)
要約サンプル
GenerativeAITextSample は、入力したテキストを要約してくれるサンプルのようだ。
![](https://assets.st-note.com/img/1705522546015-wDr9aAQW5h.png?width=1200)
統合サンプル
GenerativeAISample ターゲットをビルドすると、上の3つのサンプルを統合したアプリが起動した。
![](https://assets.st-note.com/img/1705522617084-4gWofKzkqk.png?width=1200)
Gemini nanoのiOS向けオンデバイスモデルは今後提供されるのか?
・・・ということを、Gemini Proに聞いてみました。Gemini nanoモデルのCore ML版なんてのが今後出てくるのかなと。
Gemini nanoについてi0Sエンジニア向けに教えてください。iOSオンデバイスで動くモデルが今後提供される可能性などに興味あります。
回答
Gemini nanoは、iOSエンジニアにとって強力なツールとなる可能性を秘めた、軽量で高速な機械学習フレームワークです。機械学習モデルをiOSデバイス上で直接実行するためのオンデバイスモデルを提供する予定なので、リアルタイムの予測や推論が可能になります。
Gemini nanoは、Core MLや Metalなどのネイティブ iOSフレームワークと緊密に統合されているため、iOSアプリに簡単に組み込むことができます。また、PyTorchや TensorFlowなどの一般的な機械学習ライブラリとも互換性があるため、既存の機械学習モデルをGemini nano で簡単に移植することができます。
Gemini nanoは、画像分類や自然言語処理、音声認識など、幅広い機械学習タスクに使用することができます。また、ARやVR、ヘルスケアなどの分野でも活用が期待されています。
iOSエンジニアがGemini nanoを使用するメリットは次のとおりです。
* 機械学習モデルをiOSデバイス上で直接
* 実行することができるため、リアルタイムの予測や推論が可能になる。
* Core MLやMetalなどのネイティブiOS フレームワークと緊密に統合されているため、iOSアプリに簡単に組み込むことができる。
* PyTorch や TensorFlow などの一般的な機械学習ライブラリとも互換性があるため、既存の機械学習モデルをGemininanoで簡単に移植することができる。
* 画像分類や自然言語処理、音声認識など、幅広い機械学習タスクに使用することができる。
Gemini nanoは、現在開発中ですが、今後数か月以内にリリースされる予定です。iOSエンジニアは、Gemini nanoのリリースを心待ちにしておくべきです。
なお、Gemini nanoのオンデバイスモデルは、今後提供される予定です。現時点では、まだ提供されていません。
LLMの回答であってGoogleの公式回答ではないのであくまで話半分で聞くべきですが、しかしGemini nanoのプロダクトコンセプト・構想と照らし合わせても(iOS向けオンデバイスモデルの提供が)あくまで的はずれな期待をしているわけでもなさそうです。
自分のプロジェクトに追加する
このOSSは、GenerativeAIUIComponents というSwift Packageとして利用できるようになっている。
というわけでSPMを用いて `generative-ai-swift` を自分のXcodeプロジェクトに追加すればOK。
使えるモデル
`GenerativeModel` クラスのイニシャライザの `name` 引数にモデル名を渡すことで、使用するモデルを指定できる。
let model = GenerativeModel(name: "gemini-pro-vision", apiKey: "YOUR_API_KEY")
サンプルでは、"gemini-pro" モデルと、"gemini-pro-vision" を利用している。
model = GenerativeModel(name: "gemini-pro", apiKey: APIKey.default)
model = GenerativeModel(name: "gemini-pro-vision", apiKey: APIKey.default)
前者はテキスト用、後者は画像+テキスト(マルチモーダル)用だろう。
その他の利用可能なモデルはここのREADMEには記載されておらず、探してみると下記ページに一覧があった。
![](https://assets.st-note.com/img/1705523327714-oJ0El7cSOg.png?width=1200)
最後まで読んでいただきありがとうございます!もし参考になる部分があれば、スキを押していただけると励みになります。 Twitterもフォローしていただけたら嬉しいです。 https://twitter.com/shu223/