コンテンツに移動
アプリケーション開発

GPU は不要。localllm を使用してローカル CPU で生成 AI アプリを開発

2024年2月15日
Google Cloud Japan Team

※この投稿は米国時間 2024 年 2 月 7 日に、Google Cloud blog に投稿されたものの抄訳です。

AI 環境が目まぐるしく変化する昨今において、デベロッパーは大規模言語モデル(LLM)を使用するアプリケーションを構築するうえでさまざまな課題に直面しています。特に、従来から LLM の実行に必要だった GPU の不足は深刻なハードルとなっています。この投稿では、デベロッパーが Google Cloud のフルマネージド開発環境である Cloud Workstations 内で直接、CPU とメモリ上でローカルに LLM の力を活用できる新しいソリューションを紹介します。このチュートリアルで使用するモデルは Hugging Face、具体的には「The Bloke」のリポジトリにあり、CPU または低電力 GPU で実行できるようにするための量子化手法に対応しています。この革新的なアプローチにより、GPU が不要になるだけでなく、シームレスで効率的なアプリケーション開発の可能性も開かれます。「量子化モデル」、Cloud Workstationslocalllm という新しいオープンソース ツール、一般提供リソースを組み合わせて使用することで、十分な機能を備えた開発ワークステーション上で既存のプロセスやワークフローを活用して、AI ベースのアプリケーションを開発できるようになります。

量子化モデル + Cloud Workstations == 生産性

量子化モデルは、計算リソースが限られたローカル デバイス上でも実行できるように最適化された AI モデルです。このモデルは、メモリや処理能力をより効率的に使用するように設計されており、そのためスマートフォンやノートパソコンなどのエッジデバイス上でもスムーズに実行できます。ここでは、使用可能なリソースが十分にある Cloud Workstations 上でモデルを実行しています。以下に、開発ループで量子化モデルを活用することで取り組みのハードルが解消される理由について、いくつかの例を挙げて説明します。

  • パフォーマンスの向上: 量子化モデルは、標準の 32 ビット浮動小数点数ではなく、8 ビット整数などの低精度データ型を使用して計算を行うように最適化されています。このように精度を落とすことで、リソースが限られたデバイスで計算が高速化され、パフォーマンスが向上します。

  • メモリ使用量の削減: 量子化手法は、AI モデルのメモリ要件を軽減するのに役立ちます。重みと活性化をより少ないビットで表すことで、モデルの全体サイズが削減されるため、ストレージ容量が限られたデバイスにも収まりやすくなります。

  • 高速な推論: 量子化モデルは精度を落としてモデルサイズを小さくするため、計算を高速化できます。これにより推論時間が短縮され、AI アプリケーションをローカル デバイス上でよりスムーズにレスポンスよく実行できます。

量子化モデルと Cloud Workstations を組み合わせることで、Cloud Workstations の柔軟性、スケーラビリティ、費用対効果のメリットが活かされます。また、LLM ベースのアプリケーション開発において、リモート サーバーやクラウドベースの GPU インスタンスに頼る従来のアプローチでは、遅延、セキュリティ上の懸念、サードパーティ サービスへの依存関係が生じる可能性があります。パフォーマンス、セキュリティ、データの管理を犠牲にすることなく、Cloud Workstations 内でローカルに LLM を活用できるソリューションには、多くのメリットがあります。

localllm の紹介

本日は、コマンドライン ユーティリティから Hugging Face の量子化モデルに簡単にアクセスできるようにするツールとライブラリのセットである localllm を紹介します。localllm は、GPU 不足による制約を受けずに LLM を活用する方法を模索しているデベロッパーにとって救世主となる可能性を秘めています。このリポジトリは、この手法を使用して Google Cloud Workstations 内で直接、CPU とメモリ上でローカルに LLM を実行するための包括的なフレームワークとツールを提供します(ただし、十分な CPU があればローカルマシンでもどこでも LLM モデルを実行できます)。GPU への依存を排除することで、LLM の可能性を最大限に引き出してアプリケーション開発のニーズを満たすことができます。

主な機能と利点

GPU なしでの LLM の実行: localllm を使用すると、CPU とメモリ上で LLM を実行できるようになるため、不足状態の GPU リソースを使用する必要がなくなり、パフォーマンスや生産性を損なわずに LLM をアプリケーション開発ワークフローに組み込むことができます。

生産性の向上: localllm では、Google Cloud エコシステム内で直接 LLM を使用します。このインテグレーションにより開発プロセスが合理化され、リモート サーバーのセットアップや外部サービスへの依存に伴う複雑さが軽減されます。そのため、GPU の管理が不要になり、革新的なアプリケーションの構築に集中して取り組めます。

費用対効果: localllm を利用することで、GPU のプロビジョニングに伴うインフラストラクチャ費用を大幅に削減できます。Google Cloud 環境内の CPU とメモリ上で LLM を実行できるため、リソース使用率が最適化され、結果として費用が削減され、費用対効果が向上します。

データ セキュリティの向上: LLM CPU とメモリ上でローカルに実行することで、機密データを管理下に置くことができます。localllm を使用すると、データ移転とサードパーティのアクセスに伴うリスクを軽減して、データのセキュリティとプライバシーを強化できます。

Google Cloud サービスとのシームレスなインテグレーション: localllm は、データ ストレージや ML API などのさまざまな Google Cloud サービスと統合されるため、Google Cloud エコシステムの可能性を最大限に活用できます。

localllm の使用を開始する

localllm の使用を開始するには、https://github.com/googlecloudplatform/localllm GitHub リポジトリにアクセスします。リポジトリには、Google Cloud 環境内の CPU とメモリ上でローカルに LLM を設定して利用するための詳細なドキュメント、コードサンプル、手順ガイドが含まれています。リポジトリを検索してその開発に貢献し、その機能を活用することで、アプリケーション開発ワークフローを強化することができます。

リポジトリをローカルにクローンしたら、次の簡単な手順で、Hugging Face のリポジトリ「The Bloke」から選んだ量子化モデルを使用して localllm を実行し、最初のサンプル プロンプト クエリを実行しましょう。例として、以下では Llama を使用しています。

読み込んでいます...

localllm を有効にした Cloud Workstations の作成

localllm Cloud Workstations の使用を開始するには、Google Cloud プロジェクトが必要です。また、gcloud CLI をインストールする必要があります。まず、localllm を含む Cloud Workstations コンテナを構築し、それをデベロッパー ワークステーションのベースとして使用します(これには VS Code も組み込まれています)。

読み込んでいます...

次に、Dockerfile のビルドを送信します。これにより、イメージが Artifact Registry に push されます。

読み込んでいます...

公開されるイメージの名前は以下のとおりです。

読み込んでいます...

次に、カスタム イメージを使用してワークステーションを作成し、起動します。マシンタイプ e2-standard-3232 個の vCPU16 個のコア、128 GB のメモリ)を使用することをおすすめします。これは明らかに高性能なマシンです。

次の例では、gcloud を使用して、llm がインストールされたカスタムベース イメージを使用してクラスタ、構成、ワークステーションを設定します。以下のコマンドの $CLUSTER を、希望するクラスタ名に置き替えて実行すると、新しいクラスタが作成されます(最長 20 分ほどかかります)。

読み込んでいます...

次のステップでは、ワークステーションを作成して起動します。このステップには最長 10 分ほどかかります。

読み込んでいます...

ワークステーションに接続するには、ssh(以下を参照)を使用するか、ブラウザでインタラクティブに接続します。

読み込んでいます...

モデルのサービング後(選択したポートで llm 実行コマンドを使用)、ライブ OpenAPI ドキュメント ページにアクセスしてモデルを操作できるようになります。このプロセスは、Hugging Face にある「The Bloke」のリポジトリにリストされているどのモデルにも応用できます。このシナリオでは Lllama を例として使用しています。まず、以下を使用してワークステーションのホスト名を取得します。

読み込んでいます...

次に、ブラウザで https://$PORT-$HOSTNAME/docs にアクセスします。

まとめ

localllm Cloud Workstations を組み合わせると、Google Cloud 環境内の CPU とメモリ上で LLM をローカルに使用できるようになり、AI を活用したアプリケーション開発に革命がもたらされます。GPU を不要にすることで、GPU 不足によってもたらされる課題を克服し、LLM の可能性を最大限に引き出せます。生産性、費用対効果の向上、データ セキュリティの改善を実現しながら、localllm で革新的なアプリケーションを簡単に構築できるようになります。今すぐ localllm Cloud Workstations を使用した Google Cloud エコシステム内でローカル LLM のパワーを活用し、可能性を探ってください。

-Google Cloud、プロダクト マネージャー Geoffrey Anderson

-Google Cloud、ソフトウェア エンジニア Christie Warwick

投稿先