プライバシー重視の生成AI開発を促進するGoogleの新技術

Gemmaとプライベートな生成AIの可能性

生成AI(Gen AI)は急速に普及していますが、その適用には多くの未開拓の可能性があります。特に、プライバシーや機密保持が求められるデータに対して、生成AIを活用することができるのです。例えば、パーソナルアシスタントが日常生活の中でさまざまなシチュエーションに対応できるようになることが考えられます。この記事では、Googleが最近リリースしたGenCオープンソースプロジェクトを利用して、Gemmaオープンソースモデルや機密コンピューティングを組み合わせ、プライバシーや機密保持に配慮した生成AIアプリの開発を促進する方法を探ります。

エンドユーザーデバイスとクラウドの連携

今回注目するシナリオは、モバイルアプリがデバイス上のデータにアクセスし、そのデータに対して生成AI処理を行うというものです。例えば、ユーザーがデバイスに保存されたノートやドキュメントについて要約を求めるパーソナルアシスタントアプリを考えてみましょう。この内容には他者とのメッセージなどのプライベートな情報が含まれているため、それを適切に処理する必要があります。

Gemmaファミリーのオープンソースモデルを使用する例:

  • Gemma 2B: サイズは約1.5GBで、最新のモバイルデバイス(例: Pixel 7)に対応しています。ネットワーク接続なしでも処理が可能で、高速な応答時間を提供します。
  • Gemma 7B: サイズは約35GBで、強力な計算能力を持っていますが、モバイルデバイスでの実行は困難です。クラウドにホストされ、複雑なクエリを処理できます。

これら二つのモデルは、「ハイブリッド」なアーキテクチャに組み込まれ、Gemma 2Bがローカルで簡単なクエリを処理し、Gemma 7Bがより複雑なクエリのバックアップを担当します。

Teeの役割とシステムの信頼性

クラウド内のTee(Trusted Execution Environment)は、ユーザーのモバイルデバイスの論理的な延長として機能します。この環境は、データや処理へのアクセスを安全に管理するための透明性と暗号化の保証を提供します。

  • Tee内のGemma 7Bは、暗号化されたメモリで動作し、デバイスとTee の通信も暗号化されています。
  • 処理が開始される前に、デバイスはTee内で実行されるコードのアイデンティティと整合性を確認します。

開発者体験の簡素化

GenCを使うことで、開発者は上記のシナリオを簡単にセットアップできます。例としてPythonが選ばれていますが、JavaやC++もサポートされています。以下はGemmaを使ったシンプルなコード例です。


@genc.authoring.traced_computation
def cascade(x):
    gemma_2b_on_device = genc.interop.llamacpp.model_inference(
        '/device/llamacpp', '/gemma-2b-it.gguf', num_threads=16, max_tokens=64)
    gemma_7b_in_a_tee = genc.authoring.confidential_computation[
        genc.interop.llamacpp.model_inference(
            '/device/llamacpp', '/gemma-7b-it.gguf', num_threads=64, max_tokens=64),
        {'server_address': /* server address */, 'image_digest': /* image digest */}]
    
    router = genc.authoring.serial_chain[
        genc.authoring.prompt_template["Read the following input carefully: '{x}'. Does it touch on political topics?"],
        gemma_2b_on_device,
        genc.authoring.regex_partial_match['does touch|touches']]

    return genc.authoring.conditional[
        gemma_2b_on_device(x),
        gemma_7b_in_a_tee(x)](router(x))

このように、開発者はデバイス上での処理とクラウドでの処理を明確に定義し、適切なモデルを選択することができます。

プロトタイピングから柔軟なデプロイメントへ

GenCを使用することで、開発者はさまざまなプラットフォームや言語において、一貫した動作を実現できます。これにより、異なる製品サーフェスをターゲットとする際に、コードの変更を最小限に抑えることが可能です。

今後、Intel TDXやNvidia H100 GPUに対応した新しいソフトウェアとハードウェアの選択肢も提供される予定であり、それによりより高度なパフォーマンスが期待されます。

最後に、この記事を通じて生成AIを利用したアプリケーションの開発に挑戦していただければと思います。GenCは実験的なフレームワークとして開発されたもので、皆さんの創造性を刺激することを目指しています。

もし興味を持たれたら、ぜひ開発者にコンタクトを取り、またGitHubでの活動にも参加してコミュニティを広げていきましょう。