top P 下げて(0.80)、繰り返しは避けろ・簡潔にしろ的な指示を追加してから、今のところ再発してない。
top K も変えようかと思ったら、SDK/APIにはあっても、Gemini 2.0以降のモデルでは固定で変えられないらしい。Penaltyも設定できないし…
Vertex AIのほうでGemini以外のモデルを使うなら意味あるんだろうけど、Gemini APIでは紛らわしいだけ。
top P 下げて(0.80)、繰り返しは避けろ・簡潔にしろ的な指示を追加してから、今のところ再発してない。
top K も変えようかと思ったら、SDK/APIにはあっても、Gemini 2.0以降のモデルでは固定で変えられないらしい。Penaltyも設定できないし…
Vertex AIのほうでGemini以外のモデルを使うなら意味あるんだろうけど、Gemini APIでは紛らわしいだけ。
Repetition 起きなければ、今の使い方なら3.1 flash-liteの質で問題はなさそうなので、どうにかコントロールしたい…。
2.5以降設定できないらしい。バグってて設定できてなかった。しかも設定間違えて結局2.5-flashを使ってた :(
適当に設定してみたらとりあえず落ち着いてる気がする。
presence_penalty=0.2
frequency_penalty=0.6
a screenshot of an awful repetitive text generated by Gemini 3.1 flash-lite
$ grep -o '以上となります。ありがとうございました。' batch_result.jsonl | wc -l
9873
$ grep -o 'ありがとうございました。' batch_result.jsonl | wc -l
11582
$ jq -sc '[.[].response | {token: .usageMetadata.candidatesTokenCount, l: .candidates[].content.parts[].text | length}] | sort_by(.l)[]' batch_result.jsonl | tail -5
{"token":403,"l":968}
{"token":457,"l":1013}
{"token":523,"l":1098}
{"token":524,"l":1150}
{"token":64234,"l":247598}
Gemini 3.1 flash-liteは現状2.5 flashのかわりにはならなくて、2.5 flash-liteよりはだいぶ良いって感じだった。久しぶりにローカルの小さいモデル以外でひどいrepetitionみた。安くても出力トークンの方が高いわけで、限界まで出力されるとさすがに、これに支払い発生するのかって気分になる…。structured outputのせいかもしれないけど、penalty 強めにして、念のために上限トークン設定したほうがいいのかな。結局structured output ぶっ壊れるけど
discuss.ai.google.dev/t/gemini-bat...
ほかにもいくつかスレッドができてる。
結局時間かかってたのは、1つがJOB_STATE_FAILEDでもう一つはJOB_STATE_EXPIRED 😑
再投入したら、数時間で終わった。
48時間超えた 2026-02-25 01:03:08.930806+00:00 のがpending...
24時間超えた。2026-02-16 15:59:55+00:00のがまだpending.
Geminiのbatch API休日は大体一時間もかからずに結果取れるけど、最近平日は遅いな。まだ24時間かかってないけど、12時間は越えることがある。始まれば割とすぐなんだけど。
sedのsコマンドの replacement で使える & の存在を今さら知った。無駄に(.*)して\1とかで参照する必要なかった。
もうじき2-3週間帰る予定だけど、日本はまだ暑そう…
8byteに対して40byteだから思ったより大きくなる。stable ABIじゃないし、サイズしか関係ないとはいえ、多分そのうちまた壊れる
github.com/hideaki-t/sq...
直した。PyObjectのヘッダ部のサイズがno-GIL buildだと変わるのが原因だった。
github.com/hideaki-t/sq... sqliteがstatic linkだとだめ
github.com/hideaki-t/sq...
3.14tで動かないのはまあいいんだけどエラーが謎。これから調べる。ツール類の"t"の対応がまだ微妙(toxは対応してるけど、tox-gh-actions/tox-ghがまだ、tox-ghはなんとかなる)
3.14rcのimageはあってもfree-threadedのは(3.13tも)ないので、devcontainer用に自前でビルドした。
github.com/astral-sh/py... でuvのは使えない
準備の方にだいぶ時間がかかってしまった。
github.com/python-cffi/...
cffiでfree-threaded CPython がサポートされた(る)ので github.com/hideaki-t/sq... 試したら、とりあえずは問題ないっぽいけど、もともとmulti-threadでどうなるか全く試してない…
feedeenの移行先も考えないと…
Pocketの移行先はself-hostedのwallabagにした。とりあえずPocketからインポート済み。まだ設定してないけど KOReader から使えるはずなので github.com/koreader/kor... KoboのPocket代わりにもなるのでちょうどいい。
会社のやつも2.5.7になって、同じくdisable-linger必要だった。ついでにudevインストールしてなかったから(多分削った…)それでもはまった (/dev/net/tun のモードが666ではなく600)
support.mozilla.org/en-US/kb/fut... どこに移そうか…
そろそろ辞めるかと思ってたけど
サガフロ2??
ちょうどいい機会なので、だいぶ前から使ってる github.com/yuk7/ArchWSL で作った環境を gitlab.archlinux.org/archlinux/ar... ベースにして、古い方から$HOMEとパッケージリストだけコピーした。
コンテナ周りをセットアップしてるときに同じ現象が起きたので、(rootless用の)loginctl enable-lingerがきっかけっぽいのがわかったけど、本当にそうなのか、なぜかは調べてない。
結局disable-lingerすれば古い方でも問題なくなったけど、イメージサイズも半分になったので、まあこれはこれで…
結局 loginctl disable-lingerしたら直ったけど、WSL 2.5.1にしたらなんか/run/user/$UIDが微妙にぶっ壊れてて、とくに/run/user/$UID/systemd/privateがないから、systemctl --userが使えなくなって困った。
session id+RPC idでユニークになるはずだけど、idがわかる状態になった後すぐにSSEの方に送られちゃうからmonkey patchできる場所がないっぽい。POST起点ではない新しいspan作ってSSE側で実行されるツール呼び出しとかを繋げたらいいんじゃないかと思ったんだけど。
呼び出しパラメータにtraceidでも入れれば、呼び出し側とつなぐのはできるだろうし、実際に見たいのはたぶんこれ。
SSEのトレースから切るのは簡単にできるけど、POSTのから新しく始めてつなぐのが面倒くさい…。きれいにはできない気がする。