ハヤテ君との別れ


今回は先日亡くなったハヤテ君について

16日18時半頃、7年半飼ってきたデグーのハヤテ君が急死しました。

2016年タロウ君がまだ生きていたときに彼はやって来ました。パイド柄の可愛い彼はとても臆病でずっと慣れてくれませんでした。それでもここ1年ほどは加速度的に距離が近づきとても楽しい日々を送ることが出来ていました。
年が明けてからは自主的に手に載るようになって私を非常に喜ばせてくれました。

しかし、昨年年末頃から、たまに苦しそうな様子を見せること、もともとウンチが細かったのが最近更に小さくなってしまっていたこと、水を余り飲まないことから、昨年12月くらいからケージにカバーを付けたりシートヒーターを増やしたり、ケージの足回りを再配置したりしていました。
年が明け、徐々に調子を取り戻しうんちがこれまでで一番ちゃんとしてる様子を見て安心していた矢先のことでした。

夕方、ケージの掃除を行っていました。
私はステージを水拭きし、ハヤテ君は部屋ん歩し、ストーブの前で暖を取っていました。ハヤテ君は突然具合が悪くなったのか姿勢を崩します。ご存じの通り、小動物が苦しい様子を見せるのは余程のことです。彼はケージに戻りしばらくした後、大きく鳴き走り回ります。
パニックを起こしたように走り回るハヤテ君を、私は捕まえようとしますが、彼は私の手を見て更に逃げ惑うため捕まえられません。
そして、困惑し名前を呼ぶしか出来ない私の目の前で彼は倒れ、死んでしまったのです。

私は困惑し、しばらくは呆然とするしか有りませんでした。
そのうち涙がこぼれてきました。泣くことしかできませんでした。
祖父母や親友が亡くなったときにも涙が出なかったのに、ペットの死に涙が出る私は何かおかしいのではないかと思ったりしながら泣きました。

次の日仕事が有ること、晩ご飯や風呂のこと、彼の葬儀のこと、などなど様々な事が一気にあふれました。
2時間ほど感情的な時間が過ぎ、私は動き始めます。風呂に入り食事を摂り明日の仕事の準備をします。
しばしば彼の亡骸が動いたように見え、振り返りますが、そうなりません。

何かする度に私は彼のことを考慮に入れて過ごしていたのだと気付かされました。
ドアを開けるとき、夜中にトイレに行くとき、ご飯を食べるとき、買物に行くときetc。
その夜、ハヤテ君をケージのベッドに横たえ、翌日の夕方埋葬しました。

昨日、3Dプリンターで墓標を作りました。光造形の3Dプリンターですが、ABS樹脂風なので、屋外でもしばらくは保つでしょう。

彼の死もつらいですが、悲しいことがあります。
私はもう新しいペットを飼いたいと思っているのです。酷い話です。
彼の魂に誠実では無いと思いながらもです。人が知れば後ろ指を指すかも知れません。しかし、話しかける相手が居なくなり、彼のことを思い出してキツくなるのです。逃避なのかも知れません。
どれくらいの時間をおくべきなのか、私には分かりません。
ただ、もう少し心が平穏になるまでは間を置きたいです。そうでないと彼が可哀想だと思うのです。
新しいペットにも悪いと思います。もっとニュートラルな気持ちで迎えて上げたいです。
でも、一人はきついです。

ハヤテ君有難う。一人はキツいけど、君には前を向いて輪廻の旅をしてもらいたいです。
君の魂が、次の人生ではもっともっと幸せでありますように。

年末に串刺しになりそうだった話

2024年は元旦から、能登沖の大震災や航空機事故が発生し大変です。
年末に、私の方も一つ間違うと死にそうなことになっていました。

実家には氏神様の小さな祠があります。しめ縄と竹で作られた鳥居のようなものがあり、その竹は毎年取りに行きます。ただ、最近は竹も少なくなり取るのに苦労しています。そろそろ何か代替品を探さないと駄目だろうと話していたところでした。

大晦日、弟と竹取りに向かいましたが、なかなか良いものが見つかりません。見つけたと思ってもほしい種類と違っていたり、取りにくい場所に有ったり。
散々うろついてやっと見つけた竹はとても背が高く、そのままでは刈り取ることができそうにありませんでした。

私は竹の根本に行き体重を掛けて曲げにかかります。弟が先を受け取って切り取るという役割分担です。
ぐいっと曲げますが、なかなか思ったところまで曲がりません。思い切り体重を掛けたところで竹が大きな音とともに折れてしまいました。
周囲は斜面で、踏ん張ることもできません。地面には尖った竹の切り株。なんとか周囲を掴んで串刺しこそ逃れましたが、喉と水月(胃)、左脛には大きなキズが残りました。特に水月には大きな傷と内出血があり、1週間以上経った今も完治していません。
もし、もう少し体重がかかっていたのなら串刺しだったのでしょう。

多分、私が生きてきた中で一番死に近づいた事故だったと思います。
来年からは何らかの代替品を使います。命有っての物種ですしね。

色々なパソコン部品の変更

8/24にローカルLLMの大きなサイズを動かすためにグラボ(RTX3060-12G)を追加した。それに併せて電源を750Wから1000Wに変更。

8/31にDドライブのSSDが呼称したために9/1にSSDの4Tを購入。
Cドライブが2T→4T。Dドライブが1T→2Tへ。旧CドライブがDドライブへ、Cドライブは新規購入部品に変更。

SSDはBIOSがおかしかったのか、リストアで何かおかしな事をしたのか、リストア後にCドライブが起動せず苦労した。物は9/2朝に届いたのだが、復旧完了したのは9/3夕方であった。

現在の構成は以下の通り。

部品名 製品名 購入日
CPU AMD Ryzen 5 5600X 2021/6/23
CPUファン 虎徹Ⅱ 2021/6/23
マザーボード ASUS TUF GAMING B550-PLUS 2021/6/23
メモリ v-color Hynix IC DDR4 4266MHz 64GB 2022/11/30
グラボ MSI GeForce RTX 3080 VENTUS 3X PLUS 12G OC LHR 2022/11/9
グラボ GG-RTX3060-E12GB/OC/DF 2023/8/24
SSD G-Storategy  NV47004TBY3G1 2023/9/1
SSD intel ssdpeknw020t9(Intel SSD 665p 2T) 2020/10/4
HDD ST4000DM004-2CV104 2017/11/11
HDD ST4000DM004-2CV104 2017/11/11
電源 玄人志向 KRPW-GR1000W/90+ 2023/8/24
ガワ Antec P10 FLUX 2021/6/23
DVD-RAM LITEON? 不明
ディスプレイ Acer VG240YUbmiipfx 2022/4/17
液タブ XP-Pen Artist 24 2022/3/11
VRHMD Pimax 5KSuper 2021/11/23

Rinna4BをCtranslate2で軽くしてWindowsで動かした。

一昨日、昨日と頑張ってた「Japanese StableLM Alpha」なのだけど、とりあえず他のから動かしてみて、実績を作る事にした。そのうち、分からなかったところも治せるようになるだろう。

そんなわけで今朝は「rinna/bilingual-gpt-neox-4b-instruction-ppo」をCtranslate2で量子化して動かす事にチャレンジ。

主にこちらを参照に。他にも色々見てたのだけど訳が分からなくなってしまった。

前提条件

  • windows11
  • Python3.10.10
  • 仮想環境はpyenv + venvで作成

# 環境作成
pyenv local 3.10.10
python -m venv .venv
.venv/Scripts/activate
python -V
pip install --upgrade pip
python -m pip install --upgrade pip
#torchのインストール
pip install torch torchvision torchaudio --index-url https://download.pytorch.org/whl/cu118

# ctranslate2インストール
pip install ctranslate2
pip install sentencepiece transformers
pip install protobuf
# 変換
ct2-transformers-converter --model rinna/japanese-gpt-neox-3.6b-instruction-ppo --quantization bfloat16 --force --output_dir rinna-ppo-bf16

変換は、bfloat16にしてみた。この状態で動かしても6G程度。変換で使用したメインメモリは20G程度だったかな?(うろ覚え)応答も十分早く、遅延は気にならなかった。

最終的に動かしたコードは以下の通り。

import ctranslate2
import transformers
import torch
import os

os.environ["CUDA_VISIBLE_DEVICES"] = "0" #GPUを使用する場合はコメントアウトを外す
model='rinna-ppo-int8' #directory of the model

ppo = "rinna/japanese-gpt-neox-3.6b-instruction-ppo"
generator = ctranslate2.Generator(model, device="auto")
tokenizer = transformers.AutoTokenizer.from_pretrained(ppo, use_fast=False)


# プロンプトを作成する
def prompt(msg):
    p = [
        {"speaker": "ユーザー", "text": msg},
    ]
    p = [f"{uttr['speaker']}: {uttr['text']}" for uttr in p]
    p = "<NL>".join(p)
    p = p + "<NL>" + "システム: "
    # print(p)
    return p

# 返信を作成する
def reply(msg):
    p = prompt(msg)
    tokens = tokenizer.convert_ids_to_tokens(
        tokenizer.encode(
            p,
            add_special_tokens=False,
        )
    )

    results = generator.generate_batch(
        [tokens],
        max_length=256,
        sampling_topk=10,
        sampling_temperature=0.9,
        include_prompt_in_result=False,
    )

    text = tokenizer.decode(results[0].sequences_ids[0])
    print("システム(ppo-ct2): " + text + "\n")
    return text


if __name__ == "__main__":
    # import readline
    while True:
        msg = input("ユーザー: ")
        reply(msg)

次にint8でも実行してみた。VRAMは4Gほどか?応答速度は、これも気にならなかった。応答精度も高い。

Japanese StableLM Alpha 7B チャレンジ中

先日公開された「apanese StableLM Alpha 7B」をローカルで動かせないかチャレンジ中。

自分の環境はWindows11+VRAM12Gbなので8bit化しないと動かない。公開されている記事の多くはGoogleColabでそのままでは自分の環境では使えない。Windows11での記事も一箇所見つけたのだけど、公開されているサンプルをそのまま動かしていたので、VRAMも潤沢なのだろう。私が詰まっているポイントでは参考できない。

そもそも私はAIの事を勉強したことはない。昨年のAIブームを受けて騒いでいるミーハーだ。でもまぁこれを機会に自分なりの物を作ってみたいと思っている。langflowとやらを使えば何とかなるんじゃ無いかと思っているんだが。

Windows11ローカルが駄目ならWSL2。そっちの方が楽という呟きもちょいちょい見ているので、駄目ならそっちに行こうと思って居る。

もしくはRinna4Bも作例が多いように思って居るのでそっちから手を付け直しても良いのかも。いや、むしろそっちの方が良くないかなぁ。

ちょっと調べて、考えてみる。

ゲーミングチェア買い換え

これまで使ってたコルセアのゲーミングチェアが壊れた。しばらく前に機械油の匂いがするんだがなんだろう。と思ってたら椅子の高さが下がるようになってしまった。

昨日、とうとう駄目になった。一回高さを上げても10分も経つと戻ってしまう。しゃーないので買うことにした。

コルセアのを買うときに市内のお店巡ったんだけど、かなり苦労したので宮崎市のアプライドに言うことにした。

行って置いてあった椅子に座ってみておおよそ決めたところで店員さんを呼ぶ。聞いてみるとほとんど在庫が無い。候補の一つに在庫があったので買うことに決めた。カラーバリエーションが赤しか無くてちょっともにょったが、まぁいいか。

買ったのはMSIのゲーミングチェア。おおよそ3万円くらいの奴。

お絵かき再開

10日くらいからお絵かきを再開してみた。

折角液タブ持っているし、クリスタもあるし、AdobeCreativeCloudも払ってるし、何かしないと勿体ないだろうと。それにちょっとやってみたいことも有り、そのためには多少なりともレベルアップが必要なのだ。

仕事しながらSNSの時間をガッツリ削って絵に時間を配分している。昨今のTwitterは運営のアレさ、政治関連話題での荒れ具合などでちょっと刺激が強すぎる。脳みそのスタミナをゴリゴリ削られている感じだ。それなら絵に費やした方が余程マシだ。

敢えて情報を入れないというのもずいぶん良いものだと思う。

さて、肝心の絵は輪郭などはまだ手癖が残っていたけど、デッサン面もさることながら、塗りがあっと言う的に駄目と判明。そこをどうにかすべく色塗りの練習中だ。何冊かの本を参考に塗りのイロハを学んでいる。

今のところ、描く度にレベルアップしている気がするので天狗になりつつ頑張りたい。

langChain勉強開始

ChatGPTをAPIを通じて操作するとき、自力で実装するのが難しい・手間が掛かる時に使うライブラリがlangChain。(という理解)

占いアプリ、Misskeyでのボットなんかをやってみたいので勉強することにした。

新しいことをやっておかないとどうしても鈍ってしまうし、一応プログラムを教える講師としては新しい物を追っていないのは恥ずかしい。

コアを作ってしまえば、ガワはある程度どうにかなるはず、と目論んでる。どうなりますかな。

サプリ効果有り

6月30日からサプリを飲み始めた。

約一週間経った。疲れも抜けやすくなった。相変わらず中途覚醒が厳しく眠さはあったりするが。

座っていると蒸れる尻や太もものかぶれが酷く、寝るときにはクリームを塗っていたのだが、それも楽になってきている。

もっと早く呑むようにすれば良かったなぁ。

最近、疲れが取れぬ。夕方気分悪い。

ここんとこ、全然疲れが取れない。

夕方になると気分が悪く、夕飯摂らずに寝る事もある。頻度が高まってる気がする。

そうして、何を変えたかと考えてみれば、サプリ飲まなくなったな、と。収入が落ちる事が分かってたので、2ヶ月で4000円くらいになるサプリ勿体ないってなった。

思い付くのとしては、それかなぁ。
運動はむしろ増えてるし、栄養も特に悪くなってないから。
加齢による回復力の低下の線も有るけど、それはとりあえず最後の手段(?)として。

今日は仕事終わったらサプリ買ってみて様子を見て見ようと思う。