一般PC上で商用利用も可能な動き文章生成AI「Cerebras-GPT」を動かしてみた
いよいよ64GBメモリーが、フル稼働します。
実はメモリーを増設した理由は、文章生成AIを動かしたかったから、なのです。
ChatGPT登場以来、この手の生成系AIが注目されつつありますが、ほぼすべて外部クラウド上にあるものばかりで、いわゆるオンプレミス環境で動かせるものがありません。
これって、結構多くの企業・団体に警戒されてます。クラウド上に間違って機密情報を打ち込んだら、それを利用されてしまうのではないか?と考えるも当然です。
ちょっと違いますが、実際にGithubあたりでプログラムコードを入れると年収診断をしてくれるというので、とある銀行にあるシステムのソースコードを放り込まれてしまった、という事件がありました。あれと同じことをやられてはたまらない、と考えるのも無理はありません。
もっとも、ChatGPTには他に、正しい文章を返してくれるとは限らない、AIに依存して考える力が損なわれる……など、いくつも課題はあるのですが。
と、そんなわけでして、オンプレ環境下で動かせる文章生成AIがあれば、その懸念の一つは消せるんじゃないかと思い、ちょっと探ってました。
で、行きついたのがこの「Cerebras-GPT」です。
名前こそ”GPT”とついてますが、一応関連性はない模様……のはず。
というのも、このcerebras-GPTはオープンソースでモデルが航海された、商用利用も可能なApache 2.0ライセンスなAIだからです。
ちなみにモデルは7種類あって、111Mから13Bまであります。
これはパラメータサイズを現しているようで、Mは百万、Bは十億という意味なので、つまりは1.11億~130億パラメータのモデル、ということになります。
参考までに、GPT-3は1750億、GPT-4は百兆と言われているので、桁が随分と違います。
それはともかく、早速こいつを動かしてみることにしました。
参考にしたサイトは、以下。
SageMakerノートブックでオープンソースの大規模言語モデルCerebras-GPTを試してみた | DevelopersIO
なお、このAIはかなりメモリーを食います。最大モデルの13Bを動かすには、最低でも64GBが必要。
また、動作には2つのライセンス、pytorchとtransformersを予め導入しておく必要があります。
(ちなみにうちでは、Windows版Python 3.10上でpytorch 1.12.1で動かしてます)
それらが導入済みという前提で、話を進めます。
まずは上のサイトを参考に、以下のようなコードを「cerebrasgpt_6.7B.py」という名前で保存します。
いきなり13Bではなく、6.7Bから動かしました。なお、メモリーサイズのしょぼいGPUしかついてないため、CPUで実行するよう「device=torch.device("cpu")」としてあります。ここを"gpu0"と変えるとGPUが使えるみたいですが、結構なGPUメモリーがいるようなので、うちでは設定不可能です。
4、5行目の「Cerebras-GPT-6.7B」の6.7Bの部分を変えると、他のモデルも読み出せるというものです。
(111M、256M、590M、1.3B、2.7B、6.7B、13B が入ります)
そして7行目の「text = 」の後ろに、いわゆるプロンプトを入れるようになってます。
日本語も受け付けるみたいですが、あまり反応が良くないらしいので、とりあえず「AIの有効な活用法は?」を英語で尋ねます。
このコードのあるフォルダに、予め「cache」という名前のフォルダを作っておきます。ここにモデルがダウンロードされます。
では、動かしましょう。
Windows PowerShell上でこのコードを入れたフォルダに移動した後、
> python cerebrasgpt_6.7B.py
と打ち込むと実行。
初回実行時のみ、モデルのダウンロードが始まります。
6.7Bだと、モデルのサイズは26GBほどあります。結構時間かかりますね。
不安になるほど、メモリーがゴリゴリと消費されていきます。6.7Bで58GB!?
が、しばらくするとMAX-Q(最大動圧点)を超えたのか、一気に下がります。
が、この辺からCPUの負荷が上がります。だいたい70~80%ほど。
しばらくすると、返答が返ってきました。返ってきた文は、以下。
(改行なしの読みにくい文章が返ってくるので、適当に改行してあります)
AI is a powerful tool that can be applied to a wide range of problems.
It can help to improve the quality of life for people, and it can also be a great tool for businesses.
The key to using AI effectively is to understand the problem you are trying to solve, the data you have, how you want to use the AI, what the limitations are, etc.
Then you can decide how to apply AI to your problem. For example, if you wanted to predict the weather, you would need to know the location of the sensors, which would require a lot of data.
If you were trying solve a problem like fraud detection, it would be better to train the model on a large amount of historical data, rather than on the current data from the sensor.
The key is that you need a good understanding of your data and how it is structured.
(Google翻訳)
AI は、さまざまな問題に適用できる強力なツールです。人々の生活の質を向上させるのに役立ち、ビジネスにとっても優れたツールとなります。
AI を効果的に使用するための鍵は、解決しようとしている問題、所有しているデータ、AI をどのように使用したいか、どのような制限があるかなどを理解することです。
その後、問題に AI を適用する方法を決定できます。たとえば、天気を予測したい場合は、センサーの位置を知る必要があり、これには大量のデータが必要になります。
不正検出などの問題を解決しようとしている場合は、センサーからの現在のデータではなく、大量の履歴データでモデルをトレーニングすることをお勧めします。
重要なのは、データとその構造をよく理解する必要があるということです
うん、まあまあ賢いんじゃないですか?
なお、日本語で尋ねたら「英語版は有償になります」みたいな支離滅裂な回答が返ってきました。意味わかんない。。。
てことで、いよいよ最高峰モデルである13Bにチャレンジです。
上のコードの「6.7B」のところを「13B」に変えるだけなんですが、初回実行時は、
なんと、2つのモデルをダウンロードし始めました。1つ目が29GB、2つ目が21GB、約50GB。
これを落とすだけで1時間は待たされました。
で、ようやくダウンロードが終わったかと思えば、今度は「Loading checkpoint……」などといいつつ、さっきは見なかったインジケータを表示されます。ここでおよそ8分、待たされます。
この時がどうやらこのモデルの最大メモリー使用量のようで、マウスカーソルすらまともに動きません。
64GBどころか、スワップして78.9GBまで達してます。
そんな状態が8分ほど続くんですが、それ以降は60GB以下に落ちます。が、今度はCPUパワーが8割ほどに上昇。
そして、ダウンロードが完了してから、およそ14分後。
ようやく、回答が表示されます。
AI is a powerful tool that can be applied to many different industries.
It can help businesses to improve their efficiency and productivity.
The most common use of AI is in the field of data analytics. Data analytics is the process of extracting information from data.
This information can then be analyzed to help companies make better decisions.
AI can also be useful in other industries, such as healthcare, finance, and retail.
For example, AI could be helpful in helping retail stores to better understand their customers.
In healthcare AI may help doctors to diagnose patients more accurately.
(Google翻訳)
AI は、さまざまな業界に適用できる強力なツールです。企業が効率と生産性を向上させるのに役立ちます。
AI の最も一般的な用途は、データ分析の分野です。データ分析は、データから情報を抽出するプロセスです。
この情報を分析して、企業がより適切な意思決定を行うのに役立てることができます。
AI は、ヘルスケア、金融、小売などの他の業界でも役立つ可能性があります。
たとえば、AI は、小売店が顧客をよりよく理解するのに役立つ可能性があります。
ヘルスケアでは、AI は医師が患者をより正確に診断するのに役立つ可能性があります。
先ほどと同じ質問ですが、どうですかねぇ……確かに6.7Bよりは人間らしい文章になった気もしますけど。
ちなみに、13Bに日本語で尋ねたら、こう返ってきました。
AIの有効な活用方法は?
・自分の記憶を書き換えること
・投稿する人のみに追加すれば良い
- 友達のコメントを貼って欲しい人を選ぶ
14分待ってこれです。もぅ、意味わかんない……大あんまき食べよぅ。
つまり結論としては、日本語では使えないってことですね。
とまあ、使えるんだか使えないんだか、よく分からない生成系AIということが分かりました。
いろいろと試したんですが、こいつにあまり複雑な質問をすると、暴走します。
(硬直化した組織を活性化する方法を3つ教えてください……とか)
一方で、モデルサイズとしては小さい2.7Bに、以下のような簡単な質問をしてみたんですが、
What is the capital of Sri Lanka? (スリランカの首都は?)
Sri Lanka is a country in Southern Asia. It is located in the southern part of the Indian subcontinent.
Sri Lankan people are known as Sinhalese. The country is bordered by India to the north, Pakistan to its east, and the Bay of Bengal to west.
The capital city of this country Sri Jayawardenepura is situated in Northern Sri lanka.
This city is known for its historical and cultural significance.
There are many historical monuments and monuments in SriJayawardenepura.
These monuments are the most important monuments of Northern and Southern SriLanka and are also the best tourist attractions of Southern and Northern Lanka.
スリランカは南アジアの国です。 インド亜大陸の南部に位置しています。
スリランカ人はシンハラ人として知られています。 北はインド、東はパキスタン、西はベンガル湾に面しています。
この国の首都スリ ジャヤワル ダナプラは、スリランカ北部に位置しています。
この都市は、その歴史的および文化的重要性で知られています。
スリジャヤワル ダナプラには多くの歴史的建造物やモニュメントがあります。
これらのモニュメントは、スリランカ北部および南部で最も重要なモニュメントであり、スリランカ南部および北部の最高の観光名所でもあります。
長い首都名で知られるスリランカの首都スリジャヤワルダナプラコッテですが、それ以上に長い回答文が返ってきました。こいつ、やたらと饒舌です。
とまあ、商用利用可能な文章生成AIを試してみたわけですが。
使い方次第ですかねぇ……いずれにせよ、英語は必須です。
こいつがファインチューニングなどでカスタマイズできるようになれば、すごく化けるかもしれません。
ところで、実はこちらを試そうと思ってました。
ChatGPTに匹敵する性能の日本語対応チャットAI「Vicuna-13B」のデータが公開され一般家庭のPC上で動作可能に - GIGAZINE
「Vicuna-13B」という文章生成AIです。最近、モデルが公開されたとのことで、上の記事で早速使っております。
こちらは同じ130億パラメータで、GPT-4の90%もの性能を叩き出すという結構なモデルらしく、かなり期待できます。しかも日本語にも対応。
が、これを使うにはLLaMaというMeta社が作成した生成AIモデルをダウンロードする必要があり、その申請が通るのに数日かかるみたいで、まだ申請が終わってません。
それ以上の問題は、このVicunaという言語モデルは「商用利用が不可能」という点です。元のLLaMaモデルが非商用利用のライセンスであるためにそうなっているんですが、これでは会社での利用はできません。うーん、残念。
とはいえ、せっかくモデルの申請を出しているので、動かせるようになり次第、試したいとは思ってます。それはまた、いずれ。
« 64GBメモリー(32GB×2)にしてみた等 | トップページ | 無料で商用利用可能でわりと賢い?生成系AI「Dolly 2.0」を試してみた »
「数値解析系」カテゴリの記事
- Tanuki-8Bの4ビット量子化ggufモデルでRAGをやってみました(2024.09.14)
- 純日本産なローカルLLM「Tanuki-8B」を試してみた(2024.09.02)
- 東京のセールスフォースに行ってきました(2024.07.24)
- ローカルLLM「Llama-3-ELYZA-JP-8B」にいろいろ聞いてみた(2024.07.01)
- ElyzaのLlama3ベースの言語モデル「Llama-3-ELYZA-JP-8B」のRAGが予想以上に賢かった件(2024.06.27)
« 64GBメモリー(32GB×2)にしてみた等 | トップページ | 無料で商用利用可能でわりと賢い?生成系AI「Dolly 2.0」を試してみた »
コメント