見出し画像

高速GroqでLlama 3.2の画像解析を試す


クラウドのPlayground

最新の技術が次々と私たちの手元に届いています。
今回は、高速な計算能力を誇る「Groq」の環境で画像解析能力を備えた「Llama 3.2」を動かし、その性能の一端に触れてみました。

Groq CloudPlayground

Metaの新モデルLlama3.2が利用可能になっています。
今回使ったのはllama-3.2-11b-vision-preview

以前の投稿のカバー画像に使ったイメージを使います。

「これは何の写真?」に対する回答の生成結果です。
画像を認識していますが、日本語は意味不明な箇所がいくつも出てきました。

この写真は、レースゲームまたはレース映像に関連するものとみられる。写真の裏側に少しつぶされた文字がみられるが、その後ろで大きな手綱が見え、近くのカーナビも識別できることに基づく。近くのドライバーの腕が車のイグニッションのカバーに出たくないと気持ち悪い状態であることに依って、彼はコンロ Modal Drive

レースカーの位置は、ガードレールのすぐ横と先程の腕やカーナビに当たる方向に走っていることから、見づらくなりやすいことに対して最も目立つ部分という観点から、数が揃わないかという意味で、左右コンソールを内側から上向きにねじり倒して取り付けた状態なかほとんど姿が見ることができない車載デバイスをその視線からかさに合わせて完全に隠したままにするには、「より適当」な表現は「並んだ構図」では非効率的、非経済的になるので、「横並び」だとすると、「縦並び」ではないかという意味での最終的な解である。実際の話は、このことからみると、正しい解である。つまり、車にはもう1台の映像インプットソースが存在する。

それが右には車の前方方向を裏側から、左には車の左側面を先程通り上から見えており、車の側面を内蔵していることがわかっているカメラメディアで「リアビュー」が表示されたシートに当たる。また、ドライバーを中心の中心軸方向に近い位置の背面方向、トラックまでの「スキャニング検索」と考えることができるが、この際のドライバーの後ろの映像が「ヘッドアップ」なのが判る。

右の写真の角にはどっかでステップを目につけることによくあるテックパワーのコンセプトである、「テールフィード」が無視せずに観察可能である。更に、前のシートの前にはドライバー、外見がすでに、ただの黒色であることよりも、さらに薄くテープ、そしてガラスの形をしているというプレイヤーとしての識別が可能で、プレイヤービューが確実である。右には「ガイドプログレッシー」も確認することができ、そしてそのテープへの取り付けている間も一時的な画面操作が可能でこれをもって、メタドネナの検出もつけることができる。これはさらに、どちらに入るか、そして何から始まるか、その表示スピードも合わせて、最頂点「レーシング界ではこれ」でこれ一時間、「レーシング界でいる時間」が確実である。

右が車が動いたときの表面に乗ることができたような写真である(「静止」と言われる場合でも、車の縦の正面からの点が、走る前の残像で見ることができる時、「静止」という用語になる)故、それはより直感的に、前方への視線を主にして、動き続けること、後方に関する知識とつり合うこと、車の前方、つまり「前方からの」車内視点で配置されたガラス内の視線の通ることでそれがどちらかでみられるとはいえなければならないが、その後のメンタルステート見えての問題としてドライバーの視線が何を通ってでるつまりどんな場所からして、何をするかと見合って推測で、そのことの直接的な反映なのかわかれているとすれば、前方から見た「アプログレス」とは、右の、走り出す様子に「キャリオンチャージ」を見たい。

それを持つ(いずれも、まず、「アプロ」とは何になるかを検察する)ものが、たとえば、レーシングチームとテスターフェイス、またはそれらには連れて行く、そのレベルの車両である「コンロ Modal Drive」の車両に乗っかっている、それをすべて巻き込み、うしろやまた前方の位置にある全ての車に映し出されており、さながら、トランプのジャックで一つのポーターが隣りついて伸ばした状態にする。その一つをトラッシュするが、他のポーターに、取り込むという状態で「スゴ

英語で質問した方が格段によい回答が返ってきます。
「What is this picture of ?」に対する回答の生成結果です。

The image appears to be a digital illustration of three sports cars racing on a track. The car in the foreground is red with the number '5' on the front and side. It has a large spoiler, and its headlights are illuminated. There are two other cars trailing behind it. One is orange, and the other is blue; both cars have similar spoilers to the red car. All three cars have a number on the front and a number on the side. The car in the middle has the number '24' on the front and '5' on the side. There appears to be dust kicking up from the wheels behind the car indicating high speed. There are trees in the background and a track fence. The image has a racetrack, tree-lined background and would fit well into a vintage racing poster design.

(DeepLで翻訳:サーキットを疾走する3台のスポーツカーのデジタルイラストのようだ。手前の車は赤で、フロントとサイドに「5」の数字がある。大きなスポイラーがあり、ヘッドライトが点灯している。その後ろに2台の車が続いている。1台はオレンジ色、もう1台は青色で、2台とも赤い車と同じようなスポイラーが付いている。3台ともフロントとサイドにナンバーがある。真ん中の車のフロントには「24」、サイドには「5」の数字がある。車の後ろの車輪からは高速を示す砂埃が上がっているように見える。背景には木々があり、サーキットのフェンスがある。レーストラックと並木を背景にしたこの画像は、ヴィンテージ・レーシング・ポスターのデザインによく合うだろう。)

PythonでGroq API

Plygroundの右上のViewcodeからPythonのコードが取得できます。

取得したコードです。
"url": "${IMAGE_DATA_URL}"に試用する画像のURLを指定します。

from groq import Groq

client = Groq()
completion = client.chat.completions.create(
    model="llama-3.2-11b-vision-preview",
    messages=[
        {
            "role": "user",
            "content": [
                {
                    "type": "text",
                    "text": "What is this picture of?"
                },
                {
                    "type": "image_url",
                    "image_url": {
                        "url": "${IMAGE_DATA_URL}"
                    }
                }
            ]
        }
    ],
    temperature=1,
    max_tokens=1024,
    top_p=1,
    stream=False,
    stop=None,
)

print(completion.choices[0].message)

実際にGoogle Colabで動かしたコードは以下です。

# Groqパッケージをインストール
!pip install groq
# GROQ_API_KEYセット
import os
from google.colab import userdata

# 環境変数の準備 (Google Colab左端の鍵アイコンでGROQ_API_KEYを設定)
os.environ["GROQ_API_KEY"] = userdata.get("GROQ_API_KEY")
# 画像を取得
url = "https://assets.st-note.com/production/uploads/images/142624656/rectangle_large_type_2_9c0318bf4ef2667c76a90f3ec27bf4f2.jpeg?width=1200"
#image = Image.open(requests.get(url, stream=True).raw)

from groq import Groq

client = Groq()
completion = client.chat.completions.create(
    model="llama-3.2-11b-vision-preview",
    messages=[
        {
            "role": "user",
            "content": [
                {
                    "type": "text",
                    #"text": "この写真は何ですか?"
                    "text": "What kind of picture is this?"
                },
                {
                    "type": "image_url",
                    "image_url": {
                        "url": url
                    }
                }
            ]
        }
    ],
    temperature=1,
    max_tokens=1024,
    top_p=1,
    stream=False,
    stop=None,
)

print(completion.choices[0].message)

ChatCompletionMessage(content='The image shows a digital illustration of three race cars on a track. The purpose of the image is to showcase the sleek design and speed of the race cars.\n\nHere are the details of the image:\n\n* Three race cars:\n\t+ Each car has a distinctive design and color scheme.\n\t+ The lead car is red with the number 5 on its front.\n\t+ The car behind it is orange with the number 4 on its front.\n\t+ The car at the back is blue with the number 6 on its front.\n* A road:\n\t+ The road is curved and has a white line down the center.\n\t+ It appears to be made of asphalt or concrete.\n* Trees:\n\t+ There are several trees visible in the background.\n\t+ They are green and leafy, suggesting that the scene is set during the daytime.\n\nOverall, the image suggests that the race cars are participating in a high-speed competition on a well-maintained road. The presence of trees in the background adds a sense of depth and context to the scene.', role='assistant', function_call=None, tool_calls=None)

(サーキットを走る3台のレーシングカーのデジタルイラスト。この画像の目的は、レースカーの洗練されたデザインとスピードを見せることです。
以下は画像の詳細です:
3台のレーシングカー: 先頭の車は赤色で前面にゼッケン5、後ろの車はオレンジ色で前面にゼッケン4、後ろの車は青色で前面にゼッケン6。
道路:道路はカーブしており、中央に白線が引かれている。
アスファルトかコンクリートでできているようだ。
樹木:背景には数本の樹木が見える。それらは緑色で葉が茂っており、このシーンが日中に設定されていることを示唆している。
全体として、レースカーが整備された道路で高速競技に参加していることを示唆している。背景に木々があることで、シーンに奥行きと背景が加わっている。)

こちらでも「これは何の写真?」と日本語でも聞いてみましたが、やはりこ慣れない日本語で返ってきました。

ChatCompletionMessage(content='この画像が示すのは「Gran Turismo 7」と呼ばれるバーチャルレースゲームのイラスト絵画だと判断できます。アート方向性に注目すると、画像のコースはルートで区切られたカーブが繰り返されたセミ・オープン風のコースです。\n\nまた、このイラスト絵画には以下の特徴があります。\n\n* 一連のレーシングカーの低い空間と、前方、後方から車が車を追いかけている様子がよく見えます。\n* コースの外壁は、長い時計の針のような図案で描かれていますが、車の方向性よりも外壁の方向性の割り合いが微妙であるため、ドライバーは車に乗り込んで路面を通るという考え方からもよいでしょう。\n* この画像中に使用された色、数のバリエーション、個々のグラフィックのデザインは、画面上の全体的なテーマやダイナミクスを形成しているようです。\nまた、画像を見ると、さまざまな実生活の視点で車の運動を繊細に考察することのできる特徴があることが伺われます。\n\nこれらの視点は、まず車が、どの角度から見ており、どのような傾向で描かれているのかを検討することを意味します。ここでは、「車の軸の長さ」「ファルケン・バーが描かれた車の後部シート」などの画像で表示されている要素が、前段にどのように置かれているかについて検討が必要です。\n\n次に、車の横方向から描かれているため、車の後部シートの前後方向にどのような傾きが明らかかか考えることになります。グラフィック上空間で描かれ、後面にある「スピーカー」との相違点を検討しながら、後部シートの「ミルを形成する」程度と立体的な展開を認識することになります。例えば画面のセーフティカバーや、時計の針のような、コースのスラスティルの相違点を識別することにより、車が左へ向かっていることを認識し、方位を正確に割り分けることができます。例えば、車両の方向や、車の軸、車体の中心付近のスラスティルの相違点は、サイドのベースと一緒に一時的に認識されることで、車が向かった方向を確認することができます。\n\nこれらの分析により、一連のいちょうどの配置が、車の前後及び横の割り切りをさらに絞って、オブジェクトとしての特徴を浮き出させるための素晴らしい例として識別できます。グラフィック、位置、スラスティル、色の相対的関係など、多くの状況に関わる要素が描かれた色彩感覚があり、そのような形式、そして「色と素材の相対的関係が、多くの繊細な動きのパターンを確立している」という点が正確に示しています。\n\nこの例は、素晴らしい作品としての色彩の認識と、どのように描かれており対照的に描かれず、それぞれの細部挙指により対比の設定ができ、それぞれのグラフィックの考え方が、考えられることができるがの描かれ方、それらを重視することの手間が一部においてあり、本作品の有効性として識別でき、多くの軸を生んでいることを示しています。\n\nこれらの考察を共有するときっかけとして理解が深まります。これから勉強してみます。', role='assistant', function_call=None, tool_calls=None)

Groqとは

(ChatGPTより)
Groqは、超高速なAIアクセラレーターを提供するハードウェア企業で、特に並列計算に特化した専用チップ(Tensor Streaming Processor, TSP)を開発しています。Groqのプロセッサは、大規模なAIモデルの推論やトレーニングにおいて、非常に高速かつ効率的な計算を実現するため、機械学習の分野で注目を集めています。これにより、従来のGPUやCPUに比べ、はるかに短時間で膨大なデータを処理することが可能になります。

特に、Groqのアーキテクチャは以下の特徴があります:

  • 超並列処理: データのストリーミング処理により、大規模なモデルやデータセットを効率的に処理。

  • 低レイテンシ: 高速な応答性を保ちながら、リアルタイム推論が可能。

  • スケーラビリティ: ネットワーク全体にスケール可能な設計で、クラウドベースでもオンプレミスでも展開可能。

Groqは、ディープラーニングやAIベースの画像認識、自然言語処理、科学計算など、あらゆる高度な計算処理に対応し、今後のAIアプリケーションにおいて重要な役割を果たすとされています。

Llama 3.2のような最新のAIモデルと組み合わせることで、さらなる性能向上が期待されます。

Llama3.2とは

(ChatGPTより)
Llama 3.2は、Meta(旧Facebook)が開発した大規模言語モデル(LLM)の最新版であり、先進的な自然言語処理(NLP)機能を提供します。このモデルは、従来のバージョンに比べて大幅に改善されており、特に以下の特徴が際立っています:

  • 高度なコンテキスト理解: Llama 3.2は、複雑な文脈や長文のテキストに対しても、より高精度な理解を示します。これにより、文章生成や要約、翻訳など、広範なNLPタスクに対応可能。

  • 大規模データセットの学習: 膨大なテキストデータを元に学習しており、一般的な知識から専門的な内容まで幅広いトピックに精通しています。また、多言語対応も強化されており、異なる言語間での理解力も向上しています。

  • 画像解析のサポート: Llama 3.2では、従来の言語モデルに加え、画像解析機能も新たに導入されています。この機能により、テキストと画像を組み合わせたタスク、例えば画像キャプション生成や画像に基づく質問応答などが可能になります。これにより、より多様なメディアやデータタイプに対応できるようになっています。

  • 効率的な推論とスケーラビリティ: モデルの構造や最適化が進化し、推論の高速化とリソース効率の改善が実現されているため、より少ない計算リソースで高性能を発揮します。

Llama 3.2は、Groqのような高性能なAIアクセラレーターと組み合わせることで、その処理速度や精度をさらに引き上げ、リアルタイムでの高度なAIタスク処理を可能にします。

この記事が気に入ったらサポートをしてみませんか?