

ここでは、最近話題となっているLLM(大規模言語モデル)/生成AIを実際にGPU搭載のモデルで動作させ、その結果をご紹介します。
テストは著名な下記で実施しました。
・大規模言語モデル
Meta Llama3.1-8B、70B
ELYZA.inc Llama-3-ELYZA-JP-8B
Alibaba Cloud Qwen2.5-7B
・画像生成
Flux.1 AI, Inc. FLUX.1
検証環境の紹介
はじめに
・DEEP∞(ディープインフィニティ)LLM/生成AI向けモデルのサポートはハードウェア部分のみとなります。
・動作テストは特定環境下における参考情報であり、特定バージョンでの動作や性能を保証するものではございません。
・環境構築やコード生成のサポートについては行っておりません。
・各モデル固有の機能については、Ubuntu上での全動作を保証するものではございません。
DEEP∞(ディープインフィニティ)LLM/生成AI向けモデルのテストに当たっては、下記構成を使用しました。
DEEP-TXAB-XW24-NQDX | |
---|---|
OS | Ubuntu 22.04 LTS |
CPU | インテル Xeon w3-2423 プロセッサー |
メモリ | 64GB(16GB×4) DDR5 ECC Registered DIMM |
GPU | NVIDIA RTX 6000 Ada 48GB GDDR6 ×2 |
ストレージ | 1TB NVMe対応 M.2 SSD |
テストに使用したモデルの構成
Ubuntu22.04上でnvidia-smiを実行。
※テスト環境ではDEEPモデルとは異なり、NGC環境は含まれておらず、ドライバ及びパッケージは自由に更新可能な状態となっています。
Ubuntu22.04上でnvidia-smiを実行
テスト環境の準備を行う
テスト環境の構築を始める前に基本的なアップデートを行い、一度再起動します。
$ sudo apt update $ sudo apt upgrade $ sudo reboot
再起動後、Windowsライクなファイル作成と編集が行えるよう、下記の追加を行っておきます。
$ touch ~/テンプレート/空のドキュメント
※必須の作業ではありませんが、新規ファイルが容易に作成できるので、初めての際には追加をおすすめします。
1.Python3関連のインストール
$ sudo apt install python3-pip $ sudo apt install python3.10-venv
※venvは各モデルごとに環境を分けるために利用します。
一部のモデルは依存関係があり、片方の環境を構築すると別の環境が動作しない場合があるため、ここではモデル毎に環境を分けて実験しています。
2.Hugging Faceへのアカウント作成とモデルのアクセス申請、アクセストークンの保存
Hugging Faceのページを開き、右上の「Sign UP」からアカウント作成を行います。
ログイン後、ページ右上のアイコンからメニューを開き、「Access Tokens」を選択し、「Create new Access Token」からアクセストークンの作成を行います。
今回はテストが目的のため、”Token type”は”Read”を選択しています。
“Save your Access Token”の画面が表示されたらトークン情報を控えておきます。
※画面を閉じてしまうと再確認の方法がなく、トークンの再発行となりますので注意してください。
3.Hugging Faceのトークンのキャッシュへの保存
$ pip3 install huggingface-hub $ python3 >>> from huggingface_hub import login >>> login()
“Enter your token (input will not be visible): “と表示されたら、2. で取得したトークンを貼り付けます。
※非表示のためコピー&ペーストを推奨します。
“Add token as git credential? (Y/n)”の回答はnとします。
※「n」指定ですので間違えないようにご注意ください。
ここまでを終えたら「Ctrl + Dキー」で一度終了します。
Hugging Faceのトークンのキャッシュへの保存
各モデルのテストを行う
ここからは各モデルのテストを行います。
基本的な流れとして、
①venvで個別の環境を作成
②実行ファイルの作成、内容の修正
③実行し動作の確認
となります。
※一部モデルはHuggingfaceのトークンの登録や、別途申請が必要となります。
Alibaba Cloud Qwen2.5-7Bのテスト
1.個別環境の作成
今回は「test」という環境を作成し、Qwenのテスト環境を構築します。
$ python3 -m venv test $ source test/bin/activate ※(test)~の状態になったらPythonの仮想環境内になります。 $ pip3 install transformers torch bitsandbytes accelerate
個別環境の作成
Hugging FaceのQwen2.5-7B-Instructのページを開き、”Quickstart”の内容をコピーしたファイルを先程のtestディレクトリの中に作成します。
https://huggingface.co/Qwen/Qwen2.5-7B-Instruct
-
【ポイント】
日ごろWindowsを利用している方は右クリック→ファイルの新規作成となりますが、素の状態でのUbuntuではこの操作ができないため、最初に空のドキュメントが作成できるよう、手順を追加していました。
作成したファイルの名前はわかりやすい名前で.pyファイルに書き換えておきます。
今回は「Qwen25_7B.py」としました。
2.Qwenの実行
promptの内容は以下となりました。
“Please tell us about five World Natural Heritage sites in Japan that are popular among travelers.”
英語質問しているため、回答も英語です。
promptだけ変えているので、教科書のような回答ですね。
Qwenは日本語の質問も受け付けてくれますが、他のモデルも試してみたいのでここでは一旦終了します。
Llama-3-ELYZA-JP-8Bのテスト
もう少し日本人に分かりやすく答えてほしい、ということで今度は「ELYZA」を利用してみます。
venvでテスト環境を構築したら、Hugging FaceのLlama-3-ELYZA-JP-8Bのページを開き、”Usage”の内容をコピーし、実行ファイルを作成します。
textの内容は以下
“旅行者に人気の日本の世界自然遺産を5箇所教えて下さい。”
真っ先に富士山を紹介してくれました。人気の場所をどうリスト化して答えるか、の違いなのかもしれません。
Llama-3.1-8B-Instructのテスト
ELYZAも試したのであれば、Llama-3.1も、となりますが掲載順序が前後した理由があります。
Hugging Faceにて公開されているモデルのうち、一部のモデルは利用に際して申請が必要となります。モデルの実行に失敗する場合にはHugging Face上から利用申請を行い、承認を得る必要があります。
※事務的な手続きであるため、今回のようなテストケースで却下されることはありませんでした。
流石に標準のままでは回答が難解でしたので、今回は設定も変えています。
設定は以下
“You are a history expert chatbot”
質問内容は以下
“What are three World Heritage Sites in Japan that are popular with tourists?”
答えてくれてはいます。回答が読みやすいかどうかは別ですが。
精度が高いことと、読み手に分かりやすく伝える、というのは別の問題のようで、モデルによる差異に感心するばかりです。
Llama-3.1-70B-Instructのテスト
合計96GBのVRAMがあるのであれば、高精度なモデルも実行できるのではないか、ということで「Llama-3.1-70B-Instruct」も試してみました。
設定は以下
“You are a history expert chatbot”
質問内容は以下
“What are the top 5 World Heritage Sites in Japan that are popular with tourists?”
ダウンロードが始まったものの、一向に終わる気配がありません。
Llama-3.1-70B-Instructのテストを開始
この日は残念ながら時間が足らず、途中で断念しました。
翌日再度挑戦してみましたが、予想の更に倍のデータ量がありました。
回線にもよりますが、ダウンロードに2時間弱を要しました。
ダウンロードの様子
いざ推論が開始されたものの、lama3.1-70Bモデルは推論で約168GBのVRAMが必要なため、2枚のGPUでVRAMを90%以上消費している状態になりました。
質問後の出力に15分以上を要しました。70Bモデルの実行はRTX 6000Ada ×4構成を推奨します。
FLUX.1のテスト
次にFLUX.1で画像生成のテストを行いました。
環境にはStable Diffusion WebUI Forgeを使用しています。
-
GUIでの作業
-
UIではFluxを選択
Checkpointではflux1-dev.safetensorsを選択
VAE/Textencorderではt5xxl_fp16.safetensors、ae.safetensors、clip_l.safetensorsの3つを選択
Promptに所望の絵の内容を英語で書く
Generateボタンを押下
必要に応じてネガティププロンプト、解像度、step数などを変更
プロンプト1:Snow-covered mountains, starry skies, lighted towns, lakes
プロンプト2:Natural, World Heritage, Japan, winter
画像生成の際、プロンプトについても調べてみましたが、最近は有料で高精度なプロンプトを出力するサービスもあるようで、環境構築よりもその後のプロンプトの内容の方がより重要であることを確認しました。
上記の画像は約12秒弱で生成されており、GPUパワーを生かすのであれば、より複雑なプロンプトを入力することで、より高精細な画像の出力が可能であるものと考えられます。
今回は動作の確認が目的となりますので、より複雑な画像の生成は行いません。
検証を終えて
今回はDEEPシリーズの中からミドルタワー最高峰のRTX 6000ada 2枚搭載の環境を用いて、LLM/生成AIを実際に動作させてみました。
GPUのメモリ量が重要となっており、小規模の内容であればGeForceなどのコンシューマ製品も動作しますが、GPUのメモリに24GB以上を求める場合にはNVIDIA RTX シリーズのみ構築可能となります。
※2枚のGPUのメモリが90%以上消費されており、96GBでも足りないことを実感しました。
NVIDIA RTX シリーズは高額な製品ですが、電力効率と物理サイズに優れており、1台の計算機に2枚以上搭載する場合には唯一の製品となっています。
※GeForce 4090などは3.5スロットサイズ、消費電力も450W以上となることから、一般的な製品では物理的、電力的に2枚の搭載が極めて困難となっております。
合計VRAM 96GBの環境であれば6000 ada 2枚搭載モデルが、合計VRAM192GBの環境であれば6000 ada 4枚搭載モデルが推奨となります。

[ネクスマグ] 編集部
パソコンでできるこんなことやあんなこと、便利な使い方など、様々なパソコン活用方法が「わかる!」「みつかる!」記事を書いています。