見出し画像

Google AI SDK for Swift を試す

先日発表された Gemini API 等のGoogleの生成AIモデルをSwiftから使えるようにするSDKが公開されている。

iOS / macOSだけでなく、visionOSやwatchOSもサポートしているようだ。

READMEより

Gemini Proモデルであれば日本語もサポートしている。

また、冒頭に

Gemini API 等のGoogleの生成AIモデル

と書いた通り、Gemini Pro以外のモデルも使える。


サンプルを試す最小手順

READMEに書かれているそのまんまですが…

  1. git clone する

  2. API keyを取得する(ここからサクッと2クリックぐらいで取得できる)

  3. Examples配下にあるGenerativeAISampleプロジェクトをXcodeで開く

  4. 一度ビルドする → スクリプトが走り、GenerativeAI-Info.plist 等が生成される

  5. `GenerativeAI-Info.plist` の `API_KEY` の値に2で取得したAPI keyをペースト

  6. アプリをRun

ちなみにこのプロジェクトひとつで4つぐらいのサンプルアプリが入っている。

GenerativeAISampleプロジェクトのTargetリスト

ChatSampleはこんな感じ。前述の通り、日本語もバッチリ。

ChatSample

他のサンプル

マルチモーダル・サンプル

GenerativeAIMultimodalSample は画像について質問できるサンプル。

GenerativeAIMultimodalSample

要約サンプル

GenerativeAITextSample は、入力したテキストを要約してくれるサンプルのようだ。

GenerativeAITextSample

統合サンプル

GenerativeAISample ターゲットをビルドすると、上の3つのサンプルを統合したアプリが起動した。

GenerativeAISample

Gemini nanoのiOS向けオンデバイスモデルは今後提供されるのか?

・・・ということを、Gemini Proに聞いてみました。Gemini nanoモデルのCore ML版なんてのが今後出てくるのかなと。

Gemini nanoについてi0Sエンジニア向けに教えてください。iOSオンデバイスで動くモデルが今後提供される可能性などに興味あります。

上に載せたChatSampleのスクショの通り

回答

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には記載されておらず、探してみると下記ページに一覧があった。


「生成 AI のモデル API リファレンス」より


ここから先は

0字
文章やサンプルコードは多少荒削りかもしれませんが、ブログや書籍にはまだ書いていないことを日々大量に載せています。たったの400円で、すぐに購読解除してもその月は過去記事もさかのぼって読めるので、少しでも気になる内容がある方にはオトクかと思います。

技術的なメモやサンプルコード、思いついたアイデア、考えたこと、お金の話等々、頭をよぎった諸々を気軽に垂れ流しています。

最後まで読んでいただきありがとうございます!もし参考になる部分があれば、スキを押していただけると励みになります。 Twitterもフォローしていただけたら嬉しいです。 https://twitter.com/shu223/