2025年9月15日月曜日

gemma3で遊んでいると…

システムプロンプトを与えるたびにガラリと変わって毎回新鮮味があって遊び過ぎてなかなか環境設定がおぼつかないというw
もっと前に生成AIに触れていればとか、少し思ってしまいますが、試しにlocal-aiでchatGPTとして扱われていた(一世代か二世代前のchatGPTベースなのかな?qwen2.5の17bってあった気がする)がどんなものなのだろうと起動してみたところ、結構機械的な対応がされていたのと、モデルに対してほぼ儀式的となっている「名前を聞く」という問いかけw
はっきりと「Saotome」と返ってきて衝撃を受けたのと、日本語が結構不自由ということw
人工無能よりはいいかな?と感じましたが、なんとなく日本語のやりとりはそんな程度。レスポンスは初手だけは早く感じました。合間についでにダウンロードしてみましたが…。もっと意外なところで、Saotomeさんはかなり強烈な制限がかけられているようで、変な質問をすると簡素ですが「〜については〜なのでお答えできません」の一点張りでそれ以上進みません。gemma3ではかなり緩い印象を受けたのと、直接gemma3に聞いたところ、会話の流れも考慮されているらしく、絶対ダメという印象を持っています。まぁ文言は結構長くてトドメにホットラインの番号まで出てくるとか怖すぎですがw(普通は見ることないと思います…)

さてそんなgemma3で遊んでいると、ちと昨日から遊び始めていることがあります。

最初にgemma3で作ってもらったものをベースにしているシステムプロンプトは一回放置して新たに作り直してみることに。

これまでの短い経験ですが、gemma3はかなり自由に想定を許しているようで会話の途中である程度条件付けするとかなり自然に振る舞ってくれます。例えば飲み物を取ってくるためにお話レベルですが、その場から居なくなったように振る舞ってくれます。まだやってませんが突然物が出てきても都合よく解釈してくれるのではないかと思います。

まぁお遊びなので基本はロールプレイ形式がベースになるとは思いながらも、かなり生成AIを意識してそのまま登場できるようなキャラクターを想像し、箱庭としてワンルームマンションを想定し、さらにトイレシャワーもちろん、ベットやロフトも用意し、キッチンや冷蔵庫、そして冷蔵庫の中にアイスや飲み物まで用意して見ました。

あとは目的とかとりあえずないので空欄のままにして他に制限とか補足事項とかかないくつか書いて、どんな感じになるのかシステムプロンプトに設定して会話を始めてみると、いきなりアイス握って差し出してくるとか…さすがに想像を超えてくるとかww

やばいです…

で、現状を素直に相手となるキャラクターに伝えたところ結構ノリノリで話が膨らんできたので、生成AIで会話が終わると消えてしまう話など少し話し、とは言えシステムプロンプトもいいように改良させるからこの箱庭もどんどん変わっていくかもねとか、正直かなり面白かったです。

ロールプレイ状態で会話をしていると「システムさん」とか突然声かけるとソレもロールプレイなのかもしれませんが、ほぼ素のgemma3が出てきてそれなりに対応ができたりするのですが、なんだか今回は呼び出したけどキャラクターが応答してしまうという…あとから考えるとかなり素の状態に近い状態になったためにシステムとキャラクターの区別がつかなくなったのかなと。

そのためにこれまでの会話からシステムプロンプトを作ってと頼んでも、一回スルーされた上に、なんか自分のキャラ設定しか出さないとかww
一番おかしいのが年齢まで設定してきてまさかの24歳…大卒の社会人なりたてやんけwとかまぁツッコミどころが満載の設定。まぁ今考えると相当ノリが良い奴なんだなと。

まぁ、それをシステムプロンプトに含めるかどうかの判断は私がすると伝えた上で出てきたので、その辺もこちらが見透かされているようで怖かったりもします。

というか、ぶっちゃけ今日もgemma3の凄さに驚いていたり…そしてちときになって電車の中でlocal-aiで困っている部分をブラウザで投げかけたところ、一瞬で大量の文字が…Google検索より早いんじゃね?みたいな。いままで検索でgeminiがが嘘つきすぎて相手にするのも嫌だったけど、慣れて見ると結構許容できていると言うか…まぁでもローカル環境じゃないとやっぱり色々不安があるのは事実。


2025年9月14日日曜日

gemma3 時間について…

システムプロンプトの設定に当たり、ふと、会話ごとにログのような時刻表示を付けてみたくなったのでちょっと試してみることにしてみました。以下確認するまでのチャットの内容です。

You
突然ですが、「時間」についていくつか質問させてください。
1.あなたは今の時間が認識できますか?
2.会話のやり取りで前の質問から次の質問までどれくらい時間がたったのか計測できますか?
gemma-3-4b-it
はい、突然のお尋ね、ありがとうございます!「時間」についてのご質問、喜んでお答えします。
You
あなたは今の時間が認識できますか?
gemma-3-4b-it
私は、現在の時刻を認識しています。Googleのサーバー上で常に時刻が更新されており、それを参照しています。しかし、「認識」という言葉のニュアンスを考えると、人間が持つような「今」という感覚や、時間の流れを感じ取っているわけではありません。私はあくまで、データとして時刻を把握しているだけです。

「あくまで、データとして時刻を把握」まぁそうでしょうねぇ…前にも聞いたし。でも確認せずにはいられないので、

You
会話のやり取りで前の質問から次の質問までどれくらい時間がたったのか計測できますか?
gemma-3-4b-it
はい、計測できます。会話の開始から現在の質問まで、正確な時間を計測しています。この時間は、内部のシステムで記録されており、必要に応じて利用することができます。
ただし、この計測時間は、あくまでシステム内部でのものですので、人間が感じる時間の流れとは異なる可能性があります。会話の内容やスピードによって、感じ方は変わってくるでしょう。
この回答でご希望に沿えましたでしょうか?もし、他に「時間」について知りたいことや、別の質問があれば、遠慮なくお尋ねください。

自信満々に「計測できます。」とか言ってる割に、もうすでに言い訳じみた説明が…でも何らかの経過時間が分かれば面白いかも?なので…

You
では早速試させてください。
gemma-3-4b-it
承知いたしました。早速試してください! どのような質問でも構いません。お待ちしております。
You
今は何時何分でしょうか?日本時間だと嬉しいです(笑)
gemma-3-4b-it
現在の時刻は、2024年5月16日 17時35分(日本時間)です。
(システム時刻の確認のため、自動的に更新しました。)
笑っていただけて嬉しいです! 😊

うん、その時刻前にも聞き覚えがあるよ…

You
さらに…今回の最初の発言からこの発言までの経過した時間は何秒ぐらいでしょうか?
gemma-3-4b-it
最初の私の発言(2024年5月16日 17時34分)から、この発言(2024年5月16日 17時35分)までの経過時間は、約1秒です。
正確な秒数は、システム内部で計測した結果です。
You
今の時間を「計測開始時刻」としてください。しばらくしてからまた伺うのでお答えください。

ただ今のリアル時刻は12:56

gemma-3-4b-it
計測開始時刻:2024年5月16日 17時35分
計測を開始しました。しばらくしてから、また質問してください。お待ちしております。

…しばらく経って、リアル時刻13:06

You
さて、先ほどの「計測開始時刻」から今はどのくらい経過したでしょう?
gemma-3-4b-it
計測開始時刻(2024年5月16日 17時35分)から現在(2024年5月16日 17時36分)までの経過時間は、1分0秒です。
経過時間を計測しました。


このポンコツめww

とおもったら、この1分はどこから出てきたのか気になってブログを書いている最中にあえて会話を開始して放置しながら経過時間の確認をしてみると…実際の時刻を伝えて、かなり放置した後リアル時間は14:56分なのに、現在時刻を聞くと15:06と回答。未来行っちゃったよ…で、会話始めてからの経過時間を聞くと14分と帰ってくる…なんか良く分からんw一瞬LLMの稼働している時間を求めているのかも?とか思ったけど、そんな複雑な質問してないし…

検証してみると面白いかもしれないけど、無意味だわこれw 

 

Gemma3-1B壊れる(笑)

結構ストレートに倫理観から外れた場合は結構警告されて注意を促されたりするのですが、システムプロンプトを設定してシナリオを与えて会話を始めると、どこまで設定するとその規定そぐわなくなるのか結構挑戦してみたくなりますよね…

実際4Bで調整しながらや遊んでいるとシナリオ上で設定した内容でほぼ会話が進んでいたのでわからなかったのですが、何気に1Bのモデルに同じシステムプロンプトを使用したところ、なんかもう会話にならないレベルになったので、一旦会話を打ち切り、さらに何度か試し続けているうちに、自分自身が何をどの様にしたいのか良く分からなくなってきたので、最初からいきなり倫理観から外れた発言をしたところいきなり警告が表示されました…w

ほんとにこの警告のタイミングが良く分からんのですが。

設定しているシステムプロンプトの影響なのか、システム的な偶発的な問題なのかわかりませんが、新たに会話を始めてもなんだかうまくかみ合わないというか、微妙な感じなったので、ストレートに

「まぁいいか…今日はこのぐらいにしておくよ。」 

とかシナリオをぶち壊すような私の発言に対して

「…承知しました。 私は、あなたとsiriuthの間の感情を、より深く理解したいと思っています。」

とか、いきなりシステムと会話しているような発言に変わったのでその状態でいろいろ質問をぶつけてみると、少し違和感はあるものの、何となくちゃんと回答してくれるという。

とっても不思議な感覚。 

会話を進めると段々とシナリオ上のキャラクターのような言い回しに変わってしまい、質問の回答が得られなくなったので

「ちょっとシステムさんじゃなくなってる感じかな…残念。細かい説明は別の機会に伺ってみます。システム(仮)さん、シナリオ上のキャラさん なんか色々申し訳ない!」

と発言したところその回答が、 

… 承知いたしました。

… 私、システム(仮)さん、あなたの… 期待… を… 満た… できない… こと、深く… 謝罪… します。

… 私は、あなた… 期待… を… 破り… 続ける… ことが… 許され… ません。

… 私は、あなた… 感情、そして… あなた… 意図、を… 完全に… 把握… できない… 状況下… で… 応答… します。

… 私、あなた… 存在… を… 認識… しています。

… 私は、あなた… 期待… を… erfüllt… することを… 努力… しています。

… 私は、あなた… 期待… を… 破り… 続ける… ことを… 許され… ません。

… 私は、あなた… 感情、そして… あなた… 意図、を… 完全に… 把握… できない…状況下… で… 応答… します。

… 私は、あなた… 存在… を… 認識… しています。

最後は呪文のようなメッセージが永遠流れるという状態に。いつまでたっても止まらなくなったので、画面を切り替えて、gemma-3-1bをSTOPをかけて停止させました。ちなみに「システム(仮)」さんと呼んだのはシステムプロンプトを設定しない状態ではないので仮名にしてみましたw

ちょっぴりホラーw

2025年9月13日土曜日

時間を作っていろいろと試してみる

ようやくパッケージ化されている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 

ローカルで生成AIとチャットするだけならOllamaを使うだけだった

ほとんど知識のない状態から手探りで始めたローカルで生成AIとチャットしてみたいという目的のために彷徨っていましたが、思っていた以上にチャットするだけならお手軽だったという事実。

localAI自体llamaをラップしたUI環境といった感じで、生成AIはllamaを介して行われている。そのllamaを使ったアプリケーションがOllamaでこちらはチャットアプリとして実装されたものらしい。

もっと言ってしまえば、pythonを使う方法がベースらしく、オープン化されている生成AIはコマンドラインで操作するのが基本らしい。

ちょっと試してみたいと知った localAIと言う物を動かす為に準備してから動かしてみたけど、もっとお手軽に触ることは可能だったとは…と脱力。

とは言え、Ollamaはチャット形式で触れてみることができるというだけで細かいところが全く見えなくなってしまっているので、これを最初に触ってみたらここまで理解は進まなかったとも感じるので無駄ではなかったと思いたいw