I have a Framework Desktop that I want to put AI models on. I keep hearing that local models are getting more and more impressive. I would love to one day get off of my Claude dependence for the sake of privacy and running things in house. I am currently trying out using pi agent with GLM-4.7-Flash Q8_0. I don’t have much of a reference to say how it compares to other local models, but it’s definitely not something I could switch over to as a main driver instead of Claude.

What are you guys thoughts?

This is also the first time I’ve tried Pi. I’ve also been recommended hermes, which I know very little about.

          ▗▄▄▄       ▗▄▄▄▄    ▄▄▄▖             root@nixos
          ▜███▙       ▜███▙  ▟███▛             ------------
           ▜███▙       ▜███▙▟███▛              OS: NixOS 26.05 (Yarara) x86_64
            ▜███▙       ▜██████▛               Host: Desktop (AMD Ryzen AI Max)
     ▟█████████████████▙ ▜████▛     ▟▙         Kernel: Linux 6.18.44
    ▟███████████████████▙ ▜███▙    ▟██▙        Uptime: 11 days, 21 hours, 26 ms
           ▄▄▄▄▖           ▜███▙  ▟███▛        Packages: 500 (nix-system)
          ▟███▛             ▜██▛ ▟███▛         Shell: bash 5.3.9
         ▟███▛               ▜▛ ▟███▛          Terminal: /dev/pts/7
▟███████████▛                  ▟██████████▙    CPU: AMD RYZEN AI MAX+ 395 (32)z
▜██████████▛                  ▟███████████▛    GPU: AMD Radeon 8060S Graphics ]
      ▟███▛ ▟▙               ▟███▛             Memory: 39.81 GiB / 125.09 GiB )
     ▟███▛ ▟██▙             ▟███▛              Swap: 6.73 MiB / 7.45 GiB (0%)
    ▟███▛  ▜███▙           ▝▀▀▀▀               Disk (/): 119.94 GiB / 3.57 TiB4
    ▜██▛    ▜███▙ ▜██████████████████▛         Local IP (enp191s0): 192.168.0.4
     ▜▛     ▟████▙ ▜████████████████▛          Locale: en_US.UTF-8
           ▟██████▙         ▜███▙
          ▟███▛▜███▙         ▜███▙
         ▟███▛  ▜███▙         ▜███▙
         ▝▀▀▀    ▀▀▀▀▘         ▀▀▀▘
  • floquant@lemmy.dbzer0.com
    link
    fedilink
    English
    arrow-up
    2
    ·
    edit-2
    7 days ago

    Is GLM too slow or not capable enough? It’s quite a big model, if the runtime is setup correctly you should have good quality but getting a throughput similar to cloud models is going to be difficult. Did you give Qwen3.8-27B-FP8 a try?

    Also you mentioned Pi as your harness, but what are you using as the inference backend?

    • padreug@programming.devOP
      link
      fedilink
      English
      arrow-up
      1
      ·
      6 days ago

      Did you give Qwen3.8-27B-FP8 a try?

      I haven’t, it seems like I can’t do this with my current Vulkan setup, but I’ll do some exploration.

      I’m also waiting for the nixos support for glm 5.3 flash

    • padreug@programming.devOP
      link
      fedilink
      English
      arrow-up
      1
      ·
      edit-2
      6 days ago

      Hey, thanks for the reply, the speed is actually pretty good!

      So it’s running on llama.cpp (llama-server) b10408, Vulkan/RADV, behind llama-swap.

      Your questions made me realize i also had a mismatch in my pi model config, the contextWindow and maxTokens had drifted apart pretty significantly so I just fixed that now.

      /etc/nixos/configuration.nix

        services.llama-swap = {
          enable = true;
          package = pkgs.llama-swap;
          listenAddress = "0.0.0.0";
          port = 8080;
          openFirewall = true;
      
          settings = {
            # 63 GB off NVMe cold is slow. The default 120s will time out.
            healthCheckTimeout = 600;
            logLevel = "info";
      
            models = {
              "glm-flash" = {
                # Keep "local" as an alias so existing clients keep working
                # without touching their base URL or model name.
                aliases = [ "local" "fast" ];
                ttl = 1800;
                cmd = ''
                  ${lib.getExe' pkgs.llama-cpp-vulkan "llama-server"}
                  --port ''${PORT}
                  -m /srv/llm/models/GLM-4.7-Flash-Q8_0.gguf
                  -ngl 999 --flash-attn on -c 131072 -np 1
                  --jinja --no-webui
                  --reasoning-format auto --reasoning-preserve
                  --temp 1.0 --top-p 0.95 --repeat-penalty 1.0
                  --cors-origins "http://optimus.local:8080,http://localhost:8080/"
                '';
              };
      
              "gpt-oss-120b" = {
                aliases = [ "smart" ];
                ttl = 1800;
                cmd = ''
                  ${lib.getExe' pkgs.llama-cpp-vulkan "llama-server"}
                  --port ''${PORT}
                  -m /srv/llm/models/gpt-oss-120b/gpt-oss-120b-MXFP4.gguf
                  -ngl 999 --flash-attn on -c 65536 -np 1
                  --jinja --no-webui --reasoning-format auto
                  --temp 1.0 --top-p 1.0 --top-k 0 --min-p 0.0
                  --cors-origins "http://optimus.local:8080,http://localhost:8080/"
                '';
              };
            };
          };
        };
      

      ~/.pi/agent/models.json (fixed)

      {
        "providers": {
          "optimus": {
            "baseUrl": "http://localhost:8080/v1",
            "api": "openai-completions",
            "apiKey": "ollama",
            "models": [
              {
                "id": "local",
                "name": "GLM-4.7-Flash Q8_0 (optimus)",
                "aliases": ["fast", "glm-flash"],
                "reasoning": true,
                "contextWindow": 131072,
                "maxTokens": 32768,
                "cost": { "input": 0, "output": 0, "cacheRead": 0, "cacheWrite": 0 }
              },
              {
                "id": "smart",
                "name": "GPT-OSS-120B (optimus)",
                "aliases": ["gpt-oss-120b", "oss"],
                "reasoning": true,
                "contextWindow": 65536,
                "maxTokens": 16384,
                "cost": { "input": 0, "output": 0, "cacheRead": 0, "cacheWrite": 0 }
              }
            ]
          }
        }
      }