メタは、ラマ3.2 11B&90Bビジョンモデルを導入することにより、ラマエコシステムにマルチモダリティを最終的に追加しました。これらの2つのモデルは、テキストと画像の両方の処理に優れているため、90Bバージョンを使用してプロジェクトを構築するようになりました。
この記事では、私の作品を共有し、フロントエンド用のRestreamlitを使用してインタラクティブな画像キャプションアプリを構築し、キャプションを生成するためのエンジンとしてLlama 3.2 90bを使用してガイドします。
画像キャプションアプリにllama 3.2 90bを使用する理由
llama 3.2-vision 90bは、画像入力とテキスト入力の両方を含むタスク用に構築された最先端のマルチモーダル大手言語モデル(LLM)です。
視覚的推論、画像認識、画像キャプションなどの複雑なタスクに取り組む能力が際立っています。 60億の画像テキストペアの大規模なデータセットで訓練されています。
llama 3.2-visionは、テキストタスクの複数の言語をサポートしているため、アプリに最適です。ただし、英語は画像関連のアプリケーションの主な焦点です。その主要な機能により、Visual質問応答(VQA)、Document VQA、Image-Textの検索などのタスクに最適な選択肢になり、画像キャプションは傑出したアプリケーションの1つです。
これらの機能が、画像キャプションのような現実世界のアプリケーションにどのように変換されるかを調べてみましょう。
画像キャプションパイプライン
画像キャプションは、画像のコンテンツを要約する記述テキストを生成する自動化されたプロセスです。コンピュータービジョンと自然言語処理を組み合わせて、言語の視覚的詳細を解釈および表現します。
伝統的に、画像キャプションには複雑なパイプラインが必要であり、多くの場合、画像処理と言語生成のための個別の段階が含まれます。標準的なアプローチには、イメージの前処理、機能抽出、キャプション生成の3つの主要な手順が含まれます。
画像の前処理:通常、画像はサイズ変更、正規化され、時にはトリミングされて、モデルの入力仕様を確実に満たすようにします。
機能抽出:視覚機能が抽出され、画像内のオブジェクト、シーン、または関連する詳細を識別します。ほとんどのモデルでは、これには画像を解釈するための個別のビジョンモデルが必要であり、言語モデルが理解できる構造化されたデータを生成します。
キャプション生成:これらの抽出された機能は、言語モデルによって使用され、視覚データで識別されたオブジェクト、コンテキスト、および関係を組み合わせて、コヒーレントな説明を作成します。
llama 3.2 90bを使用すると、この伝統的に複雑なプロセスがより簡単になります。モデルのVision Adapterは、視覚機能をコア言語モデルに統合し、画像を直接解釈し、単純なプロンプトを介してキャプションを生成できるようにします。
そのアーキテクチャ内に横断層を埋め込むことにより、Llama 3.2 90Bを使用すると、ユーザーは単にモデルを促すだけで画像を説明できます。このシンプルさは、よりアクセスしやすく効率的な画像キャプションを可能にします。単一のプロンプトは、画像の本質を効果的にキャプチャする自然で記述的なキャプションを生成できます。
画像キャプションアプリの概要
Llama 3.2 90bのパワーを実現するために、フロントエンドにStreamlitを使用してシンプルでありながら効果的な画像キャプションアプリケーションを構築し、キャプションを生成するためにGROQを構築します。
アプリを使用すると、ユーザーは画像をアップロードし、2回のクリックでモデルによって生成された説明的なキャプションを受信できます。このセットアップはユーザーフレンドリーであり、開始するには最小限のコーディング知識が必要です。
当社のアプリケーションには、次の機能が含まれます
タイトル:アプリの目的を確立するために、目立つタイトル、llamaキャプション。
アップロードボタン:ユーザーのデバイスから画像をアップロードするインターフェイス。
ボタンの生成:キャプション生成プロセスを開始するボタン。
キャプション出力:アプリは、生成されたキャプションをインターフェイスに直接表示します。
Llama 3.2 90bアプリのコード実装-
GROQ APIは、ユーザーのアップロードされた画像とLlama 3.2-Visionモデルの間のブリッジとして機能します。あなたが一緒にフォローして私と一緒にコーディングしたい場合は、最初に確認してください:-
- GROQコンソールでサインアップしてGROQ APIキーを取得します。
APIキーをA- credentiences.json
ファイルに保存して、アクセスを簡素化します。
インストールと構成のためのGroqのQuickStartガイドに従ってください
以下のこのPythonコードスニペットは、GROQ APIと対話するための流線アプリケーションを設定します。含まれています:
Webアプリ開発のライブラリをインポート(Streamlit)、AI Interactions(GROQ)、画像処理(Base64)、およびファイル操作(OS、JSON)。
- 拡張されたセキュリティのために、別のJSONファイルからGROQ APIキーを読み取ります。
効率的な伝送と処理のために画像をbase64形式にエンコードする関数を定義します。
-
以下の関数を書くことで進みます。これは、GROQ APIを使用してアップロードされた画像のテキスト説明を生成するように設計されています。機能の内訳は次のとおりです
- 画像エンコーディング:アップロードされた画像は、base64エンコードされた文字列に変換されます。この形式により、画像データをAPIリクエスト内で簡単に送信できます。
GROQ APIインタラクション:GROQクライアントは、GROQサービスとのコミュニケーションを促進するためにインスタンス化されます。チャット完了要求が策定されています
-
ユーザープロンプト:「この画像には何が含まれていますか?」
- base64エンコードされた画像データは、データURIに埋め込まれています。 llama-3.2-90b-vision-previewモデルは、画像を処理してテキストの説明を生成するために指定されています。
-
キャプション抽出:生成されたキャプションは、GROQ API応答から抽出されます。キャプションを含む最初の選択肢のメッセージコンテンツが返されます。
- 最後に、retrylit:
を介してインタラクティブなWebアプリを生成します
import streamlit as st
from groq import Groq
import base64
import os
import json
# Set up Groq API Key
os.environ['GROQ_API_KEY'] = json.load(open('credentials.json', 'r'))['groq_token']
# Function to encode the image
def encode_image(image_path):
with open(image_path, "rb") as image_file:
return base64.b64encode(image_file.read()).decode('utf-8')
ログイン後にコピー
最終的な流線アプリ:Llama Captioner
このretrylitアプリケーションは、画像キャプション用のユーザーフレンドリーなインターフェイスを提供します。機能の内訳は次のとおりです
# Function to generate caption
def generate_caption(uploaded_image):
base64_image = base64.b64encode(uploaded_image.read()).decode('utf-8')
client = Groq()
chat_completion = client.chat.completions.create(
messages=[
{
"role": "user",
"content": [
{"type": "text", "text": "What's in this image?"},
{
"type": "image_url",
"image_url": {
"url": f"data:image/jpeg;base64,{base64_image}",
},
},
],
}
],
model="llama-3.2-90b-vision-preview",
)
return chat_completion.choices[0].message.content
ログイン後にコピー
タイトルとファイルアップローダー:
アプリにはタイトルが表示されます: "llama captioner"。-
ファイルアップローダーコンポーネントを使用すると、ユーザーは画像ファイル(JPG、JPEG、またはPNG)を選択できます。
画像がアップロードされたら、アプリはSt.Image関数を使用して表示します。
-
キャプション生成:
-
ボタン、「キャプションを生成」、キャプション生成プロセスをトリガーします。
クリックすると、スピナーはキャプションが生成されていることを示します。-
generate_caption関数が呼び出され、アップロードされた画像を処理してキャプションを取得します。
成功すると、成功メッセージが表示され、その後に生成されたキャプションが続きます。
- 以下のスニペットは、キャプションを生成するためにエディホールの画像がアップロードされた動作中のコードです。驚くべきことに、それは「最強の男」などのようにはっきりと見えなかった情報さえ抽出しました。
-
- 結論
- llama 3.2 90bとRiremlitを使用して画像キャプションアプリを構築することで、AIが困難なタスクを容易にする方法を示しています。このプロジェクトは、強力なモデルとシンプルなインターフェイスを組み合わせて、直感的で使いやすいツールを作成します。
AIエンジニアとして、このようなツールに大きな可能性があると思います。彼らはテクノロジーをよりアクセスしやすくし、人々がコンテンツによく関与するのを助け、より賢い方法でプロセスを自動化することができます。
ラマで学習を続けるには、次のリソースをお勧めします。
- llama 3.2 1bを実行する方法torchchat
- llama 3.2およびgradioチュートリアル:マルチモーダルWebアプリを構築
- llamaスタック:実用的な例を備えたガイド
- llama 3.2を微調整してローカルに使用します:ステップバイステップガイド
- llama 3.3:デモプロジェクトを使用したステップバイステップのチュートリアル
以上がllama 3.2 90bチュートリアル:retrylit&groqを備えた画像キャプションアプリの詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。