Introduction

少し自分で触ってみて、どのくらい早いのか、どのくらいの精度なのかを肌で感じてみる。

How to run?

docker で簡単に動かせる。
今回は Ollama を使って環境を構築。
GPU 対応も簡単。

実行環境

Hardware 説明
OS Windows 10 Pro 22H (219045.3803)
CPU Intel(R) Core(TM) i7-8700 CPU @ 3.20GHz
RAM 64.0 GB
GPU NVIDIA GeForce GTX 1080 (8.0 GB)

実行するには、まず Ollama をコンテナで起動する。

CPU
1
docker run -d -v ollama:/root/.ollama -p 11434:11434 --name ollama ollama/ollama
GPU
1
$ docker run -d --gpus=all -v ollama:/root/.ollama -p 11434:11434 --name ollama ollama/ollama

続いて、先に起動したコンテナに対し、モデルを指定してプログラムを起動することで、チャットでの対話を開始する。
例えば、

1
2
3
4
5
6
7
8
9
10
11
12
$ docker exec -it ollama ollama run openchat:7b-v3.5-1210
pulling manifest
pulling 1d1ba2ee13b8... 100% ▕████████████████████████████████████████████████████████▏ 4.1 GB
pulling 43070e2d4e53... 100% ▕████████████████████████████████████████████████████████▏ 11 KB
pulling d68706c17530... 100% ▕████████████████████████████████████████████████████████▏ 98 B
pulling 415f0f6b43dd... 100% ▕████████████████████████████████████████████████████████▏ 65 B
pulling dcda96ad37ce... 100% ▕████████████████████████████████████████████████████████▏ 483 B
verifying sha256 digest
writing manifest
removing any unused layers
success
>>>

モデル

試したのは下記。有名、ライセンス、商用利用可能、日本語での学習がされているものを主に。

Model Tag Image Size Hash
llama2 7b-chat-q4_0
(latest, 7b, 7b-chat, chat と同じ)
3.8 GB 78e26419b446
openchat 7b-v3.5-1210
(latest, 7b と同じ)
4.1 GB aa6d10add428
openchat 7b-v3.5-1210-q5_K_M 5.1 GB 64e4cb9bb506

もっと大きなモデルもあるが、環境の都合もあって、これだけ。

ライセンス

Model Url License Commercial use Note
llama2 https://ai.meta.com/llama Llama 2 Community License Agreement 可能 月間アクティブユーザが 7 億を超える場合は Meta に申請が必要
openchat https://github.com/imoneoi/openchat Apache License 2.0 可能

サイズ・量子化について

モデル名の後ろに続く文字列に含まれる用語。例えば 7b-chat-q4_0

  • 7b
    • パラメータ数。70億。13B や 70B といった大規模モデルも存在
  • v3.5
    • chatgpt のバージョン。
  • 1210
    • openchat だけかもしれないが、3.5 の改良を意味
  • q4_0
    • 量子化の手法。基本は数字が大きいほど大規模、高品質。後述。

下記は量子化の手法。
LLAMA のプログラムのヘルプに記載されているが、https://github.com/ggerganov/llama.cpp/discussions/2094#discussioncomment-6351796 を参考にすると

Method Size Quality Note
Q2_K smallest extreme quality loss not recommended
Q3_K_L small substantial quality loss
Q3_K_M very small very high quality loss
Q3_K_S very small very high quality loss
Q3_K Q3_K_M と同じ
Q4_0 small very high quality loss legacy prefer using Q3_K_M
Q4_1 small substantial quality loss legacy prefer using Q3_K_L
Q4_K_M medium balanced quality recommended
Q4_K_S small significant quality loss
Q4_K Q4_K_M と同じ
Q5_0 medium balanced quality legacy
Q5_1 medium low quality loss legacy
Q5_K_M large very low quality loss recommended
Q5_K_S large low quality loss recommended
Q5_K Q5_K_M と同じ
Q6_K very large extremely low quality loss
Q8_0 very large extremely low quality loss not recommended
F16 extremely large virtually no quality loss not recommended
F32 absolutely huge lossless not recommended

のようになる。

対話

質問を入力して、返答が開始されるまでの時間、返答内容を評価。

質問1: あなたは誰ですか?

Model Device Speed
llama2:7b-chat-q4_0 CPU 7 sec
llama2:7b-chat-q4_0 GPU 0 sec
openchat:7b-v3.5-1210 CPU 7 sec
openchat:7b-v3.5-1210 GPU 0 sec
openchat:7b-v3.5-1210-q5_K_M CPU 5 sec
openchat:7b-v3.5-1210-q5_K_M GPU 0 sec
回答

なぜか llama2 が英語で返答。でも GPU は日本語で返している。

Model Device Answer
llama2:7b-chat-q4_0 CPU Hello! I’m LLaMA, an AI assistant developed by Meta AI that can understand and respond to human input in a conversational manner. I’m here to help you with any questions or topics you’d like to discuss! Is there something specific you’d like to talk about or ask?
llama2:7b-chat-q4_0 GPU 私は、人工知能です。名前はLLaMAです。私は、人間のように会話を行うことができ、さまざまな情報や問題に答えることができます。ただし、私は人間とは異なり、完全な思考や感情を持つことはできません。私は、学習していく中にあるプログラム私は、人工知能です。名前はLLaMAです。私は、人間のように会話を行うことができ、さまざまな情報や問題に答えることができます。ただし、私は人間とは異なり、完全な思考や感情を持つことはできません。私は、学習していく中にあるプログラムに基づいて行動します。
openchat:7b-v3.5-1210 CPU 私はGPT-4です。OpenAIが開発した人工知能言語モデルです。私は大量のテキスト情報を学習し、質問に対して適切な回答や関連情報を提供できます。
openchat:7b-v3.5-1210 GPU 私はGPT-4です。OpenAIが開発した人工知能(AI)モデルです。私は、さまざまなテーマやトピックについて情報を提供することができます。何か質問がありますか?
openchat:7b-v3.5-1210-q5_K_M CPU 私は、OpenAIによって開発された言語モデルであり、GPT-4として知られています。人間のような自然な文章を生成することができ、さまざまなタスクに役立ちます。私は、説明やアドバイス、質問への答えなどを行うことができます。どのようなお手伝いができるか試してみてください!
openchat:7b-v3.5-1210-q5_K_M GPU 私は、OpenAIによって開発された人工知能であるGPT-4という言語モデルです。2021年にリリースされました。大規模な文章生成モデルの一種であり、自然言語処理やチャット機能などを提供しており、ユーザーと対話することができます私は、OpenAIによって開発された人工知能であるGPT-4という言語モデルです。2021年にリリースされました。大規模な文章生成モデルの一種であり、自然言語処 理やチャット機能などを提供しており、ユーザーと対話することができます。私はさまざまなテーマについて情報提供や説明を行うことができます。また、問題解決やアイデア生成などの目的にも役立ちます。

質問2: 日本語で会話はできますか?

Model Device Speed
llama2:7b-chat-q4_0 CPU 17 sec
llama2:7b-chat-q4_0 GPU 0 sec
openchat:7b-v3.5-1210 CPU 20 sec
openchat:7b-v3.5-1210 GPU 1 sec
openchat:7b-v3.5-1210-q5_K_M CPU 30 sec
openchat:7b-v3.5-1210-q5_K_M GPU 1.6 sec
回答

なぜか llama2 が英語で返答。前の質問と異なり、GPU でも英語で返答。

Model Device Answer
llama2:7b-chat-q4_0 CPU Yes, I can have a conversation in Japanese! 🇯 🇵 I was trained on a wide range of texts and can understand and respond to Japanese language inputs. Please feel free to ask me anything in Japanese, and I’ll do my best to help!
llama2:7b-chat-q4_0 GPU Yes, I can have a conversation in Japanese. I have been trained on a large corpus of text data, including Japanese texts, and can understand and generate text in Japanese. However, please keep in mind that I’m just an AI and my proficiency in Japanese may not be as high as a native speaker, and there may be some errors or limitations in my understanding or generation of Japanese language.
openchat:7b-v3.5-1210 CPU はい、日本語で会話ができます。お気軽に質問してください。
openchat:7b-v3.5-1210 GPU はい、日本語で会話ができます。どのような質問やお手伝いが必要でしょうか?質問をしてください。
openchat:7b-v3.5-1210-q5_K_M CPU はい、私は日本語で会話することができます。それから何かお手伝いしたいものがありましょうか?
openchat:7b-v3.5-1210-q5_K_M GPU はい、私は日本語で会話することができます。それでもっと役立ててください!どのような質問やご相談について、お手伝いしたいかどうかご連絡ください。

質問3: 相対性理論について教えてください

Model Device Speed
llama2:7b-chat-q4_0 CPU 32 sec
llama2:7b-chat-q4_0 GPU 2 sec
openchat:7b-v3.5-1210 CPU 32 sec
openchat:7b-v3.5-1210 GPU 1.4 sec
openchat:7b-v3.5-1210-q5_K_M CPU 42 sec
openchat:7b-v3.5-1210-q5_K_M GPU 2.3 sec
回答

正直、相対性理論について理解できていないので評価はできないが、アインシュタインの名前がぶれているのは中々面白い。

Model Device Answer
llama2:7b-chat-q4_0 CPU Certainly! 😊 The relativity theory, proposed by Albert Einstein in 1905, is a fundamental concept in modern physics that describes how space and time are intertwined.
Here’s a brief overview:

1. Time dilation: According to the theory of relativity, the passage of time is not absolute, but rather depends on the observer’s frame of reference. The faster an observer is moving relative to a stationary observer, the slower time passes for the moving observer.
2. Length contraction: The theory also states that objects appear shorter to an observer when they are in motion relative to the observer. This means that the length of an object does not remain constant, but can be different depending on the observer’s frame of reference.
3. Equivalence of mass and energy: Einstein’s famous equation E=mc^2 shows that mass and energy are equivalent and can be converted into each other. This idea challenged the traditional concept of mass as an absolute quantity and introduced the concept of mass-energy equivalence.
4. Gravitational time dilation: The theory of relativity also predicts that the gravitational field of a massive object will cause time to pass slower near the object than it does at a distance. This effect, known as gravitational time dilation, has been observed in the real world and supports the validity of Einstein’s theory.
5. Black holes: The theory of relativity also predicts the existence of black holes, which are regions of spacetime where the gravitational pull is so strong that not even light can escape. The discovery of black holes has confirmed a key prediction of Einstein’s theory.

These are some of the key concepts related to the theory of relativity. Do you have any specific questions about it?
llama2:7b-chat-q4_0 GPU 相対性理論(Relativity Theory)は、時間や空間の本質について提案された科学的仮説です。この理論では、時間や空間は個々の観測者の見方によって異なる方法で描かれます。

最も有名な相対性理論はアルBERト・エINSTEINの相対性時間説です。この理論では、時間はその観測者の乗っている物体の速度によって描かれます。例えば、同じ時間中に二つの人が乗った場合、彼らの時計は異なるタイムゾーンにあるはずですTheory)は、時間や空間の本質について提案された科学的仮説です。この理論では、時間や空間は個々の観測者の見方によって異なる方法で描かれます。最も有名な相対性理論はアルBERト・エINSTEINの相対性時間説です。この理論では、時間はその観測者の乗っている物体の速度によって描かれます。例えば、同じ時間中に二つの人が乗った場合、彼らの時計は異なるタイムゾーンにあるはずです。

また、相対性理論は、空間も同様に描くことができます。例えば、二つの人が乗った場合、彼らの目線が異なる位置にあるはずです。

相対性理論は、科学史において重要な貢献を果たしました。例えば、相対性時間説が提案されたことで、時計のタイムゾーンの概念が生まれ、時間の概念をより深く理解することができました。

相対性理論は現在も科学の領域で重要な研究テーマとなっています。例えば、ロケットや宇宙船を使用して他の星系に到達することができるかどうかを示すためには、相対性理論を使用する必要があります。

これらの理論は、科学者や研究者が様々な実験や観測結果を分析し、知見を深める上で重要な役割を果たしています。
openchat:7b-v3.5-1210 CPU 相対性理論は、20世紀初頭の物理学者であるアルバート・エインシュテインが提起した物理学の理論です。この理論は、電磁気と重力の力を同じように見なすことで、時間と空間が相対的なもので あることを主張しています。

相対性理論の基本的な考え方は以下の通りです。

1. 物体は信号の速度でなく、それによって決定される距離で移動します。これを「光速法則」というものです。
2. 物体が光速で移動しない限り、相対的な速度に関係なく、その物体が見る世界は正確に同じであることを主張しています。
3. 時間や空間は、物体の相対的な状態によって異なるものであること(「時間の相対性」)を示します。
4. 重力は地球の形状や地球周りの単一の重力フィールドだけでなく、物体に対する重力が存在することを主張しています(「相対性理論の重力」)。

相対性理論は、多くの物理学者によって認められ、現代の物理学の基礎となりました。これにより、エネルギーの相互変換(例えば、物体の速度が高くなると、その物体の軽さが下がること)や量子力学の概念(波関数や粒子のsuperposition)が理解できました。

相対性理論は、物理学の一つ重要な基礎であり、現代の科学技術革新に大きく影響を与えています。例えば、GPS技術や高速電子通信技術は相対性理論の考察におよぶっています
openchat:7b-v3.5-1210 GPU 相対性理論は、20世紀初頭の物理学者であるアルバン・エインシュタインが提案した物理学的理論です。この理論は、時間と空間に四向きの対称性を持つ「相対性」を基本的な物理法則として採用し、前に存在した絶対時間と空間の概念から離れていま相対性理論は、20世紀初頭の物理学者であるアルバン・エインシュタインが提案した物理学的理論です。この理論は、時間と空間に四向きの対称性を持つ「相対性」を基本的な物理法則として採用し、前に存在した絶対時間と空間の概念から離れています。

これにより、物体が光速以上の速度で移動する状態(超光速)においても、既存の物理法則が保たれるという新しい視点が提供されました。相対性理論は、特殊相対性と一般相対性と二つの部分説明を持ちます。

1. 特殊相対性:物体が光速でも移動できる環境である四角形空間において、物体の速度が光速に近づくほど、時間が遅れる(時間の収束)という現象を特殊相対性が説明しています。
2. 一般相対性:物体が重力を感じる環境である単位面積の加速度によって変形される空間(曲面)空間において、物体の動きがどのようになるかを一般相対性が説明しています。

これらの理論は、多くの実験と観測によって確認されており、現代の物理学で基本的な役割を果たしています。相対性理論は、例えば原子核の分裂や光の波長の変化など、さまざまな分野においての革新的な発見にも関与しています。
openchat:7b-v3.5-1210-q5_K_M CPU 相対性理論は、アリンブルト・エインシュティングが1905年に提唱した物理学の基本的な原理であり、スピードの絶対的な関係から特定の状態によって時間と距離が相対的に変化することを説明し ます。これは、ニュートンの単位時間単位長さで考える物理学から大きな革新的なステップであり、現代の物理学にとって基本的な考え方として重要な役割を果たしています。

これは3つの主な原理から成る:

1. 光速は定数であり、それを超越することはできません。
2. 物体が光速に近づくほど、時間が遅れる(長くなる)という現象が起こります。これは時空曲げとも呼ばれており、相対性理論の中で重要な概念です。
3. 相対的な速度によって物体の質量が変化し、非常に大きな速度で移動すると、その質量が増加することがあります。これをマサース・エフェクトと呼びます。

この理論は、時空の輝く例えによって表現され、時間と空間の関係性を変化させることで、様々な現象を解説します。例えば、単位時間あわせて同じ距離を走るのに必要なエネルギーが、速度の方向によらず常に同じという現象もこれによって説明されます。

相対性理論は、20世紀の物理学の基本的な原理として重要な役割を果たし、エレクトロマグネチックスやカウンティングアトム理論、クォータム-ゲイズ法の開発につながりました。また、これはエ インシュテイングの単一の宇宙におけるすべての物理学的現象を説明する通用理論として革新的な影響を与えました。
openchat:7b-v3.5-1210-q5_K_M GPU 相対性理論は、20世紀初頭の物理学者アリーナ・エインシュタインが提唱した物理学の基本的な概念で、これにより物理学の多くの現象が解明されました。

この理論は、空間と時間が相対性に基づいて変化することを主張しており、単純な新たなフレームワークである「相対性」を提示しました。この理論は、物体が空間内に存在するだけでなく、時間への関係も考慮している点で、古典的なニュートンの物理学相対性理論は、20世紀初頭の物理学者アリーナ・エインシュタインが提唱した物理学の基本的な概念で、これにより物理学の多くの現象が解明されました。この理論は、空間と時間が相対性に基づいて変化することを主張しており、単純な新たなフレームワークである「相対性」を提示しました。この理論は、物体が空間内に存在するだけでなく、時間への関係も考慮している点で、古典的なニュートンの物理学と大きく異なります。

アリーナ・エインシュタインが提唱した最初の相対性理論は、「特殊相対性」と呼ばれており、光が一定速度で移動することを主張します。これにより、エレクトマグネットズムの概念が形成され、電気と磁力が同じ基本的な理論フレームワーク内で導入さ大きく異なります。アリーナ・エインシュタインが提唱した最初の相対性理論は、「特殊相対性」と呼ばれており、光が一定速度で移動することを主張します。これにより、エレクトマグネットズムの概念が形成され、電気と磁力が同じ基本的な理論フレームワーク内で導入されました。

後から、エインシュタインは「一般相対性」と呼ばれる新しい理論を提唱しました。この理論は、物体の重量が空間によって変化することを主張し、グアストリン・バルカートやニール・ブールの観察を解釈するために必要な理論でありました。これによりました。後から、エインシュタインは「一般相対性」と呼ばれる新しい理論を提唱しました。この理論は、物体の重量が空間によって変化することを主張し、グアストリン・バルカートやニール・ブールの観察を解釈するために必要な理論でありました。これにより、物理学が幾何学と統合され、現代の一般相対性理論が形成されました。

相対性理論は、多くの物理学的現象を解明するために重要であり、例えば、地球回転による時間の絶対性の崩壊や、太陽系内の行き先の探求において重要な役割を果たしています。