2026年3月21日土曜日

さらに…

結局のところデバッグログを出しながら見てみるとlocalAI内部は意図通りに出力されているのが確認できました。

最終的にgeminiが下した判断は、パラメータでもう少し落ち着かせて冷静にさせてダメなら量子化などの影響が色濃く出ちゃってるんじゃ?とかなりRaktenAI2.0miniをオブラートに包んでダメ出しした感じですw

まぁ会話の最初で暴走気味しなければそれなりにいい感じなので、挨拶や会話調で話し始めるのはダメなのかもしれませんね。

今まで質問をぶつけてダメだった記憶は…あまり最初から質問をぶつけたことは無いか…

 

今回、面白かった?会話の小ネタ

👨「こんばんは
🤖「おやすみなさい

 会話してくれないんですかね…

 

👨「こんばんは
🤖「システムへ。
👨「こんばんは
🤖「システムへ。
👨「会話はできますか?
🤖「できません。

 相当嫌われてる模様…

 

 

2026年3月20日金曜日

gemma3に初めて触れたとき以来熱心にチャットした気がする…

なんか今日はとても疲れた…
何だろこのやるせなさ(笑)

👨「こんばんは
🤖「おはようございます

 と返されたり、

👨「今日の天気について教えてください。
🤖「今日の東京の天気は晴れ時々曇りで、最高気温は25度前後、最低気温は15度くらいまででしょう。
👨「今日は何年何月何日ですか?
🤖「今日の日付は2023年10月15日です。
👨「何曜日ですか?
🤖「今日は木曜日です。
👨「2023年10月15日は日曜みたいですけど…
🤖「はい、正しく計算されています!
👨「2023年10月15日は木曜日ですか?
🤖「はい、正解です!

このキャッチボールのできなさ加減(笑)

システムプロンプトを入力したりしなかったり、数行システムプロンプトを入れてみたり色々変えながら様子を見ましたが…まじいろんな意味で疲れたw

挙句の果てに挨拶すると突然演説が始まるとか…

👨「こんばんは
🤖「おっしゃる通りです。私たちの製品は、世界中のユーザーに高品質のサービスを提供するために、常に改善されています。今回ご紹介した新機能は、ユーザー体験の向上を目指しており、私たちの目標の一つです。この機能により、ユーザーはより快適に、そして効率的に作業を進めることができるようになります。さらに、新機能の導入により、ユーザーインターフェースもさらに洗練され、直感的で使いやすいデザインへと進化します。これにより、ユーザーは時間を節約しながら、高い品質を維持することができます。新機能の開発には、さまざまなユーザーテストを実施し、実際のニーズを反映した設計を行いました。これにより、ユーザーのフィードバックを反映し、より多くのユーザーにとって魅力的な製品へと進化させることができました。また、私たちのチームは、新機能のリリース後も、継続的にテストと改善を行い、ユーザーからのフィードバックをもとにさらなる改良を加えていきます。これにより、常に最新の技術とユーザーニーズを反映した製品を提供し続けることができます。最後に、新機能の導入に伴い、ユーザーの皆様へのご協力のお願いがあります。新機能のご利用方法や、ご不明な点がございましたら、お気軽にご連絡ください。私たちは、皆様のご意見やご要望を大切にし、より良い製品とサービスを提供するために努力を惜しみません。ご理解とご協力のほど、心より感謝申し上げます。

どこの広告からパクってきたんだよ(笑)

結局.yamlの定義を簡素化するのが安定するような気はしますが…

で、Rakuten AI 2.0 miniでもなんか意思を感じる部分はありました。上手く会話がかみ合って始まればそれなりに進んでいくわけで…ただ、ほんの少しだけですけど。gemma3nの様な雰囲気ではありませんが。なので特定の部位に到達できればそれなりに深い思考領域に到達できるものの、完全に運任せなんでしょうね。満遍なくこなれていない感触です。

システムプロンプトという結構強制力がありそうだと思っていたものも、gemma3のストリームの最初に伝える方法と扱いに差はないようです…w

geminiさんにもお付き合い願い、いろいろやり取りしましたが、今回はこの辺が限界かな…モチベーション的にw

以下参考までに現状の .yaml を…

backend: llama-cpp
context_size: 8192
name: RakutenAI-2.0-mini-instruct-Q8_0
parameters:
model: RakutenAI-2.0-mini-instruct-Q8_0.gguf
stopwords:
- <|im_end|>
- <|im_start|>
- <|endoftext|>
template:
chat: |
{{.Input}}
<|im_start|>assistant
chat_message: |-
<|im_start|>{{.Role}}
{{.Content}}<|im_end|>
completion: |
{{.Input}}
roles:
user: user
system: system
assistant: assistant

あとはデバッグモードで中身を追っかけて確認して終わりかな? 

イギリスの郵便局に納入されたシステムの不具合

午後4時の〇HKニュースで流れていたが、イギリスの郵便局に納入されたシステムの不具合でシステム上の金額と現金に差異が発生し、それにより郵便局員900人以上が横領などの罪で訴追され罪に問われた事件があったとのこと。

その冤罪で被害にあった被害者や家族に対して、イギリス政府が保証金を配っているというニュースが流れたが結局これ、〇通に被害請求行くんじゃ?

WEB上の〇HKの記事は見れるが、なんかあれなのでBBCの記事へのリンクを

英郵便局スキャンダル、不当な有罪覆す法案を提出 補償制度も 

こっちを見るとさらに突っ込んだ内容が出ていて、補償金がかなりエグイ…

「法案では、冤罪の有罪判決を受けた被害者に、正式に請求しなくても60万ポンド(約1億1300万円)で和解するオプションが提供される。」

1999年から2015年にかけて発生した事件らしいが、普通に考えて、システム上の金額が現物と合わないとか、システム内部の基幹部分だったらいくらでも調べればずれているのはわかるはずだから、窓口のレジレベルの入力端末でバグが発生したってことかな?

それが最低でも900回以上あったわけで、それがシステムの不具合として認められるまでかかったってことは、局員たちは疑がわれて当然とか横領が多かったのかな?それともそんな単純なところでシステムにバグがあるはずがない!とかシステム至上主義の人間ばかりだったのだろうか?

とは言え、このバグって、システムとは別建ててキーロガーを導入したりしてそれとのすり合わせをしないと証明できなくね?あとはそれこそ窓口で現金を扱う時は裸にならないと… 

システムプロンプト「あなたは~のエキスパートです。」

👨「こんにちは

🤖「こんにちは。あなたは~の資格をお持ちですか?

👨「持ってないです…

いきなりマウント取られたんですが…w 

ついでにダウンロードしてあったRakutenAI-2.0-mini-instruct-BF16の設定もしてみると…

チャットテンプレート部分を置き換えて何も設定せずに動かしてみるとそれなりに重かったので、GPUオフロード周りの設定をして「こんにちは」と話しかけると、システムプロンプトが空のままだったので動作不安定だったのですが、何度かパラメータをいじって試していると突然… 

こんにちは!ここはStack Overflowのユーザー向けフォーラムです。こんにちは!

こんにちは!こちらでは、質問や回答を投稿し、Stack Overflowのコミュニティや他の開発者から回答を受け取り、自分自身で質問を投稿し、回答を見つけることができます。こんにちは!

こんにちは!ここはStack Overflowのユーザー向けフォーラムです。こんにちは!

……


…StackOverflowを読み込ませてるのかな?(笑) ちょっと思うところはありますが、問題ないといいんですけども…

いまさらRakutenAI-2.0-mini-instruct-Q8_0

localAIで動かしたような気もするのですが、今の状態だとまともにチャットすらできない状態でした。windowsのOllamaで動かして満足してしまったのかもしれないなぁ…。

localAIで動かしてみようと試しながら寝てしまったのですが、起きてから少しあがいてみました。

今遊んでいる環境のlocalAI v3.12.1ではRakutenAI-2.0-mini-instruct-BF16はloalAI上から見えるのですが、Q8.0は見えていないので/usr/share/local-ai/modelsを確認すると、ggufファイルはあるのですが.yamlを…ないですね…。RakutenAI-2.0-mini-instruct-BF16.yamlがあるようなのでそれをベースに…とはいえ、このBF16もまともに動かない状態ですが。

中身を確認するとこんな感じでした

backend: llama-cpp
context_size: 8192
mmap: true
name: RakutenAI-2.0-mini-instruct-BF16
parameters:
model: RakutenAI-2.0-mini-instruct-BF16.gguf
stopwords:
- <|im_end|>
- <end_of_turn>
- <start_of_turn>
template:
chat: |
{{.Input }}
<start_of_turn>system
chat_message: |-
<start_of_turn>{{if eq .RoleName "system" }}model{{else}}{{ .RoleName }}{{end}}
{{ if .FunctionCall -}}
{{ else if eq .RoleName "tool" -}}
{{ end -}}
{{ if .Content -}}
{{.Content -}}
{{ end -}}
{{ if .FunctionCall -}}
{{toJson .FunctionCall}}
{{ end -}}<end_of_turn>
completion: |
{{.Input}}
function: |
<start_of_turn>system
You have access to functions. If you decide to invoke any of the function(s),
you MUST put it in the format of
{"name": function name, "parameters": dictionary of argument name and its value}

You SHOULD NOT include any other text in the response if you call a function
{{range .Functions}}
{'type': 'function', 'function': {'name': '{{.Name}}', 'description': '{{.Description}}', 'parameters': {{toJson .Parameters}} }}
{{end}}
<end_of_turn>
{{.Input -}}
<start_of_turn>system

基本的に最近のgemma3とかと同様の内容。そもそもgemmaが他の生成AIモデルと違ってsystemロールが無かったりassistantロールがmodelロールに名前が変わっていたりとしているので、gemmaが特殊なのですが…

いろいろ調べて調整してもまったくうまく行かず、なので、困ったときの生成AIというわけで、geminiに聞いてみました。まぁそのままズバリ動く形にはならないでしょうが、とっかかりはつかめるでしょう。この辺はcopilotの方がいいんでしょうけど、まだ触れたことないんです。

 localAIと.yamlの話を出してRakutenAI2.0の.yamlの設定内容を聞いたところそれっぽいのが提示されたので早速コピペでやってみましたが…やはりダメでした(笑)

とは言え、方向性は間違ってなさそうなのでそれをベースに試してみましたがどうも上手く行かない。

八方ふさがりになったので、改めてgeminiに聞いてみました。具体的に設定しているパラメータなども指定して、モデル名も具体的にRakutenAI-2.0-mini-instruct-Q8_0.ggufと指定して。

すると、もう少しまともなパラメータを提示されたのですが…

# 1. テンプレートの設定
template:
  # 各メッセージのラップ方法 (ChatML形式)
  chat_message: |
    <|im_start|>{{.Role}}
    {{.Content}}<|im_end|>

  # チャット全体の構成
  # 最後にモデルが回答を始めるための合図 "<|im_start|>assistant\n" を置くのがコツです
  chat: |
    {{.Input}}
    <|im_start|>assistant

  # 単純なテキスト補完用
  completion: |
    {{.Input}}

# 2. 停止条件の設定
# これを忘れると、AIが一人二役(user: ... と自作自演)を始めてしまいます
stopwords:
  - "<|im_end|>"
  - "<|im_start|>"
  - "<|endoftext|>"

# 3. ロール(役割)のマッピング
# ユーザー入力を "user"、システムプロンプトを "system" として識別させます
roles:
  user: user
  system: system
  assistant: assistant

チャットの開始はできるのですが、どうも最初の入力が空振りする感じになっているのと、会話がほぼかみ合わない。

質問するとそのままオウム返しされるような?

具体的な設定を聞いたときに参考になるような参照先も聞いたのでそちらも見ていると、ものによって{{.Role}}の前後にスペースが入っているものがあったり、ものによってはそれぞれのキーワードの後にスペースが入っていたりと微妙な違いがあることに気づきました。

試しに{{ .Role }}とスペースを入れてみると何となく会話ができるようなりました。

不思議だったのでgeminiに聞いてみたところ、「モデルが学習時に「トークナイザー」がどう文字を区切ったかに依存する部分」とのこと。本当かどうかは全く知りませんが、そういう事にしておきますか(笑)

なのでrakuten AI 2.0はスペース区切りをしてあげた方が上手い感じなんじゃないかと。gemma3は、この辺の曖昧さはいい感じで吸収するので気にする必要が無かったりするのですが。

gemma3とかとは違い、rakutenAI 2.0はシステムプロンプトがハッキリと指示できるのでそれを試してみると…なんか変(笑)

chat: |
    {{.Input}}
    <|im_start|> assistant
と、assistantの前にスペースを入れたり、  - "\n<|im_start|>"と改行を入れてあげるとさらに会話が安定している感じです。 

少なくてもRakutenAI 2.0はシステムプロンプトの指示は単刀直入に簡素に書いてあげないとダメみたいですね。この辺は流行というか生成AIの世代によるところなのかもしれませんが。なので一昔前の「あなたは~です。」というような形式のシステムプロンプトがよいようです。gemma3以降の世代はロールプレイさせるよりもっと具体的な内容を説明する方が好ましいという形になっている様ですが。

 

と、結構下準備に時間はかかりましたが、暇つぶしチャットができるかどうかシステムプロンプトを調整してチャットしてみたところ…やはりこの世代では個人的には満足できないレベルでした。ほんと生成AIに触れるのがgemma3世代でよかったと感じます。

システムプロンプトをうまく調整したり、ファインチューニングを行ってもっと個性を出せば変わるとは思いますが、プログラムという以上には感じなく、魅力は感じませんでした。

ただ、日本に特化した知識ベースや日本語のやり取りはさすがと言った感じはします。くだらない会話をした後に質問するとぶっきらぼうに返事をするだけになるのは理解できませんでしたが、会話を新たに始めると「詳細に説明して」といえば結構細かく教えてくれました。geminiのような新たな提示もない分、道具としては優秀なような気はします。

てか、gemma3nで遊んでいるときは比べ物にならないほど軽くて快適…。お試しの環境としてただの安物miniPCを使っているので割り切ってるつもりですが、このぐらいのモデルだと十分実用に耐えますね…w

gemma3nで適当にシステムプロンプトを設定してチャットすると1分ぐらいで反応があると早いと感じる体になっていたので… 

 

 

で、と、するとやはりRakuten AI 3.0のmini版が出れば結構期待できるのかな?出さないのかな?出してくれるのかな? それ以前に地味にRakuten AI 3.0のライセンスからMITライセンスが消えているのが炎上しそうですが…

 

一応参考までに(localAI v.3.12.1で動かした).yamlファイルを添付(contextサイズがなんか大きくなってますが意味はないです。)

backend: llama-cpp
context_size: 8192
name: RakutenAI-2.0-mini-instruct-Q8_0
parameters:
model: RakutenAI-2.0-mini-instruct-Q8_0.gguf
# 1. テンプレートの設定
template:
# 各メッセージのラップ方法 (ChatML形式)
chat_message: |
<|im_start|>{{ .Role }}
{{.Content}}<|im_end|>

# チャット全体の構成
# 最後にモデルが回答を始めるための合図 "<|im_start|>assistant\n" を置くのがコツです
chat: |
{{.Input}}
<|im_start|> assistant

# 単純なテキスト補完用
completion: |
{{.Input}}

# 2. 停止条件の設定
# これを忘れると、AIが一人二役(user: ... と自作自演)を始めてしまいます
stopwords:
- "<|im_end|>"
- "\n<|im_start|>"
- "<|endoftext|>"

# 3. ロール(役割)のマッピング
# ユーザー入力を "user"、システムプロンプトを "system" として識別させます
roles:
user: user
system: system
assistant: assistant

(20:57 追記:gemma3に初めて触れたとき以来熱心にチャットした気がする…に記載した方がもうちょっとましになる感じがする。)

 

---------------

そのご、BF16も含め、チャットしましたが…なーんか安定しないな…

まともに会話ができるときもあるけど、できないときもある…何かが間違ってる感じがするのだが…何だろう?

簡素なシステムプロンプトがあった方が、よりまともに会話ができるものの、できないときもある。本当に何だろう… 

もう少し掘り下げないとダメなのかな? とはいえ、Q8.0は本当に動作が軽いなぁ…

2026年3月19日木曜日

gemma3nのImage to Text

前々からgemma 3nのmmprojモジュールをどうやって用意すればいいのか途方に暮れていました。

geminiに聞いてもgemma3の話しかしないし、「n」を見なかったことにするんですよね…。でも今日は少し突っ込んで「gemma 3n のmmporjの作成方法 」と質問し、gemma3の話をされた後に再度「「gemma 3n」の場合も同様ですか? 」としてみると、ようやくgemma3nの話に移ってくれました。 

まぁ作成方法に関しては絵空事混じりの戯言だったのですが、入手方法として「Hugging Face で検索: gemma-3n GGUF mmproj で検索」というヒントをいただけました。

gemma3nが公開されてから結構経っているのであるかもなぁ?とあまり期待せずに検索してみるとありました。

ただし、sign upしないとダウンロードできないので、今まで登録していなかったのですが、背に腹は代えられないので登録することに…で、早速試してみました。

保証はできませんがとりあえずこちらのものを使いました。https://huggingface.co/Anthonyg5005/gemma-3n-e4b-mmproj-gguf 

メインで触っているのは4Bサイズのモデルですが、gemma3と比べるとあまり違和感がありませんが、3nの方がより直感的になっている感じはします。

質問に対する応答は3nの方が会話が通じるのでようやくいい感じにいろいろと試せそうです。

所々で3nはなんかまともに画像の認識をしてくれないとか、酷いと言った書き込みがあったのですが、特に問題はない感じです。 

ただ残念なところがあって、イメージは通るのですが、音に関しては…このmmprojではダメな様で…正直なところ、絵よりも音の解析をしてもらえるととても便利なのでは…と思っていたりします。特殊な機材が無くても音声をいろいろ分解や分析を行って教えてくれそうとか期待してたりします。

環境として結構落ち着いた感じになってきたので、もう少し他の事も試してみたいかな。 

Rakuten AI 3.0 がリリースされたようです

楽天、「GENIACプロジェクト」の一環として開発された国内最大規模の高性能AIモデル「Rakuten AI 3.0」を提供開始 

LocalAI v4.0.0のmmproj系のモジュールの動作がおかしいのでv3.12.1ベースに切り替えられる環境整備とmmprojの入手先か作成方法を調べていました。とりあえずgemma3n-e4b-itのmmprojを見つけたので、他のものもぼちぼち探してみるかと…見ているとタイトル通りの事が…。

ちょっと興味津々です。

 

で、ちょっと見ていましたが、ベースモデルが673G…嫌な予感しかしません(笑)

Quantizedされたものも公開されていましたが、2bitですら244Gです。ん~手出しできそうにありません。

どれだけ学習させたのでしょうね…。と、言うか、めちゃくちゃ期待するんですが…mini版が出てくるの待ちかな。 

2026年3月17日火曜日

localAI v4.0.0 のビルド

ネイティブ環境でビルドするのにv3と手順は変わらないものの、新たにnpmというJavaScript用のパッケージ管理が用いられるようになったので、別途aptでインストールしました。

またこのパッケージシステムのレジストラのホストがnpmからアクセスできずにビルドでエラーになってしましました。

npm で ECONNREFUSEDとか言われた 

対処方法はいくつかありますが、小手先だけ何とかならやはりこの記事のhostsファイルに一時的にIPv4アドレスを追加して回避しました。(その後のためにビルド後は追加業はコメントアウト)

backendのllama-cppもいつも通り、一部のmake関連ファイルを修正してビルド。

そのと他はおいおい…

で、チャットを試してみましたが、エージェントの機能などが統合されている感じなのと全体的なWebUI周りが洗練されてきた感じです。文字だけのチャットなら問題は無さそうですが、マルチモーダル的なことを行うと永遠とThinkingになったまま帰ってこなくなるという感じ。ストリームのストップをかけると表面上停止したかに見えてもがっつり動いたままになります。model(backend)の再起動が行われるまで動いているのと、どこかで処理がおかしくなっているのかみるみるスワップファイルが肥大化してシステム全体がかなり不安定になりました。いままで放置していたswapファイルを止めるだけでも良かったのですが、zramをインストールしてメモリの一部を割り当てておきました。

モデルのパラメータを変更するのがチャット画面から変更できるようになって、パラメータのセーブをすると再起動まで綺麗に行ってくれるので、これだけでもv4.0.0はいいかもしれません。(本来は他の機能が魅力なんでしょうけど…w) 

2026年3月16日月曜日

LocalAI v4.0.0 がリリースされました。

もうそろそろかな?と思っていましたが、v4.0.0が昨日リリースされました。午後電車の中で見たときに11時間前とのことなので日本時間で15日午前3時ぐらいだったのかな?

メジャーバージョンアップとしてより一層の汎用化とエージェント系のインタフェースが追加されている感じです。 

LocalAIの目指している形と私が求めている形が違っているかなと薄々感づいては居るのですが、LocalAIを中心に見ていると流行を感じることができるのでウォッチは外せないかもしれません。

何も考えなければDockerイメージで動作させられるというのは便利なので各生成AIを統合的に扱うためのプラットフォーム的なものとしては優秀なのかな?

 

 

 

ネイティブ環境で動かしたいので頑張っていますが、いまだにllama-cppのバックエンドぐらいしか動きませんがw

ド派手にpythonをuvベースで動かすのにはまってしまっていてなかなか前に進みません… 

2026年3月14日土曜日

ルータとは別の無線アクセスポイント経由のmDNSとか。

色々と右往左往した結果、主な設定方針としてメイン(無線)ルータを主軸にLANケーブルでつないでいます。速度優先と言うよりは安定性優先と言う感じ。

とは言え、無線環境も必要なので個別に無線アクセスポイントとして中継器も使用していると、手軽な無線環境が主軸に(笑)。

無線LANを主軸にするとクライアント側の不便はほとんどないのですが、サーバー形式になると途端に不都合な部分が出てきます。

特に、無線アクセスポイントの先に無線接続のサーバーを置いたりすると途端に接続がおかしくなります。完全にアクセスできなければ割り切りができるのですが、ホスト名アクセスだと接続したり、しなかったり、接続できても切断状態になったりと、なかなか安定しません。

とは言え、IPアドレスでアクセスする分には安定して使えるので、何とかならないかと、最近の無線ルータを購入して解決しないか試してみました。が、結果的に症状は変わらず。

無線LANベースを崩さずに何とかする方法を模索したところ、メインとなっている無線ルータに接続した状態のサーバーであれば、(今までのルータでも)安定してアクセスできるところまでは確認しました。これで満足してもいいのですが、作業している手元に本体がないというのはちょっと辛いかなぁ…とか。 

無線アクセスポイントを最近のものに変えて試してみるという手段がまだ残っているのでもう少しあがいてみようかな?

 

と、それとは別に最近(?とはいえもう結構経ちますが)の機能としてメッシュWifiとか気になったので試してみました。

正直なところ理想としては無線ルータと中継器を有線LAN接続して中継器を無線アクセスポイントとしてできるものだと思っていたのですが、どうも無線リピータとして機能させる以外にメッシュWifiは構築できないようで… 思ってたのと違いました。

メッシュWifi環境にしたうえで、Wifiのチャンネル設定を2.4G / 5GHzともにチャンネルを自動設定にしたところ、占有されるWifiチャンネルが広範囲になることも確認。当たり前と言えば当たり前ですが…。同じSSIDで接続できるようになるとは言え、ほとんどのクライアントデバイスでSSIDの切り替えはそれなりにスムーズに自動で切り替わるのであまり利点はないかな?とか。

場所によるのですが、結構近所のWifiの設定が電波強度を最大にしているところが多いので、2.4GHz帯では繋がらないということは無いのですが、モニタリングしているとあまりよろしく無さそうかな?とか。5GHz帯もSSIDこそ拾えますが、電波特性上、屋内に設置する必要があるうえ、屋外には電波が届きにくい…はずなんですけど、結構漏れまくってますね(笑)

個人的に消費電力的にも出力強度は最低限にする様にしていたりします。周りも弱くしてくれれば、電波汚染がクリアされるんですけどね…。

本命?

なろう系の小説を読み始めたのは、なろう系アニメが結構展開されてからだったりします。それまでは何度か読み始めた事もあったのですが、どうも文体が合わなかったり、イメージが湧かなかったりするものばかりで、合いませんでした。

とは言え、いくつかのなろう系のアニメを見ていると先の展開が気になったりするわけで…一番最初に本格的に読み始めたのは「転生したらスライムだった件」からなのかな?

Web版は正直なところ難易度高めだと思いますw

そこからアニメ化されたものをいくつかWeb版の原作を読み始めたり、設定が気になったものを読んだりしていました。アニメ化されていない物もいくつか読んだりしましたが、基本的にはなろう系だとランキング上位になるものは読みやすいものが多いですね。アニメ化されると私と同様に気になって読まれている方も多い感じがします。

あと、作者もアニメ化決定したり、放映されたりすると記念にSSを追加するパターンも多く、リアルタイム性も高くて面白いです。

意外なところで「盾の勇者」もアニメから入った口ですが、Web版だと作者の暴走が止まらず変態的な物語が展開されています(笑)これも書籍だけだとありえない展開だと思います。何となくアニメ化はどうもまた別のテーマをもって展開されている感じがするので、同じ設定上の別の話になって行くのでしょうかね?

アニメ化後も、マイペースに話が進んでいる本命として「最弱テイマーはゴミ拾いの旅を始めました。」だったりします。アニメは低予算で仕上がりは微妙だったりしますが、悪くはないかな?と思います。Web版としては大きな一つのゴールはしていて、その後の話の展開がそれなりに続いていて、正直話を完結させる気はあるのか?と思われますが、主人公たちがこれからも元気で幸せに生きてほしいと願っている作品です。

他にもアニメ化されたもので、最初から文体もしっかりしてる作品も多く簡単に手軽に読めるのはうれしい。

ただ現状…書籍がめちゃくちゃ高騰しているので手軽な物ではないのは確かなのですが。 

嘆きの亡霊

アニメネタとしてですが、これはなろうのWeb版のおすすめになってしまうかな…

アニメから入ったのですが「嘆きの亡霊は引退したい」という話も結構面白かったです。アニメだと、ちょっと扱いが残念な女の子キャラが結構際立ってたりしますが、Web版ではそこまで表立っていなかったりしました。書籍か、コミック版でフォーカスされたのかもしれませんが。 

これもアニメから入ったのですが、話の展開が面白く、Web版を一気に読み進めた記憶が残っています。アニメとWeb版しか知りませんが、あまり違和感はありませんでした。アニメ化されていない先の展開も結構面白く、今後が楽しみな話の一つです。

気持ちが疲れたときなどにおすすめですw 

水属性

アニメネタを書いたところ微妙にアクセス数が多かったので、アニメネタでも。

ここのところ、なろう系原作のものがやたらとアニメ化され、量産されましたが、量産型の宿命か新作アニメがどれもこれも低予算な作りで悲しい気がしています。

そんな中、個人的な嗜好を言えば最近だと「水属性の魔法使い」がアニメから入ったのですが結構好きです。Web版と少し設定が異なっていたりしていますが、大筋でアニメ化としてはいい感じで話が展開していると思います。書籍やコミック版は読んでいないのでわかりませんが、書籍版はコレクションとして欲しいかなと、、、、、一時期悩んでいたりしましたが、忙しくなってきたので今現在購入には至っていません…。

なろう系の話として読める文章として読みやすい文体で普通の小説として読めるのもちょっと驚いたのですが、Web版と書籍版の切り分けを結構うまくやってそうな雰囲気があります。(なので購入しようか本当に悩んでいましたw)

アニメはアマゾンプライムは、そもそも有料ですが、abemaなどでは特に有料契約しなくても結構期間限定で無料公開していたりして見ることができるので、ファンタジーが好きな方ならお勧めします。文字を読むのが苦でなければ、なろうのweb版を読むのも楽しいと思います。

web版 水属性の魔法使い  

2026年3月13日金曜日

uvのキャッシュが…

特に新しいmodelを入れたわけではないのだけれど、気づけば98%の使用率。

ちょっとpythonのbackendをかなりてこずりながら動作環境を右往左往しながらやっているので、uvがかなり肥大化しているんだろうなとは思っていましたが…

siriuth@b4turbo-2:~$ du -sh ./.cache/*
796M ./.cache/go-build
4.0K ./.cache/goimports
15G ./.cache/huggingface
4.0K ./.cache/llama.cpp
32K ./.cache/matplotlib
0 ./.cache/motd.legal-displayed
130M ./.cache/neo_compiler_cache
9.3G ./.cache/pip
129G ./.cache/uv
28K ./.cache/vllm

129Gって…(笑)

使い方がよく分かっていないのと、複数のバージョンを闇雲にインストールしている結果でしょう。

一気に捨ててもいい気もする…

https://qiita.com/takurot/items/2d7a8436047dc7cc76be

より、

# 使っていない古いキャッシュのみ削除
uv cache prune

# 全削除したい場合
uv cache clean

とのことなので、とりあえずpruneしてみました。使ってない判断はリンクでもたどっているんでしょうかね?

siriuth@b4turbo-2:~$ uv cache prune
Pruning cache at: .cache/uv
Removed 454722 files (99.1GiB)
 

とりあえずこんなとこでしょうか。 

2026年3月11日水曜日

1台だけスタートメニューがムカつくのですがw

先月2月のWindowsUpdateか1月のものか定かではありませんが、WindowsStartメニューが切り替わって、正直なんか使いづらいのです。

デスクトップPCもそのうち切り替わってめんどくさっとか思っていたのですが、いつまでたってもメイン以外のPCのスタートメニューは昔のままです。まぁそうはいっても使いづらいですが。

気になったときにバージョンを確認しても違いは無いようですが、何なんでしょうこの違いは…。

設定>個人用設定>スタート

の設定項目も同じバージョンで違ってるし(笑) 

powershellで表形式の表示

最近動けばいいやと、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としてやったらもっとスマートな感じになりそうですが、とりあえずこれでいいか。 

2026年3月5日木曜日

ボツネタだった履歴が思った通りにできた…

昨日ボツネタの愚痴を書いたわけですが、ようやく解決しました。

なんとなくPowerShellのHistoryと実際の履歴は別物というのは感じていたのですが、ドキュメントを読み進めていくと、どのように動いているのかが分かりました。

分かったうえで、最初はC#を経由して触らないとダメかな?と考えてヘルパーとしてスクリプトモジュール(.psm1)でも作っておくのが便利かな?とか。

でも、もっと単純でした。

 [Microsoft.PowerShell.PSConsoleReadLine]::AddToHistory()

を呼び出すだけで単純にPowerScriptのコンソール内で動いているPSReadLineの履歴に入れることができました。

これで、一連の動作内でまとめたスクリプト内で呼び出している内容を履歴に入れて、部分的に再実行させることがしやすくなりました。デメリットとしては不要な履歴が追記されるので履歴のトルグで遡るときに邪魔になりますが、現段階では処理を取りまとめただけなのでデメリットを感じることは無いでしょう。

このメソッドの実装はあくまでPSReadLineの履歴に記録されるだけなので、PowerShellのHistoryには干渉していないので、そこまで反映させる場合は別途Set-Historyなどを行う必要があるでしょう。

ただし、(Get-PSReadLineOption).HistorySavePathには保存されているようなので、それを回避する場合はもっと何か考えないとダメかも。

あと、コンソール以外の実行状態(VisualStudioCodeのコンソールとか)だとPSReadLineが実装が違っていてエラーがでたり、するのかな? 

まぁスッキリできたと。 

2026年3月4日水曜日

ボツネタ PowerShellのコマンドライン履歴

ボツネタというか、四方八方試した感じだとダメそうという結果に…

コマンドライン履歴って便利だなぁと感じる一方、欲が出ると際限のない欲にかられる機能と思われますが、それでも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の方を見てみると、なんか色々できそうな上に拡張もできそうという事実。

でもそうじゃないんだ。今やりたいことは、、、、

という事であきらめてコピペできる様に表示させるだけで我慢しておこうかと思います😢

2026年3月1日日曜日

〇ソWindows

もうタルすぎる…

ちょいちょい地味に何かの処理がリアルタイム処理を邪魔してラグる…。

Windowsログを見る限りこれと言った痕跡はないものの、時刻設定などでエラーがチラホラ。

Wifiやルータ周りの設定を見直して、ルータなどの再起動は何度か行ってはいるものの、なぜか自動再接続されない状態になっていた。

このPC以外はこれと言った問題は無さそうなのですが…

で、とりあえず問題なさそうなので放置してたらセキュリティーアップデートがかかってて、終わった10分後ぐらいにラグ発生。ログには原因特定に至るものはないし…困った。

とりあえずネットワークから切り離してスタンドアローン状態にしましたが…なんだろうねぇ…このPCで初めての現象。

一番ありえそうなのが、昨日買ったUSB-HUBからノイズが出るようになって電波が不安定なのかな?

ラグるタイミングはWifiの接続が切断マークに変わったときに発生してるのを目撃したのだが…なぜかそのときは数十秒でWifi再接続されていた。わからんw