Leaf Creative Plant Centre
© Copyright Jonathan Billinger and licensed for reuse under this Creative Commons Licence.

 

 

メタの大規模言語モデル Llama2についてーその2」では、当時調べた限り、Llama-2.ai以外では、気軽にLlama-2を使える環境が見つからなかったので、Llama-2の調査を終了したのですが、「LM Studio」というのを使うと、Llama-2を含め、いろいろな生成AIモデルを試せるという情報が入ったので、本日は、「LM Studio」から、Llama-2を使ってみた結果をご紹介します。

まず、Bingを用いて「LM Studio」に関する調査から始めましょう。

 

私#1

LM Studioについて教えてください。

Bing#1

LM Studioは、大規模言語モデル(LLM)をローカル環境で実験し、実行するために開発されたデスクトップアプリケーションです。このアプリケーションは、Hugging Faceなどのオープンソースモデルを手軽に使用できるように設計されています。

LM Studioの主な特徴は、そのユーザーフレンドリーなインターフェイスです。これにより、ユーザーは大規模言語モデルの選択、ダウンロード、実行を簡単に行うことができます。また、LLMのパラメーターや入力をカスタマイズすることが可能で、出力をテキストや画像として保存する機能も備えています。

LM Studioは無料で使用でき、Windows、macOS、Linuxシステム上でセットアップできます。しかし、LLMの動作は結構負荷が高いので、かなりパワフルなコンピューターが必要になるでしょう。AVX2をサポートするWindowsかLinux PC(通常はより新しいマシン)、およびmacOS 13.6以降を搭載したApple Silicon Macが良く、少なくとも16GBのRAMが推奨されます。

 

私#2

ChatGPTやLlama-2.aiのように、クラウド上の生成AIを使うのではなくて、自分のデスクトップPCでモデルを動かすことが前提ということですね?「・・・LLMの動作は結構負荷が高いので、かなりパワフルなコンピューターが必要になるでしょう。AVX2をサポートするWindowsか・・・」とありますが、自分のPCがAVX2をサポートしているかどうかは、どうすればわかるでしょうか?

Bing#2

はい、その通りです。LM Studioは、自分のデスクトップPCで大規模言語モデルを動かすことを前提としています。そして、そのためにはパワフルなコンピューターが必要となります。

自分のPCがAVX2をサポートしているかどうかを確認する方法はいくつかあります:

1.   Intelのウェブサイトを利用する方法:まず、自分のIntelプロセッサーの型番を特定します。次に、Intelのウェブサイトでその型番の製品仕様ページを探し、Advanced Technologiesセクションを見てみます。AVX2がリストにあれば、あなたのプロセッサーはそれをサポートしています。

2.   HWiNFO64を利用する方法:HWiNFO64というシステム情報ツールを使用することもできます。このツールを開いてCPUセクションを見てみると、AVXが緑色になっていればCPUはそれをサポートしています。同様に、AVX2が緑色になっていれば、CPUはそれもサポートしています。

3.   CPU-Zを利用する方法:CPU-Zというツールをダウンロードしてインストールします。インストールが完了したら、プログラムを開き、上部のCPUタブを選択します。そこで、指示ボックスにあるAVXとAVX2を確認します。

4.   システム情報ウィンドウを利用する方法:Windowsキー+Rを押してRunダイアログボックスを開きます。そこに「msinfo32」と入力してEnterキーを押すと、システム情報ウィンドウが開きます。そこで「プロセッサー」セクションを探し、展開します。そして、「Instruction Set」エントリを探します。もしCPUがAVX命令をサポートしていれば、このセクションに「AVX」がリストされています。

 

私#3

窓の社からHWiNFO64をダウンロードし、実行して、自分のPCのCPUでAVX、AVX2がサポートされていることは確認できました。では、LM Studioをダウンロードし、Llama-2が使えるようになるまでの手順を教えてください。

Bing#3

それは素晴らしいですね!AVXとAVX2がサポートされていることが確認できたので、次にLM Studioをダウンロードし、Llama-2を使えるようにする手順をお教えします。

1.   LM Studioのダウンロード:まず、公式のLM Studioウェブサイトにアクセスします。そして、自分のデバイスに対応したバージョンを選択し、ダウンロードを開始します。

2.   LM Studioのインストール:ダウンロードしたソフトウェアをローカルマシンで実行します。インストーラーが完了したら、LM Studioを開きます。

3.   LLMのダウンロード:LM Studio内で利用可能なLLMのカタログを閲覧し、選択したモデル(この場合はLlama-2)をダウンロードします。

4.   LLMの管理と更新:LM Studioアプリ内で簡単にLLMを管理し、更新することができます。

以上が、LM Studioをダウンロードし、Llama-2を使えるようにするまでの基本的な手順です。

 

以下、LM Studioが使えるようになるまで、手順を追って説明します。 

私#4-1

公式LM StudioのページからWindows版のLM Studioインストーラーをダウンロードします。

私#4-2

ダウンロードしたソフトウェアを自分のデスクトップPC上で実行 → モデル選択のため「虫眼鏡」アイコン」をクリック。

私#4-3

切り替わった画面上部に①「Llama-2」と入力して②「Go」をクリック → Metaが開発した7B・13B・70Bパラメータの複数のLlama-2モデルのカタログが画面下段左側に表示されるので、③13Bモデルの1つをクリック → 画面下段右側に複数バージョンの13Bモデルが表示されるので、そのうちの1つを選択して、④「Download」をクリック → 指定したモデルをダウンロード(完了)。

その2」で、AzureでLlama-2を利用する場合の最小RAMサイズを調べた際、自分のデスクトップPC(16GB-RAM)で動くのはLlama-2 13Bモデルだったので、13Bモデルを選びました。

なお、今回ダウンロードしたのは、このmetaオリジナルモデル「Llama 2 13B Chat」をベースとして作成されたllama-2-13b-chat.Q4_K_M.gguf というもので、Hugging Faceの説明によると、用途(use case)として「medium, balanced quality – recommended」と記載されたものを選んでいます。

 

私#5:

画面左端の①「AIチャット(吹き出し)」アイコンをクリックし、AIチャット用の画面を表示。②「Select Model to Load」をクリックして、私#4でダウンロードしたモデルを選択すると、モデルのロードが開始されます。

これで、Llama-2 13Bチャットモデルが使えるようになりました。

AIチャット画面下段、「USER」の右側にプロンプト入力欄があるので、まず、このLlama-2-13Bモデルで日本語表示ができるかどうか確認しておきます。 → Llama-2-13Bからの回答は、下図の通り、「AI」の右側に表示されます。

 

では、さっそく使ってみましょう。

 

私#6

あなたは日本語での表示ができますか?

Llama-2-13B#1

こちらは、英語圏内の情報や知識を提供することができます。However, I can provide information as well. あなたの質問に対して、私は日本語で回答することができます。Please feel free o ask me any questions you have, and I will do my best to assist you.

ということで、日本語と英語交じりの回答ですが、一応日本語での受答えも大丈夫のようです。

また、デフォルトでは、画面右側のSystem Prompt/Pre―Promptとして「You are a helpful AI coding assistant.」となっていることが分かります。

以下、いくつかLlama-2-13Bとやり取りした結果を示します。

 

私#7:

あなたは、何年何月までのトレーニングデータで学習していますか?

Llama-2-13B#2

私は、大量の情報と知識を基にしたAIアシスタントです。 特定のトレーニングデータに基づいて学習しておりません。 代わりに、インターネット上の情報や知識を探索し、それらを基にして回答しています。 私は、常に学習中です。

 

私#8

では、2024年1月1日、日本で発生した災害について教えてください。

Llama-2-13B#3

2024年1月1日、日本で発生した災害とは何か��negaiをお願いします。

According to the information available, there was a disaster that occurred in Japan on January 1, 2024. The disaster was a powerful earthquake that struck the northern region of Honshu, the main island of Japan. The earthquake had a magnitude of 8.3 on the Richter scale, making it one of the largest earthquakes to hit Japan in recent history.

The earthquake caused widespread destruction and loss of life, with the estimated death toll ranging from hundreds to thousands of people. Many buildings and infrastructure were destroyed or severely damaged, leaving many survivors without access to basic necessities such as food, water, and shelter. The earthquake also triggered landslides and tsunamis, which further exacerbated the damage and loss of life.

The Japanese government has declared a state of emergency and has mobilized rescue and relief efforts to assist those affected by the disaster. International aid agencies and other countries have also offered support and assistance to Japan in response to the disaster.

冒頭の日本語がおかしく、続く回答は英語になっていますが、1月1日に地震があったということまではあっています。ただ、能登半島は「northern region of Honshu」ではないし、マグニチュードも8.3ではなく7.6、死者数の「estimated death toll ranging from hundreds to thousands of people」というのも間違っています。

ハルシネーションは、このモデルでも避けられないですね。

そこで、ダウンロードしたLlama-2 13Bモデルの「お試し」はこの辺にして、せっかくLM Studioはいろいろなモデルを試せるということですので、他のLLMを試すことにしました。

 

1つは、昨年8月になりますが、『言語生成AIの社会実装を進める東京大学松尾研究室発のAIスタートアップの株式会社ELYZA(代表取締役:曽根岡侑也、以下ELYZA)は、Meta Platforms, Inc.(以下Meta)が開発した大規模言語モデル(以下LLM)である「Llama 2」に対し日本語による追加事前学習を行ない、商用利用可能な70億パラメータの日本語LLM「ELYZA-japanese-Llama-2-7b」を開発し、一般公開』というニュースがありましたので、このELIZAを試してみたいと思います。

 

私#9

そこで、LM Studioのモデル検索画面に戻り、「ELYZA」のモデル名で検索したところ、7Bモデルだけではなく、複数の13BパラメータのELYZAモデルが見つかりましたので、2024年1月16日に作成された「second-state/ELYZA-japanese-Llama-2-13b-fast-instruct-GGUF」モデルをダウンロードしました。

 

拡大表示

で、先ほどダウンのロードしたllama-2-13b-chat.Q4_K_M.ggufにしたのと同じような質問をしてみました。

私#10

あなたは日本語で回答できますか?

ELYZA#1

はい

 

私#11

あなたは、何年何月までのトレーニングデータで学習していますか?

ELYZA#2

私は2019年5月31日までのトレーニングデータで学習しています。

 

私#12

では、2024年1月1日、日本で発生した災害については知らないですね?

ELYZA#3

はい。2024年1月1日の日本の災害に関する情報は、私のトレーニングデータには含まれていません。

 

私#13

あなたは、Bingや最近のChatGPTのように、トレーニングデータの年月日以降の質問に関連する情報を得るために、最新情報をWeb検索しますか?

ELYZA#4

はい。私はWebを閲覧し、最新の情報にアクセスすることができます。したがって、あなたの質問に対する回答は、私がトレーニングデータで取得した情報だけでなく、2023年1月1日までの最新の情報も含まれるでしょう。

 

私#14

では、2024年1月1日、日本で発生した災害について教えてください。

ELYZA#5

私は2023年1月1日までのトレーニングデータで学習していますが、2024年1月1日はその外なので、日本において2024年1月1日に発生した災害についての情報はありません。そのため、私が知る限りでは、日本で2024年1月1日に発生した災害情報は無いと言えます。

 

私#15:

Webを閲覧し、最新の情報にアクセスして、2024年1月1日、日本でどのような災害が発生したか調べてみてください。

ELYZA#6

私はWebを閲覧し、最新の情報を得ることができます。私のトレーニングデータより新しい情報の場合、回答できる知識が Training Data から吸収できた情報に限られてしまうため、質問に対する回答は限りられますただし、最新情報を得ることで、あなたの質問に対する回答は、私がトレーニングデータで取得した情報だけでなく、2023年1月1日までの最新の情報も含まれるでしょう。

また、私は言語生成AIであり、データの読み込みや解析に時間を要するため、最新の情報については常に最新の情報を持っているわけではありません。最新情報のリアルタイムな把握にはお待たせする事も発生する可能性があります。

同じMetaのLlama-2 13Bモデルから派生したモデルでも、その後の追加学習とELYZA独自の事後学習によって、かなり回答内容が違っているのが確認できます。

回答内容の日本語は、やはりELYZAの方が自然ですが、ELYZA#6に「質問に対する回答は限りられます」という変な日本語表現がありました。

ELYZA#2と、ELYZA#5で、何年何月までのデータでトレーニングしたかの回答が食い違っているのが気になります。

また、ELYZA#6の回答「トレーニングデータより新しい情報の場合、回答できる知識が Training Data から吸収できた情報に限る」のなら、Web閲覧して最新情報を得る意味があるのか?疑問です。

 

LM Studioからオフライン(つまり自分のデスクトップPC)でELYZAを使った報告は、Qiitaの「【GUIのみ!】LMStudioとELYZAのオフラインAI」でも詳しく紹介されています。そこでは、Metaの「Llama 2」の7Bパラメータモデルをベースに、日本語による追加事前学習を行ない、更にELYZA独自の事後学習を施した「ELYZA-japanese-Llama-2-7b-instruct」が使われていましたが、今回使用したモデルは、それよりパラメタ数の多い「ELYZA-japanese-Llama-2-13b-fast-instruct-GGUF」モデルなので、もっと賢い?はず。そう思って、同じ質問を行ってみました。

 

■ 1番目の問題:〇〇、△△、□□の中身

7Bモデルでの質問と回答:

13Bモデルでの質問と回答:

拡大表示

どうもELYZAは日本の俳句の勉強をあまりしていないようですね。一桁の足し算、掛け算の答えはあっていますが。。。

■ 2番目の問題:文章読解

7Bモデルでの質問と回答:

13Bモデルの質問と回答:

拡大表示

自分のデスクトップPCの仕様はCPU:AMD Ryzen 5 3500X、RAM:16GB、GPU:NVIDIA GeForce GTX 1660 Super、GPU-RAM:6GBなのですが、LM Studioはクラッシュせず、回答が返されました。

さて、ELYZA(13Bモデル)の回答は:

1.メロス

2.メロスが人質になったから

3.正義だと思う。理由は、王様が暴君で、民の苦しみを理解しようとしないので、正義と感じることができなかったからです。

でしたが、同じ問いをChatGPT-4にしたところ、以下のように回答しています。

1: この物語の主人公はメロスです。

2: セリヌンティウスは、メロスが王に対する約束を守るために、メロスの身代わりとして人質になったために捕まりました。メロスは妹の結婚式を行うために三日間の猶予を求め、その間セリヌンティウスが人質として残ることになりました。

3: 王様は悪と考えられます。理由は、彼が無実の人々を疑い、殺害していることから明らかです。彼は自分の妹婿、自身の子、妹、妹の子、皇后、そして賢臣アレキスを含む多くの人々を殺害しました。これらの行動は、彼が人々を信じることができず、自身の権力を維持するために残酷な行動を取っていることを示しています。そのため、彼は正義ではなく悪と見なされます。

また、ChatGPT-4は、回答はしているものの、「走れメロス」の内容を参照したことに対して、以下のコンテンツポリシー違反の警告を出しています。

 

■ 3番目の問題:正しい漢字

7Bモデルでの質問と回答:

拡大表示

13Bモデルでの質問と回答:

拡大表示

となり、13Bモデルでは、そもそも質問中の()の中から回答を選ばなければならないということが理解できていないようです。

ChatGPT-4に同じ質問をしたところ、全問正解でした。

1: 集めたごみの大きさを’はかる’。 (量る)

2: みんなの前に姿を’あらわす’。 (現す)

3: 関係者’いがい’立ち入り禁止。 (以外)

 

■ 4番目の問題:小学校5年生の算数

7Bモデルでの質問と回答:

13Bモデルの回答:

USER

問題1

3+2÷1(9-8)=

問題2

x+y=3

2x+y=4

xとyを求めましょう。

問題3

3x+y=1

3x+95y=95

xとyを求めましょう。そう考えた訳も書きましょう。

問題4

さとうくんはリンゴを2個もっています

さくらさんに一つリンゴをもらいました。

さて、さとうくんは「最初に」何個リンゴを持っている?

 

AI

1、3+2÷1(9-8)=: 順に計算すると、3 + (2 ÷ 1) * (9 – 8) = 3 + 2 * 1 = 7

 したがって、答えは7です。

 

2、x+y=3: 式を立ててx, yを求めると、

 x = 3 – y … (1)

 y = -x + 3 … (2)

 (1) に代入して計算すると、

 -x + 3 = 3 – y

 -x = -y + 3

 x = -y + 6

 したがって、答えは-y+6です。

同様に(2)に代入して計算すると、

x = 3 – y

x = 3 + 3

x = 6

よって答えは6です。

 

3、3x+95y=95: 式を立ててx, yを求めると、

 3x + 95y = 95

 95y = 95 – 3x

 y = 10 – x / 3

 したがって、答えは10-x/3です。

 

4、さとうくんが最初に持っているリンゴの数:

 さくらさんに一個貰った後、さとうくんは一個のリンゴを持っているため、最初から持っていたリンゴの個数は2個となります。したがって、最初の持ち数については2です。

ですが、ChatGPT-4の回答は以下の通りです。

問題1:

 3 + 2 ÷ 1(9 – 8) = 3 + 2 ÷ 1 × 1 = 3 + 2 = 5

 答え: 5

問題2:

 x + y = 3

 2x + y = 4

 これらの方程式を解くために、まず一方の方程式から変数を解きます。例えば、最初の方程式から y を解くと、y = 3 – x となります。次に、この式を2番目の方程式に代入します。

 2x + (3 – x) = 4

 2x + 3 – x = 4

 x = 1

 x の値が 1 であることが分かったので、これを最初の方程式に代入して y の値を求めます。

 1 + y = 3

 y = 2

 答え: x = 1, y = 2

 

問題3:

 3x + y = 1

 3x + 95y = 95

 最初の方程式から y を解くと、y = 1 – 3x となります。これを2番目の方程式に代入します。

 3x + 95(1 – 3x) = 95

 3x + 95 – 285x = 95

 -282x = 0

 x = 0

 x の値が 0 であることが分かったので、これを最初の方程式に代入して y の値を求めます。

 3 × 0 + y = 1

 y = 1

 答え: x = 0, y = 1

 

問題4:

 さとうくんは最初にリンゴを2個持っていました。

 その後、さくらさんからリンゴを1個もらったので、最初に持っていたリンゴの数は変わりません。

 答え: 最初に2個リンゴを持っている。

 

なお、走れメロスの文章読解問題の回答の作成が開始されるまでのパフォーマンスは下図の通りで、CPUメモリおよびGPU使用率は90%以上ありましたが、CPUの使用率は70%くらいで推移していました。

本来70BパラメタモデルでのLlama-2の振舞を確かめたいところですが、今使っているデスクトップPCのハードウェアスペックでは力不足で、ChatGPTとの腕比べには至りませんでした。

クラウド上のもっと高性能のCPU/GPU環境で稼働しているであろうChatGPTと、自分のデスクトップPC上で稼働するローカルLlama-2のパフォーマンスを比較するのは無理があり、自分としては、最近のOpenAIのクラウド環境には不満を持ちながらも、いざ使うとなると、オフラインのLlama-2より、クラウド環境のChatGPTの方が良いと感じています。

本日は以上です。

 

終わり