見出し画像

Groqの超高速環境でMetaの最新LLM「Llama 3」を試してみる

こんにちは、スクーティーというソフトウェア開発の会社をやっているかけやと申します。

弊社は生成AIを強みとするベトナムオフショア開発・ラボ型開発や、生成AIコンサルティングなどのサービスを提供しており、最近はありがたいことに生成AIと連携したシステム開発のご依頼を数多く頂いています。

​​​Meta社が最新のLLM「Llama 3」をオープンソースとして公開したことが話題になっています。早速、GroqというLLMの推論を超高速に動作することができるサービスを経由してLlama 3を試してみましたので、実際に動作を確認できるまでの過程も含めてお伝えしようと思います。Llama 3もすごかったですが、Groqの圧倒的高速レスポンスに衝撃を受けました・・・!


Groqについて

Groqとは

Groqは、特に大規模言語モデル(LLM)の推論を高速化するために設計されたカスタムハードウェア、言語処理ユニット(LPU)を開発している企業です。この技術は、従来のハードウェアと比較して、処理速度を大幅に向上させることが特徴です。

GroqのLPUは、他のクラウドベースのサービスプロバイダよりも最大18倍速い推論性能を実現しています。Groqはこの技術を用いて、リアルタイムAIアプリケーションの性能を最大限に引き出すことを目指しています。

​また、Groqは最近、「Groq Systems」という新しい事業部門を設立し、データセンターへのチップ導入や新たなデータセンターの構築を支援しています。さらに、ビジネス向けAIソリューションを提供するDefinitive Intelligenceを買収し、技術力と市場影響力をさらに強化しています。

Groqが提供するLPUとは

GroqのLPU(Language Processing Unit)は、AI言語モデルの推論性能と精度の向上を目的として設計された専用プロセッサです。従来のGPUと異なり、LPUはシーケンシャルな計算作業に特化しており、大規模言語モデルに必要な計算とメモリ帯域幅のボトルネックを解消します。例えば、LPUはGPUと比較して単語あたりの計算時間を削減し、無外部メモリ帯域幅のボトルネックを持たないため、グラフィックスプロセッサよりも桁違いに優れたパフォーマンスを提供します。

技術的な特徴として、LPUは数千の単純な処理要素(PE)を持ち、これらはSingle Instruction, Multiple Data(SIMD)配列で構成されています。これにより、データポイントごとに同じ命令を同時に実行することができます。さらに、中央制御ユニット(CU)が指示を出し、メモリ階層とPE間でのデータの流れを管理し、一貫性のある同期通信を維持します。

LPUを使用する主な効果としては、AIと機械学習のタスクでの高速化が挙げられます。例えば、GroqはLlama-2 70BモデルをLPUシステム上で300トークン/秒/ユーザーという速度で実行しており、これは以前の100トークンや240トークンと比べて顕著な向上です。このように、LPUはAIの推論タスクをリアルタイムで低遅延に処理し、エネルギー効率の良いパッケージで提供することが可能です。これにより、高性能計算(HPC)やエッジコンピューティングなどの分野で革新的な変化を期待できます。

圧倒的に安いGroqのAPI

Groqのハードウェアリソースは、Groqが提供するAPIを介して利用することができます。このAPIの使用料がものすごく安いこともGroqのサービスの特徴の一つです。

つまりGroqは速くて安い

下記の図は、ArtificialAnalysis.aiによるAPIプロバイダーを比較したもので、横軸に価格、縦軸にスループット(token/秒)をマッピングしたものです。この図からもわかるようにGroqは圧倒的に速くて安いことがわかり、特にスループットでは他のAPIプロバイダーと大きく差を着けていることが視覚的にわかります。

Llama 3について

Llama 3の概要と特徴

Llama 3は、Metaが開発した最新の大規模言語モデル(LLM)です。このAIは、テキストデータの膨大なデータセットに基づいて訓練されており、言語を包括的に理解し、応答する能力を持っています。Llama 3は、クリエイティブなコンテンツの作成、言語の翻訳、質問への情報提供など、多岐にわたるタスクに適しています。このモデルは、AWS、Databricks、Google Cloudなどのプラットフォームで利用可能で、開発者や研究者が更にAIを発展させるための基盤として機能します。Metaは、Llama 3をオープンソースとして提供することで、技術の透明性を高め、幅広い開発者との協力を促進しています。

以下に、Metaが公開しているLlama 3の特徴を列挙します。

  • 高度なパラメータモデル: Llama 3は、巨大なパラメータ数を持つモデルとして開発されており、8B(80億)および70B(700億)の2つのバージョンがあります。これにより、言語の理解と生成において高度な性能を発揮します。

  • 業界標準のベンチマークでの評価: Llama 3は、ARC、DROP、MMLUなどの複数の業界標準ベンチマークで評価され、これらのテストにおいて最先端の成績を達成しています。具体的には、従来モデルと比較して認識と推論の精度が顕著に向上しています。

  • 多言語サポート: Llama 3は30以上の言語に対応するための高品質なデータを含む、15兆トークン以上のトレーニングデータセットで訓練されています。これには、英語データだけでなく、多様な言語のデータも含まれており、世界中のユーザーに適応します。

  • トークナイザーの革新: 新開発されたトークナイザーは128,000もの語彙を持ち、より効率的に言語をエンコードします。これにより、モデルの処理速度と精度が向上し、より複雑なテキストも適切に扱うことができます。

  • 推論効率の向上: グループ化されたクエリアテンション(GQA)技術を採用することで、モデルの推論効率が向上しました。これにより、大規模なデータセットでも高速に処理が可能となり、リアルタイムでの応答が可能になっています。

  • 安全性と信頼性の強化: Llama Guard 2、Code Shield、CyberSec Eval 2などの新しいセキュリティツールを導入し、モデルが生成するコンテンツの安全性を高めています。これにより、不適切なコンテンツの生成リスクを最小限に抑えることが可能です。

  • オープンソースとしての公開: Llama 3は完全にオープンソースで提供され、世界中の研究者や開発者が自由にアクセスし、改良やアプリケーションの開発に利用することができます。この開放性が、さらなるイノベーションを促進します。

Llama 3のベンチマークに沿ったパフォーマンス評価

​Llama 3は、業界標準のベンチマークで顕著な性能を示しています。特に、言語理解、論理推理、問題解決能力の領域で優れていることが確認されています。新たに導入された8Bおよび70Bパラメータのモデルは、前モデルのLlama 2と比較して、理解と応答の精度が大幅に向上しています。

​Llama 3は、特にコード生成や指示に基づくタスクの遂行能力が高いと評価されており、これらの能力はMetaの独自開発したトレーニング手法によりさらに強化されています。また、このモデルは多言語に対応しており、30以上の言語で高品質なパフォーマンスを提供します。

現在公開されているMetaのLlama 3モデルには、Llama 3 8BとLlama 3 70Bの二つのバージョンがあり、「8B」は80億個のパラメータを、「70B」は700億個のパラメータを持っています。下記の図が、Metaが公開しているベンチマーク評価の結果ですが、70Bモデルに関しては、Gemini ProやClaude3よりも高い性能を持っていることが分かります。

出典: https://llama.meta.com/llama3/

Llama 3とLlama 2の比較

Llama 3は、Llama 2と比較して多くの点で改善が見られます。具体的には、モデルのトレーニングに使用されるデータセットが7倍に増加し、コード関連のデータも4倍に増加しています。

これにより、モデルはより複雑な言語タスクを効率的に処理できるようになりました。Llama 3は、特にコード生成と指示に基づくタスクの遂行能力において、前モデルを大きく上回っています。

​また、新しいトークナイザーの採用により、言語のエンコード効率が向上しており、これが全体的なパフォーマンスの向上に寄与しています。さらに、安全性を考慮した設計が施されており、不適切な応答を生成するリスクを低減するための新しいフィルタリングシステムが導入されています。

​とりあえずGroqでLlama 3を試す

現時点で「Meta AI」は日本では未公開

​本来はMetaが公開しているAIアシスタント「Meta AI」でLlama 3を活用した高速な画像生成やチャットなどを体験できるはずなのですが、この記事を書いている2024年5月1日現在、Meta AIは英語圏のみに公開されており、日本では未公開です。

GroqでLlama 3を試す

ところが、上記で紹介したGroqがLlama 3に対応しているため、GroqにログインすればLlama 3を体験できます。しかも超高速で!そして無料で!

使い方は簡単で、Groqにログインし、右上のプルダウンでモデルを選択するだけです。せっかくなので(?)70Bを選択してみましょう。

​とりあえず適当に指示をしてみたのが下記です。明示しても英語で出力されるので、右上のギアマークから、System Promptで「日本語で出力して」と予め指示しています。

​300トークン/秒程度のスループットがでています。とりあえず出力がめちゃくちゃ速いのは伝わると思います。ただ、短編小説を出力するプロンプトなのですが、同じような文章が繰り返し出力され、精度は良くないと感じました。
また、Groqのインターフェイスでは、日本語の変換を確定するときにエンターキーを押すとチャットの入力が確定されてしまうので、あまり実用的では無いです。

​Chatbot UIのブラウザ版で試す

なにかいい方法が無いかと探していたところ、Chatbot UIなるものがあり、それがGroqのAPIに対応しているということで、Chatbot UIでGroqと連携すればLlama 3を使用できることがわかりました。

Chatbot UIはChatGPTライクなインターフェイスで、様々なLLMを切り替えながら使えるというものです。

Chatbot UIはオープンソースとなっており、ローカルPCで動かすことができますが、ブラウザ版も公開されています。ローカル環境構築が面倒だったので、とりあえずブラウザ版を使ってみることにしました。

Chatbot UIで複数のLLMを使用するには、各LLMのAPIと接続する必要があり、そのためにまずはAPI keyを取得します。今回はChatGPT、Claude、Groq(Llama 3)を比較したいので、OpenAI、Anthropic、GroqのAPI Keyを取得します。また、API接続のためにはAPI Keyだけでなく、Model IDとBase URL(任意)も必要です。

OpenAIのAPI Keyを取得

OpenAIの管理画面で、「API keys」メニューから発行できます。
「Create new secret key」というボタンがあるので、それをクリックするとポップアップが開きます。必要事項を入力するとAPI Keyが発行されます。発行したキーは後で確認することができないので、このときに確実に保存しておいてください。

AnthropicのAPI Keyを取得

OpenAIとほぼ同じ方法で取得できます。Anthropicの管理画面の「API Keys」というメニューから発行できます。「Create Key」ボタンをクリックするとポップアップが開くので、キーの名前を適当に入力するとキーが発行されます。

GroqのAPI Keyを取得

GroqのAPI Key取得方法も上記とほぼ同様です。
先ほどログインしたGroqの画面下部に「GroqCloud」というリンクがあります。これをクリックすると管理画面が開きますので、「API Keys」メニューの「Create API Key」からキーを発行できます。

Chatbot UIのブラウザ版にログイン

では準備ができたので、Chatbot UIのブラウザ版にログインしましょう。

Chatbot UIのブラウザ版にアクセスすると上記のような初期画面が表示されますので、「Start Chatting」ボタンを押して次に進みます。

​性能比較のためにファイル検索機能を使用したかったので、有料プランにしました。年間契約だと月額$8、毎月更新だと月額$10です。

​支払いの設定が終わると上記のようなAPI Keyを登録する画面に遷移します。
ここで先程取得したOpenAI、Anthropic、Groqのキーを入力します。これで初期登録は完了でチャット画面が開きます。

次に使用したいモデルを登録します(さっきのAPI Key登録だけではまだ使用できませんでした)。左のキラキラマーク(?)がモデルメニューで、「New Model」ボタンをクリックして、使用したいモデルを登録します。

今回は下記を入力しました。

  • ChatGPT 4-turbo

    • Name: ChatGPT 4-turbo(自分がわかればなんでもいい)

    • Model ID: gpt-4-turbo

    • Base URL: なし

    • API Key: 先ほど取得したもの

  • Claude 3 Opus

    • Name: Claude 3 Opus(自分がわかればなんでもいい)

    • Model ID: claude-3-opus-20240229

    • Base URL: https://api.anthropic.com/v1

    • API Key: 先ほど取得したもの

  • Groq (Llama-3-70B)

    • Name: Groq (Llama-3-70B)(自分がわかればなんでもいい)

    • Model ID: llama3-70b-8192

    • Base URL: https://api.groq.com/openai/v1

    • API Key: 先ほど取得したもの


なお、Model IDは下記から参照できます。

​ここまで設定をして、GPT4とGroqは動作したのですが、Claudeで上記のようなエラーが出ており、Base URLやModel IDを変えてみても解決しなかったため、断念し、結局ローカル版を構築することにしました。。。どなたかブラウザ側でClaude 3 Opusを動作できた方いらっしゃいましたら、ぜひご連絡いただけると嬉しいです。

Chatbot UIのローカル版で試す

Chatbot UIのローカル環境を構築

​ローカル版は以下の手順で簡単に構築できました。開発者のMckay WrigleyさんのGithubレポジトリに記載のある通りに実行すれば動作しました。Macのターミナルで下記のコマンドを実行すれば構築できます。

1. リポジトリのクローン
まずはGitHubからChatbot UIのリポジトリをクローンします。

$ git clone https://github.com/mckaywrigley/chatbot-ui.git

2. 依存関係のインストール
クローンしたディレクトリに移動し、必要な依存関係をインストールします。

$ cd chatbot-ui
$ npm install

3. Dockerのインストール
Supabaseをローカルで実行するためにはDockerが必要です。Dockerの公式サイトからインストールしてください。

4. Supabase CLIのインストール
Supabase CLIをインストールするために以下のコマンドを実行します。

$ brew install supabase/tap/supabase

5. Supabaseの起動
Supabaseを起動するために以下のコマンドを実行します。

$ supabase start

6. 環境変数の設定
.env.local.exampleファイルを.env.localにコピーし、必要な値を設定します。

$ cp .env.local.example .env.local

7. Supabase関連情報確認
表示されるAPI URLなどの必要な値を.env.localファイルに入力します。

$ supabase status
supabase statusの結果
​$ vi ./.env.local
  • NEXT_PUBLIC_SUPABASE_URL: statusの”API URL”を指定

  • NEXT_PUBLIC_SUPABASE_ANON_KEY: statusの”anon key”を指定

  • SUPABASE_SERVICE_ROLE_KEY: statusの”service_role key”を指定

8. データベースの設定
Supabaseで初期設定を行うためのSQLファイルを編集します。具体的な値はsupabase statusの結果を参考に設定してください。私の場合は特に変更せずに動作しました。一応、54行目の「service_role_key」が、上記supabase status実行結果のservice_role_keyと同じ値であることを確認しておくと良いでしょう。

9. アプリケーションのローカル実行
以下のコマンドを実行し、アプリケーションをローカルで起動します。

$ npm run chat

これで、http://localhost:3000にアクセスすると、Chatbot UIのアプリケーションがブラウザで開きます。

Chatbot UI上でGroq経由のLlama 3を試す

http://localhost:3000 にアクセスすると、ブラウザ版と同様の初期設定画面が表示されるので、全く同じ方法、内容で登録していきます。

ただし、Claude 3 Opusは「404 Not Found」のエラーがでて使用できませんでした。しかし、デフォルトで指定できるClaude 3 SonnetとClaude 3 Haikuは正常動作したので、おそらくChatbot UIがOpusにまだ対応していないのではないかと思います。

ではモデルに「Groq(Llama 3)」を指定し、早速いくつかのプロンプトを入力して、Llama 3の出力を見てみましょう。

まずはちょうど今話題になっている、突如現れた謎の高性能AI「GPT2」にちなんで、答えのない質問をしてみました。

非常に微妙な回答が返ってきました。
次に出力の速さを見てみましょう。

文句なしに速いですね!APIの通信時間含めても、待つというストレスを全く感じません。

Llama 3 vs GTP 4 Turbo vs Claude 3 Sonnet 3番勝負!

では最後に、Llama 3、GTP 4 Turbo、Claude 3 Sonnetに対して3つの同じプロンプトを入力して、出力を比較してみましょう。

キーワードを説明する文章生成
プロンプトはこちら。
【Retrieval-Augmented Generation (RAG)とはなんですか?情報工学専攻の大学4年生に理解できる表現で500文字程度でまとめてください。】

出力時の比較(左からLlama 3、GTP 4 Turbo、Claude 3 Sonnet。2倍速プロンプトは右から順番に確定。2倍速。)

出力結果の比較(左からLlama 3、GTP 4 Turbo、Claude 3 Sonnet)

出力されたテキストの精度は、どれも有意な差は見られませんでした。
ただし、出力の速度はやはりGroqが圧倒的に早いです。

論理のクイズを解く
典型的な論理クイズを出してみます。プロンプトはこちら。
【ある男性3人がホテルに泊まることになった。宿泊料は1人10ドル。男性客たちは合計30ドルを受付係にわたした。その後、キャンペーン中なので宿泊料は3人で25ドルだったことに気づいた受付係は、5ドルを返そうとした。しかし「5ドルは3人で割り切れない」と考えた受付係は2ドルを自分のポケットにしまい、残りの3ドルだけ男性客たちに返した。さて、男性客たちは1人9ドルで合計27ドル支払ったことになる。そこに受付係がくすねた2ドルを足して29ドル。残りの1ドルはどこに消えたのでしょうか?回答と解説をまとめてください。】

出力時の比較(左からLlama 3、GTP 4 Turbo、Claude 3 Sonnet。2倍速プロンプトは右から順番に確定。2倍速。)

出力結果の比較(左からLlama 3、GTP 4 Turbo、Claude 3 Sonnet)

回答結果は完全にGTP 4 Turboの勝利と判断します。
GTP 4 Turboは論理的に、明確に回答の解説を記載できています。
Claude 3 Sonnetも解説できていますが、やや根拠が不明確と感じました。
Llama 3は肝心な「なぜ」を説明できていないため、不合格と判断しました。

アップロード記事要約
RAPTORというRAGの文書検索精度を向上するモデルに関する論文をアップロードし、その内容を要約させます。プロンプトはこちら。
【アップロードしたPDFファイルの内容を、情報工学専攻の大学4年生にもわかる表現で、できる限り具体的、定量的に1000文字程度の日本語で要約してください。ただし、技術的な内容も、重要な点に絞って端的にまとめ、具体的に何が革新的で、従来の技術と比較して何が優れているか明示してください。】

ファイルアップロードに結構時間がかかったのと、出力結果が長いため、スクリーンショットではなく、出力されたテキストをそのまま以下に貼り付けます。

ーーー

<Llama 3>
The provided text appears to be a collection of research papers and articles related to natural language processing, specifically focusing on language models, question answering, and text summarization. Here is a summary of the main points:

Language Models: The text discusses the development of language models, such as GPT-4, that can generate coherent and context-specific text. These models are trained on large datasets and can be fine-tuned for specific tasks.

Question Answering: The text explores various question answering models, including UnifiedQA, that can retrieve relevant information from a large corpus of text. These models are evaluated on datasets such as QuALITY, QASPER, and NarrativeQA.

Text Summarization: The text touches on the topic of text summarization, highlighting the importance of summarizing long documents and the challenges associated with it. Models such as Longformer and Hybrid Hierarchical Retrieval are mentioned as approaches to tackle this task.

Retrieval-Augmented Generation: The text discusses the concept of retrieval-augmented generation, which involves using a retrieval mechanism to augment language models with relevant information from a knowledge base.

Evaluation Metrics: The text mentions various evaluation metrics used to assess the performance of language models and question answering systems, including BLEU score, ROUGE score, and METEOR score.

Applications: The text hints at the potential applications of these technologies in areas such as information retrieval, text classification, and chatbots.

In summary, the text provides an overview of the current state of natural language processing research, highlighting advancements in language models, question answering, and text summarization.

ーーー

<GTP 4 Turbo>
PDFファイルの内容を要約すると、新しい情報検索システム「RAPTOR」に関する研究が記述されています。このシステムは、従来の検索システムよりも関連性が高く、包括的な情報を提供することが可能です。特に、RAPTORは短い記述だけでなく、物語の主要な部分全体についての詳細な説明を取得することができるため、下流のタスクでのパフォーマンスが向上します。

具体的には、RAPTORと従来のDPR(Dense Passage Retrieval)を比較した場合、RAPTORはより広範囲の文脈を考慮して回答を生成することが可能であるとされています。たとえば、シンデレラの物語において、DPRは物語の初期の部分のみを考慮に入れた回答を生成しますが、RAPTORはより全体的な視点から物語のテーマを捉え、より完全な答えを提供することができます。

この技術の革新性は、特に長い文書や複雑な情報が含まれるテキストにおいて、情報の重要な部分を効率的に抽出し、より正確な情報提供が可能になる点にあります。これにより、ユーザーが求める情報へ迅速かつ正確にアクセスできるようになります。

また、RAPTORの導入により、従来の技術と比較して、情報検索の精度と速度が大幅に向上することが期待されます。これは、特に大量のデータを扱う企業や研究機関にとって、大きな利点となるでしょう。

この研究は、情報検索の分野において重要な進歩を示しており、将来的にはさらに多くの応用が期待されます。情報工学の専攻生として、このような最先端の技術を理解し、その可能性を探ることは、非常に価値のある経験となるでしょう。

ーーー

<Claude 3 Sonnet>
このPDFの内容を要約すると、次のようになります。

革新的な長文検索・要約技術RAPTORが紹介されています。従来の検索手法に比べ、文書全体からより関連する情報を的確に取得できるため、質問応答タスクの精度が大幅に向上しました。

具体的には、次の3点が革新的でした。

文書の階層構造を考慮した効率的な検索手法を採用し、大量の長文書からも的確に関連情報を抽出できます。

取得した情報を自然に要約し、質問に直接答えられる上位ノードを生成します。

大規模言語モデルGPT-4と組み合わせることで、高い質問応答精度を実現しました。

評価実験では、従来手法に比べNarrativeQAデータセットの質問応答精度が大幅に向上しました。長文書からの情報抽出と質問応答において、RAPTORは革新的な成果を上げています。

ーーー

​「日本語で」と指定したにもかかわらず、Llama 3は英語で出力されました。。。しかし、技術的な具体性はLlama 3が一番高いように思います。Llama 3とGPT4-Turboが引き分け、Claude 3 Sonnetが次点といったところでしょうか。

まとめ

色々試していたらだいぶ長い記事になってしまったのですが、、、まとめると下記のようなことを感じました。

  • Groq速い・・・!そして安い・・・!

  • Chatbot UI便利・・・!

  • Llama 3はベンチマークではClaude 3 Sonnetよりややいいという評価でしたが、感覚としてはほぼ同等といったところでした。ただ、これがオープンソースとして公開されるのは素晴らしい・・・!

この記事は私が経営する株式会社スクーティーのコーポレートブログの下記記事を焼き直したものです。


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