見出し画像

AI初心者が日本語 LLM "rinna" 自力稼働させてみた(環境構築〜テスト稼働)

最近、AIが流行っていますが、そんな中スマホに面白そうな通知が…
なんと日本語使用可能なLLM(大規模言語モデル)が商用利用も可能で、オープンソースで公開されたそうです。
ChatGPTを使うだけじゃなく、自分でLLMを起動させてみるのも面白そうだなと思い、使ってみることにしました。
というわけで、今回は日本語と英語が使用可能なrinnaというAIを使ってみます。
なお、タイトルにもあるとおり、今回が初めての LLMの使用となります。分野違いでstable diffusionなら扱ったことがありますが、それでもほぼ初心者同然ですので事前知識なしで一緒に使用していけるかと思います。
なお、Pythonの知識は別途必要になります。ご承知ください

次回の記事はこちら

動画はこちら

別のLLM "ELYZA"使ってみたはこちら
※こちらのほうが高性能


環境の構築

まずは環境を構築します。
単純にインストーラーダブルクリックで終わるわけではないので、難しいかとは思ったのですが、Pythonの機械学習ライブラリに読み込ませるだけのようだったので思った以上に簡単に使用できました。

Pythonライブラリのインストール

前提として配布ページで書かれているサンプルを使用しますので、Pythonを使って動かします
さすがにPythonのインストールはいろんなところで紹介していますし、こういう記事を見る人はきっとインストールしていると思うのでスキップします。
というわけで、Pythonはインストール済みということにして、まずは下記の機械学習に関するライブラリをインストールしてください。
ちなみに筆者のバージョンを3.8です

pip install torch torch vision
pip install transformers
pip install sentencepiece

ちなみに私もこのライブラリは初めてさわるので、具体的に何のライブラリかはよく分かっていません。とりあえず必要だから入れましょう。軽く調べたところ、 AI に関連するもののようです。

追記
GPUに対応させるにはtorchは以下のコマンドである必要があります
最新版のコマンドを生成したい場合は以下の公式サイトで環境を選ぶとコマンドが作れます
https://pytorch.org/get-started/locally/

pip3 install torch torchvision torchaudio --index-url https://download.pytorch.org/whl/cu118

モデルのダウンロード

以下のrinna公式のニュースの中にあるリンクから言語モデルへのダウンロードページに飛ぶことができます。
今回使用するのは対話言語モデル(末尾がsftのやつ)にします

AIのモデルを公開しているサイトに飛ばされるので、Filesから、表示される全てのファイルをダウンロードボタンをクリックしてダウンロードしてください。

全てのファイルをダウンロードが終わったら新規フォルダを作ってその中にすべて入れてください。

中身は以下のようになればOKです。
※念のため全てダウンロードしましたが、もしかしたらいらないファイルもあるかもしれません。

実際に動かしてみる

環境構築が終了したところで、実際に動かしてみます。

Pythonソースコード

サンプルコードはリンク先のサイトを下の方を見ていくと載っていますので、まずはそちらをコピペして使ってみます。
以下のhow to use the Modelの部分ですね。

実際に使ったコードは以下になります。
ほぼいじってないソースコードをそのまま載せるのはどうなのかと思いましたので、画像にしておきますので、公式の方から文字を引っ張ってくるようにしてください。

まずインポート文が以下になります。
最初のライブラリをインストールできていれば、これらがインポート可能です。

中身は以下のようになります。サンプルコードのコードの部分だけではなく、その前に紹介されているプロンプトの部分も必要なので、先にそれを記述してその下にサンプルコードをくっつけます。
変更が必要なところはモデルの部分です。
モデルをダウンロードした時に一つのフォルダにまとめて入れたと思いますが、ここのパスではそのフォルダを指定します。

稼働する

さて、準備ができましたので、とりあえずサクッと起動しましょう。
プロンプト上に出力されますので、ダブルクリックではなくコマンドプロンプトから起動します。

約1分ほどで回答が出てきました。
今回入力したプロンプトはサンプルの以下になります。

そして、出力された回答が以下になります。
きちんと日本語で問題なく出てきていますね。

"VRとはVirtual Realityの略であり、コンピューターに接続されたヘッドセットを通じて仮想現実空間を体験することができるデバイ スです。ヘッドセットには、ユーザーにコンテンツを表示するモニター、ヘッドフォン、ヘッドセットとコンピューターとの通信を提供する無線接続装置が含まれます。VRコンテンツは、コンピューターに入力した画像、映像、テキストなどの情報のデジタル処理により作成されます。</s>"

パフォーマンスについて

さて、今回AIを走らせたパソコンのスペックについて書いておこうと思います。時期としては消費税が8%だった時代に作ったものになります。
重要な話だと思うんですが、こういう使ってみた系を調べてみても、パフォーマンスについて書いてないことが多いんですよね。単純に動いた動かないだけではなく、実行時間など具体的な数値が気になりますよね。というわけで私は書きます

  • CPU Ryzen 5 3600

  • メモリ DDR4 2666MHz 48GB(8Gx2 + 16G x 2)

  • GPU RTX2060 6GB(無効)

稼働中のメモリ使用量推移は以下の感じ
最も使用するタイミングで30GBを超えたことがありましたので、平時が大体10GB未満だったことから大体20GBのメモリが必要そうですね。
まさかゲームサーバーのために積んだメモリがこんなところで役に立つとは…

CPU使用率については計算中で大体60%というところ
単純に性能がこれで十分なのか、それとも60%以上の性能を引き出せないのか、そこら辺はよく分かりません。

何回か流してみた

実は上記の負荷を確認するために、何回か同じスクリプトを流しているのですが、流したタイミングによって処理時間と回答が変化することがわかりました。
※後で確認ところ、私のパソコンの場合モデルの読み込みだけで約20秒ほどかかっていたみたいです。

  • 処理時間約30秒
    VRはVirtual Realityの略語です。ヘッドセットを着用してVRコンテンツを視聴することができます。</s>

  • 処理時間約1分
    VRとはVirtual Realityの略であり、コンピューターに接続されたヘッドセットを通じて仮想現実空間を体験することができるデバイ スです。ヘッドセットには、ユーザーにコンテンツを表示するモニター、ヘッドフォン、ヘッドセットとコンピューターとの通信を提供する無線接続装置が含まれます。VRコンテンツは、コンピューターに入力した画像、映像、テキストなどの情報のデジタル処理により作成されます。</s>

  • 処理時間約1分半
    Virtual reality is a popular entertainment technology that lets people experience reality through computer graphics. You can watch virtual reality videos or play virtual reality games, and the experience can be very immersive. VR technology can also be used in other fields like architecture or education, and it is growing rapidly. Is VR something you would like to try?</s>

  • 処理時間…長くて測ってない(多分5分以上は処理してたと思う)
    Virtual Reality (VR) is a new technology that combines video games with computer vision technology. The video games are played in a virtual environment, and the computer vision technology can then use this video game environment to predict the movements of objects in the real world. VR has several advantages over traditional video games in terms of immersion, and also allows players to interact with their environment more easily and intuitively. The primary purpose of VR is for entertainment, and many developers are also exploring the possibility of incorporating VR into educational applications. If you are interested in VR applications in education, I can offer some suggestions for you. I recommend looking into using VR applications such as VR for Learning, VR Virtual Anatomy, or VR for Kids. If you are interested in learning about VR applications in education, I can also recommend the following resources to help you learn more about VR: VR for Learning: A liquefied gas virtual reality application for learning Japanese and learning other subjects, Virtual Anatomy: An immersive virtual anatomy application with 3D visualization and interactive anatomy display for learning medical applications, and VR for入れるKids: A virtual reality application for learning Japanese through the medium of computer vision and virtual objects. If you are interested in VR applications in education, I would also recommend the following resources to help you learn more about VR: VR for Learning: A liquefied gas

全く同じ入力でも回答の長さが全然違いますね。
そして日本語で聞いておいて英語で返してくることがあるみたいなので、必ず日本語で回答してくださいと入力しておいた方がいいかもしれません。
後は、文字数も制限しておいた方が無駄に長い回答を無駄に長い処理時間で返される可能性は低くなるでしょう。
※次回記事の内容になりますが、回答に違いがあるのはそういうパラメータになっているからでした。

まとめ

今回は無料で公開されていて、かつ日本語も使えるAI Rinnaを試してみました。
個人のパソコンでこんなに簡単にLLMが動くなんてすごいですね。
次回はプロンプトの入力の部分を自分なりに作り替えてチャットGPTみたいなことができればと思います。

情報が役に立ったと思えば、僅かでも投げ銭していただけるとありがたいです。