PR
コンピュータ生成AI

超高速なGroqを使った画像解析

スポンサーリンク
スポンサーリンク

はじめに

生成AIの技術進化はとてもすごく、Llama3.2の無料のモデルでついに画像解析できるモデルが登場しました。今回、Llama 3.2の画像解析機能を中心に、Groq、ChatGPT、Claude、Geminiなど、AI画像解析技術の比較を試してみました。ローカルLLMでトライしようと思ったのですが、ollamaには実装されていないので、今回はGroqを使いました。

Groqとは

 AI推論プラットフォームに特化したサービスです。chatGPTなどがソフトウェア(モデル)とハードウェアの両方でサービスしているのとは違い、Groqはオープンなモデルを使用し、独自のハードウェアで爆速の処理を実現しています。

 Groqの核心技術は、GPUではなく独自開発のLPU(Linear Processing Unit)をプロセッサユニットとして採用している点です。LPUのアーキテクチャは大規模な並列処理に最適化されており、AI推論タスクに特化した設計となっています。これにより、従来のGPUよりも効率的にAI処理を行うことができます。

 さらに興味深いのは、Groqがメモリ技術にも革新をもたらしている点です。Groq社はAI推論において、GPUのメモリ(DRAM)がボトルネックになっていることに着目し、DRAMではなく、SRAMに変更し、アーキテクチャを推論用に見直しを図っています。これは一見安直な発想に思えますが、実際には画期的な選択だと思います。

  • DRAM・・・一般的なメモリ
  • SRAM・・・キャッシュメモリとしても使用される高速なメモリ

参考までに、現在のSRAMとDRAMは同容量だと約1000倍程度のコストがかかります。(なので、普通は考えもしない。)Groq社が面白いのは、LPUの性能で従来のGPUの1000倍出せば、コストパフォーマンスの観点から初期投資も十分にペイできるという着眼点だと思います。実際、GroqのAPIサービスは他社と比較して非常に安価です。

Groqのアプローチは、クラウドとエッジの議論に拍車をかけると思っています。スマートフォンではすでにNPU(Neural Processing Unit)やAI専用プロセッサの使用が増えています。今後、車載のIVI(In-Vehicle Infotainment)システムでもメモリの見直しが図られる可能性がありますね。といっても、推論特化プロセッサなので、モデルの学習ではGPUの方が優位のようなので、学習と推論で役割が分かれていくような気もしますね。

 振り返ってみると、約20年前にNVIDIAがGPUを発表した時、主にゲーム用描画のためだけに使用されていました。しかし、機械学習やフーリエ変換のような重い処理にGPUを使用することで数百倍のスループットが得られることが分かり、今日のAI革命につながっています。同様に、SRAMベースのLPU技術が普及すれば、AI技術に新たな革命をもたらす可能性があります。

 この「誰もが思いつくかもしれないが、実際にやってみると突き抜ける」というアプローチは、とても面白いので応援してます。

参考記事

【米国株】Groq半導体はエヌビディアの脅威となるのか。技術面、コスト、電力消費、ビジネスモデルを掘り下げる。|米国株インサイト
4月19日、メタ(旧フェイスブック、META)が高パフォーマンスの最新AIモデルLlama3を無償で利用可能にしました。ほぼ同時にリリースされた、GPUとは異なるLPUという種類のGroq半導体を使った、Llama3による推論サービスが、爆...

Lllama 3.2 11bの画像解析

画像解析に対応しているモデルの11bと90bですが、現時点、Groqだと11bのみ対応してるので試してみます。llama-3.2-11b-vision-previewというモデルを使い、Playgroundでやった場合とpythonで試してみました。

GroqのPlayugroundで試す

以下サイトからPlaygroundに入り、画像をアップロードすると以下のように415msで解析してくれました。とても早いですね。回答の中身は雷門が分かってないのと、解析結果も微妙ではありましたが、無料のモデルに無料のプラットフォームでこれだけできるのは凄いです。90bも画像解析はできるそうですが、まだgroqには対応してなさそうでした。

GroqCloud
Experience the fastest inference in the world

Groq APIを使って試す

pythonコードとAPIキー取得

ちなみにpythonコードで書くとこんな感じです。

import os
from groq import Groq

# APIキーを環境変数から設定するか、直接指定します
api_key = os.getenv("GROQ_API_KEY") or "your_api_key_here"

# クライアントを初期化
client = Groq(api_key=api_key)

# ユーザーに画像URLを問い合わせる
image_url = input("分析したい画像のURLを入力してください: ")

# ユーザーにプロンプトを問い合わせる
user_prompt = input("画像に対する質問や指示を入力してください(デフォルト: この画像について説明してください。): ") or "この画像について説明してください。必ず300字以内で回答すること"

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

print("\n分析結果:")
print(completion.choices[0].message.content)

APIキーは以下サイトのAPI keysから取得しましょう。

環境設定

以下のコードの”your_api_key_here”にベタ書きしても良いですが、APIキーはなるべく環境変数に入れて外部に流出することを避けるように心掛けた方が良いです。

api_key = os.getenv("GROQ_API_KEY") or "your_api_key_here"

環境変数に設定書き出しておきましょう。

export GROQ_API_KEY="gsk_****"

ターミナルを立ち上げるたびに必要になります。面倒な方は~/.bashrcに環境変数を書き出して、source ~/.bashrcで有効にしておけば、次回以降の設定は不要になります。

nano ~/.bashrc
source ~/.bashrc

Groq APIを使って試した結果

以下の画像を使って実行しました。

(出展元:イオンのペット葬

yoshi@omen:~/Playground/ollama$ python ollama_groq.py
分析したい画像のURLを入力してください: https://www.aeonlife-petsou.jp/column/wp-content/uploads/0a5b50936678887f33cc0574cb19e6cf.jpg
画像に対する質問や指示を入力してください(デフォルト: この画像について説明してください。):

分析結果:
この画像に含まれている人物と一緒に歩く黄色いオタモとを中心にした画像です。画像の右側にあります。赤いロープがつながっている手と足を挟んで中肢の 繊細な黒い線で切り取られている人物も確認できます。
人と共に歩いている黄色いlabラブラドール犬は、多くを愛情と慈善を目的とした用途で飼われ、しっかりと前足で地面に関節を行進しながらあります。
右側にあり、日差しも強く見える色の壁と同じ高さで右肩に接している人物が、エピソードの背景のやや真上からお肌に接していたつくりが垣間見えるアング ルで撮られます。
このように、これらの画像を解釈することで、人をもとに動いてきた、動物をもとに動いてしまうことで、物から物へと動機が生成され、人から動物として、 その境目が曖昧なことで、物から人に、動んでいたことで、人から人々集まることにより、人々が集まってその人々が集まることが分かります。

PlayGroundでやってもAPIでやっても画像が違うだけで、似たような説明になりましたね。日本語がおかしい点や、途中から、意味不明になってますね。他のサービスも試したくなったので試してみました。

ChatGPT 4oでやってみる

回答精度はとても高いです。雷門だとわかっていて、状況も説明してくれている。人間っぽさはかなり出てます。時間は10秒ほどかかりました。流石、Vision APIを実装しているところ、マルチモーダル的なところは頭一つ抜き出てますね。以下に参考記事を張っておきます。

Claude 3.5 Sonnetでやってみる

Claudeも負けてません。ほぼ同等の結果ですが、分かりやすさを重視していて、箇条書きになっています。人っぽさよりもAIって感じはありますね。12秒ほどかかりました。

Gemini 1.5 pro 002

Gemini 1.5 proも雷門だとわかってますね。ただ、簡潔の制約が強すぎたのか、一言しか伝えていません。ですが、2.6秒という高速な処理でした。「日本の伝統的な赤い建物」ってめっちゃ気になりますね。追撃すると、雷門だと回答したので、精度重視の人格かもしれません。Googleらしい気がします。

まとめ

本記事では、Llama 3.2(Groq使用)、ChatGPT、Claude、Geminiの画像解析能力を比較しました。Groqが極めて高速であることが分かりました。

  • Llama 3.2(Groq):高速処理が特徴だが、精度に課題あり 処理時間:415ms
  • ChatGPT 4:高精度で人間らしい回答 処理時間:10秒
  • Claude 3.5:高精度で構造化された回答 処理時間:12秒
  • Gemini 1.5:簡潔かつ精度重視の回答  処理時間:2.6秒

Groqの技術革新は、AI推論の高速化と低コスト化に大きな可能性を示しています。各モデルには特徴があり、用途に応じた選択が重要です。今後、処理速度と精度のバランス向上が期待される中、AI画像解析技術の更なる発展が楽しみです。

タイトルとURLをコピーしました