ChatStream🄬でLlama-3-Elyza-JP-8B を動かす

ChatStream🄬でLlama-3-Elyza-JP-8B を動かす

こんにちは、本日は Llama-3-Elyza-JP-8B を使ってみました。

昨日 2024年6月26日に発表(https://prtimes.jp/main/html/rd/p/000000046.000047565.html)された Llama-3-Elyza-JP-8B は 70B 版では「GPT-4」を上回る性能の日本語LLMといわれています。

今回、当社でも Playground 環境に Llama-3-Elyza-JP-8B を搭載して試してみましたのでご紹介します。

70B(700億パラメータ)版は GPT-4 を上回るとのことですので、8B(80億パラメータ)版はGPT-3.5 と比較してみることにいたしました。

(性能比較は https://note.com/elyza/n/n360b6084fdbd の記事に詳しく書いてあります。)

AWQ量子化版を使用してみる

今回は、A4000 というスモールGPUで推論サーバーを構築するため、AWQ により 4bit 量子化バージョンの https://huggingface.co/elyza/Llama-3-ELYZA-JP-8B-AWQ を使用いたしました。

もとが 8B(80億) パラメータ相当ですので、 4bit 量子化すると、モデルサイズは 2B(20億)パラメータ相当となります。

AWQ量子化版は、 推論エンジンとして vLLM での動作が想定されていますので、今回は、 ChatStream の推論エンジンとして vLLM 0.4.2 を選択して推論環境を構築いたしました。

ChatStream.net (playground)デプロイする

ChatStream SDK を使って Llama-3-Elyza-JP-8B 用の A4000 GPU のサーバーノードを1つ作りました。

作業時間は15分程度です。

このサーバーノードを Playground である ChatStream.net のフロントサーバーに登録すれば出来上がりです。

疎通試験も含めてトータル30分程度で使えるようになりました。

このように、激早で構築することができます。

LLM負荷ツールで計測したところ同時20リクエスト/sまではパフォーマンス低下ほぼ無い安定したスループットを達成しています。

おそらく60リクエスト/s 程度までは問題ないレベルだと思われます。

それを超えるリクエストが想定される場合は、 ChatStream のモデル並列化機能を使って簡単に分散させることも可能です。

体験デモ

「Llama-3-Elyza-JP-8B」 vs 「GPT-3.5 」

以下URLで、実際に Llama-3-Elyza-JP-8B を体験することができます。

ChatStreamのマルチタスク機能を使って比較用に GPT-3.5 も表示しています。

(マルチタスク機能と入力Syncを使うことで、複数のLLMに同時に質問を投げかけることができます)

https://chatstream.net/?ws_name=chat_app&mult=1&ontp=1&isync=1&model_id=llama_3_elyza_jp_8b&model_id=openai_gpt_3_5_175b

「Llama-3-Elyza-JP-8B」 vs 「RakutenAI-7B-chat」 vs 「GPT-3.5」で三つ巴で比較

さらにクエリにmodel_id を追加することで、 RakutenAI-7B-chat も入れて三つ巴で比較するには以下のようにします。

https://chatstream.net/?ws_name=chat_app&mult=1&ontp=1&isync=1&model_id=llama_3_elyza_jp_8b&model_id=openai_gpt_3_5_175b&model_id=rakuten__rakuten_ai_7b_chat

構成

今回作った Llama-3-Elyza-JP-8B 用の構成は以下のようになります。

ChatStream SDK は、サーバー側はDocker 化されているため、
コンテナを動作させるGPUサーバーさえ準備できれば、モデルの準備から公開までトータル30分程度です。モデル並列などスケールアウトも数分~数十分程度で可能ですので、最新のモデルをすぐにお客様に届けることが可能です。

動画

一連の内容を動画にまとめました。

まとめ

最後までお読みいただき、誠にありがとうございます。私たちQualitegは、LLMをはじめとするAI技術、開発キット・SDKの提供、LLMサービス構築、AI新規事業の企画方法に関する研修およびコンサルティングを提供しております。

今回ご紹介したChatStream🄬 SDK を使うと、最新のオープンソースLLMや、最新の商用LLMをつかったチャットボットをはじめとした本格的商用LLMサービスを超短納期で構築することが可能です。

もしご興味をお持ちいただけた場合、また具体的なご要望がございましたら、どうぞお気軽にこちらのお問い合わせフォームまでご連絡くださいませ。

LLMスポットコンサルご好評です

また、LLMサービス開発、市場環境、GPUテクノロジーなどビジネス面・技術面について1時間からカジュアルに利用できるスポットコンサルも実施しておりますのでご活用くださいませ。

(繁忙期、ご相談内容によっては、お受けできない場合がございますので、あらかじめご了承ください)

Read more

ゼロから作るコーディングエージェント【第3回】「止まらなかった」は「進んだ」ではない。空転を数え、思考は切らずに上限だけ置く

ゼロから作るコーディングエージェント【第3回】「止まらなかった」は「進んだ」ではない。空転を数え、思考は切らずに上限だけ置く

300ターン走ってAPIが0本。「モデルの限界」と結論を書いた翌日、記録を読み直すと234ターンがツールを1度も呼んでいませんでした。空転率という指標、1つ塞ぐと次の形に移る空転、思考をオフにすると95点が71点に落ちて時間も縮まなかった話、出力枠を広げたら反対側を数える話を書きます。

By Qualiteg プロダクト開発部
Ubuntuの自動更新でカーネルだけ上がり、再起動したらGPUが消えた。NVIDIAモジュールが置き去りになる原因と3つの対策

Ubuntuの自動更新でカーネルだけ上がり、再起動したらGPUが消えた。NVIDIAモジュールが置き去りになる原因と3つの対策

Ubuntu 24.04のGPUサーバーを再起動したらnvidia-smiが動かない。原因はunattended-upgradesがカーネルだけを更新し、NVIDIAモジュールが依存関係の都合で見送られていたこと。ログで原因を突き止め、1コマンドで復旧し、apt-mark holdを含む3つの再発防止策を比べて採用した記録。

By Qualiteg プロダクト開発部
ゼロから作るコーディングエージェント【第2回】完了は「作った」ではなく「動いた」で決める。完了の門と、押し戻しに書くこと

ゼロから作るコーディングエージェント【第2回】完了は「作った」ではなく「動いた」で決める。完了の門と、押し戻しに書くこと

モデルの「完了しました」は5つの形ですり抜けました。構文検査だけ、テストは通るが動かない、待ち受けは立つが最初の要求で落ちる、起動するが仕様のAPIが無い、assertの無いテスト。完了の門を3段で閉じる設計と、押し戻しに「落ちた行と調べ方」を書いて「答え」を書かない理由を、数字つきで書きます。

By Qualiteg プロダクト開発部