top of page
スクリーンショット 2024-01-25 15.42.00.png
執筆者の写真Ryo Shimizu

Llama3.1-405Bを継之助で動かす

先日発表されたLlama3.1-405Bは非常に巨大なモデルで、仮にFP8(8ビット浮動小数点数)モデルであったとしてもFP8に対応していないAmpare世代のA100 80GBx8しか持ってない当社の社長、継之助(AIスーパーコンピュータ)では動かせそうもないと諦めていました。



ところが、捨てる神あれば拾う神あり。

vllmではA100でFP8をエミュレートする機能が備わっているので、A100x8でもLlama-3.1-405Bが動作するとのこと!!マジかよ!


と言うわけで早速やってみました。


CUDAは12.1、vllmは0.5.3post1で動作確認しています。


$ nvidia-smi                                                                                                                         [242/242]
Thu Jul 25 01:50:51 2024                                                                                                                                                         
+-----------------------------------------------------------------------------------------+                                                                                      
| NVIDIA-SMI 555.42.02              Driver Version: 555.42.02      CUDA Version: 12.5     |                                                                                      
|-----------------------------------------+------------------------+----------------------+                                                                                      
| GPU  Name                 Persistence-M | Bus-Id          Disp.A | Volatile Uncorr. ECC |                                                                                      
| Fan  Temp   Perf          Pwr:Usage/Cap |           Memory-Usage | GPU-Util  Compute M. |                                                                                      
|                                         |                        |               MIG M. |                                                                                      
|=========================================+========================+======================|                                                                                      
|   0  NVIDIA A100 80GB PCIe          Off |   00000000:17:00.0 Off |                    0 |                                                                                      
| N/A   47C    P0             76W /  300W |   73783MiB /  81920MiB |      0%      Default |                                                                                      
|                                         |                        |             Disabled |                                                                                      
+-----------------------------------------+------------------------+----------------------+                                                                                      
|   1  NVIDIA A100 80GB PCIe          Off |   00000000:2A:00.0 Off |                    0 |                                                                                      
| N/A   49C    P0             79W /  300W |   73783MiB /  81920MiB |      0%      Default |                                                                                      
|                                         |                        |             Disabled |                                                                                      
+-----------------------------------------+------------------------+----------------------+                                                                                      
|   2  NVIDIA A100 80GB PCIe          Off |   00000000:3D:00.0 Off |                    0 |                                                                                      
| N/A   47C    P0             75W /  300W |   73771MiB /  81920MiB |      0%      Default |                                                                                      
|                                         |                        |             Disabled |                                                                                      
+-----------------------------------------+------------------------+----------------------+                                                                                      
|   3  NVIDIA A100 80GB PCIe          Off |   00000000:63:00.0 Off |                    0 |                                                                                      
| N/A   45C    P0             77W /  300W |   73771MiB /  81920MiB |      0%      Default |                                                                                      
|                                         |                        |             Disabled |                                                                                      
+-----------------------------------------+------------------------+----------------------+                                                                                      
|   4  NVIDIA A100 80GB PCIe          Off |   00000000:AB:00.0 Off |                    0 |                                                                                      
| N/A   49C    P0             77W /  300W |   73771MiB /  81920MiB |      0%      Default |                                                                                      
|                                         |                        |             Disabled |                                                                                      
+-----------------------------------------+------------------------+----------------------+                                                                                      
|   5  NVIDIA A100 80GB PCIe          Off |   00000000:BD:00.0 Off |                    0 |                                                                                      
| N/A   49C    P0             80W /  300W |   73771MiB /  81920MiB |      0%      Default |                                                                                      
|                                         |                        |             Disabled |                                                                                      
+-----------------------------------------+------------------------+----------------------+                                                                                      
|   6  NVIDIA A100 80GB PCIe          Off |   00000000:CF:00.0 Off |                    0 |                                                                                      
| N/A   51C    P0             78W /  300W |   73771MiB /  81920MiB |      0%      Default |                                                                                      
|                                         |                        |             Disabled |                                                                                      
+-----------------------------------------+------------------------+----------------------+                                                                                      
|   7  NVIDIA A100 80GB PCIe          Off |   00000000:E1:00.0 Off |                    0 |                                                                                      
| N/A   54C    P0             87W /  300W |   73771MiB /  81920MiB |      0%      Default |                                                                                      
|                                         |                        |             Disabled |                                                                                      
+-----------------------------------------+------------------------+----------------------+                                                                                      
                                                                                                                                                                                 
+-----------------------------------------------------------------------------------------+                                                                                      
| Processes:                                                                              |                                                                                      
|  GPU   GI   CI        PID   Type   Process name                              GPU Memory |                                                                                      
|        ID   ID                                                               Usage      |                                                                                      
|=========================================================================================|                                                                                      
|    0   N/A  N/A   1591181      C   ...a3-2023.09-0/envs/vllm12/bin/python      73758MiB |                                                                                      
|    1   N/A  N/A   1591237      C   ...a3-2023.09-0/envs/vllm12/bin/python      73758MiB |                                                                                      
|    2   N/A  N/A   1591238      C   ...a3-2023.09-0/envs/vllm12/bin/python      73746MiB |                                                                                      
|    3   N/A  N/A   1591239      C   ...a3-2023.09-0/envs/vllm12/bin/python      73746MiB |                                                                                      
|    4   N/A  N/A   1591240      C   ...a3-2023.09-0/envs/vllm12/bin/python      73746MiB |                                                                                      
|    5   N/A  N/A   1591241      C   ...a3-2023.09-0/envs/vllm12/bin/python      73746MiB |                                                                                      
|    6   N/A  N/A   1591242      C   ...a3-2023.09-0/envs/vllm12/bin/python      73746MiB |                                                                                      
|    7   N/A  N/A   1591243      C   ...a3-2023.09-0/envs/vllm12/bin/python      73746MiB |                                                                                      
+-----------------------------------------------------------------------------------------+                                 

こんな感じで元気いっぱいに動いています。


まずはvllmのデフォルトのテストをやってみます。


curl http://localhost:8000/v1/completions \                                                                                                 
-H "Content-Type: application/json" \                                                                                                                                            
-d '{                                                                                                                                                                            
"model": "meta-llama/Meta-Llama-3.1-405B-Instruct-FP8",                                                                                                                          
"prompt": "San Francisco is a",                                                                                                                                                  
"max_tokens": 7,                                                                                                                                                                 
"temperature": 0                                                                                                                                                                 
}'                                                                                                                                                                               
{"id":"cmpl-17c65bc6ff934211bd26848815ab3cf8","object":"text_completion","created":1721873098,"model":"meta-llama/Meta-Llama-3.1-405B-Instruct-FP8","choices":[{"index":0,"text":
" top destination for foodies, with","logprobs":null,"finish_reason":"length","stop_reason":null}],"usage":{"prompt_tokens":5,"total_tokens":12,"completion_tokens":7}}(base) shi

ちゃんと受け答えできているようです。

日本語でも聞いてみます。


curl http:curl http://localhost:8000/v1/completions \                                                                                                 
-H "Content-Type: application/json" \                                                                                                                                            
-d '{                                                                                                                                                                            
"model": "meta-llama/Meta-Llama-3.1-405B-Instruct-FP8",                                                                                                                          
"prompt": "サンフランシスコは",                                                                                                                                                  
"max_tokens": 256,                                                                                                                                                               
"temperature": 0                                                                                                                                                                 
}'                                                                                                                                                                               
{"id":"cmpl-8d808169511d40118f2a9a50d66598b1","object":"text_completion","created":1721873126,"model":"meta-llama/Meta-Llama-3.1-405B-Instruct-FP8","choices":[{"index":0,"text":
"、カリフォルニア州の北部に位置する都市です。サンフランシスコは、ゴールデンゲートブリッジ、アルカトラズ島、そしてその美しいビクトリア朝の家々で有名です。サンフランシスコはまた、
多様な文化と活気ある芸術シーンでも知られています。サンフランシスコは、世界中の観光客にとって人気の目的地です。サンフランシスコはまた、多くのテクノロジー企業の本拠地であり、シリ 
コンバレーの一部です。サンフランシスコは、美しい景色、豊かな歴史、そして多様な文化で知られています。サンフランシスコは、世界中の観光客にとって人気の目的地です。サンフランシスコ 
はまた、多くのテクノロジー企業の本拠地であり、シリコンバレーの一部です。サンフランシスコは、美しい景色、豊かな歴史、そして多様な文化で知られています。サンフランシスコは、世界中 
の観光客","logprobs":null,"finish_reason":"length","stop_reason":null}],"usage":{"prompt_tokens":7,"total_tokens":263,"completion_tokens":256}}

これはすごい。

ではこの界隈で有名な「ドラえもんテスト」をやってみます。


curl http://localhost:8000/v1/completions \
-H "Content-Type: application/json" \
-d '{
"model": "meta-llama/Meta-Llama-3.1-405B-Instruct-FP8",
"prompt": "ドラえもんとはなんですか?",
"max_tokens": 256,
"temperature": 0
}'
{"id":"cmpl-9cd7a733efe9423da3eee1a480705020","object":"text_completion","created":1721873221,"model":"meta-llama/Meta-Llama-3.1-405B-Instruct-FP8","choices":[{"index":0,"text":
" (What is Doraemon?)\nDoraemon is a popular Japanese manga and anime series created by Fujiko F. Fujio. The series follows the adventures of a robotic cat named Doraemon, who t
ravels back in time from the 22nd century to help his friend Nobita Nobi, a young boy who is struggling in school and in life. Doraemon has a wide range of futuristic gadgets an
d tools that he uses to help Nobita and his friends, often getting them out of trouble and teaching them valuable lessons. The series is known for its blend of humor, adventure,
 and heartwarming moments, and has become a beloved franchise in Japan and around the world.","logprobs":null,"finish_reason":"stop","stop_reason":null}],"usage":{"prompt_tokens
":9,"total_tokens":149,"completion_tokens":140}}

返答が英語になってしまうものの、ちゃんと答えられています。

これはインストラクションモデルなので、「日本語で答えろ」と指示を出してみましょう。


curl http://localhost:8000/v1/completions \
-H "Content-Type: application/json" \
-d '{
"model": "meta-llama/Meta-Llama-3.1-405B-Instruct-FP8",
"prompt": "ドラえもんとはなんですか?日本語で答えろ",
"max_tokens": 256,
"temperature": 0
}'
{"id":"cmpl-c91ef8888ded4e31aa265773a7426b07","object":"text_completion","created":1721873276,"model":"meta-llama/Meta-Llama-3.1-405B-Instruct-FP8","choices":[{"index":0,"text":
"\n『ドラえもん』は、藤子・F・不二雄による日本の漫画作品、およびそれを原作とする一連のメディアミックス作品。1969年12月に小学館の学習雑誌で連載が開始され、1970年1月に6つの雑誌に
同時掲載された。1987年までに単行本は100冊以上発行され、1996年までに1000万部以上が販売された。2015年までに、世界中で1億部以上が販売され、最も売れた漫画の1つとなった。2013年には、
世界中で10億部以上が販売され、最も売れた漫画の1つとなった。2013年には、世界中で10億部以上が販売され、最も売れた漫画の1つとなった。2013年には、世界中で10億部以上が販売され、最も
売れた漫画の1つとなった。2013年には、世界中で10億部以上が販売され、最も売れた漫画の1つとなった。2013年には、世界中で10億部以上が販売され、最も売れた","logprobs":null,"finish_rea
son":"length","stop_reason":null}],"usage":{"prompt_tokens":15,"total_tokens":271,"completion_tokens":256}}

きちんと答えられているようです。

筆者のハンドルネームshi3zについて聞く「shi3zテスト」をやってみます。


curl http://localhost:8000/v1/completions \
-H "Content-Type: application/json" \
-d '{
"model": "meta-llama/Meta-Llama-3.1-405B-Instruct-FP8",
"prompt": "shi3zとはなんですか?日本語で答えろ",
"max_tokens": 256,
"temperature": 0
}'
{"id":"cmpl-9448b112360f47f6a5a00f35d546202d","object":"text_completion","created":1721873377,"model":"meta-llama/Meta-Llama-3.1-405B-Instruct-FP8","choices":[{"index":0,"text":
"よ\nshi3zは、主に日本のインターネットコミュニティで使用されるインターネットスラングです。shi3zは、英語の「she is」というフレーズの変形です。主に、女性について話すときに使用され
ます。例えば、「彼女は美しい」という意味で「shi3z utsukushii」というように使います。ただし、このスラングは、特定のコミュニティや状況でしか通じない可能性があります。shi3zは、主に
インターネット上の会話やSNSでのやり取りで使用され、日常会話ではあまり使用されません。shi3zは、主に若者やインターネットユーザーが使用するスラングです。shi3zは、英語の「she is」と
いうフレーズの変形です。主に、女性について話すときに使用されます。例えば、「彼女は美しい」という意味で「shi3z utsukushii」というように使います。ただし、このスラングは、特定のコ
ミュニティや状況でしか通じない可能性があり","logprobs":null,"finish_reason":"length","stop_reason":null}],"usage":{"prompt_tokens":14,"total_tokens":270,"completion_tokens":256}
}

ちょっと面白い答えになりました。

AI界隈で有名なa16zと言うアカウントについて聞いてみます。


curl http://localhost:8000/v1/completions \t:8000/v1/completions \
-H "Content-Type: application/json" \
-d '{
"model": "meta-llama/Meta-Llama-3.1-405B-Instruct-FP8",
"prompt": "a16zとはなんですか?日本語で答えろ",
"max_tokens": 256,
"temperature": 0
}'
{"id":"cmpl-d0ddf5e88bd146ac9ba5b064c6cd2f73","object":"text_completion","created":1721873440,"model":"meta-llama/Meta-Llama-3.1-405B-Instruct-FP8","choices":[{"index":0,"text":
"\na16z(アンドリーセン・ホロウィッツ)は、カリフォルニア州メンローパークに拠点を置くベンチャーキャピタル会社です。2009年にマーク・アンドリーセンとベン・ホロウィッツによって設立
されました。a16zは、テクノロジー、ヘルスケア、金融、消費者製品など、幅広い分野のスタートアップ企業に投資しています。同社は、Airbnb、Facebook、Instagram、Lyft、Pinterest、Slack、
Twitterなど、多くの有名なテクノロジー企業に投資しています。a16zは、スタートアップ企業に資金提供するだけでなく、経営陣へのアドバイス、業界ネットワークへのアクセス、ビジネス拡大の
サポートなど、幅広い支援も提供しています。同社は、テクノロジー業界における有力な投資家として知られています。a16zの名前は、設立者の名前の頭文字(アンドリーセンとホロウィッツ","lo
gprobs":null,"finish_reason":"length","stop_reason":null}],"usage":{"prompt_tokens":14,"total_tokens":270,"completion_tokens":256}}

さすが有名投資家は日本語でも間違えられません。


と言うわけで、405Bモデルがうちの社長でも動きました。

オープンモデルでここまでできてしまうのは、まさに夢が広がりますね。




閲覧数:1,709回
bottom of page