iPadにVLC media playerを入れてSMB接続してPCにある動画を再生できるようにした 純正の「ファイル」でも良かったけどmkvファイルとか再生したかったので
しばらくSMB接続に躓いてたんだけど、デフォルトで入力されてた「ワークグループ」の欄(WORKGROUPって入力されている)を空欄にしたらいけた
iPadにVLC media playerを入れてSMB接続してPCにある動画を再生できるようにした 純正の「ファイル」でも良かったけどmkvファイルとか再生したかったので
しばらくSMB接続に躓いてたんだけど、デフォルトで入力されてた「ワークグループ」の欄(WORKGROUPって入力されている)を空欄にしたらいけた
要点だけまとめると、**DiffusionGemma GGUFは普通のGGUFモデルとして扱うと詰まる**、というのが最大のポイントです。 **先に知るべきこと** DiffusionGemmaは通常のautoregressive LLMではなく、`diffusion-gemma` architectureのGGUFです。なので、普通の`llama-cli`、`llama-server`、LM Studio、Ollama、Unsloth Studioの通常推論経路では、モデルファイル自体が正しくても実行できないことがあります。 典型的なエラーはこれです。 ```text unknown model architecture: 'diffusion-gemma' llama.cpp does not support this GGUF's model architecture ('diffusion-gemma') ``` この場合、モデルが壊れているのではなく、runner側が未対応です。 **必要なrunner** 現状はDiffusionGemma対応入りの`llama.cpp` PR/ブランチを使い、通常の`llama-cli`ではなく、専用の: ```text llama-diffusion-cli ``` をビルドして使うのが本筋です。 **CUDAビルドの罠** GPUで使うならCUDAビルドが必要です。ただし古いCUDA Toolkitだと、最近のMSVCでビルドに失敗します。 典型例: ```text error STL1002: Unexpected compiler version, expected CUDA 12.4 or newer. ``` これはCUDAが古いという意味です。CUDA 12.4以上を使うのが安全です。 **低VRAMでの現実** 8GB VRAM級ではモデル全体は載りません。全部GPUに載せようとするより、部分オフロードが現実的です。 実用ラインはだいたい: ```text -ngl 8 --diffusion-kv-cache on --diffusion-eb on ``` `-ngl auto`や`-ngl all`は一見便利ですが、低VRAM環境ではVRAM/RAMを攻めすぎて不安定になりがちです。手動で`-ngl`を固定した方が安全です。 **KV cacheはON** `--diffusion-kv-cache on`はかなり効きます。 OFFだと毎stepの負荷が重くなりやすいです。まずONで試すべきです。 **KV cache量子化は万能ではない** 通常LLM感覚で、 ```text -ctk q8_0 -ctv q8_0 -ctk q4_0 ``` などを入れたくなりますが、DiffusionGemmaでは必ず速くなるとは限りません。特にV cache量子化はFlash Attention絡みで失敗・低速化する可能性があります。まずはデフォルトKV型でよいです。 **`-n`の意味が普通と違う** DiffusionGemmaでは`-n`は普通の「最大生成token数」として体感しにくいです。 内部では固定長canvasをブロック単位でdenoiseします。 今回のモデルでは: ```text canvas_length = 256 -n 1 -> 1ブロック -n 512 -> 2ブロック -n 1024 -> 4ブロック ``` 短い回答なら`-n 1`で十分。 献立や計画のような長めの回答は`-n 512`が必要です。 **step数と品質** `--diffusion-eb-max-steps`が実用上かなり重要です。 ```text 16 steps: 速いが崩れやすい 32 steps: 遅いがだいぶ読める ``` `--diffusion-steps`だけ下げても、EB modeでは`--diffusion-eb-max-steps`側が効いている場合があります。両方揃えるのが分かりやすいです。 ```text --diffusion-eb-max-steps 32 --diffusion-steps 32 ``` **visual modeが面白い** DiffusionGemmaを試す価値は、普通のtoken streamingではなく、canvasがstepごとに更新されるところです。 ```text --diffusion-visual --diffusion-visual-progress --diffusion-visual-interval 1 ``` を付けると、途中で文が崩れたり整ったりする過程が見えます。 **日本語プロンプトの罠** Windowsでは日本語を`-p`で直接渡すと文字化けすることがあります。 UTF-8のプロンプトファイルを作って: ```text -f prompt.txt ``` で渡すのが安全です。 **thinking/channel問題** モデルやテンプレート次第で、出力にこういうものが混ざります。 ```text <|channel>thought ... <channel|> ``` これはチャットテンプレート/モデル形式/runner未成熟の問題です。 可能ならテンプレートに`enable_thinking=false`を渡す、または表示側で`<channel|>`以降だけ抜くと扱いやすくなります。 ただし、観察目的なら全部見えていた方が面白いです。 **反復検出の罠** runner側が反復を見つけて出力を切ることがあります。 ```text しししし 多多多多 ******** ``` みたいな崩れを止める目的ですが、DiffusionGemmaではこれが暴発して、`-n 512`で2ブロック生成するはずが1ブロックで止まることがあります。 理想は: ```text EOG tokenなら終了 反復は表示上trimしてもよい でも反復だけで次ブロック生成を止めない ``` です。 **おすすめ初期設定** まず試すならこれです。 ```powershell llama-diffusion-cli ` -m model.gguf ` -f prompt.txt ` -dev CUDA0 ` -ngl 8 ` -n 512 ` --fit off ` --diffusion-eb on ` --diffusion-kv-cache on ` --diffusion-eb-max-steps 32 ` --diffusion-steps 32 ` --diffusion-visual ` --diffusion-visual-progress ` --diffusion-visual-interval 1 ``` 短文なら: ```text -n 1 --diffusion-eb-max-steps 16 ``` 長めなら: ```text -n 512 --diffusion-eb-max-steps 32 ``` **最終評価** 低VRAM環境では、DiffusionGemmaはまだ普通のLLMより実用的とは言いにくいです。 ただし、5 canvas-token/s相当くらいは出ることがあり、visual mode込みの「面白枠」「研究枠」「将来比較用」としてはかなり価値があります。 一発でやるなら、最初からこう考えるのが近道です。 ```text 普通のGGUF runnerではなく専用diffusion runnerが必要 CUDA 12.4以上でビルド -nglは手動固定 KV cacheはON -nはcanvasブロック数 品質はEB stepsで調整 日本語はUTF-8ファイル visual modeで観察 反復停止は信用しすぎない ```
Obsidianそのもののメリットというより、mdファイル群にメリットがあり、LLMに管理させるときに「どこどこのパスにmdファイル群があって〜」とか書くよりも「どこどこのパスにobsidian用の〜」とかいた方が意図の伝達ロスが少ないから採用する価値がある という理解 まあもちろん人間向けUIがあって嬉しい、という部分もあるわけだけど
Codexのレートリミットが1週間のレートリミットが来てしまって、もう面倒くさいからChatGPTにファイルを投げまくってコーディングをさせている。クソ、久しぶりに。あのー、なんだっけ?あのー、VSC触ってるわ。IDEとかもうしばらく触ってねえもん。
EverythingってCLIツールあるのか codexにこれ使わせたらめんどくさくなくなるな(見せられないファイルがある人は知りません) https://www.voidtools.com/support/everything/command_line_interface/
codexに似たようなスクリプトを出力できるであろうプロンプトを作れ、と言ったら以下のようなものが出力された。詳細だけど、正直大体のことは最近のLLMなら勝手に配慮してくれる気はする。: あなたはWindows向けのPowerShell実装者です。以下仕様を厳密に満たすCLIツールを作成してください。GUIは不要です。 【目的】 複数の移行元フォルダを、指定した移行先ドライブへrobocopyで安全に移行する。 実行ログは移行先ドライブへ保存し、ターミナルには細かいファイル単位ログを出さない。 全件成功後のみ、削除前にverify結果の要約を表示して最終確認を取る。 【成果物】 1. `Run-FileMigration.ps1` 2. `Start-FileMigration.cmd`(ダブルクリックでターミナル起動→対話実行) 3. 使い方(短く) 【必須仕様】 1. 入力 - 移行元: 複数指定可(カンマ区切り or 改行区切り) 例: `D:\src, D:\image\download, D:\画像ファイル, E:\movie` - 移行先: ドライブ文字(例 `H` または `H:`) 2. バリデーション - 移行元はフルパスの既存フォルダのみ許可 - 移行元と移行先が同一ドライブならエラー停止 - ドライブ直下(例 `D:\`)を移行元としては禁止 - エラー時は即停止し、理由を明確に表示 3. 実行ロジック(各移行元ごとに順番実行) - コピー先は「移行元ドライブ以降の相対パス」を移行先ドライブに再現 例: `D:\a\b` -> `H:\a\b` - 各移行元に対して以下4フェーズを実行 - small: `/E /MAX:4194304 /DCOPY:DAT /COPY:DAT /XJ /R:1 /W:1 /MT:64` - mid: `/E /MIN:4194304 /MAX:268435456 /DCOPY:DAT /COPY:DAT /XJ /R:1 /W:1 /MT:8` - large: `/E /MIN:268435456 /DCOPY:DAT /COPY:DAT /XJ /R:1 /W:1 /MT:1 /J` - verify: `/E /DCOPY:DAT /COPY:DAT /XJ /R:1 /W:1 /MT:128` - ログは移行先ドライブ配下 `\<dest>:\logs\...` に保存(small/mid/large/verifyを分離) - ログは詳細をすべて残すこと(robocopyの詳細ログ) - ターミナルは簡易表示のみ(進行中フェーズ、成功/失敗、全体進捗)。ファイル単位の行は表示しない 4. 失敗判定 - robocopy終了コード `0~7` を成功、`8以上` を失敗として即停止 - 失敗時は以降の処理(削除確認含む)を行わない 5. 削除前確認 - 全件成功後のみ、各移行元のverifyログから「robocopy末尾サマリー(合計/コピー済み/スキップ/不一致/失敗/終了時刻)」を抽出して表示 - その後、1回だけ質問: `すべての移行元を削除しますか? (yes/no)` - `yes` のときのみ全移行元を削除。`no`なら削除しない 6. 文字コード - 日本語環境前提。robocopyログの読み取りはShift_JIS (CP932) を優先 - スクリプト内メッセージは日本語で自然に表示 - 文字化けしない実装にする 7. UX - 実行開始時に「停止は Ctrl+C」で中断できることを明示 - 初心者向けにメッセージをわかりやすくする 【実装制約】 - 外部モジュール不使用(PowerShell標準のみ) - PowerShell 5.1/7 で動くよう配慮 - GUI実装は不要 【出力形式】 - まず `Run-FileMigration.ps1` の全コード - 次に `Start-FileMigration.cmd` の全コード - 最後に実行例を2~3行 - 曖昧な説明ではなく、実行可能な完成コードを出してください