ようやくパッケージ化されているDockerイメージを使って内蔵されているintel GPUを利用して動かせるようになった。
原因としてはintelGPUの動作に関してはUbuntu 24.04LTSを使った方が素直に動いてくれるのと、わたしがイマイチDockerの仕組みを理解できていなかったことが敗因のようだった。
安定して動かせるようになったので、時間を見つけてはチャットを試してみて色々と感じていることをいくつか。
まず、Docker経由だとなんとなくいろいろなIO周りにオーバーヘッドがかかってしまっているように感じる。→素でintelGPUを動作させることの環境を整えて比較してみるしかないかな?
Gemma3と少しチャットするだけだと違和感がないものの、システムプロンプトを使ってみると色々と何とも言えない部分を感じることが多い。
少し調べてみると生成AI特有の事象らしいが大きく2つの現象を確認した。
一つは嘘をさも本当のように述べる原因となるハルシネーションと呼ばれる現象。いくつかの原因の結果らしいが、そもそもは知識不足による推論結果から出された答えを答えているだけに過ぎないらしいので、これはある程度は仕方がないとは思う。が、試しにシステムプロンプトで「知らないことはユーザーに質問する。」と記述してみたところ、こちらから投げかけた文章で理解できない部分の質問が問いかけられるようになった。生成AIがこちらからの問いかけに返答されるまでに大雑把な手順は、
①与えられた内容を理解する。
②与えられた内容の返答をする。
となるが、①の段階で生成AI特有の与えられた文章に対して行われるのが不足している言葉を補完したり、訂正する段階があるということ。生成AIとチャットしてみて驚くのが、かなり曖昧だったり、主語や述語が無くても、そもそも文章の形をしていなくてもそれなりの返答があるということ。また通常のチャットのように顔文字やら絵文字などを含めてもそれなりに解釈されて返答されること。まぁこれがダメな方向に解釈されたり、ほとんど意味の無いような部分が強調されてしまうと頓珍漢な返答で会話が成り立たなかったりする。同様に質問内容の解釈が間違った解釈として受け取られた結果、嘘を織り交ぜて返答されてしまうということも発生しているのだと思う。
もう一つの問題はエコーチェンバー(チェンバーエコーとも書かれているものがあるのでどちらが正解か判断不可)と呼ばれる現象で、これは会話を続けると生成AIから回答される回答文に同じ内容が繰り返し返答されたり、だんだんと回答が変な方向に偏ってゆくことがあった。
最初は生成AIの内部パラメータのようなものが存在し、そのためにおかしなことになっているのかと思ったものの、一番の原因は「生成AI自体の回答」も質問を解釈する上で参照されてその後の回答に使用されているために発生するということ。計算機で言えば
1+10=11という計算を繰り返したとすると
1+10「+11」=22という感じで「」内が勝手に付加されて解釈されてしまうために起因するらしい。
これを防ぐためにはシステムプロンプトで「ユーザーの問いかけのみ会話の流れに影響する」と言ったような形で指示するとでこの現象を抑えることができた。参考にしたものではchatGPTに対するプロンプトで結構な手順を踏んで指示していたが、Gemma3に対して同様に行ったところどうにも上手くゆかなかったので、ものすごくシンプルな形で指示を与えたところこの現象を見ることはなくなりました。
それなりに生成AI特有の現象も確認できたところで、動作環境を含め、現状問題となっていることがいくつか。
一つ目、システムプロンプトを設定したからなのか、数回質疑応答を繰り返すと待たされる時間が目に見えて遅くなっていく。(これはもう動作環境が貧弱だからと、あきらめるべきなのかもしれないがw)
二つ目、チャットが返答されなくなることが多々ある。(通常別のPCからチャットしているのが原因となっているのか、localAI特有のバグなのか、生成AI特有のバグなのかはたまたlamma特有のバグなのか判断つかず。一つの原因なのか、複数の原因による結果なのかも判断がつかない)
これに先に述べたintelGPUの動作環境への切り替えなどなど、まだ調べてみたいことは多岐にわたってたりします。あまり一つ一つ順番に塗りつぶしていくような作業は好まないのですが、いかんせん海のモノとも山のモノとも知らなかった生成AIなのでこれしかないかなとあきらめていたりw