先月2月のWindowsUpdateか1月のものか定かではありませんが、WindowsStartメニューが切り替わって、正直なんか使いづらいのです。
デスクトップPCもそのうち切り替わってめんどくさっとか思っていたのですが、いつまでたってもメイン以外のPCのスタートメニューは昔のままです。まぁそうはいっても使いづらいですが。
気になったときにバージョンを確認しても違いは無いようですが、何なんでしょうこの違いは…。
設定>個人用設定>スタート
の設定項目も同じバージョンで違ってるし(笑)
先月2月のWindowsUpdateか1月のものか定かではありませんが、WindowsStartメニューが切り替わって、正直なんか使いづらいのです。
デスクトップPCもそのうち切り替わってめんどくさっとか思っていたのですが、いつまでたってもメイン以外のPCのスタートメニューは昔のままです。まぁそうはいっても使いづらいですが。
気になったときにバージョンを確認しても違いは無いようですが、何なんでしょうこの違いは…。
設定>個人用設定>スタート
の設定項目も同じバージョンで違ってるし(笑)
最近動けばいいやと、powershellでスクリプトで処理させていると結構楽しくなってきます。
使うほどに気になるのは、細かいところで、エラー処理とか出力内容とか。
ファイルのタイムスタンプ操作で設定前と設定後の値を表示させていたのですが、表示方法をもう少し何とかならないかと。
どうせならpowershell風なテーブル表形式でもと思ったら、結構厄介。
オブジェクトのメンバ変数なら配列に入っていればそれなりになるはずだけど…そうでない場合は?という事で連想配列の配列で対応してみる。
助長ではあるもののこんな感じかな?
$vals = @()
$vals += [ValsClass]::new("new", $CreateTime, $LastWriteTime)
$vals += (@{Name="old"; CreateTime=(Get-ItemProperty $To).CreationTime; LastWriteTime=(Get-ItemProperty $To).LastWriteTime})
$vals += (@{Name="from"; CreateTime=$CreateTime; LastWriteTime=$LastWriteTime})
この配列を表示させるとこんな感じに。
Name Value ---- ----- LastWriteTime 26/03/10 21:58:57 CreateTime 26/03/05 17:21:03 Name old LastWriteTime 26/03/05 17:21:08 CreateTime 26/03/05 17:21:03 Name from
これをSelect-Object * | Format-Table すると
LastWriteTime CreateTime Name
------------- ---------- ----
26/03/10 21:58:57 26/03/05 17:21:03 old
26/03/05 17:21:08 26/03/05 17:21:03 from
[orderd]にしないと連想配列内の順序が保たれなくなるから、ですが、実装の処理上、末尾が最初にくる感じになってるみたいですね。
なので、連想配列の順序を保つために[orderd]@{}形式で配列に格納して表示させると
Name Value
---- -----
Name old
CreateTime 26/03/05 17:21:03
LastWriteTime 26/03/10 22:11:10
Name from
CreateTime 26/03/05 17:21:03
LastWriteTime 26/03/05 17:21:08
良い感じがしますが、これをSelect-Object * | Format-Tableさせてみると
Count IsReadOnly Keys Values IsFixedSize SyncRoot
----- ---------- ---- ------ ----------- --------
3 False {Name, CreateTime, LastWriteTime} {old, 26/03/05 17:21:03, 26/03/10 22:11:10} False {[Name, ol…
3 False {Name, CreateTime, LastWriteTime} {from, 26/03/05 17:21:03, 26/03/05 17:21:08} False {[Name, fr…
となってしまいまいました。Select-Object *の状態をみてみると
Count : 3
IsReadOnly : False
Keys : {Name, CreateTime, LastWriteTime}
Values : {old, 26/03/05 17:21:03, 26/03/10 22:11:10}
IsFixedSize : False
SyncRoot : {[Name, old], [CreateTime, 26/03/05 17:21:03], [LastWriteTime, 26/03/10 22:11:10]}
IsSynchronized : False
Count : 3
IsReadOnly : False
Keys : {Name, CreateTime, LastWriteTime}
Values : {from, 26/03/05 17:21:03, 26/03/05 17:21:08}
IsFixedSize : False
SyncRoot : {[Name, from], [CreateTime, 26/03/05 17:21:03], [LastWriteTime, 26/03/05 17:21:08]}
IsSynchronized : False
といった感じのオブジェクトになっています。これをいい感じにSelectなんとかしてFormatなんとかする方法が無さそうだったので、別の切り口を試してみました。
さらに助長になりそうですが、クラスを定義してオブジェクトの配列にしてみます。
class ValsClass{
$Name
$CreationTime
$LastWriteTime
ValsClass($Name, $CreationTime, $LastWriteTime){
$this.Name = $Name
$this.CreationTime = $CreationTime
$this.LastWriteTime = $LastWriteTime
}
}
$vals = @()
$vals += [ValsClass]::new("old", (Get-ItemProperty $To).CreationTime, (Get-ItemProperty $To).LastWriteTime)
:
$vals += [ValsClass]::new("new", (Get-ItemProperty $To).CreationTime, (Get-ItemProperty $To).LastWriteTime)
これを表示させてみると
Name CreationTime LastWriteTime
---- ------------ -------------
old 26/03/05 17:21:03 26/03/11 00:16:58
new 26/03/05 17:21:03 26/03/05 17:21:08
となってSelectなんとかとかFormatなんとかせず、目的の形で出力できました。
PSObjectとしてやったらもっとスマートな感じになりそうですが、とりあえずこれでいいか。
昨日ボツネタの愚痴を書いたわけですが、ようやく解決しました。
なんとなくPowerShellのHistoryと実際の履歴は別物というのは感じていたのですが、ドキュメントを読み進めていくと、どのように動いているのかが分かりました。
分かったうえで、最初はC#を経由して触らないとダメかな?と考えてヘルパーとしてスクリプトモジュール(.psm1)でも作っておくのが便利かな?とか。
でも、もっと単純でした。
[Microsoft.PowerShell.PSConsoleReadLine]::AddToHistory()
を呼び出すだけで単純にPowerScriptのコンソール内で動いているPSReadLineの履歴に入れることができました。
これで、一連の動作内でまとめたスクリプト内で呼び出している内容を履歴に入れて、部分的に再実行させることがしやすくなりました。デメリットとしては不要な履歴が追記されるので履歴のトルグで遡るときに邪魔になりますが、現段階では処理を取りまとめただけなのでデメリットを感じることは無いでしょう。
このメソッドの実装はあくまでPSReadLineの履歴に記録されるだけなので、PowerShellのHistoryには干渉していないので、そこまで反映させる場合は別途Set-Historyなどを行う必要があるでしょう。
ただし、(Get-PSReadLineOption).HistorySavePathには保存されているようなので、それを回避する場合はもっと何か考えないとダメかも。
あと、コンソール以外の実行状態(VisualStudioCodeのコンソールとか)だとPSReadLineが実装が違っていてエラーがでたり、するのかな?
まぁスッキリできたと。
ボツネタというか、四方八方試した感じだとダメそうという結果に…
コマンドライン履歴って便利だなぁと感じる一方、欲が出ると際限のない欲にかられる機能と思われますが、それでもPowerShellで結構いい感じに便利にはなってると思います。
ふとしたタイミングで[F2]キーを押して入力履歴が表示されてなんかスゴっ!とか思ったり。
それでなくても補完機能もそれなりに便利な感じで、ある定型の一連の処理があったとき、
PS > 出力ディレクトリの設定 T:\
PS > 加工処理するファイル群 C:\User\siriuth\documents\シーン1_*
PS > 加工処理するファイル群 C:\User\siriuth\documents\シーン2_*
PS > 加工処理するファイル群 C:\User\siriuth\documents\シーン3_*
なーんて処理をし続けてても、「出」と入力するだけで
PS > 出力ディレクトリの設定 T:\
と補完候補が表示された状態になるのはとても便利だったりします。
スクリプトに日本語を使っちゃうのはどうかとは思いますが(笑)
で、いろいろと作業が増えてくるとこいつらの処理の前後にどんどん作業が追加されていくわけです。臨機応変というより気分によったり状況に応じて。
そうするといくつかの処理を一纏めにしたり分割したりを繰り返していくわけですが、そうすると、アンカーの時間設定などが引数として内部に隠れてたりするわけです。
その値だけを微調整したいなぁ…なんて時に、コマンドラインの履歴で、例えば[↑]キーを押して表示されると便利だなぁ…と、思って調べてみると「Add-History」とか「Set-History」とかあるわけです。
時間ができたので色々やってみたのですが…惜しいところまではいくんですよ(笑)Get-Historyとかで表示させると確かにHistoryには載っている。ただ、コマンドラインの[↑]とか[↓]とか押しても反応しない…(Get-PSReadLineOption).HistorySavePathのファイルを見ても追記されていない。まぁそうだよねぇw
で、PSReadLineの方を見てみると、なんか色々できそうな上に拡張もできそうという事実。
でもそうじゃないんだ。今やりたいことは、、、、
という事であきらめてコピペできる様に表示させるだけで我慢しておこうかと思います😢
もうタルすぎる…
ちょいちょい地味に何かの処理がリアルタイム処理を邪魔してラグる…。
Windowsログを見る限りこれと言った痕跡はないものの、時刻設定などでエラーがチラホラ。
Wifiやルータ周りの設定を見直して、ルータなどの再起動は何度か行ってはいるものの、なぜか自動再接続されない状態になっていた。
このPC以外はこれと言った問題は無さそうなのですが…
で、とりあえず問題なさそうなので放置してたらセキュリティーアップデートがかかってて、終わった10分後ぐらいにラグ発生。ログには原因特定に至るものはないし…困った。
とりあえずネットワークから切り離してスタンドアローン状態にしましたが…なんだろうねぇ…このPCで初めての現象。
一番ありえそうなのが、昨日買ったUSB-HUBからノイズが出るようになって電波が不安定なのかな?
ラグるタイミングはWifiの接続が切断マークに変わったときに発生してるのを目撃したのだが…なぜかそのときは数十秒でWifi再接続されていた。わからんw
昨日か一昨日か夜中にgithubをチェックしたときにv3.12.0がリリースされているのを見て、いつも通りビルドしておこうかな…と思っていました。で、時間が取れたので今見てみると20時間前に3.12.1がリリース状態になっていたらしく。
主な変更点としてはUI関連の調整はもちろんの事、スピーチ系のバックエンドの強化や実行環境整備が主な変更点となっていました。
v3.12.1で気になるのはlocalai-botがllama.cppのベースのバージョンをアップデートしている点でしょうか。
v3.11.0で少しだけチャットの出力が乱れているように感じたのでllama.cppのバージョンが変更されているのは気になります。
先日、特定のUSBポートで接続できなくなっていたドライブですが、USB2.0経由のUSB-HUBに接続してとりあえず使っていましたが、さすがにUSB2.0のスピートでは厳しいので、書き込みキャッシュを有効にしてみた。しかし、あまり体感速度が上がらなかったので元に戻そうとしたところ、こんなエラーが。
このエラーが出た後、プロパティーのページではこの状態でドライブの取り出しを行ってから物理的にUSBをさしなおすと、そのポートでこのドライブが認識できない状態に陥りました…。
まだ、USB-HUBの空きポートがあったのでもう一度別のUSBポートで繰り返してみましたが、同じ状況になりました。
再起動しても認識しなくなったポートはそのまま認識しないという状況に。
そもそも書き込みキャッシュが有効になってるかどうかも怪しい状況ですが、とりあえずデバイスマネージャを開いて、USB-HDDに関連するものをアンインストールしてみました。
以前、これを行って状況は改善しなかったので正直あまり期待はしていませんでしたが…
なぜか今回はこれで状況が改善してしまいました。
詳細に説明すると、デバイスマネージャを開いて、メニューの 表示>デバイス(接続別)を選択して、表示方法を接続別にします。さらに 表示>非表示デバイスの表示 をチェック状態にして手持ちの環境だと
コンピュータ名\ACPI x64ベース PC\Microsoft ACPI-Compliant System\PCI Express ルートコンプレックス\Intel(R) USB 3.0 eXtensible Host Controller - 1.0 (Microsoft) \USB ルート ハブ(USB 3.0)
以下にぶら下がっている
USB 大容量記憶装置\BUFFALO External HDD USB Device
をアンインストールしてからUSB 大容量記憶装置をアンインストールしました。(正式な操作方法が分からないので、末端から順番に削除した形です)
(さらに、これまで接続した後認識しなくなったポートで残っている、PC本体のUSB 3.0にぶら下がっているデバイスと、USB 2.0のポートにぶら下げたUSB-HUB経由のデバイスをすべて削除しました)
使用していて問題となっているデバイスが複数あって判断できない場合は中を見て詳しく調べたうえでアンインストールする必要がありますが、間違ったとしても再度USBを指しなおすか、再起動すれば自動的にデバイスドライバはインストールされ、ドライブ文字列が変わる程度だと思います。
そもそも書き込みキャッシュを一度有効にすると無効にできないという状態ではあるものの、認識しなくなったUSBポートでも再度認識できるようになりました。
そろそろかなと思ってみてみたんですが、6時間前にリリースとありました。
主なポイントは、Realtime Audio, Music Generation UI, ASR (Speech-to-Text)とTTS のバックエンドサポートという事です。
localAIを見ていると精力的な取り込みを行っているので流行などを意識しやすくなっている気がします。
ちなみに…前回の.1バージョンは本体のビルドとllama-cppぐらいしかビルド行っておらず…(笑)
色々な感覚が分かってきたので、もう少しいろいろなbackendのUbuntu環境でのビルドが行えるような気はしてます。
てか、今旬なのはローカル環境のネットワーク上の名前解決だったりします(笑) 全然AIと関係ないレベルで気になって仕方がなくw
問題がないとあまりログとか見ませんが、切り貼りしているテキストにチラホラ日時が入っていてそのうちやっておかなきゃなぁ…とは思っていたのですが(笑)
ubuntu Server 20.04.3 LTS ロケールとタイムゾーンの設定
こちらの内容で設定指定しておきました。
siriuth@b4turbo-2:~$ localectl status
System Locale: LANG=ja_JP.UTF-8
VC Keymap: (unset)
X11 Layout: us
X11 Model: pc105
siriuth@b4turbo-2:~$ sudo localectl set-locale LANG=ja_JP.utf8
siriuth@b4turbo-2:~$ date
Wed Feb 4 04:04:26 PM UTC 2026
siriuth@b4turbo-2:~$ timedatectl status
Local time: Wed 2026-02-04 16:04:43 UTC
Universal time: Wed 2026-02-04 16:04:43 UTC
RTC time: Wed 2026-02-04 16:04:43
Time zone: Etc/UTC (UTC, +0000)
System clock synchronized: yes
NTP service: active
RTC in local TZ: no
siriuth@b4turbo-2:~$ sudo timedatectl set-timezone Asia/Tokyo
siriuth@b4turbo-2:~$ timedatectl status
Local time: Thu 2026-02-05 01:05:14 JST
Universal time: Wed 2026-02-04 16:05:14 UTC
RTC time: Wed 2026-02-04 16:05:14
Time zone: Asia/Tokyo (JST, +0900)
System clock synchronized: yes
NTP service: active
RTC in local TZ: no
以下 ダメだった参考
こちらを参考にして、まずは時刻を設定を…とやってみたのですが、
siriuth@b4turbo-2:~/landscape-client24.02$ ntpdate -s -b ntp.jst.mfeed.ad.jp Command 'ntpdate' not found, but can be installed with: sudo apt install ntpsec-ntpdate siriuth@b4turbo-2:~/landscape-client24.02$ sudo apt install ntpsec-ntpdate
タイムゾーンがせっていしきれていないのので…
ntpdate -s -b ntp.jst.mfeed.ad.jp
をやってもローカル時間が変わらないという(笑)
なので、
Linux – Ubuntu でロケールを日本に設定する方法について詳しく解説 https://pystyle.info/linux-set-locale/
こちらを参考に、
sudo apt install -y locales sudo sed -i '/^# *ja_JP.UTF-8 UTF-8/s/^# *//g' /etc/locale.gen sudo locale-gen sudo update-locale LANG=ja_JP.UTF-8
ローカルを設定しても変わらず…
pythonスクリプトなら結構楽に色々できそうと思っていましたが、思っていた以上に面倒くさい状態のようです。
なんでライブラリ的なパッケージを導入してるんでしょうかね…スクリプトごときに…
と、愚痴りますが、とりあえずubuntuに導入されているパッケージがなにか不具合を起こしていることを確認できました。
最初はscript内に存在するコードを直に実行して何とかしようとしましたが、インストールしているパッケージのモジュールが呼び出されてしまうので /usr/bin/landscape-sysinfo を実行したものと同じ結果になりました。
スクリプトを弄りながら確認を始めましたが、結局のところ、landscape-sysinfo.pyで行ってることを実際に手で行ってみることが一番ゴールに近かったです。
結果がこちら
siriuth@b4turbo-2:~/landscape-client24.02$ python3 Python 3.12.3 (main, Jan 8 2026, 11:30:50) [GCC 13.3.0] on linux Type "help", "copyright", "credits" or "license" for more information. >>> import sys >>> from twisted.internet import reactor >>> from landscape.sysinfo.deployment import run >>> run(sys.argv[1:], reactor) RUN!!!!!! System load: 0.0 Usage of /: 81.4% of 465.88GB Memory usage: 2% Swap usage: 0% Temperature: 33.0 C Processes: 149 Users logged in: 1 IPv4 address for wlp1s0: XXX.XXX.XXX.XXX IPv6 address for wlp1s0: XXXX:XXXX:XXXXX:XXXX:XXXX:XXXX:XXXX:XXXX <Deferred at 0x728e0be1db20 current result: None> >>> quit() siriuth@b4turbo-2:~/landscape-client24.02$ sensors acpitz-acpi-0 Adapter: ACPI interface temp1: +27.8°C coretemp-isa-0000 Adapter: ISA adapter Package id 0: +31.0°C (high = +105.0°C, crit = +105.0°C) Core 0: +26.0°C (high = +105.0°C, crit = +105.0°C) Core 1: +26.0°C (high = +105.0°C, crit = +105.0°C) Core 2: +27.0°C (high = +105.0°C, crit = +105.0°C) Core 3: +27.0°C (high = +105.0°C, crit = +105.0°C) siriuth@b4turbo-2:~/landscape-client24.02$ sensors acpitz-acpi-0 Adapter: ACPI interface temp1: +27.8°C coretemp-isa-0000 Adapter: ISA adapter Package id 0: +32.0°C (high = +105.0°C, crit = +105.0°C) Core 0: +28.0°C (high = +105.0°C, crit = +105.0°C) Core 1: +28.0°C (high = +105.0°C, crit = +105.0°C) Core 2: +28.0°C (high = +105.0°C, crit = +105.0°C) Core 3: +28.0°C (high = +105.0°C, crit = +105.0°C) siriuth@b4turbo-2:~/landscape-client24.02$ sensors acpitz-acpi-0 Adapter: ACPI interface temp1: +27.8°C coretemp-isa-0000 Adapter: ISA adapter Package id 0: +33.0°C (high = +105.0°C, crit = +105.0°C) Core 0: +26.0°C (high = +105.0°C, crit = +105.0°C) Core 1: +26.0°C (high = +105.0°C, crit = +105.0°C) Core 2: +26.0°C (high = +105.0°C, crit = +105.0°C) Core 3: +26.0°C (high = +105.0°C, crit = +105.0°C) siriuth@b4turbo-2:~/landscape-client24.02$ sensors acpitz-acpi-0 Adapter: ACPI interface temp1: +27.8°C coretemp-isa-0000 Adapter: ISA adapter Package id 0: +31.0°C (high = +105.0°C, crit = +105.0°C) Core 0: +26.0°C (high = +105.0°C, crit = +105.0°C) Core 1: +26.0°C (high = +105.0°C, crit = +105.0°C) Core 2: +26.0°C (high = +105.0°C, crit = +105.0°C) Core 3: +26.0°C (high = +105.0°C, crit = +105.0°C) siriuth@b4turbo-2:~/landscape-client24.02$ /usr/bin/landscape-sysinfo System load: 0.03 Usage of /: 81.4% of 465.88GB Memory usage: 2% Swap usage: 0% Temperature: 46.0 C Processes: 148 Users logged in: 1 IPv4 address for wlp1s0: XXX.XXX.XXX.XXX IPv6 address for wlp1s0: XXXX:XXXX:XXXXX:XXXX:XXXX:XXXX:XXXX:XXXX siriuth@b4turbo-2:~/landscape-client24.02$
実行した後にsensorsで確認したら2度ほど違ったので、何度か繰り返したら同じ温度になりました…結構シビアに温度が変わるんですね…
とは言え、最後に /usr/bin/landscape-sysinfo を実行すると10度以上違う数字になったので、まぁバグでしょね…ubuntuで使用されているソースを見て確認しても多分原因はわからなさそうですし、この件はこれで終了でいいかな。解消はしないけど(笑)
ちなみに「RUN!!!!!!」はtemperature.pyスクリプト内でprint()を入れて確実に実行されているか確認するためのデバッグメッセージです(笑)
先日Windows Updateがかかっていたので気になっていたのですが、どうもエクスプローラの動きが怪しいです。
開いているフォルダ内のファイルが増えたときに更新されず、毎回F5キーを押すなどして更新してあげないとファイルが表示されなくなりました。
今までも、途中で更新されなくなったりすることはあったのですが、現在は再起動しても何しても更新されなくなりました。
とは言え、更新されるパターンもあります。開いているフォルダ内のファイルが全て削除された後に、ファイルが増えるパターンの場合は更新されています。
今だとどうだかわかりませんが、フック周りの処理が悲しいことになってそうです。
さらに、別のPCではUSB-HDDが本体のポートで認識されなくなりました。HUBをかませると認識するという、謎な現象が起ってしまいました。いままでも同様の状態に陥ったことはありますが、今回はハッキリとWindowsUpdateがかかったあとからUSB-HDDが使えなくなっている…。いままでもWindowsUpdateが原因だったのかなぁと思うと非常に腹が立ちますが(笑)
(2026/02/12追記 後日、HDDを認識できるようになりました。→認識しなくなった USB-HDDドライブ を再度接続できるようにする方法? )
正直、ドライブが逝ったかと焦りましたが、USBを差し込んだ後にUSBデバイスを認識しなくなってしまったので…。昔は関連するデバイスドライバをアンインストールとか削除すれば認識してくれたのですが、Windows11だとこの状態から認識してくれるようになってくれないんですよね…。
USB周りのデバイス状態を詳しく調べるしかないのかな…それかいっそのこと再インストールとか?…WindowsUpdateの前の状態に復元でもいいのかもしれないけれど…
ターミナルでログインした直後に表示される温度。
Welcome to Ubuntu 24.04.3 LTS (GNU/Linux 6.14.0-37-generic x86_64)
* Documentation: https://help.ubuntu.com
* Management: https://landscape.canonical.com
* Support: https://ubuntu.com/pro
System information as of Tue Feb 3 04:46:24 AM UTC 2026
System load: 0.07
Usage of /: 81.4% of 465.88GB
Memory usage: 2%
Swap usage: 0%
Temperature: 44.0 C
Processes: 153
Users logged in: 0
IPv4 address for wlp1s0: XXX.XXX.XXX.XXX
IPv6 address for wlp1s0: XXXX:XXXX:XXXX:XXXX:XXXX:XXXX:XXXX:XXXX
* Strictly confined Kubernetes makes edge and IoT secure. Learn how MicroK8s
just raised the bar for easy, resilient and secure K8s cluster deployment.
https://ubuntu.com/engage/secure-kubernetes-at-the-edge
Expanded Security Maintenance for Applications is not enabled.
13 updates can be applied immediately.
To see these additional updates run: apt list --upgradable
1 additional security update can be applied with ESM Apps.
Learn more about enabling ESM Apps service at https://ubuntu.com/esm
Last login: Tue Feb 3 04:37:42 2026 from XXX.XXX.XXX.XXX
siriuth@b4turbo-2:~$
この温度は一体どこから取ってきているのだろうと気になっていました。
まともにLinuxがインストールできていればファイルシステムのどこからかは何らかの数字は拾えるはずです。
実際に見てみると
siriuth@b4turbo-2:~$ cat /sys/class/hwmon/hwmon1/temp1_input
34000
34度
他にもいくつかあるようなのでツールをインストール
sudo apt install lm-sensors
sudo sensors-detect
設定してあげると、ファンや電圧も取得できるらしいので設定してみましたが、現状では温度しか拾ってこれませんでした。あと、何度も設定を行って無意味にyesのみ繰り返していくと最後に/etc/modulesにチップドライバーの情報を追記するので、何度も行うと同じ値が何度も追記されていくという…(笑)
siriuth@b4turbo-2:~$ sensors
acpitz-acpi-0
Adapter: ACPI interface
temp1: +27.8°C
coretemp-isa-0000
Adapter: ISA adapter
Package id 0: +35.0°C (high = +105.0°C, crit = +105.0°C)
Core 0: +30.0°C (high = +105.0°C, crit = +105.0°C)
Core 1: +30.0°C (high = +105.0°C, crit = +105.0°C)
Core 2: +30.0°C (high = +105.0°C, crit = +105.0°C)
Core 3: +30.0°C (high = +105.0°C, crit = +105.0°C)
こんな感じになりました。
やはり30度程度で40度越えの数字は表示されず…いったいどこの温度なのでしょう?
ログイン時に実際に表示されているものは
sudo cat /etc/update-motd.d/50-landscape-sysinfo
で、中を見ると、landscape-sysinfoが実行されたりキャッシュが表示されたりしている感じですが、デスクトップ版ではこのlandscape-sysinfoはインストールされず、別途インストールする必要があるようです。
Ubuntuログイン時に表示されるシステム情報を出力するコマンド
sudo apt install landscape-common
で、結局、landscape-sysinfo内でどうやって温度を取ってきているか?という疑問にたどり着くわけですが…。
とりあえずgit-hubを検索したらそれっぽい感じの
https://github.com/canonical/landscape-client
があったので、ソースを見てみるとpythonみたいですね。
バージョンの違いによる差はあまりないようで…一応バージョン確認してみると
siriuth@b4turbo-2:~$ /usr/bin/landscape-sysinfo --version
24.02-0ubuntu5.7
となっているので、24.02のタグに切り替えてみてみましたが…やってることは1000で割って単位にCを入れてその中の最高値を取得しているだけ。
Landscape-sysinfo shows wrong temperature in Ubuntu Server
(個人的にあまり信用していない)Redditでも出てきますが(元ネタはおそらく…
日付を見ると5年前から上がってます。見る限りpython3で実行するとちゃんとした値が返ってくるものの、実際にlandscapeを動かすと高い温度が返ってくるという。
しかし、解決策はないみたいです。
考えづらいですが、瞬間的にどこかの温度だけ高温になってしまうんでしょうかね?
珍しいバージョンアップが昨日あったようです。
主な追加機能としてQwen3-TTSに対応したという事です。細かい点は全く分かりませんが…。
3.10.0のbackendもllama-cppぐらいしか通していませんでしたが、これから3.10.1に切替て遊んでみましょうか…
LocalAIの小数点のバージョンアップは大体1ヵ月ぐらいなんでしょうかね。
3.10がタグ付けされたのは昨日知ったのですが、本体のビルドは何の問題もなく済むようになりました。backendはまだllama-cppぐらいしか行けてない感じですが、それでもdockerを挟まなくていいのと、CPUと機GPUを同時に使う形になる様に小手先の調整をしたりして試しています。
バージョンアップは能的に何が変わっているというのは毎回悩みどころだったりしますが、今回は各dockerイメージが統一化しているようです。(すでに使ってないのでわかりませんが)
今のところ、できる限り仮想化させずに動作させている都合上、結果的にbackendsからインストールする形ではなく、backend内のビルドスクリプトを整備して起動時にLOCALAI_EXTERNAL_GRPC_BACKENDSに設定して動作させる形で落ち着いています。
なろう小説で数年前に上がっているものは読み切ったのですが、設定は面白いのですがいかんせん話が長く(笑)
嫌いじゃないのですが、アニメ化されたという事で見た感じガッツリ低予算アニメで残念でした。
とは言え、2話目を見始めて違和感が…音はしているのだけれど声がよく聞き取れず、ボリュームを上げようとしたところ通常のボリュームよりは大きめになっている…。しばらく真面目に見ているとどうやらBGMの音量が大きくて音声をつぶしている感じに気づきました。音楽だけれなく、背景音なども結構うるさい。無意味そうな虫の音なども結構うざく(笑)
イコライザーで少し弄ってやらないとまともにきいていられないかも。
ヌルヌル動いて作画崩壊も起こさないで綺麗なアニメの方がいいとは思うが、低予算でももう少しなんとかしてほしいレベル。そしてこの音のバランス…いろいろ不安しかありません。
ポーション、わが身を助けるなんて結構紙芝居アニメでの最終形態に近い気がする。
LocalAI 3.9.0でテキストのチャットは安定しているようなので、せっかくなのでいろいろ遊んでみようかと。
最初のころ(3.6.0ぐらいかな?)テキストファイルやPDFや写真をLLMに提示したときの反応を試したことがあったものの、写真に関してあまり上手くいかず、何が引っ掛かっているのか良く分からず、その後、3.7.0や3.8.0ではWebUI上のチャットインターフェイス(ChatterBox?)がうまく機能していなかったので放置していました。
とは言え、現状では必要なmmprojはgemma3のものしか自動的に設置されないので、LLMにマルチモーダル機能があったとしてもllama-cppでggulを使って動かすと別途mmprojが必要になるという。元となるモデルファイルやsafetensorsファイルを直接動かす形であればすべてがそろっているのでそれをllama-cppから直接使えればと考えましたが、現実的には元となるファイルから変換してmmproj~.ggulファイルを作成する形になっているようですね(できるのかどうかはやってみるまで分かりませんが)。
とりあえず、手元にあるものだけで動かせるもので動かしてみると…何も考えずに画像の認識をしてくれました。試したモデルはgemma-3-4b-it-qatとかgemma-3-12b-it-qatで試してみました。どちらもあまり差は感じませんでした。ただ、画像認識後の出力時に色々な制限がかかり答えてくれなかったりすることがありました。(例えば女性の写真などを認識させたうえでバストサイズなどを聞いた場合は、推定であっても直接的な質問では答えてくれませんでした。理由は個人情報のため、答えられない。といった感じだったかな?性的にどうのこうのより、撮影された本人が聞かれて直接答えたくないような質問は返さないような印象を受けました。)
画像認識に関しては予想していた以上にまともに返されました。例えば適当な場所で撮影した写真を見せても、それなりに撮影場所、此処の被写体、撮影時の状況を認識してくれました。極端な外れは無さそうかな?というのが感想です。
年末27日に発生した関越道の事故現場の写真を使ってみましたが、例えばトラックの台数や乗用車の台数などザックリと数えたりしてくれましたし、燃えてしまった車の台数も推定で構わないと条件付けしたところそれなりに数えてくれました。
あと、カスタマイズされたモデルでも試したのですが、黒人の顔写真を用意しましたが、ちゃんと黒人と認識しました。一時期ゴリラと区別ができないと話題になっていましたが、識別していて、「ゴリラではないのですか?」と聞いたところちゃんと違う点も説明してくれました。
これだけの認識力があるなら、大量の写真の自動整理も手軽に行えそうです。
PDFも画像が含まれたPDFを要約してもらったのですが、結構いい感じで要約してくれました。下手なナナメ読みよりしっかりと要約してくれるので、大量のPDFファイルの中から何かを探すときにも使えそうです。なにより、PDFってファイル名が良く分からないものが多かったりするのでこの辺の機能も単純に便利そうです。
それとは別に、他のモデルも再度触りなおしてたりします。IBMのモデルを触ってみましたが、以前よりもっとまともに反応が返ってくるような?3.6.0の頃は結構ボロボロだったのかな?gemma3と比べて知識ベースが結構しっかりしてくれている感じです。モデルサイズによって知識の深さは確実に違うのですが、それでもgemmaよりまともに(学習時点での)日本の総理大臣とか答えてくれます。ただ…花高々と経歴まで紹介してくれるのですが、A部元総理は共産党出身らしいです…平気で嘘ついたりするので全く信用なりません(笑)
cpu単体で動かせるようにビルドまでたどり着いた感じです。
ビルドと言っても、pythonなので実行環境の構築となるわけですが、oneAPIを使用する形にするとビルドスクリプトが通らなくなります。おそらくoneAPI周りのアップデートをかけてしまっているため、必要なパッケージがそろわずpythonの実行環境を作ることができませんでした。
ビルド中に色々見ていくと不安要素とか、制約条件やらが明らかになるにつれて絶望しかないのですが(笑)
vllmの利点は実行時に使用されるkvキャッシュの効率が(各段に)良くなるという点。
難点としては、使用メモリがほぼオンメモリになる点。
さらなる懸念としてインテル系のcpuの記載を見るとxeonしか見当たらないし、要件にCPU flags: avx512f (Recommended), avx512_bf16 (Optional), avx512_vnni (Optional)とあり、必須ではないけれども…(笑)
表現としては
Required, Recommended, Optional
必須、推奨、任意
(参照)
で、必須ではないから動かせるという認識なのですが…アッテマスヨネ?
そして実際に実行してみると、実際に扱えるファイルがgguf形式ではなく、その前の状態のファイル群だということ…早速用意して実行すると、モデルを読み込んでいくだけでシステム上のメモリがガンガン減ります。ここで初めてllmの動作にメモリが必要なんだと実感しました(笑)
そしてトドメに
Unexpected err=RuntimeError("Engine core initialization failed. See root cause above. Failed core proc(s): {'EngineCore_DP0': -9}"), type(err)=<class 'RuntimeError'>
というメッセージとともに処理が打ち切られました。
2度ほどgeminiに聞いてみたのですが、確実にメモリーが足りていなく、OSレベルでOut of memory: Killed processとして処理されてしまっている感じです(笑)
geminiから提示されている回避方法として、量子化されたものを使用する。とか実行時のメモリーをできる限り抑える方法が提示されました。が、どちらも無意味っぽい。
まず量子化されたものというのが、現状ではCPUだけではAWQ GPTQ INT8(W8A8)(参照)しかサポートされておらず、ggufファイルはサポートされていないという点。(genma3nのggufファイルを読み込ませたときのエラーメッセージはgemma3nのgguf形式は読み込めないと出たので、もう少し古いタイプのggufファイルならいけると思っていたのですが、調べてみるとだめそう)ちなみに、IntelGPUも同様にggufはダメなので、たとえ実行環境をそろえても手持ちのファイル群は使えそうにない。
小さいモデルで量子化されたファイルを用意してあげればいい感じで動いてくれるのかな?