無料でGoogle ColabでLLMを実行する方法
Published on
大規模な言語モデルを試してみたいけれど、高額な価格が心配な方へ、朗報です。Cheatsheet.mdのGrace Smithが、大きな言語モデルの世界に飛び込みたいテック愛好者にお金を節約するためのヒントを共有します。
Google Colabの紹介
Graceが提案する最初のコスト節約方法は、無料のクラウドベースのJupyterノートブック環境であるGoogle Colabの使用です。Googleアカウントだけで、コンピューターの処理能力に関する心配を解消しながら、クラウド上でPythonコードを書いて実行することができます。さらに、Google ColabはGPUアクセラレーションに対応しており、大規模なモデルのトレーニングがより高速かつ簡単になります。
言語モデルのプロバイダを探索する
多くの人が大規模な言語モデルのプロバイダとしてOpenAIを知っている一方で、Graceは別の選択肢であるAzure OpenAIに注目しています。エンタープライズユーザー向けに特別に設計されたAzure OpenAIは、検討する堅実な代替案を提供しています。これらのプロバイダのほかにも、Hugging FaceやFireworks AIなどのオープンソースのプラットフォームもあり、幅広い高品質なモデルを選択することができます。
Google Colabで大規模なモデルを実行する
Google Colabを使用して大規模な言語モデルを実行する方法について知りたいですか?Graceはステップバイステップのガイドを提供します。
- Googleアカウントを持っていない場合は、アカウントを作成します。
- 提供されたリンク(
https://colab.research.google.com/
)を訪れ、Google Colabのインターフェースにアクセスします。 - "Files"メニューから"New Notebook"を選択して、新しいJupyterノートブックを作成します。
- 次に進む前に、ファイルが保存されるようにGoogle Driveをマウントする必要があります。このステップを実行しないと、ノートブック内でダウンロードされたファイルは一時的なものであり、セッション間で継続されません。以下のコードスニペットを実行して、Google Driveをマウントします。
from google.colab import drive
drive.mount('/content/drive')
- GPUアクセラレーションを利用するために、「Runtime」オプションをメニューでクリックし、「Change Runtime Type」を選択します。"Hardware Accelerator"の項目で、"GPU"を選択します。Google Colabは15G T4 GPUへの無料アクセスを提供しています。
- GPU環境が正しく設定されていることを確認するため、以下のコードスニペットを実行します。
import tensorflow as tf
tf.test.gpu_device_name()
! /opt/bin/nvidia-smi
- これで、オープンソースのモデルを使用する準備が整いました。Hugging Faceは人気のある選択肢であり、トランスフォーマーベースのモデルが幅広く提供されています。
HuggingFaceEmbedding
クラスにモデル名を指定するだけで、モデルのダウンロード、ロード、テキスト埋め込みの計算が処理されます。
Graceは、Hugging FaceとLlama 2のオープンソースモデルを使用するインテリジェント検索と大規模な知識ベースのアプリケーションの例をコードスニペットで提供しています。このコードは、事前学習済みモデルの読み込み、テキストのエンコード、知識ベースからの類似情報の取得、および応答の生成のプロセスを示しています。
Google ColabでLLMを実行するためのステップバイステップのサンプルコード
Stable DiffusionやGoogle Flan T5 XLなどのLLMを使用したアプリケーションを作成するには、特にGoogle Colabの無料のGPUのパワーを活用する場合、ステップバイステップの進め方が必要です。このガイドでは、Flaskアプリケーションを設定し、これらのモデルを統合して、ユーザーの入力に基づいて画像やテキストを生成できるようにします。このプロセスでは、Pythonでのコーディング、WebフレームワークとしてFlaskの利用、およびパブリックアクセス可能にするためのngrokでのアプリのデプロイが行われます。
ステップ1: 環境のセットアップ
コードに入る前に、Googleアカウントを持っているかどうかを確認し、Google Colabにアクセスできるようにしてください。Google Colabはパワフルなプラットフォームで、ブラウザを通じてPythonコードを書き、実行、共有することができます。
ステップ2: Flaskアプリケーションの作成
Flaskは、Pythonの軽量なWSGIウェブアプリケーションフレームワークです。これを使用すると、簡単に始めることができ、複雑なアプリケーションにスケールアップすることもできます。まず、Flaskアプリケーションの構造を設定します。
from flask import Flask, render_template, request
from flask_ngrok import run_with_ngrok
app = Flask(__name__)
run_with_ngrok(app) # アプリ実行時にngrokを起動します
ステップ3: LLMの統合
このプロジェクトでは、画像の生成にはStable Diffusion、テキストの生成にはGoogle Flan T5 XLの2つのモデルを使用します。これらのモデルには、transformers
、diffusers
、torch
という特定のライブラリが必要です。
import torch
from diffusers import StableDiffusionPipeline
from transformers import T5Tokenizer, T5ForConditionalGeneration
# Flan-T5-XLモデルの読み込み
tokenizer = T5Tokenizer.from_pretrained("google/flan-t5-xl")
model = T5ForConditionalGeneration.from_pretrained("google/flan-t5-xl").to("cuda")
# Stable Diffusionモデルの読み込み
pipe = StableDiffusionPipeline.from_pretrained(
"runwayml/stable-diffusion-v1-5",
revision="fp16",
torch_dtype=torch.float16
).to("cuda")
ステップ4: アプリケーションの設計
アプリケーションの基本的なHTMLテンプレートを作成します。このテンプレートには、ユーザーがAIモデルに対して入力を行うためのフォームが含まれます。このテンプレートをFlaskプロジェクトディレクトリ内のtemplates
フォルダにindex.html
という名前で保存します。
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>LLM Flask App</title>
</head>
<body>
<form action="/submit-prompt" method="post">
<input type="text" name="prompt-input" placeholder="プロンプトを入力してください">
<button type="submit">生成</button>
</form>
</body>
</html>
ステップ5: リクエスト処理
Flaskアプリケーションでリクエストを処理するためのルートを設定します。ユーザーがプロンプトを送信すると、アプリケーションはLLMを使用してそのプロンプトに基づいて画像とテキストを生成します。
以下は、このMarkdownファイルの日本語訳です。
from flask import Flask, render_template, request, jsonify
from io import BytesIO
import base64
@app.route('/')
def index():
return render_template('index.html')
@app.route('/submit-prompt', methods=['POST'])
def generate():
prompt = request.form['prompt-input']
# Stable Diffusionで画像を生成する
image = pipe(prompt=prompt).images[0]
buffered = BytesIO()
image.save(buffered, format="PNG")
img_str = base64.b64encode(buffered.getvalue()).decode()
# Flan-T5-XLでテキストを生成する
input_ids = tokenizer(prompt, return_tensors="pt").input_ids.to("cuda")
generated_output = model.generate(input_ids, max_length=512)
generated_text = tokenizer.decode(generated_output[0], skip_special_tokens=True)
return render_template('index.html', generated_image=img_str, generated_text=generated_text)
ステップ6: Ngrokでのデプロイ
Ngrokは、NATやファイアウォールの背後にあるローカルサーバーをセキュアなトンネルを介して公開インターネットに公開します。 ngrokをインストールした後、トークンを使用して認証します:
!ngrok authtoken <YOUR_AUTHTOKEN_HERE>
Flaskアプリを実行し、ngrokはそれにアクセスするための公開URLを提供します:
!python app.py
ステップ7: Google Colabでの実行
Google Colabでこのセットアップ全体を実行するには、Flaskアプリが含まれるGitHubリポジトリをクローンし、実行する必要があります。 Google Colabでは、ノートブックから必要なライブラリをインストールしたり、ngrokを認証したり、Flaskアプリケーションを実行したりすることができます。
- リポジトリをクローンします:
!git clone https://github.com/yourusername/yourrepository.git
- ディレクトリをアプリのディレクトリに変更します:
import os
os.chdir("your repository")
- 必要なPythonパッケージをインストールします:
!pip install flask flask_ngrok torch diffusers transformers
- ngrokを認証します:
!ngrok authtoken YOUR_NGROK_AUTHTOKEN
- Flaskアプリケーションを実行します。このコマンドは、Flaskアプリを実行し、ngrokによって提供される公開URLを介してアクセスできるようにします:
!python app.py
Google ColabでFlaskアプリケーションを実行すると、ngrokのパブリックURLへのリンクが表示されます。このURLは、どこからでもアクセスできるようになったFlaskアプリケーションにリードします。
ステップ8: アプリケーションとの対話
提供されたngrokのURLに移動して、Flaskアプリケーションを表示します。フォームにプロンプトを入力し、送信します。バックエンドのFlaskアプリケーションは、この入力を安定したディフュージョンとGoogle Flan T5 XLモデルを使用して処理し、画像とテキストを生成します。これらの結果は、同じページに表示され、これらの大規模言語モデルの機能を示しています。
ステップ9: 更なる探索
このプロジェクトは、LLMとクラウドベースのコンピューティングが可能にすることの表面をかすめています。追加の機能でアプリケーションを強化することを検討してみてください。
- カスタマイズオプション: ユーザーが画像とテキスト生成のためのパラメータを指定できるようにしましょう。例えば、モデルの創造性レベルや生成する画像の種類などです。
- より大きな負荷の処理: キューイングシステムを実装して、複数の要求を効率的に処理するようにしましょう。ユーザーの需要に応じてアプリケーションをスケーリングします。
- 高度なモデルの使用: 他のモデルやそれらのユニークな機能を探索してみましょう。例えば、医療助言や法的分析など特定の領域に特化したモデルを統合することができます。
結論
Stable DiffusionとGoogle Flan T5 XLなどの大規模言語モデルを実行し、それをGoogle Colabとngrokを使って展開するFlaskアプリケーションを構築することは、現代のAI技術のアクセス性とパワーを示しています。わずか数ステップで、開発者はブラウザ内で最先端のモデルを活用したインタラクティブなアプリケーションを作成することができます。このガイドは、これらのモデルの実用的な応用だけでなく、産業や創造的な取り組みを変革するAIの潜在能力をさらに探求することを奨励しています。
AI開発に深入りする際には、著作権、プライバシー、公平さを尊重したコンテンツの生成の重要性を忘れないようにしてください。AIと機械学習の世界は、これらの原則を尊重する有益で革新的なアプリケーションを作成する機会で満ちています。
Google Colabのパワーと言語モデル
Google Colabの無料クラウド環境と、sentence-transformersやLlama 2などのライブラリを組み合わせることで、テックエンスージアストは意味的リトリーアルや質問応答のタスクに簡単に取り組むことができます。このアプローチは、貴重なハードウェアリソースを節約するだけでなく、よりスマートでパーソナライズされた質問応答システムを作成することも可能にします。
Google Colabを使えば、銀行口座を崩さずに大規模言語モデルの可能性を探求することができます。Graceは、読者が自分で試してさらにエキサイティングなアプリケーションを見つけることをお勧めします。コメントを残して自分の成果を共有してください!
まとめると、独立系のオープンソースソフトウェア開発者であり、SolidUIの著者であるGrace Smithは、AIとデータの分野に特に情熱を持って新しいテクノロジーに関心を抱いています。彼女の記事が有益で魅力的だった場合は、サポートを示すために忘れずにいいねやブックマークをしてください。
常に好奇心を持ち、テクノロジーの魅力的な世界を探求し続けましょう!