分类: AI

  • Fedora 44 编译 llama.cpp 提示 GCC 16 与 CUDA 不兼容的解决方法

    作为一个喜欢尝鲜的开发者,Fedora 激进的软件源更新速度总是让人又爱又恨。这不刚把系统升级到 Fedora 44,准备用手头的NVIDIA重新编译一份最新版的 llama.cpp 来跑大模型,结果在 CMake 配置阶段系统默认的 GCC 16 太前沿了,直接被 NVIDIA 的 nvcc 拒之门外。

    在经过一番摸索(和不想折腾多版本 GCC 的挣扎)后,我成功用最轻量的方式搞定了这个“版本不兼容”的顽疾。现将这次踩坑与验证的全过程整理成文,希望能给同样在 Linux 新版本生态里折腾本地大模型的朋友们提供一点参考。

    1. 编译llama.cpp 报错

    在 Fedora 44 系统下编译 llama.cpp 并启用 CUDA 加速时,遇到一个由于 GCC 版本过高 导致的 CMake 配置失败问题。

    当执行如下编译配置命令时:

    cmake -B build \
          -DGGML_CUDA=ON \
          -DCMAKE_BUILD_TYPE=Release \
          -DCMAKE_CUDA_ARCHITECTURES=86 \
          -DCMAKE_C_FLAGS="-march=native" \
          -DCMAKE_CXX_FLAGS="-march=native"

    CMake 会直接抛出如下错误:

    /usr/local/cuda/include/crt/host_config.h:137:2: error: #error -- unsupported GNU version! gcc versions later than 15 are not supported! The nvcc flag '-allow-unsupported-compiler' can be used to override this version check;

    原因分析:
    Fedora 的软件源更新一向激进,系统默认的 GCC 版本已经来到了 16.x。而当前的 CUDA Toolkit(即使是较新的 13.x 版本)内部的 nvcc 编译器出于稳定性考虑,硬性限制了最高只支持到 GCC 15。检测到工具链版本超前流,nvcc 主动触发了宏定义错误并终止了编译。

    2. 解决方案 强行忽略版本检查

    我不想在系统中折腾多版本 GCC 切换,可以直接在 CMake 中向 nvcc 传递 -allow-unsupported-compiler 标志来忽略版本检查

    # 1. 清理缓存
    rm -rf build
    
    # 2. 重新配置 CMake 并传入显式标志
    cmake -B build \
          -DGGML_CUDA=ON \
          -DCMAKE_BUILD_TYPE=Release \
          -DCMAKE_CUDA_ARCHITECTURES=86 \
          -DCMAKE_C_FLAGS="-march=native" \
          -DCMAKE_CXX_FLAGS="-march=native" \
          -DCMAKE_CUDA_FLAGS="-allow-unsupported-compiler"
    
    # 3. 开始多核并行编译
    cmake --build build --config Release -j$(nproc)

    3. 验证 CUDA 是否成功启用

    编译完成后,可以通过 llama.cpp 自带的工具来验证 GPU 加速是否真正生效。检查基础版本与编译器信息

    liqixin@fedora:~/dev/llama.cpp/$ ./build/bin/llama-cli --version
    version:9352 (b4c0549a4)
    built with GNU 16.1.1
  • 在 Fedora 44 上安装 NVIDIA CUDA

    在最新发布的 Fedora 44 系统上,基于 NVIDIA 官方 RPM 联网源快速搭建 CUDA 算力环境

    1. 添加 NVIDIA 官方软件源

    将 NVIDIA 为 Fedora 44 编译的官方源添加到 DNF 仓库中,并刷新本地缓存。

    # 添加 Fedora 44 专属 CUDA 软件源
    sudo dnf config-manager addrepo --from-repofile https://developer.download.nvidia.com/compute/cuda/repos/fedora44/x86_64/cuda-fedora44.repo
    
    # 清理 DNF 缓存
    sudo dnf clean all

    2. 安装 NVIDIA 驱动与 CUDA 工具包

    # 安装指定版本 Toolkit
    sudo dnf -y install cuda-toolkit-13-3
    
    # 安装专有 NVIDIA驱动
    sudo dnf -y install cuda-drivers

    配置环境变量(配置 nvcc 命令)

    安装完成后,系统默认不会将 nvcc 编译器路径加入全局变量。执行以下命令,将 CUDA 路径追加到 ~/.bashrc 中:

    cat >> ~/.bashrc << 'EOF'
    
    # NVIDIA CUDA TOOLKIT
    export PATH=/usr/local/cuda/bin:$PATH
    export LD_LIBRARY_PATH=/usr/local/cuda/lib64:$LD_LIBRARY_PATH
    EOF

    让配置立即生效

    source ~/.bashrc

    验证安装结果

    重启系统后验证 GPU 驱动状态

    # reboot 重启系统
    nvcc -V
    nvidia-smi
  • 在 Fedora 44 上部署 OpenAI Whisper

    OpenAI Whisper 是一个由 OpenAI 开源的、极其强大的语音识别(ASR)大模型,其核心功能是将人类的语音高效、精准地转化为文字。由于其完全开源,你可以将其轻松部署在本地,享受 100% 的隐私安全与零成本的转写体验。

    在 Fedora 44 系统中,配合目前业界最快的 Python 包管理工具 uv,我们可以用极短的时间、极干净的代码链,快速搭建起一套现代化的 OpenAI Whisper 语音识别环境。

    1. 安装 uv

    uv 是目前最快的 Python 包管理工具,我们可以直接通过 dnf 进行全局安装:

    sudo dnf install uv

    安装完成后验证:

    uv --version

    2. 创建并进入项目目录

    打开终端(Terminal),创建一个独立的文件夹用于存放 Whisper 项目

    mkdir openai-whisper
    cd openai-whisper

    3. 创建并激活虚拟环境

    为了保证 Python 环境的隔离与干净,我们使用 uv 来创建并激活虚拟环境

    # 使用 uv 创建虚拟环境(默认目录为 .venv)
    uv venv
    
    # 激活虚拟环境
    source .venv/bin/activate

    4. 安装openai-whisper

    GPU 显卡加速版

    如果你的机器安装了 NVIDIA 显卡与 CUDA,可安装 GPU 版本:

    # 安装 PyTorch CUDA 版本
    pip install torch torchvision --index-url https://download.pytorch.org/whl/cu132
    
    # 安装 OpenAI Whisper
    pip install -U openai-whisper

    CPU 版

    CPU 版本(无独立显卡)

    # 安装 OpenAI Whisper
    pip install -U openai-whisper

    运行

    whisper --help
    
    whisper audio.flac audio.mp3 audio.wav --model turbo
  • Fedora 43 源码编译安装 llama.cpp 教程(支持 CUDA 显卡加速)

    在 Linux 环境下彻底释放显卡的高效推理潜能,源码编译 llama.cpp 带有 CUDA 加速的版本是最佳选择。本文将手把手带你在最新的 Fedora 43 系统(基于 CUDA 13.2 环境)中,从配置环境变量开始,一步步完成源码构建,打造完美契合你显卡算力的私有化大模型部署神器。

    1. 配置 CUDA 环境变量

    在编译之前,我们需要将 CUDA 的编译器 nvcc 和相关动态库路径写入系统的环境变量中,确保 CMake 能够准确识别。

    # 1. 将 CUDA 路径写入全局 shell 配置中
    cat >> ~/.bashrc << 'EOF'
    
    # NVIDIA CUDA Toolkit
    export PATH=/usr/local/cuda/bin:$PATH
    export LD_LIBRARY_PATH=/usr/local/cuda/lib64:$LD_LIBRARY_PATH
    EOF
    
    # 2. 使环境变量立即生效
    source ~/.bashrc
    
    # 3. 验证环境变量是否生效
    nvcc --version
    which nvcc
    
    

    提示:如果 nvcc –version 正确打印出了 CUDA 的版本号,说明路径配置成功,可以进行下一步。

    2. 获取源码与依赖安装

    确保系统里安装了基本的构建工具(cmake 和 gcc-c++)。

    # 安装基础编译依赖
    sudo dnf install -y cmake gcc-c++ git
    
    # 进入你的开发目录并克隆官方仓库
    mkdir -p ~/Dev && cd ~/Dev
    git clone https://github.com/ggml-org/llama.cpp
    cd llama.cpp
    
    

    3. 利用 CMake 执行 CUDA 加速编译

    为了让 llama.cpp 在运行时获得最佳性能,我们通过 CMake 指定启用 CUDA,并且将算力精准锁定在 86(对应 RTX 30 系列)。

    # 1. 安全起见,先清理可能存在的旧构建缓存
    rm -rf build
    
    # 2. 配置 CMake 编译选项
    cmake -B build \
          -DGGML_CUDA=ON \
          -DCMAKE_BUILD_TYPE=Release \
          -DCMAKE_CUDA_ARCHITECTURES=86 \
          -DGGML_CUDA_F16=ON \
          -DGGML_NATIVE=OFF
    
    # 3. 启动多核并行编译
    cmake --build build -j$(nproc)
    
    

    编译参数解析

    • -DGGML_CUDA=ON:核心开关,开启 NVIDIA GPU 的 CUDA 计算后端。
    • -DCMAKE_BUILD_TYPE=Release:开启高级编译器优化,大幅提升运行期推理速度。
    • -DCMAKE_CUDA_ARCHITECTURES=86极其关键! 指定 GPU 架构。RTX 30 系列(如 3060 Ti、3070、3090)填写 86;如果你使用的是 RTX 40 系列,请改为 89。
    • -DGGML_NATIVE=OFF:关闭纯本地 CPU 强绑定优化,提升编译出的二进制文件在不同 CPU 架构间的兼容性。

    4. 验证编译结果

    编译完成后,可执行文件会被输出到 build/bin/ 目录下。我们需要验证程序能正常跑起来,且 GPU 加速已成功启用

    4.1 验证基础版本信息

    ./build/bin/llama-cli --version
    
    

    如果输出显示了相应的版本号与 Git Commit 标识,说明程序本身编译无误。

    4.2 核心验证:检查 CUDA 参数是否就绪

    ./build/bin/llama-cli -h | grep -E "ngl|gpu|cuda|flash"
    
    

    运行后如果在输出中看到了如下关键控制参数,说明你的显卡已经可以整装待发了:

      -ngl N, --n-gpu-layers N  number of layers to store in VRAM
      --sm N, --split-mode N    how to split the model across multiple GPUs
      --flash-attn              enable Flash Attention
    
    

    特别是 -ngl(–n-gpu-layers),这是我们在运行大模型时,用来指定将多少层大模型放进显存(VRAM)中计算的核心参数。

    5. 部署大模型服务(llama-server)

    编译成功后,llama.cpp 提供了一个非常现代且支持 OpenAI 兼容接口的 Web 服务端程序,叫做 llama-server。我们可以直接用它把 GGUF 模型挂载为 API 服务。

    # 启动 API 服务端
    ./build/bin/llama-server \
      -m /path/to/your-model.gguf \
      --host 0.0.0.0 \
      --port 8080 \
      -ngl 99 \
      --ctx-size 4096
    
    

    核心启动参数调优说明:

    • –host 0.0.0.0 和 –port 8080:绑定所有网络接口并监听 8080 端口,不仅本地能调,局域网内的其他设备(如 HomeLab 中的 OpenWebUI)也能直接跨机器访问。
    • -ngl 99:告诉程序把模型的全部层(写 99 足够覆盖绝大多数 7B/14B 模型)都完全卸载到的显存中。如果模型太大导致显存溢出(OOM),可以适当调低该数值(如 24 或 32)。
    • –ctx-size 4096:分配 4096 长度的上下文窗口。

    启动后如何玩转?

    1. 原生 Web 界面:直接在浏览器打开 http://localhost:8080,即可使用 llama.cpp 内置的轻量化聊天面板。
    2. 对接第三方客户端:该服务完美兼容 OpenAI API 标准,接口地址为 http://localhost:8080/v1,可无缝接入 OpenWebUI、Cherry Studio 或 NextChat 等主流前端。

    编译过程

    # 配置 CMake 编译选项
    liqixin@fedora:~/Dev/llama.cpp$ cmake -B build -DGGML_CUDA=ON \
          -DCMAKE_BUILD_TYPE=Release \
          -DCMAKE_CUDA_ARCHITECTURES=86 \
          -DGGML_CUDA_F16=ON \
          -DGGML_NATIVE=OFF
    CMAKE_BUILD_TYPE=Release
    -- Warning: ccache not found - consider installing it for faster compilation or disable this warning with GGML_CCACHE=OFF
    -- CMAKE_SYSTEM_PROCESSOR: x86_64
    -- GGML_SYSTEM_ARCH: x86
    -- Including CPU backend
    -- x86 detected
    -- Adding CPU backend variant ggml-cpu: -msse4.2;-mf16c;-mfma;-mbmi2;-mavx;-mavx2 GGML_SSE42;GGML_F16C;GGML_FMA;GGML_BMI2;GGML_AVX;GGML_AVX2
    -- CUDA Toolkit found
    -- The CUDA compiler identification is NVIDIA 13.2.78 with host compiler GNU 15.2.1
    -- Detecting CUDA compiler ABI info
    -- Detecting CUDA compiler ABI info - done
    -- Check for working CUDA compiler: /usr/local/cuda/bin/nvcc - skipped
    -- Detecting CUDA compile features
    -- Detecting CUDA compile features - done
    -- Using CMAKE_CUDA_ARCHITECTURES=86 CMAKE_CUDA_ARCHITECTURES_NATIVE=86-real
    -- Could NOT find NCCL (missing: NCCL_LIBRARY NCCL_INCLUDE_DIR) 
    -- Warning: NCCL not found, performance for multiple CUDA GPUs will be suboptimal
    -- CUDA host compiler is GNU 15.2.1
    -- Including CUDA backend
    -- ggml version: 0.12.0
    -- ggml commit:  4f0e43da6
    -- Found OpenSSL: /usr/lib64/libcrypto.so (found version "3.5.4")
    -- Performing Test OPENSSL_VERSION_SUPPORTED
    -- Performing Test OPENSSL_VERSION_SUPPORTED - Success
    -- OpenSSL found: 3.5.4
    -- UI: derived HF_UI_VERSION=b9282
    -- UI: embedded with source: provisioned
    -- Generating embedded license file for target: llama-common
    -- Configuring done (2.2s)
    -- Generating done (0.1s)
    -- Build files have been written to: /home/liqixin/Dev/llama.cpp/build
    # 执行编译(Build)
    liqixin@fedora:~/Dev/llama.cpp$ cmake --build build -j$(nproc)
    [  0%] Building/provisioning UI assets (npm build -> HF Bucket fallback)
    [  1%] Building C object examples/gguf-hash/CMakeFiles/xxhash.dir/deps/xxhash/xxhash.c.o
    [  1%] Building CXX object ggml/src/CMakeFiles/ggml-base.dir/ggml-backend.cpp.o
    [  1%] Building CXX object common/CMakeFiles/llama-common-base.dir/build-info.cpp.o
    [  1%] Building C object ggml/src/CMakeFiles/ggml-base.dir/ggml.c.o
    [  2%] Building C object ggml/src/CMakeFiles/ggml-base.dir/ggml-alloc.c.o
    [  2%] Building C object examples/gguf-hash/CMakeFiles/sha256.dir/deps/sha256/sha256.c.o
    [  2%] Building CXX object tools/mtmd/CMakeFiles/llama-llava-cli.dir/deprecation-warning.cpp.o
    [  2%] Building CXX object ggml/src/CMakeFiles/ggml-base.dir/ggml.cpp.o
    [  2%] Building CXX object ggml/src/CMakeFiles/ggml-base.dir/ggml-backend-meta.cpp.o
    [  2%] Building CXX object tools/mtmd/CMakeFiles/llama-minicpmv-cli.dir/deprecation-warning.cpp.o
    [  2%] Building CXX object ggml/src/CMakeFiles/ggml-base.dir/ggml-opt.cpp.o
    [  3%] Building CXX object ggml/src/CMakeFiles/ggml-base.dir/ggml-threading.cpp.o
    [  3%] Building C object ggml/src/CMakeFiles/ggml-base.dir/ggml-quants.c.o
    [  3%] Building CXX object vendor/cpp-httplib/CMakeFiles/cpp-httplib.dir/httplib.cpp.o
    [  3%] Building CXX object tools/mtmd/CMakeFiles/llama-gemma3-cli.dir/deprecation-warning.cpp.o
    [  3%] Building CXX object ggml/src/CMakeFiles/ggml-base.dir/gguf.cpp.o
    -- UI: npm not found, skipping npm build and trying HF Bucket download
    -- UI: downloading assets from version: https://huggingface.co/buckets/ggml-org/llama-ui/resolve/b9282
    [  3%] Building C object examples/gguf-hash/CMakeFiles/sha1.dir/deps/sha1/sha1.c.o
    [  3%] Building CXX object tools/mtmd/CMakeFiles/llama-qwen2vl-cli.dir/deprecation-warning.cpp.o
    [  3%] Built target sha1
    [  3%] Linking CXX executable ../../bin/llama-llava-cli
    [  3%] Linking CXX executable ../../bin/llama-gemma3-cli
    [  3%] Linking CXX executable ../../bin/llama-qwen2vl-cli
    [  3%] Built target sha256
    [  3%] Linking CXX static library libllama-common-base.a
    [  3%] Linking CXX executable ../../bin/llama-minicpmv-cli
    [  3%] Built target llama-llava-cli
    [  3%] Built target llama-common-base
    [  3%] Built target llama-gemma3-cli
    [  3%] Built target llama-qwen2vl-cli
    [  3%] Built target llama-minicpmv-cli
    -- UI: failed to download index.html from version: "HTTP response code said error"
    -- UI: downloading assets from latest: https://huggingface.co/buckets/ggml-org/llama-ui/resolve/latest
    [  3%] Built target xxhash
    -- UI: downloaded index.html
    [  3%] Linking CXX shared library ../../bin/libggml-base.so
    [  3%] Built target ggml-base
    [  4%] Building CXX object ggml/src/CMakeFiles/ggml-cpu.dir/ggml-cpu/hbm.cpp.o
    [  4%] Building CXX object ggml/src/CMakeFiles/ggml-cpu.dir/ggml-cpu/repack.cpp.o
    [  4%] Building C object ggml/src/CMakeFiles/ggml-cpu.dir/ggml-cpu/quants.c.o
    [  4%] Building CXX object ggml/src/CMakeFiles/ggml-cpu.dir/ggml-cpu/amx/amx.cpp.o
    [  4%] Building CXX object ggml/src/CMakeFiles/ggml-cpu.dir/ggml-cpu/traits.cpp.o
    [  4%] Building CXX object ggml/src/CMakeFiles/ggml-cpu.dir/ggml-cpu/binary-ops.cpp.o
    [  4%] Building C object ggml/src/CMakeFiles/ggml-cpu.dir/ggml-cpu/ggml-cpu.c.o
    [  5%] Building CXX object ggml/src/CMakeFiles/ggml-cpu.dir/ggml-cpu/unary-ops.cpp.o
    [  4%] Building CXX object ggml/src/CMakeFiles/ggml-cpu.dir/ggml-cpu/vec.cpp.o
    [  5%] Building CXX object ggml/src/CMakeFiles/ggml-cpu.dir/ggml-cpu/ggml-cpu.cpp.o
    [  5%] Building CXX object ggml/src/CMakeFiles/ggml-cpu.dir/ggml-cpu/ops.cpp.o
    [  5%] Building CXX object ggml/src/CMakeFiles/ggml-cpu.dir/ggml-cpu/llamafile/sgemm.cpp.o
    [  5%] Building C object ggml/src/CMakeFiles/ggml-cpu.dir/ggml-cpu/arch/x86/quants.c.o
    [  5%] Building CXX object ggml/src/CMakeFiles/ggml-cpu.dir/ggml-cpu/arch/x86/repack.cpp.o
    [  5%] Building CUDA object ggml/src/ggml-cuda/CMakeFiles/ggml-cuda.dir/allreduce.cu.o
    [  5%] Building CUDA object ggml/src/ggml-cuda/CMakeFiles/ggml-cuda.dir/acc.cu.o
    [  5%] Building CXX object ggml/src/CMakeFiles/ggml-cpu.dir/ggml-cpu/amx/mmq.cpp.o
    [  5%] Building CUDA object ggml/src/ggml-cuda/CMakeFiles/ggml-cuda.dir/add-id.cu.o
    [  5%] Building CUDA object ggml/src/ggml-cuda/CMakeFiles/ggml-cuda.dir/arange.cu.o
    -- UI: downloaded bundle.js
    [  5%] Building CUDA object ggml/src/ggml-cuda/CMakeFiles/ggml-cuda.dir/argmax.cu.o
    [  5%] Building CUDA object ggml/src/ggml-cuda/CMakeFiles/ggml-cuda.dir/argsort.cu.o
    [  6%] Building CUDA object ggml/src/ggml-cuda/CMakeFiles/ggml-cuda.dir/binbcast.cu.o
    [  6%] Building CUDA object ggml/src/ggml-cuda/CMakeFiles/ggml-cuda.dir/clamp.cu.o
    [  6%] Building CUDA object ggml/src/ggml-cuda/CMakeFiles/ggml-cuda.dir/concat.cu.o
    [  6%] Building CUDA object ggml/src/ggml-cuda/CMakeFiles/ggml-cuda.dir/conv-transpose-1d.cu.o
    [  6%] Building CUDA object ggml/src/ggml-cuda/CMakeFiles/ggml-cuda.dir/conv2d-dw.cu.o
    [  6%] Building CUDA object ggml/src/ggml-cuda/CMakeFiles/ggml-cuda.dir/conv2d-transpose.cu.o
    -- UI: downloaded bundle.css
    [  6%] Building CUDA object ggml/src/ggml-cuda/CMakeFiles/ggml-cuda.dir/conv2d.cu.o
    [  7%] Building CUDA object ggml/src/ggml-cuda/CMakeFiles/ggml-cuda.dir/convert.cu.o
    [  7%] Building CUDA object ggml/src/ggml-cuda/CMakeFiles/ggml-cuda.dir/count-equal.cu.o
    [  7%] Building CUDA object ggml/src/ggml-cuda/CMakeFiles/ggml-cuda.dir/cpy.cu.o
    [  7%] Building CUDA object ggml/src/ggml-cuda/CMakeFiles/ggml-cuda.dir/cross-entropy-loss.cu.o
    [  7%] Building CUDA object ggml/src/ggml-cuda/CMakeFiles/ggml-cuda.dir/cumsum.cu.o
    [  7%] Building CUDA object ggml/src/ggml-cuda/CMakeFiles/ggml-cuda.dir/diag.cu.o
    [  8%] Building CUDA object ggml/src/ggml-cuda/CMakeFiles/ggml-cuda.dir/diagmask.cu.o
    -- UI: downloaded loading.html
    [  8%] Building CUDA object ggml/src/ggml-cuda/CMakeFiles/ggml-cuda.dir/fattn-tile.cu.o
    [  8%] Building CUDA object ggml/src/ggml-cuda/CMakeFiles/ggml-cuda.dir/fattn-wmma-f16.cu.o
    [  8%] Building CUDA object ggml/src/ggml-cuda/CMakeFiles/ggml-cuda.dir/fattn.cu.o
    [  8%] Building CUDA object ggml/src/ggml-cuda/CMakeFiles/ggml-cuda.dir/fill.cu.o
    -- UI: verifying checksums...
    -- UI: all checksums verified
    -- UI: provisioning complete
    [  8%] Generating loading.html.hpp
    [  8%] Generating bundle.css.hpp
    [  8%] Generating bundle.js.hpp
    [  8%] Generating index.html.hpp
    [  8%] Building CUDA object ggml/src/ggml-cuda/CMakeFiles/ggml-cuda.dir/getrows.cu.o
    [  8%] Building CUDA object ggml/src/ggml-cuda/CMakeFiles/ggml-cuda.dir/gated_delta_net.cu.o
    [  9%] Building CUDA object ggml/src/ggml-cuda/CMakeFiles/ggml-cuda.dir/ggml-cuda.cu.o
    [  9%] Building CUDA object ggml/src/ggml-cuda/CMakeFiles/ggml-cuda.dir/gla.cu.o
    [  9%] Building CUDA object ggml/src/ggml-cuda/CMakeFiles/ggml-cuda.dir/im2col.cu.o
    [  9%] Building CUDA object ggml/src/ggml-cuda/CMakeFiles/ggml-cuda.dir/mean.cu.o
    [  9%] Building CUDA object ggml/src/ggml-cuda/CMakeFiles/ggml-cuda.dir/mmf.cu.o
    [ 10%] Building CUDA object ggml/src/ggml-cuda/CMakeFiles/ggml-cuda.dir/mmid.cu.o
    [ 10%] Building CUDA object ggml/src/ggml-cuda/CMakeFiles/ggml-cuda.dir/mmq.cu.o
    [ 10%] Building CUDA object ggml/src/ggml-cuda/CMakeFiles/ggml-cuda.dir/mmvf.cu.o
    [ 10%] Building CUDA object ggml/src/ggml-cuda/CMakeFiles/ggml-cuda.dir/mmvq.cu.o
    [ 10%] Building CUDA object ggml/src/ggml-cuda/CMakeFiles/ggml-cuda.dir/norm.cu.o
    [ 11%] Linking CXX shared library ../../bin/libggml-cpu.so
    [ 11%] Building CUDA object ggml/src/ggml-cuda/CMakeFiles/ggml-cuda.dir/opt-step-adamw.cu.o
    [ 11%] Built target ggml-cpu
    [ 11%] Building CUDA object ggml/src/ggml-cuda/CMakeFiles/ggml-cuda.dir/opt-step-sgd.cu.o
    [ 11%] Building CUDA object ggml/src/ggml-cuda/CMakeFiles/ggml-cuda.dir/out-prod.cu.o
    [ 12%] Building CUDA object ggml/src/ggml-cuda/CMakeFiles/ggml-cuda.dir/pad.cu.o
    [ 12%] Building CUDA object ggml/src/ggml-cuda/CMakeFiles/ggml-cuda.dir/pad_reflect_1d.cu.o
    [ 13%] Building CXX object tools/ui/CMakeFiles/llama-ui.dir/ui.cpp.o
    [ 13%] Building CUDA object ggml/src/ggml-cuda/CMakeFiles/ggml-cuda.dir/pool2d.cu.o
    [ 13%] Building CUDA object ggml/src/ggml-cuda/CMakeFiles/ggml-cuda.dir/quantize.cu.o
    [ 13%] Building CUDA object ggml/src/ggml-cuda/CMakeFiles/ggml-cuda.dir/roll.cu.o
    [ 13%] Linking CXX static library libllama-ui.a
    [ 13%] Built target llama-ui
    [ 13%] Building CUDA object ggml/src/ggml-cuda/CMakeFiles/ggml-cuda.dir/rope.cu.o
    [ 14%] Building CUDA object ggml/src/ggml-cuda/CMakeFiles/ggml-cuda.dir/scale.cu.o
    [ 14%] Building CUDA object ggml/src/ggml-cuda/CMakeFiles/ggml-cuda.dir/set-rows.cu.o
    [ 14%] Building CUDA object ggml/src/ggml-cuda/CMakeFiles/ggml-cuda.dir/set.cu.o
    [ 14%] Building CUDA object ggml/src/ggml-cuda/CMakeFiles/ggml-cuda.dir/snake.cu.o
    [ 14%] Building CUDA object ggml/src/ggml-cuda/CMakeFiles/ggml-cuda.dir/softcap.cu.o
    [ 14%] Building CUDA object ggml/src/ggml-cuda/CMakeFiles/ggml-cuda.dir/softmax.cu.o
    [ 14%] Building CUDA object ggml/src/ggml-cuda/CMakeFiles/ggml-cuda.dir/solve_tri.cu.o
    [ 15%] Building CUDA object ggml/src/ggml-cuda/CMakeFiles/ggml-cuda.dir/ssm-conv.cu.o
    [ 15%] Building CUDA object ggml/src/ggml-cuda/CMakeFiles/ggml-cuda.dir/ssm-scan.cu.o
    [ 15%] Building CUDA object ggml/src/ggml-cuda/CMakeFiles/ggml-cuda.dir/sum.cu.o
    [ 15%] Building CUDA object ggml/src/ggml-cuda/CMakeFiles/ggml-cuda.dir/sumrows.cu.o
    [ 15%] Building CUDA object ggml/src/ggml-cuda/CMakeFiles/ggml-cuda.dir/top-k.cu.o
    [ 15%] Linking CXX static library libcpp-httplib.a
    [ 15%] Built target cpp-httplib
    [ 15%] Building CUDA object ggml/src/ggml-cuda/CMakeFiles/ggml-cuda.dir/topk-moe.cu.o
    [ 15%] Building CUDA object ggml/src/ggml-cuda/CMakeFiles/ggml-cuda.dir/tri.cu.o
    [ 16%] Building CUDA object ggml/src/ggml-cuda/CMakeFiles/ggml-cuda.dir/tsembd.cu.o
    [ 16%] Building CUDA object ggml/src/ggml-cuda/CMakeFiles/ggml-cuda.dir/unary.cu.o
    [ 16%] Building CUDA object ggml/src/ggml-cuda/CMakeFiles/ggml-cuda.dir/upscale.cu.o
    [ 16%] Building CUDA object ggml/src/ggml-cuda/CMakeFiles/ggml-cuda.dir/wkv.cu.o
    [ 16%] Building CUDA object ggml/src/ggml-cuda/CMakeFiles/ggml-cuda.dir/template-instances/fattn-tile-instance-dkq112-dv112.cu.o
    [ 16%] Building CUDA object ggml/src/ggml-cuda/CMakeFiles/ggml-cuda.dir/template-instances/fattn-tile-instance-dkq128-dv128.cu.o
    [ 17%] Building CUDA object ggml/src/ggml-cuda/CMakeFiles/ggml-cuda.dir/template-instances/fattn-tile-instance-dkq192-dv128.cu.o
    [ 17%] Building CUDA object ggml/src/ggml-cuda/CMakeFiles/ggml-cuda.dir/template-instances/fattn-tile-instance-dkq256-dv256.cu.o
    [ 17%] Building CUDA object ggml/src/ggml-cuda/CMakeFiles/ggml-cuda.dir/template-instances/fattn-tile-instance-dkq320-dv256.cu.o
    [ 17%] Building CUDA object ggml/src/ggml-cuda/CMakeFiles/ggml-cuda.dir/template-instances/fattn-tile-instance-dkq40-dv40.cu.o
    [ 17%] Building CUDA object ggml/src/ggml-cuda/CMakeFiles/ggml-cuda.dir/template-instances/fattn-tile-instance-dkq512-dv512.cu.o
    [ 17%] Building CUDA object ggml/src/ggml-cuda/CMakeFiles/ggml-cuda.dir/template-instances/fattn-tile-instance-dkq576-dv512.cu.o
    [ 17%] Building CUDA object ggml/src/ggml-cuda/CMakeFiles/ggml-cuda.dir/template-instances/fattn-tile-instance-dkq64-dv64.cu.o
    [ 18%] Building CUDA object ggml/src/ggml-cuda/CMakeFiles/ggml-cuda.dir/template-instances/fattn-tile-instance-dkq72-dv72.cu.o
    [ 18%] Building CUDA object ggml/src/ggml-cuda/CMakeFiles/ggml-cuda.dir/template-instances/fattn-tile-instance-dkq80-dv80.cu.o
    [ 18%] Building CUDA object ggml/src/ggml-cuda/CMakeFiles/ggml-cuda.dir/template-instances/fattn-tile-instance-dkq96-dv96.cu.o
    [ 18%] Building CUDA object ggml/src/ggml-cuda/CMakeFiles/ggml-cuda.dir/template-instances/fattn-mma-f16-instance-ncols1_1-ncols2_16.cu.o
    [ 18%] Building CUDA object ggml/src/ggml-cuda/CMakeFiles/ggml-cuda.dir/template-instances/fattn-mma-f16-instance-ncols1_1-ncols2_32.cu.o
    [ 18%] Building CUDA object ggml/src/ggml-cuda/CMakeFiles/ggml-cuda.dir/template-instances/fattn-mma-f16-instance-ncols1_1-ncols2_8.cu.o
    [ 19%] Building CUDA object ggml/src/ggml-cuda/CMakeFiles/ggml-cuda.dir/template-instances/fattn-mma-f16-instance-ncols1_16-ncols2_1.cu.o
    [ 19%] Building CUDA object ggml/src/ggml-cuda/CMakeFiles/ggml-cuda.dir/template-instances/fattn-mma-f16-instance-ncols1_16-ncols2_2.cu.o
    [ 19%] Building CUDA object ggml/src/ggml-cuda/CMakeFiles/ggml-cuda.dir/template-instances/fattn-mma-f16-instance-ncols1_16-ncols2_4.cu.o
    [ 19%] Building CUDA object ggml/src/ggml-cuda/CMakeFiles/ggml-cuda.dir/template-instances/fattn-mma-f16-instance-ncols1_2-ncols2_16.cu.o
    [ 19%] Building CUDA object ggml/src/ggml-cuda/CMakeFiles/ggml-cuda.dir/template-instances/fattn-mma-f16-instance-ncols1_2-ncols2_32.cu.o
    [ 19%] Building CUDA object ggml/src/ggml-cuda/CMakeFiles/ggml-cuda.dir/template-instances/fattn-mma-f16-instance-ncols1_2-ncols2_4.cu.o
    [ 19%] Building CUDA object ggml/src/ggml-cuda/CMakeFiles/ggml-cuda.dir/template-instances/fattn-mma-f16-instance-ncols1_2-ncols2_8.cu.o
    [ 20%] Building CUDA object ggml/src/ggml-cuda/CMakeFiles/ggml-cuda.dir/template-instances/fattn-mma-f16-instance-ncols1_32-ncols2_1.cu.o
    [ 20%] Building CUDA object ggml/src/ggml-cuda/CMakeFiles/ggml-cuda.dir/template-instances/fattn-mma-f16-instance-ncols1_32-ncols2_2.cu.o
    [ 20%] Building CUDA object ggml/src/ggml-cuda/CMakeFiles/ggml-cuda.dir/template-instances/fattn-mma-f16-instance-ncols1_4-ncols2_16.cu.o
    [ 20%] Building CUDA object ggml/src/ggml-cuda/CMakeFiles/ggml-cuda.dir/template-instances/fattn-mma-f16-instance-ncols1_4-ncols2_2.cu.o
    [ 20%] Building CUDA object ggml/src/ggml-cuda/CMakeFiles/ggml-cuda.dir/template-instances/fattn-mma-f16-instance-ncols1_4-ncols2_4.cu.o
    [ 20%] Building CUDA object ggml/src/ggml-cuda/CMakeFiles/ggml-cuda.dir/template-instances/fattn-mma-f16-instance-ncols1_4-ncols2_8.cu.o
    [ 20%] Building CUDA object ggml/src/ggml-cuda/CMakeFiles/ggml-cuda.dir/template-instances/fattn-mma-f16-instance-ncols1_64-ncols2_1.cu.o
    [ 21%] Building CUDA object ggml/src/ggml-cuda/CMakeFiles/ggml-cuda.dir/template-instances/fattn-mma-f16-instance-ncols1_8-ncols2_1.cu.o
    [ 21%] Building CUDA object ggml/src/ggml-cuda/CMakeFiles/ggml-cuda.dir/template-instances/fattn-mma-f16-instance-ncols1_8-ncols2_2.cu.o
    [ 21%] Building CUDA object ggml/src/ggml-cuda/CMakeFiles/ggml-cuda.dir/template-instances/fattn-mma-f16-instance-ncols1_8-ncols2_4.cu.o
    [ 21%] Building CUDA object ggml/src/ggml-cuda/CMakeFiles/ggml-cuda.dir/template-instances/fattn-mma-f16-instance-ncols1_8-ncols2_8.cu.o
    [ 21%] Building CUDA object ggml/src/ggml-cuda/CMakeFiles/ggml-cuda.dir/template-instances/mmq-instance-iq1_s.cu.o
    [ 21%] Building CUDA object ggml/src/ggml-cuda/CMakeFiles/ggml-cuda.dir/template-instances/mmq-instance-iq2_s.cu.o
    [ 22%] Building CUDA object ggml/src/ggml-cuda/CMakeFiles/ggml-cuda.dir/template-instances/mmq-instance-iq2_xs.cu.o
    [ 22%] Building CUDA object ggml/src/ggml-cuda/CMakeFiles/ggml-cuda.dir/template-instances/mmq-instance-iq2_xxs.cu.o
    [ 22%] Building CUDA object ggml/src/ggml-cuda/CMakeFiles/ggml-cuda.dir/template-instances/mmq-instance-iq3_s.cu.o
    [ 22%] Building CUDA object ggml/src/ggml-cuda/CMakeFiles/ggml-cuda.dir/template-instances/mmq-instance-iq3_xxs.cu.o
    [ 22%] Building CUDA object ggml/src/ggml-cuda/CMakeFiles/ggml-cuda.dir/template-instances/mmq-instance-iq4_nl.cu.o
    [ 22%] Building CUDA object ggml/src/ggml-cuda/CMakeFiles/ggml-cuda.dir/template-instances/mmq-instance-iq4_xs.cu.o
    [ 22%] Building CUDA object ggml/src/ggml-cuda/CMakeFiles/ggml-cuda.dir/template-instances/mmq-instance-mxfp4.cu.o
    [ 23%] Building CUDA object ggml/src/ggml-cuda/CMakeFiles/ggml-cuda.dir/template-instances/mmq-instance-nvfp4.cu.o
    [ 23%] Building CUDA object ggml/src/ggml-cuda/CMakeFiles/ggml-cuda.dir/template-instances/mmq-instance-q1_0.cu.o
    [ 23%] Building CUDA object ggml/src/ggml-cuda/CMakeFiles/ggml-cuda.dir/template-instances/mmq-instance-q2_k.cu.o
    [ 23%] Building CUDA object ggml/src/ggml-cuda/CMakeFiles/ggml-cuda.dir/template-instances/mmq-instance-q3_k.cu.o
    [ 23%] Building CUDA object ggml/src/ggml-cuda/CMakeFiles/ggml-cuda.dir/template-instances/mmq-instance-q4_0.cu.o
    [ 23%] Building CUDA object ggml/src/ggml-cuda/CMakeFiles/ggml-cuda.dir/template-instances/mmq-instance-q4_1.cu.o
    [ 24%] Building CUDA object ggml/src/ggml-cuda/CMakeFiles/ggml-cuda.dir/template-instances/mmq-instance-q4_k.cu.o
    [ 24%] Building CUDA object ggml/src/ggml-cuda/CMakeFiles/ggml-cuda.dir/template-instances/mmq-instance-q5_0.cu.o
    [ 24%] Building CUDA object ggml/src/ggml-cuda/CMakeFiles/ggml-cuda.dir/template-instances/mmq-instance-q5_1.cu.o
    [ 24%] Building CUDA object ggml/src/ggml-cuda/CMakeFiles/ggml-cuda.dir/template-instances/mmq-instance-q5_k.cu.o
    [ 24%] Building CUDA object ggml/src/ggml-cuda/CMakeFiles/ggml-cuda.dir/template-instances/mmq-instance-q6_k.cu.o
    [ 24%] Building CUDA object ggml/src/ggml-cuda/CMakeFiles/ggml-cuda.dir/template-instances/mmq-instance-q8_0.cu.o
    [ 24%] Building CUDA object ggml/src/ggml-cuda/CMakeFiles/ggml-cuda.dir/template-instances/mmf-instance-ncols_1.cu.o
    [ 25%] Building CUDA object ggml/src/ggml-cuda/CMakeFiles/ggml-cuda.dir/template-instances/mmf-instance-ncols_10.cu.o
    [ 25%] Building CUDA object ggml/src/ggml-cuda/CMakeFiles/ggml-cuda.dir/template-instances/mmf-instance-ncols_11.cu.o
    [ 25%] Building CUDA object ggml/src/ggml-cuda/CMakeFiles/ggml-cuda.dir/template-instances/mmf-instance-ncols_12.cu.o
    [ 25%] Building CUDA object ggml/src/ggml-cuda/CMakeFiles/ggml-cuda.dir/template-instances/mmf-instance-ncols_13.cu.o
    [ 25%] Building CUDA object ggml/src/ggml-cuda/CMakeFiles/ggml-cuda.dir/template-instances/mmf-instance-ncols_14.cu.o
    [ 25%] Building CUDA object ggml/src/ggml-cuda/CMakeFiles/ggml-cuda.dir/template-instances/mmf-instance-ncols_15.cu.o
    [ 26%] Building CUDA object ggml/src/ggml-cuda/CMakeFiles/ggml-cuda.dir/template-instances/mmf-instance-ncols_16.cu.o
    [ 26%] Building CUDA object ggml/src/ggml-cuda/CMakeFiles/ggml-cuda.dir/template-instances/mmf-instance-ncols_2.cu.o
    [ 26%] Building CUDA object ggml/src/ggml-cuda/CMakeFiles/ggml-cuda.dir/template-instances/mmf-instance-ncols_3.cu.o
    [ 26%] Building CUDA object ggml/src/ggml-cuda/CMakeFiles/ggml-cuda.dir/template-instances/mmf-instance-ncols_4.cu.o
    [ 26%] Building CUDA object ggml/src/ggml-cuda/CMakeFiles/ggml-cuda.dir/template-instances/mmf-instance-ncols_5.cu.o
    [ 26%] Building CUDA object ggml/src/ggml-cuda/CMakeFiles/ggml-cuda.dir/template-instances/mmf-instance-ncols_6.cu.o
    [ 26%] Building CUDA object ggml/src/ggml-cuda/CMakeFiles/ggml-cuda.dir/template-instances/mmf-instance-ncols_7.cu.o
    [ 27%] Building CUDA object ggml/src/ggml-cuda/CMakeFiles/ggml-cuda.dir/template-instances/mmf-instance-ncols_8.cu.o
    [ 27%] Building CUDA object ggml/src/ggml-cuda/CMakeFiles/ggml-cuda.dir/template-instances/mmf-instance-ncols_9.cu.o
    [ 27%] Building CUDA object ggml/src/ggml-cuda/CMakeFiles/ggml-cuda.dir/template-instances/fattn-vec-instance-f16-f16.cu.o
    [ 27%] Building CUDA object ggml/src/ggml-cuda/CMakeFiles/ggml-cuda.dir/template-instances/fattn-vec-instance-q4_0-q4_0.cu.o
    [ 27%] Building CUDA object ggml/src/ggml-cuda/CMakeFiles/ggml-cuda.dir/template-instances/fattn-vec-instance-q8_0-q8_0.cu.o
    [ 27%] Building CUDA object ggml/src/ggml-cuda/CMakeFiles/ggml-cuda.dir/template-instances/fattn-vec-instance-bf16-bf16.cu.o
    [ 27%] Linking CUDA shared library ../../../bin/libggml-cuda.so
    [ 27%] Built target ggml-cuda
    [ 27%] Building CXX object ggml/src/CMakeFiles/ggml.dir/ggml-backend-dl.cpp.o
    [ 27%] Building CXX object ggml/src/CMakeFiles/ggml.dir/ggml-backend-reg.cpp.o
    [ 28%] Linking CXX shared library ../../bin/libggml.so
    [ 28%] Built target ggml
    [ 28%] Building CXX object examples/gguf/CMakeFiles/llama-gguf.dir/gguf.cpp.o
    [ 28%] Building CXX object examples/gguf-hash/CMakeFiles/llama-gguf-hash.dir/gguf-hash.cpp.o
    [ 28%] Building CXX object src/CMakeFiles/llama.dir/llama.cpp.o
    [ 28%] Building CXX object src/CMakeFiles/llama.dir/llama-batch.cpp.o
    [ 29%] Building CXX object src/CMakeFiles/llama.dir/llama-context.cpp.o
    [ 29%] Building CXX object src/CMakeFiles/llama.dir/llama-chat.cpp.o
    [ 29%] Building CXX object src/CMakeFiles/llama.dir/llama-adapter.cpp.o
    [ 29%] Building CXX object src/CMakeFiles/llama.dir/llama-grammar.cpp.o
    [ 29%] Building CXX object src/CMakeFiles/llama.dir/llama-arch.cpp.o
    [ 29%] Building CXX object src/CMakeFiles/llama.dir/llama-graph.cpp.o
    [ 29%] Building CXX object src/CMakeFiles/llama.dir/llama-impl.cpp.o
    [ 29%] Building CXX object src/CMakeFiles/llama.dir/llama-kv-cache.cpp.o
    [ 30%] Building CXX object src/CMakeFiles/llama.dir/llama-kv-cache-iswa.cpp.o
    [ 30%] Building CXX object src/CMakeFiles/llama.dir/llama-io.cpp.o
    [ 30%] Building CXX object src/CMakeFiles/llama.dir/llama-hparams.cpp.o
    [ 30%] Building CXX object src/CMakeFiles/llama.dir/llama-memory.cpp.o
    [ 31%] Building CXX object src/CMakeFiles/llama.dir/llama-memory-recurrent.cpp.o
    [ 31%] Building CXX object src/CMakeFiles/llama.dir/llama-cparams.cpp.o
    [ 31%] Building CXX object src/CMakeFiles/llama.dir/llama-memory-hybrid-iswa.cpp.o
    [ 31%] Building CXX object src/CMakeFiles/llama.dir/llama-memory-hybrid.cpp.o
    [ 31%] Building CXX object src/CMakeFiles/llama.dir/llama-mmap.cpp.o
    [ 31%] Building CXX object src/CMakeFiles/llama.dir/llama-model-loader.cpp.o
    [ 31%] Building CXX object src/CMakeFiles/llama.dir/llama-model-saver.cpp.o
    [ 31%] Building CXX object src/CMakeFiles/llama.dir/llama-model.cpp.o
    [ 31%] Building CXX object src/CMakeFiles/llama.dir/llama-quant.cpp.o
    [ 31%] Linking CXX executable ../../bin/llama-gguf-hash
    [ 31%] Building CXX object src/CMakeFiles/llama.dir/llama-sampler.cpp.o
    [ 32%] Linking CXX executable ../../bin/llama-gguf
    [ 33%] Building CXX object src/CMakeFiles/llama.dir/llama-vocab.cpp.o
    [ 33%] Built target llama-gguf-hash
    [ 33%] Building CXX object src/CMakeFiles/llama.dir/unicode-data.cpp.o
    [ 33%] Built target llama-gguf
    [ 33%] Building CXX object src/CMakeFiles/llama.dir/unicode.cpp.o
    [ 33%] Building CXX object src/CMakeFiles/llama.dir/models/afmoe.cpp.o
    [ 33%] Building CXX object src/CMakeFiles/llama.dir/models/apertus.cpp.o
    [ 33%] Building CXX object src/CMakeFiles/llama.dir/models/arcee.cpp.o
    [ 34%] Building CXX object src/CMakeFiles/llama.dir/models/arctic.cpp.o
    [ 34%] Building CXX object src/CMakeFiles/llama.dir/models/arwkv7.cpp.o
    [ 34%] Building CXX object src/CMakeFiles/llama.dir/models/baichuan.cpp.o
    [ 34%] Building CXX object src/CMakeFiles/llama.dir/models/bailingmoe.cpp.o
    [ 34%] Building CXX object src/CMakeFiles/llama.dir/models/bailingmoe2.cpp.o
    [ 34%] Building CXX object src/CMakeFiles/llama.dir/models/bert.cpp.o
    [ 34%] Building CXX object src/CMakeFiles/llama.dir/models/bitnet.cpp.o
    [ 35%] Building CXX object src/CMakeFiles/llama.dir/models/bloom.cpp.o
    [ 35%] Building CXX object src/CMakeFiles/llama.dir/models/chameleon.cpp.o
    [ 35%] Building CXX object src/CMakeFiles/llama.dir/models/chatglm.cpp.o
    [ 35%] Building CXX object src/CMakeFiles/llama.dir/models/codeshell.cpp.o
    [ 35%] Building CXX object src/CMakeFiles/llama.dir/models/cogvlm.cpp.o
    [ 35%] Building CXX object src/CMakeFiles/llama.dir/models/cohere2.cpp.o
    [ 35%] Building CXX object src/CMakeFiles/llama.dir/models/command-r.cpp.o
    [ 36%] Building CXX object src/CMakeFiles/llama.dir/models/dbrx.cpp.o
    [ 36%] Building CXX object src/CMakeFiles/llama.dir/models/deci.cpp.o
    [ 36%] Building CXX object src/CMakeFiles/llama.dir/models/deepseek.cpp.o
    [ 36%] Building CXX object src/CMakeFiles/llama.dir/models/deepseek2.cpp.o
    [ 36%] Building CXX object src/CMakeFiles/llama.dir/models/deepseek2ocr.cpp.o
    [ 36%] Building CXX object src/CMakeFiles/llama.dir/models/delta-net-base.cpp.o
    [ 37%] Building CXX object src/CMakeFiles/llama.dir/models/dots1.cpp.o
    [ 37%] Building CXX object src/CMakeFiles/llama.dir/models/dream.cpp.o
    [ 37%] Building CXX object src/CMakeFiles/llama.dir/models/ernie4-5-moe.cpp.o
    [ 37%] Building CXX object src/CMakeFiles/llama.dir/models/ernie4-5.cpp.o
    [ 37%] Building CXX object src/CMakeFiles/llama.dir/models/eurobert.cpp.o
    [ 37%] Building CXX object src/CMakeFiles/llama.dir/models/exaone-moe.cpp.o
    [ 38%] Building CXX object src/CMakeFiles/llama.dir/models/exaone.cpp.o
    [ 38%] Building CXX object src/CMakeFiles/llama.dir/models/exaone4.cpp.o
    [ 38%] Building CXX object src/CMakeFiles/llama.dir/models/falcon-h1.cpp.o
    [ 38%] Building CXX object src/CMakeFiles/llama.dir/models/falcon.cpp.o
    [ 38%] Building CXX object src/CMakeFiles/llama.dir/models/gemma-embedding.cpp.o
    [ 38%] Building CXX object src/CMakeFiles/llama.dir/models/gemma.cpp.o
    [ 38%] Building CXX object src/CMakeFiles/llama.dir/models/gemma2.cpp.o
    [ 39%] Building CXX object src/CMakeFiles/llama.dir/models/gemma3.cpp.o
    [ 39%] Building CXX object src/CMakeFiles/llama.dir/models/gemma3n.cpp.o
    [ 39%] Building CXX object src/CMakeFiles/llama.dir/models/gemma4.cpp.o
    [ 39%] Building CXX object src/CMakeFiles/llama.dir/models/glm-dsa.cpp.o
    [ 39%] Building CXX object src/CMakeFiles/llama.dir/models/glm4-moe.cpp.o
    [ 39%] Building CXX object src/CMakeFiles/llama.dir/models/glm4.cpp.o
    [ 39%] Building CXX object src/CMakeFiles/llama.dir/models/gpt2.cpp.o
    [ 40%] Building CXX object src/CMakeFiles/llama.dir/models/gptneox.cpp.o
    [ 40%] Building CXX object src/CMakeFiles/llama.dir/models/granite-hybrid.cpp.o
    [ 40%] Building CXX object src/CMakeFiles/llama.dir/models/granite-moe.cpp.o
    [ 40%] Building CXX object src/CMakeFiles/llama.dir/models/granite.cpp.o
    [ 40%] Building CXX object src/CMakeFiles/llama.dir/models/grok.cpp.o
    [ 40%] Building CXX object src/CMakeFiles/llama.dir/models/grovemoe.cpp.o
    [ 40%] Building CXX object src/CMakeFiles/llama.dir/models/hunyuan-dense.cpp.o
    [ 41%] Building CXX object src/CMakeFiles/llama.dir/models/hunyuan-moe.cpp.o
    [ 41%] Building CXX object src/CMakeFiles/llama.dir/models/hunyuan-vl.cpp.o
    [ 41%] Building CXX object src/CMakeFiles/llama.dir/models/internlm2.cpp.o
    [ 41%] Building CXX object src/CMakeFiles/llama.dir/models/jais.cpp.o
    [ 41%] Building CXX object src/CMakeFiles/llama.dir/models/jais2.cpp.o
    [ 41%] Building CXX object src/CMakeFiles/llama.dir/models/jamba.cpp.o
    [ 42%] Building CXX object src/CMakeFiles/llama.dir/models/jina-bert-v2.cpp.o
    [ 42%] Building CXX object src/CMakeFiles/llama.dir/models/jina-bert-v3.cpp.o
    [ 42%] Building CXX object src/CMakeFiles/llama.dir/models/kimi-linear.cpp.o
    [ 42%] Building CXX object src/CMakeFiles/llama.dir/models/lfm2.cpp.o
    [ 42%] Building CXX object src/CMakeFiles/llama.dir/models/lfm2moe.cpp.o
    [ 42%] Building CXX object src/CMakeFiles/llama.dir/models/llada-moe.cpp.o
    [ 42%] Building CXX object src/CMakeFiles/llama.dir/models/llada.cpp.o
    [ 43%] Building CXX object src/CMakeFiles/llama.dir/models/llama-embed.cpp.o
    [ 43%] Building CXX object src/CMakeFiles/llama.dir/models/llama.cpp.o
    [ 43%] Building CXX object src/CMakeFiles/llama.dir/models/llama4.cpp.o
    [ 43%] Building CXX object src/CMakeFiles/llama.dir/models/maincoder.cpp.o
    [ 43%] Building CXX object src/CMakeFiles/llama.dir/models/mamba-base.cpp.o
    [ 43%] Building CXX object src/CMakeFiles/llama.dir/models/mamba.cpp.o
    [ 44%] Building CXX object src/CMakeFiles/llama.dir/models/mamba2.cpp.o
    [ 44%] Building CXX object src/CMakeFiles/llama.dir/models/mimo2.cpp.o
    [ 44%] Building CXX object src/CMakeFiles/llama.dir/models/minicpm.cpp.o
    [ 44%] Building CXX object src/CMakeFiles/llama.dir/models/minicpm3.cpp.o
    [ 44%] Building CXX object src/CMakeFiles/llama.dir/models/minimax-m2.cpp.o
    [ 44%] Building CXX object src/CMakeFiles/llama.dir/models/mistral3.cpp.o
    [ 44%] Building CXX object src/CMakeFiles/llama.dir/models/mistral4.cpp.o
    [ 45%] Building CXX object src/CMakeFiles/llama.dir/models/modern-bert.cpp.o
    [ 45%] Building CXX object src/CMakeFiles/llama.dir/models/mpt.cpp.o
    [ 45%] Building CXX object src/CMakeFiles/llama.dir/models/nemotron-h-moe.cpp.o
    [ 45%] Building CXX object src/CMakeFiles/llama.dir/models/nemotron-h.cpp.o
    [ 45%] Building CXX object src/CMakeFiles/llama.dir/models/nemotron.cpp.o
    [ 45%] Building CXX object src/CMakeFiles/llama.dir/models/neo-bert.cpp.o
    [ 46%] Building CXX object src/CMakeFiles/llama.dir/models/nomic-bert-moe.cpp.o
    [ 46%] Building CXX object src/CMakeFiles/llama.dir/models/nomic-bert.cpp.o
    [ 46%] Building CXX object src/CMakeFiles/llama.dir/models/olmo.cpp.o
    [ 46%] Building CXX object src/CMakeFiles/llama.dir/models/olmo2.cpp.o
    [ 46%] Building CXX object src/CMakeFiles/llama.dir/models/olmoe.cpp.o
    [ 46%] Building CXX object src/CMakeFiles/llama.dir/models/openai-moe.cpp.o
    [ 46%] Building CXX object src/CMakeFiles/llama.dir/models/openelm.cpp.o
    [ 47%] Building CXX object src/CMakeFiles/llama.dir/models/orion.cpp.o
    [ 47%] Building CXX object src/CMakeFiles/llama.dir/models/paddleocr.cpp.o
    [ 47%] Building CXX object src/CMakeFiles/llama.dir/models/pangu-embed.cpp.o
    [ 47%] Building CXX object src/CMakeFiles/llama.dir/models/phi2.cpp.o
    [ 47%] Building CXX object src/CMakeFiles/llama.dir/models/phi3.cpp.o
    [ 47%] Building CXX object src/CMakeFiles/llama.dir/models/phimoe.cpp.o
    [ 47%] Building CXX object src/CMakeFiles/llama.dir/models/plamo.cpp.o
    [ 48%] Building CXX object src/CMakeFiles/llama.dir/models/plamo2.cpp.o
    [ 48%] Building CXX object src/CMakeFiles/llama.dir/models/plamo3.cpp.o
    [ 48%] Building CXX object src/CMakeFiles/llama.dir/models/plm.cpp.o
    [ 48%] Building CXX object src/CMakeFiles/llama.dir/models/qwen.cpp.o
    [ 48%] Building CXX object src/CMakeFiles/llama.dir/models/qwen2.cpp.o
    [ 48%] Building CXX object src/CMakeFiles/llama.dir/models/qwen2moe.cpp.o
    [ 49%] Building CXX object src/CMakeFiles/llama.dir/models/qwen2vl.cpp.o
    [ 49%] Building CXX object src/CMakeFiles/llama.dir/models/qwen3.cpp.o
    [ 49%] Building CXX object src/CMakeFiles/llama.dir/models/qwen35.cpp.o
    [ 49%] Building CXX object src/CMakeFiles/llama.dir/models/qwen35moe.cpp.o
    [ 49%] Building CXX object src/CMakeFiles/llama.dir/models/qwen3moe.cpp.o
    [ 49%] Building CXX object src/CMakeFiles/llama.dir/models/qwen3next.cpp.o
    [ 49%] Building CXX object src/CMakeFiles/llama.dir/models/qwen3vl.cpp.o
    [ 50%] Building CXX object src/CMakeFiles/llama.dir/models/qwen3vlmoe.cpp.o
    [ 50%] Building CXX object src/CMakeFiles/llama.dir/models/refact.cpp.o
    [ 50%] Building CXX object src/CMakeFiles/llama.dir/models/rnd1.cpp.o
    [ 50%] Building CXX object src/CMakeFiles/llama.dir/models/rwkv6-base.cpp.o
    [ 50%] Building CXX object src/CMakeFiles/llama.dir/models/rwkv6.cpp.o
    [ 50%] Building CXX object src/CMakeFiles/llama.dir/models/rwkv6qwen2.cpp.o
    [ 51%] Building CXX object src/CMakeFiles/llama.dir/models/rwkv7-base.cpp.o
    [ 51%] Building CXX object src/CMakeFiles/llama.dir/models/rwkv7.cpp.o
    [ 51%] Building CXX object src/CMakeFiles/llama.dir/models/seed-oss.cpp.o
    [ 51%] Building CXX object src/CMakeFiles/llama.dir/models/smallthinker.cpp.o
    [ 51%] Building CXX object src/CMakeFiles/llama.dir/models/smollm3.cpp.o
    [ 51%] Building CXX object src/CMakeFiles/llama.dir/models/stablelm.cpp.o
    [ 51%] Building CXX object src/CMakeFiles/llama.dir/models/starcoder.cpp.o
    [ 52%] Building CXX object src/CMakeFiles/llama.dir/models/starcoder2.cpp.o
    [ 52%] Building CXX object src/CMakeFiles/llama.dir/models/step35.cpp.o
    [ 52%] Building CXX object src/CMakeFiles/llama.dir/models/t5.cpp.o
    [ 52%] Building CXX object src/CMakeFiles/llama.dir/models/wavtokenizer-dec.cpp.o
    [ 52%] Building CXX object src/CMakeFiles/llama.dir/models/t5encoder.cpp.o
    [ 52%] Building CXX object src/CMakeFiles/llama.dir/models/xverse.cpp.o
    [ 53%] Linking CXX shared library ../bin/libllama.so
    [ 53%] Built target llama
    [ 54%] Building CXX object examples/simple/CMakeFiles/llama-simple.dir/simple.cpp.o
    [ 54%] Building CXX object tools/mtmd/CMakeFiles/mtmd.dir/mtmd-audio.cpp.o
    [ 54%] Building CXX object tools/mtmd/CMakeFiles/mtmd.dir/mtmd-image.cpp.o
    [ 55%] Building CXX object tools/mtmd/CMakeFiles/mtmd.dir/clip.cpp.o
    [ 55%] Building CXX object tools/mtmd/CMakeFiles/mtmd.dir/mtmd-helper.cpp.o
    [ 55%] Building CXX object examples/simple-chat/CMakeFiles/llama-simple-chat.dir/simple-chat.cpp.o
    [ 55%] Building CXX object tools/mtmd/CMakeFiles/mtmd.dir/models/gemma4a.cpp.o
    [ 55%] Building CXX object tools/mtmd/CMakeFiles/mtmd.dir/mtmd.cpp.o
    [ 55%] Building CXX object tools/mtmd/CMakeFiles/mtmd.dir/models/dotsocr.cpp.o
    [ 56%] Building CXX object tools/mtmd/CMakeFiles/mtmd.dir/models/glm4v.cpp.o
    [ 56%] Building CXX object tools/mtmd/CMakeFiles/mtmd.dir/models/gemma4v.cpp.o
    [ 56%] Building CXX object tools/mtmd/CMakeFiles/mtmd.dir/models/internvl.cpp.o
    [ 56%] Building CXX object tools/mtmd/CMakeFiles/mtmd.dir/models/cogvlm.cpp.o
    [ 56%] Building C object tests/CMakeFiles/test-c.dir/test-c.c.o
    [ 56%] Building CXX object tools/mtmd/CMakeFiles/mtmd.dir/models/hunyuanvl.cpp.o
    [ 56%] Building CXX object tools/mtmd/CMakeFiles/mtmd.dir/models/granite-speech.cpp.o
    [ 56%] Building CXX object tools/mtmd/CMakeFiles/mtmd.dir/models/kimivl.cpp.o
    [ 56%] Building CXX object tools/mtmd/CMakeFiles/mtmd.dir/models/conformer.cpp.o
    [ 56%] Building CXX object tools/mtmd/CMakeFiles/mtmd.dir/models/kimik25.cpp.o
    [ 56%] Building CXX object common/CMakeFiles/llama-common.dir/arg.cpp.o
    [ 57%] Linking C executable ../bin/test-c
    [ 57%] Built target test-c
    [ 57%] Building CXX object common/CMakeFiles/llama-common.dir/chat-auto-parser-generator.cpp.o
    [ 57%] Linking CXX executable ../../bin/llama-simple
    [ 57%] Built target llama-simple
    [ 58%] Building CXX object tools/mtmd/CMakeFiles/mtmd.dir/models/nemotron-v2-vl.cpp.o
    [ 58%] Linking CXX executable ../../bin/llama-simple-chat
    [ 58%] Built target llama-simple-chat
    [ 58%] Building CXX object common/CMakeFiles/llama-common.dir/chat-auto-parser-helpers.cpp.o
    [ 58%] Building CXX object tools/mtmd/CMakeFiles/mtmd.dir/models/llama4.cpp.o
    [ 59%] Building CXX object common/CMakeFiles/llama-common.dir/chat-diff-analyzer.cpp.o
    [ 59%] Building CXX object tools/mtmd/CMakeFiles/mtmd.dir/models/llava.cpp.o
    [ 59%] Building CXX object common/CMakeFiles/llama-common.dir/chat-peg-parser.cpp.o
    [ 59%] Building CXX object tools/mtmd/CMakeFiles/mtmd.dir/models/minicpmv.cpp.o
    [ 59%] Building CXX object common/CMakeFiles/llama-common.dir/chat.cpp.o
    [ 59%] Building CXX object common/CMakeFiles/llama-common.dir/common.cpp.o
    [ 59%] Building CXX object tools/mtmd/CMakeFiles/mtmd.dir/models/paddleocr.cpp.o
    [ 59%] Building CXX object common/CMakeFiles/llama-common.dir/console.cpp.o
    [ 59%] Building CXX object tools/mtmd/CMakeFiles/mtmd.dir/models/pixtral.cpp.o
    [ 59%] Building CXX object common/CMakeFiles/llama-common.dir/debug.cpp.o
    [ 59%] Building CXX object common/CMakeFiles/llama-common.dir/download.cpp.o
    [ 60%] Building CXX object common/CMakeFiles/llama-common.dir/fit.cpp.o
    [ 60%] Building CXX object common/CMakeFiles/llama-common.dir/hf-cache.cpp.o
    [ 60%] Building CXX object common/CMakeFiles/llama-common.dir/json-partial.cpp.o
    [ 60%] Building CXX object tools/mtmd/CMakeFiles/mtmd.dir/models/qwen2vl.cpp.o
    [ 60%] Building CXX object common/CMakeFiles/llama-common.dir/json-schema-to-grammar.cpp.o
    [ 61%] Building CXX object tools/mtmd/CMakeFiles/mtmd.dir/models/qwen3vl.cpp.o
    [ 61%] Building CXX object common/CMakeFiles/llama-common.dir/llguidance.cpp.o
    [ 61%] Building CXX object tools/mtmd/CMakeFiles/mtmd.dir/models/mimovl.cpp.o
    [ 61%] Building CXX object common/CMakeFiles/llama-common.dir/log.cpp.o
    [ 62%] Building CXX object common/CMakeFiles/llama-common.dir/ngram-cache.cpp.o
    [ 62%] Building CXX object tools/mtmd/CMakeFiles/mtmd.dir/models/qwen3a.cpp.o
    [ 62%] Building CXX object common/CMakeFiles/llama-common.dir/ngram-map.cpp.o
    [ 62%] Building CXX object common/CMakeFiles/llama-common.dir/ngram-mod.cpp.o
    [ 62%] Building CXX object tools/mtmd/CMakeFiles/mtmd.dir/models/step3vl.cpp.o
    [ 62%] Building CXX object tools/mtmd/CMakeFiles/mtmd.dir/models/siglip.cpp.o
    [ 62%] Building CXX object common/CMakeFiles/llama-common.dir/peg-parser.cpp.o
    [ 62%] Building CXX object common/CMakeFiles/llama-common.dir/preset.cpp.o
    [ 62%] Building CXX object tools/mtmd/CMakeFiles/mtmd.dir/models/whisper-enc.cpp.o
    [ 63%] Building CXX object tools/mtmd/CMakeFiles/mtmd.dir/models/deepseekocr.cpp.o
    [ 63%] Building CXX object tools/mtmd/CMakeFiles/mtmd.dir/models/mobilenetv5.cpp.o
    [ 63%] Building CXX object common/CMakeFiles/llama-common.dir/regex-partial.cpp.o
    [ 63%] Building CXX object tools/mtmd/CMakeFiles/mtmd.dir/models/youtuvl.cpp.o
    [ 63%] Building CXX object tools/mtmd/CMakeFiles/mtmd.dir/models/yasa2.cpp.o
    [ 63%] Building CXX object common/CMakeFiles/llama-common.dir/reasoning-budget.cpp.o
    [ 64%] Building CXX object common/CMakeFiles/llama-common.dir/sampling.cpp.o
    [ 64%] Building CXX object common/CMakeFiles/llama-common.dir/speculative.cpp.o
    [ 64%] Building CXX object common/CMakeFiles/llama-common.dir/unicode.cpp.o
    [ 64%] Building CXX object common/CMakeFiles/llama-common.dir/jinja/lexer.cpp.o
    [ 64%] Building CXX object common/CMakeFiles/llama-common.dir/jinja/parser.cpp.o
    [ 64%] Building CXX object common/CMakeFiles/llama-common.dir/jinja/runtime.cpp.o
    [ 64%] Building CXX object common/CMakeFiles/llama-common.dir/jinja/value.cpp.o
    [ 65%] Building CXX object common/CMakeFiles/llama-common.dir/jinja/string.cpp.o
    [ 65%] Building CXX object common/CMakeFiles/llama-common.dir/jinja/caps.cpp.o
    [ 65%] Building CXX object common/CMakeFiles/llama-common.dir/__/license.cpp.o
    [ 65%] Linking CXX shared library ../../bin/libmtmd.so
    [ 65%] Built target mtmd
    [ 65%] Linking CXX shared library ../bin/libllama-common.so
    [ 65%] Built target llama-common
    [ 66%] Building CXX object tests/CMakeFiles/test-tokenizer-0.dir/test-tokenizer-0.cpp.o
    [ 66%] Building CXX object tests/CMakeFiles/test-grammar-parser.dir/test-grammar-parser.cpp.o
    [ 66%] Building CXX object tests/CMakeFiles/test-gbnf-validator.dir/test-gbnf-validator.cpp.o
    [ 66%] Building CXX object tools/server/CMakeFiles/server-context.dir/server-chat.cpp.o
    [ 66%] Building CXX object tests/CMakeFiles/test-llama-grammar.dir/test-llama-grammar.cpp.o
    [ 67%] Building CXX object tests/CMakeFiles/test-json-schema-to-grammar.dir/test-json-schema-to-grammar.cpp.o
    [ 68%] Building CXX object tests/CMakeFiles/test-quantize-stats.dir/test-quantize-stats.cpp.o
    [ 68%] Building CXX object tests/CMakeFiles/test-reasoning-budget.dir/test-reasoning-budget.cpp.o
    [ 69%] Building CXX object tests/CMakeFiles/test-chat-peg-parser.dir/test-chat-peg-parser.cpp.o
    [ 70%] Building CXX object tests/CMakeFiles/test-jinja.dir/test-jinja.cpp.o
    [ 70%] Building CXX object tests/CMakeFiles/test-grammar-integration.dir/test-grammar-integration.cpp.o
    [ 70%] Building CXX object tests/CMakeFiles/test-log.dir/test-log.cpp.o
    [ 70%] Building CXX object tests/CMakeFiles/test-tokenizer-1-bpe.dir/test-tokenizer-1-bpe.cpp.o
    [ 70%] Building CXX object tests/CMakeFiles/test-json-partial.dir/test-json-partial.cpp.o
    [ 70%] Building CXX object tests/CMakeFiles/test-llama-archs.dir/test-llama-archs.cpp.o
    [ 70%] Building CXX object tests/CMakeFiles/test-sampling.dir/test-sampling.cpp.o
    [ 70%] Building CXX object tests/CMakeFiles/test-chat-auto-parser.dir/test-chat-auto-parser.cpp.o
    [ 70%] Building CXX object tests/CMakeFiles/test-tokenizer-1-spm.dir/test-tokenizer-1-spm.cpp.o
    [ 70%] Building CXX object tests/CMakeFiles/test-peg-parser.dir/test-peg-parser.cpp.o
    [ 70%] Building CXX object tests/CMakeFiles/test-chat-template.dir/test-chat-template.cpp.o
    [ 70%] Building CXX object tests/CMakeFiles/test-log.dir/get-model.cpp.o
    [ 70%] Linking CXX executable ../bin/test-log
    [ 70%] Built target test-log
    [ 70%] Building CXX object tests/CMakeFiles/test-json-partial.dir/get-model.cpp.o
    [ 70%] Building CXX object tests/CMakeFiles/test-reasoning-budget.dir/get-model.cpp.o
    [ 70%] Building CXX object tests/CMakeFiles/test-llama-archs.dir/get-model.cpp.o
    [ 70%] Linking CXX executable ../bin/test-reasoning-budget
    [ 70%] Building CXX object tests/CMakeFiles/test-chat-peg-parser.dir/peg-parser/simple-tokenize.cpp.o
    [ 70%] Linking CXX executable ../bin/test-gbnf-validator
    [ 70%] Built target test-reasoning-budget
    [ 70%] Building CXX object tests/CMakeFiles/test-grammar-integration.dir/get-model.cpp.o
    [ 70%] Linking CXX executable ../bin/test-tokenizer-1-bpe
    [ 70%] Built target test-gbnf-validator
    [ 70%] Building CXX object tests/CMakeFiles/test-json-schema-to-grammar.dir/get-model.cpp.o
    [ 70%] Building CXX object tests/CMakeFiles/test-chat-template.dir/get-model.cpp.o
    [ 70%] Building CXX object tools/server/CMakeFiles/server-context.dir/server-task.cpp.o
    [ 70%] Building CXX object tests/CMakeFiles/test-sampling.dir/get-model.cpp.o
    [ 71%] Building CXX object tests/CMakeFiles/test-llama-grammar.dir/get-model.cpp.o
    [ 71%] Linking CXX executable ../bin/test-tokenizer-1-spm
    [ 71%] Building CXX object tests/CMakeFiles/test-chat-auto-parser.dir/get-model.cpp.o
    [ 71%] Building CXX object tests/CMakeFiles/test-peg-parser.dir/peg-parser/simple-tokenize.cpp.o
    [ 71%] Built target test-tokenizer-1-bpe
    [ 71%] Building CXX object tests/CMakeFiles/test-jinja.dir/get-model.cpp.o
    [ 72%] Building CXX object tools/server/CMakeFiles/server-context.dir/server-queue.cpp.o
    [ 72%] Building CXX object tests/CMakeFiles/test-grammar-parser.dir/get-model.cpp.o
    [ 72%] Building CXX object tests/CMakeFiles/test-chat-peg-parser.dir/get-model.cpp.o
    [ 72%] Linking CXX executable ../bin/test-grammar-parser
    [ 72%] Built target test-tokenizer-1-spm
    [ 72%] Building CXX object tools/server/CMakeFiles/server-context.dir/server-common.cpp.o
    [ 72%] Building CXX object tests/CMakeFiles/test-regex-partial.dir/test-regex-partial.cpp.o
    [ 72%] Built target test-grammar-parser
    [ 72%] Building CXX object tools/server/CMakeFiles/server-context.dir/server-context.cpp.o
    [ 72%] Building CXX object tests/CMakeFiles/test-regex-partial.dir/get-model.cpp.o
    [ 72%] Linking CXX executable ../bin/test-llama-grammar
    [ 72%] Building CXX object tests/CMakeFiles/test-thread-safety.dir/test-thread-safety.cpp.o
    [ 72%] Linking CXX executable ../bin/test-tokenizer-0
    [ 72%] Linking CXX executable ../bin/test-sampling
    [ 72%] Built target test-llama-grammar
    [ 72%] Building CXX object tests/CMakeFiles/test-peg-parser.dir/peg-parser/test-basic.cpp.o
    [ 72%] Built target test-tokenizer-0
    [ 72%] Building CXX object tools/server/CMakeFiles/server-context.dir/server-tools.cpp.o
    [ 72%] Built target test-sampling
    [ 72%] Building CXX object tests/CMakeFiles/test-thread-safety.dir/get-model.cpp.o
    [ 72%] Building CXX object tests/CMakeFiles/test-peg-parser.dir/peg-parser/test-gbnf-generation.cpp.o
    [ 72%] Linking CXX executable ../bin/test-llama-archs
    [ 72%] Built target test-llama-archs
    [ 72%] Building CXX object tests/CMakeFiles/test-arg-parser.dir/test-arg-parser.cpp.o
    [ 72%] Linking CXX executable ../bin/test-json-partial
    [ 72%] Linking CXX executable ../bin/test-regex-partial
    [ 72%] Built target test-json-partial
    [ 72%] Building CXX object tests/CMakeFiles/test-peg-parser.dir/peg-parser/test-json-parser.cpp.o
    [ 72%] Linking CXX executable ../bin/test-thread-safety
    [ 72%] Built target test-regex-partial
    [ 72%] Building CXX object tests/CMakeFiles/test-opt.dir/test-opt.cpp.o
    [ 72%] Built target test-thread-safety
    [ 72%] Building CXX object tests/CMakeFiles/test-arg-parser.dir/get-model.cpp.o
    [ 73%] Building CXX object tests/CMakeFiles/test-peg-parser.dir/peg-parser/test-json-serialization.cpp.o
    [ 73%] Linking CXX executable ../bin/test-arg-parser
    [ 73%] Built target test-arg-parser
    [ 73%] Building CXX object tests/CMakeFiles/test-opt.dir/get-model.cpp.o
    [ 73%] Building CXX object tests/CMakeFiles/test-peg-parser.dir/peg-parser/test-python-dict-parser.cpp.o
    [ 74%] Linking CXX executable ../bin/test-opt
    [ 74%] Built target test-opt
    [ 74%] Building CXX object tests/CMakeFiles/test-peg-parser.dir/peg-parser/test-unicode.cpp.o
    [ 74%] Linking CXX executable ../bin/test-grammar-integration
    [ 74%] Linking CXX executable ../bin/test-quantize-stats
    [ 74%] Built target test-grammar-integration
    [ 74%] Building CXX object tests/CMakeFiles/test-peg-parser.dir/get-model.cpp.o
    [ 74%] Built target test-quantize-stats
    [ 74%] Building CXX object tests/CMakeFiles/test-gguf.dir/test-gguf.cpp.o
    [ 74%] Building CXX object tests/CMakeFiles/test-gguf.dir/get-model.cpp.o
    [ 74%] Building CXX object tests/CMakeFiles/test-backend-ops.dir/test-backend-ops.cpp.o
    [ 74%] Building CXX object tests/CMakeFiles/test-model-load-cancel.dir/test-model-load-cancel.cpp.o
    [ 75%] Building CXX object tests/CMakeFiles/test-model-load-cancel.dir/get-model.cpp.o
    [ 75%] Linking CXX executable ../bin/test-model-load-cancel
    [ 75%] Built target test-model-load-cancel
    [ 75%] Building CXX object tests/CMakeFiles/test-backend-ops.dir/get-model.cpp.o
    [ 76%] Building CXX object tests/CMakeFiles/test-autorelease.dir/test-autorelease.cpp.o
    [ 76%] Building CXX object tests/CMakeFiles/test-autorelease.dir/get-model.cpp.o
    [ 76%] Linking CXX executable ../bin/test-autorelease
    [ 76%] Building CXX object tests/CMakeFiles/test-backend-sampler.dir/test-backend-sampler.cpp.o
    [ 76%] Built target test-autorelease
    [ 76%] Building CXX object tests/CMakeFiles/test-state-restore-fragmented.dir/test-state-restore-fragmented.cpp.o
    [ 76%] Building CXX object tests/CMakeFiles/test-recurrent-state-rollback.dir/test-recurrent-state-rollback.cpp.o
    [ 76%] Linking CXX executable ../bin/test-gguf
    [ 76%] Built target test-gguf
    [ 77%] Building CXX object tests/CMakeFiles/test-backend-sampler.dir/get-model.cpp.o
    [ 77%] Building CXX object tests/CMakeFiles/test-save-load-state.dir/test-save-load-state.cpp.o
    [ 77%] Building CXX object tests/CMakeFiles/test-state-restore-fragmented.dir/get-model.cpp.o
    [ 78%] Linking CXX executable ../bin/test-chat-template
    [ 78%] Linking CXX executable ../bin/test-state-restore-fragmented
    [ 78%] Linking CXX executable ../bin/test-json-schema-to-grammar
    [ 78%] Built target test-chat-template
    [ 78%] Built target test-state-restore-fragmented
    [ 78%] Building CXX object tests/CMakeFiles/test-save-load-state.dir/get-model.cpp.o
    [ 79%] Building CXX object tests/CMakeFiles/test-recurrent-state-rollback.dir/get-model.cpp.o
    [ 79%] Built target test-json-schema-to-grammar
    [ 79%] Building CXX object tests/CMakeFiles/test-quantize-perf.dir/test-quantize-perf.cpp.o
    [ 79%] Building CXX object tests/CMakeFiles/test-barrier.dir/test-barrier.cpp.o
    [ 79%] Building CXX object tests/CMakeFiles/test-quantize-fns.dir/test-quantize-fns.cpp.o
    [ 79%] Linking CXX executable ../bin/test-recurrent-state-rollback
    [ 79%] Building CXX object tests/CMakeFiles/test-quantize-perf.dir/get-model.cpp.o
    [ 79%] Building CXX object tests/CMakeFiles/test-rope.dir/test-rope.cpp.o
    [ 79%] Built target test-recurrent-state-rollback
    [ 79%] Building CXX object tests/CMakeFiles/test-barrier.dir/get-model.cpp.o
    [ 79%] Building CXX object tests/CMakeFiles/test-rope.dir/get-model.cpp.o
    [ 79%] Building CXX object tests/CMakeFiles/test-quantize-fns.dir/get-model.cpp.o
    [ 79%] Building C object tests/CMakeFiles/test-mtmd-c-api.dir/test-mtmd-c-api.c.o
    [ 79%] Building CXX object tests/CMakeFiles/test-mtmd-c-api.dir/get-model.cpp.o
    [ 79%] Linking CXX executable ../bin/test-mtmd-c-api
    [ 79%] Linking CXX executable ../bin/test-barrier
    [ 79%] Linking CXX executable ../bin/test-quantize-fns
    [ 80%] Linking CXX executable ../bin/test-save-load-state
    [ 81%] Linking CXX executable ../bin/test-rope
    [ 81%] Built target test-mtmd-c-api
    [ 82%] Building CXX object tests/CMakeFiles/gguf-model-data.dir/gguf-model-data.cpp.o
    [ 82%] Built target test-barrier
    [ 82%] Built target test-quantize-fns
    [ 82%] Building CXX object tests/CMakeFiles/test-alloc.dir/test-alloc.cpp.o
    [ 82%] Building CXX object examples/batched/CMakeFiles/llama-batched.dir/batched.cpp.o
    [ 82%] Built target test-rope
    [ 82%] Building CXX object tests/CMakeFiles/test-alloc.dir/get-model.cpp.o
    [ 82%] Built target test-save-load-state
    [ 82%] Building CXX object examples/debug/CMakeFiles/llama-debug.dir/debug.cpp.o
    [ 82%] Building CXX object examples/embedding/CMakeFiles/llama-embedding.dir/embedding.cpp.o
    [ 82%] Linking CXX executable ../bin/test-backend-sampler
    [ 82%] Built target test-backend-sampler
    [ 82%] Building CXX object examples/eval-callback/CMakeFiles/llama-eval-callback.dir/eval-callback.cpp.o
    [ 82%] Building CXX object examples/idle/CMakeFiles/llama-idle.dir/idle.cpp.o
    [ 82%] Building CXX object examples/lookahead/CMakeFiles/llama-lookahead.dir/lookahead.cpp.o
    [ 83%] Building CXX object examples/lookup/CMakeFiles/llama-lookup.dir/lookup.cpp.o
    [ 83%] Linking CXX executable ../bin/test-quantize-perf
    [ 83%] Linking CXX executable ../bin/test-alloc
    [ 83%] Built target test-quantize-perf
    [ 83%] Building CXX object examples/lookup/CMakeFiles/llama-lookup-create.dir/lookup-create.cpp.o
    [ 83%] Built target test-alloc
    [ 83%] Building CXX object examples/lookup/CMakeFiles/llama-lookup-merge.dir/lookup-merge.cpp.o
    [ 83%] Linking CXX executable ../../bin/llama-batched
    [ 83%] Built target llama-batched
    [ 83%] Building CXX object examples/lookup/CMakeFiles/llama-lookup-stats.dir/lookup-stats.cpp.o
    [ 83%] Building CXX object examples/parallel/CMakeFiles/llama-parallel.dir/parallel.cpp.o
    [ 83%] Linking CXX executable ../../bin/llama-eval-callback
    [ 83%] Linking CXX executable ../bin/test-peg-parser
    [ 83%] Built target llama-eval-callback
    [ 83%] Linking CXX executable ../../bin/llama-embedding
    [ 83%] Building CXX object examples/passkey/CMakeFiles/llama-passkey.dir/passkey.cpp.o
    [ 83%] Linking CXX executable ../../bin/llama-idle
    [ 83%] Built target test-peg-parser
    [ 83%] Building CXX object examples/retrieval/CMakeFiles/llama-retrieval.dir/retrieval.cpp.o
    [ 83%] Linking CXX executable ../../bin/llama-lookup-merge
    [ 83%] Built target llama-embedding
    [ 83%] Built target llama-idle
    [ 83%] Building CXX object examples/speculative/CMakeFiles/llama-speculative.dir/speculative.cpp.o
    [ 84%] Building CXX object examples/speculative-simple/CMakeFiles/llama-speculative-simple.dir/speculative-simple.cpp.o
    [ 84%] Built target llama-lookup-merge
    [ 84%] Building CXX object examples/gen-docs/CMakeFiles/llama-gen-docs.dir/gen-docs.cpp.o
    [ 84%] Linking CXX executable ../../bin/llama-lookup
    [ 84%] Linking CXX executable ../../bin/llama-lookahead
    [ 84%] Built target llama-lookup
    [ 84%] Building CXX object examples/training/CMakeFiles/llama-finetune.dir/finetune.cpp.o
    [ 84%] Linking CXX executable ../../bin/llama-lookup-create
    [ 84%] Built target llama-lookahead
    [ 84%] Building CXX object examples/diffusion/CMakeFiles/llama-diffusion.dir/diffusion.cpp.o
    [ 84%] Built target llama-lookup-create
    [ 84%] Building CXX object examples/convert-llama2c-to-ggml/CMakeFiles/llama-convert-llama2c-to-ggml.dir/convert-llama2c-to-ggml.cpp.o
    [ 85%] Linking CXX executable ../../bin/llama-lookup-stats
    [ 85%] Built target llama-lookup-stats
    [ 85%] Building CXX object pocs/vdot/CMakeFiles/llama-vdot.dir/vdot.cpp.o
    [ 85%] Linking CXX executable ../../bin/llama-parallel
    [ 85%] Linking CXX executable ../../bin/llama-passkey
    [ 85%] Built target llama-parallel
    [ 85%] Built target llama-passkey
    [ 85%] Building CXX object pocs/vdot/CMakeFiles/llama-q8dot.dir/q8dot.cpp.o
    [ 86%] Building CXX object tools/batched-bench/CMakeFiles/llama-batched-bench-impl.dir/batched-bench.cpp.o
    [ 86%] Linking CXX executable ../../bin/llama-gen-docs
    [ 86%] Built target llama-gen-docs
    [ 86%] Building CXX object tools/gguf-split/CMakeFiles/llama-gguf-split.dir/gguf-split.cpp.o
    [ 86%] Linking CXX executable ../../bin/llama-finetune
    [ 87%] Linking CXX static library libllama-diffusion.a
    [ 87%] Linking CXX executable ../../bin/llama-vdot
    [ 87%] Built target llama-diffusion
    [ 88%] Building CXX object tools/imatrix/CMakeFiles/llama-imatrix.dir/imatrix.cpp.o
    [ 89%] Linking CXX executable ../../bin/llama-retrieval
    [ 89%] Built target llama-finetune
    [ 89%] Building CXX object tools/llama-bench/CMakeFiles/llama-bench-impl.dir/llama-bench.cpp.o
    [ 89%] Built target llama-vdot
    [ 89%] Building CXX object tools/completion/CMakeFiles/llama-completion-impl.dir/completion.cpp.o
    [ 89%] Linking CXX executable ../../bin/llama-q8dot
    [ 89%] Built target llama-retrieval
    [ 90%] Building CXX object tools/perplexity/CMakeFiles/llama-perplexity-impl.dir/perplexity.cpp.o
    [ 90%] Building CXX object tools/quantize/CMakeFiles/llama-quantize-impl.dir/quantize.cpp.o
    [ 90%] Built target llama-q8dot
    [ 90%] Building CXX object tools/tokenize/CMakeFiles/llama-tokenize.dir/tokenize.cpp.o
    [ 90%] Linking CXX executable ../../bin/llama-speculative-simple
    [ 90%] Built target llama-speculative-simple
    [ 90%] Building CXX object tools/parser/CMakeFiles/llama-debug-template-parser.dir/debug-template-parser.cpp.o
    [ 90%] Linking CXX executable ../../bin/llama-convert-llama2c-to-ggml
    [ 90%] Built target llama-convert-llama2c-to-ggml
    [ 90%] Linking CXX shared library ../../bin/libllama-batched-bench-impl.so
    [ 90%] Building CXX object tools/parser/CMakeFiles/llama-template-analysis.dir/template-analysis.cpp.o
    [ 90%] Linking CXX executable ../../bin/llama-gguf-split
    [ 90%] Built target llama-batched-bench-impl
    [ 90%] Building CXX object tools/tts/CMakeFiles/llama-tts.dir/tts.cpp.o
    [ 90%] Built target llama-gguf-split
    [ 90%] Linking CXX executable ../../bin/llama-tokenize
    [ 90%] Building CXX object tools/mtmd/CMakeFiles/llama-mtmd-cli.dir/mtmd-cli.cpp.o
    [ 90%] Built target llama-tokenize
    [ 90%] Building CXX object tools/mtmd/CMakeFiles/llama-mtmd-debug.dir/debug/mtmd-debug.cpp.o
    [ 90%] Linking CXX executable ../../bin/llama-debug
    [ 90%] Built target llama-debug
    [ 90%] Building CXX object tools/cvector-generator/CMakeFiles/llama-cvector-generator.dir/cvector-generator.cpp.o
    [ 90%] Linking CXX executable ../../bin/llama-speculative
    [ 90%] Built target llama-speculative
    [ 91%] Building CXX object tools/export-lora/CMakeFiles/llama-export-lora.dir/export-lora.cpp.o
    [ 92%] Linking CXX executable ../../bin/llama-mtmd-debug
    [ 92%] Built target llama-mtmd-debug
    [ 93%] Linking CXX shared library ../../bin/libllama-quantize-impl.so
    [ 94%] Building CXX object tools/fit-params/CMakeFiles/llama-fit-params-impl.dir/fit-params.cpp.o
    [ 94%] Built target llama-quantize-impl
    [ 94%] Building CXX object tools/results/CMakeFiles/llama-results.dir/results.cpp.o
    [ 94%] Linking CXX static library libgguf-model-data.a
    [ 94%] Built target gguf-model-data
    [ 94%] Building CXX object examples/diffusion/CMakeFiles/llama-diffusion-cli.dir/diffusion-cli.cpp.o
    [ 94%] Linking CXX executable ../../bin/llama-export-lora
    [ 95%] Linking CXX executable ../../bin/llama-cvector-generator
    [ 95%] Building CXX object tools/batched-bench/CMakeFiles/llama-batched-bench.dir/main.cpp.o
    [ 95%] Linking CXX executable ../../bin/llama-mtmd-cli
    [ 95%] Linking CXX executable ../../bin/llama-batched-bench
    [ 95%] Built target llama-export-lora
    [ 95%] Building CXX object tools/quantize/CMakeFiles/llama-quantize.dir/main.cpp.o
    [ 95%] Built target llama-cvector-generator
    [ 95%] Building CXX object tests/CMakeFiles/test-gguf-model-data.dir/test-gguf-model-data.cpp.o
    [ 95%] Linking CXX executable ../../bin/llama-quantize
    [ 95%] Built target llama-mtmd-cli
    [ 95%] Built target llama-batched-bench
    [ 95%] Building CXX object tests/CMakeFiles/test-quant-type-selection.dir/test-quant-type-selection.cpp.o
    [ 95%] Building CXX object tests/CMakeFiles/export-graph-ops.dir/export-graph-ops.cpp.o
    [ 95%] Linking CXX shared library ../../bin/libllama-fit-params-impl.so
    [ 95%] Built target llama-quantize
    [ 95%] Building CXX object tests/CMakeFiles/test-quant-type-selection.dir/get-model.cpp.o
    [ 95%] Linking CXX executable ../bin/test-chat-auto-parser
    [ 95%] Built target llama-fit-params-impl
    [ 95%] Building CXX object tools/fit-params/CMakeFiles/llama-fit-params.dir/main.cpp.o
    [ 95%] Linking CXX executable ../../bin/llama-fit-params
    [ 95%] Linking CXX shared library ../../bin/libllama-completion-impl.so
    [ 95%] Built target test-chat-auto-parser
    [ 96%] Linking CXX executable ../bin/test-gguf-model-data
    [ 96%] Linking CXX executable ../../bin/llama-results
    [ 96%] Built target llama-fit-params
    [ 96%] Built target llama-completion-impl
    [ 97%] Building CXX object tools/completion/CMakeFiles/llama-completion.dir/main.cpp.o
    [ 97%] Linking CXX executable ../../bin/llama-completion
    [ 97%] Built target llama-results
    [ 97%] Built target test-gguf-model-data
    [ 97%] Built target llama-completion
    [ 97%] Linking CXX shared library ../../bin/libllama-perplexity-impl.so
    [ 97%] Linking CXX executable ../../bin/llama-diffusion-cli
    [ 97%] Linking CXX executable ../bin/export-graph-ops
    [ 97%] Built target llama-perplexity-impl
    [ 97%] Building CXX object tools/perplexity/CMakeFiles/llama-perplexity.dir/main.cpp.o
    [ 97%] Linking CXX executable ../../bin/llama-perplexity
    [ 98%] Linking CXX executable ../bin/test-quant-type-selection
    [ 98%] Built target llama-diffusion-cli
    [ 98%] Built target export-graph-ops
    [ 98%] Built target test-quant-type-selection
    [ 98%] Built target llama-perplexity
    [ 98%] Linking CXX executable ../bin/test-jinja
    [ 98%] Linking CXX executable ../../bin/llama-debug-template-parser
    [ 98%] Built target test-jinja
    [ 98%] Built target llama-debug-template-parser
    [ 98%] Linking CXX executable ../../bin/llama-template-analysis
    [ 98%] Linking CXX executable ../bin/test-chat-peg-parser
    [ 98%] Built target llama-template-analysis
    [ 98%] Built target test-chat-peg-parser
    [ 98%] Linking CXX executable ../../bin/llama-imatrix
    [ 98%] Built target llama-imatrix
    [ 98%] Linking CXX static library libserver-context.a
    [ 98%] Built target server-context
    [ 98%] Building CXX object tools/server/CMakeFiles/llama-server-impl.dir/server-models.cpp.o
    [ 98%] Building CXX object tools/server/CMakeFiles/llama-server-impl.dir/server.cpp.o
    [ 98%] Building CXX object tools/server/CMakeFiles/llama-server-impl.dir/server-http.cpp.o
    [ 98%] Building CXX object tools/cli/CMakeFiles/llama-cli-impl.dir/cli.cpp.o
    [ 98%] Building CXX object tests/CMakeFiles/test-chat.dir/get-model.cpp.o
    [ 98%] Building CXX object tests/CMakeFiles/test-chat.dir/test-chat.cpp.o
    [ 99%] Linking CXX executable ../../bin/llama-tts
    [ 99%] Linking CXX shared library ../../bin/libllama-bench-impl.so
    [ 99%] Built target llama-tts
    [ 99%] Built target llama-bench-impl
    [ 99%] Building CXX object tools/llama-bench/CMakeFiles/llama-bench.dir/main.cpp.o
    [ 99%] Linking CXX executable ../../bin/llama-bench
    [ 99%] Built target llama-bench
    [ 99%] Linking CXX executable ../bin/test-backend-ops
    [ 99%] Built target test-backend-ops
    [ 99%] Linking CXX shared library ../../bin/libllama-cli-impl.so
    [ 99%] Built target llama-cli-impl
    [ 99%] Building CXX object tools/cli/CMakeFiles/llama-cli.dir/main.cpp.o
    [100%] Linking CXX executable ../../bin/llama-cli
    [100%] Built target llama-cli
    [100%] Linking CXX shared library ../../bin/libllama-server-impl.so
    [100%] Built target llama-server-impl
    [100%] Building CXX object tools/server/CMakeFiles/llama-server.dir/main.cpp.o
    [100%] Building CXX object app/CMakeFiles/llama-app.dir/llama.cpp.o
    [100%] Linking CXX executable ../../bin/llama-server
    [100%] Built target llama-server
    [100%] Linking CXX executable ../bin/llama
    [100%] Built target llama-app
    [100%] Linking CXX executable ../bin/test-chat
    [100%] Built target test-chat
    # 查看版本
    liqixin@fedora:~/Dev/llama.cpp$ ./build/bin/llama-cli --version
    version: 9282 (4f0e43da6)
    built with GNU 15.2.1 for Linux x86_64
    # 查看是否支持 GPU
    liqixin@fedora:~/Dev/llama.cpp$ ./build/bin/llama-cli -h | grep -E "ngl|gpu|cuda|flash"
    -fa,   --flash-attn [on|off|auto]       set Flash Attention use ('on', 'off', or 'auto', default: 'auto')
    -ngl,  --gpu-layers, --n-gpu-layers N   max. number of layers to store in VRAM, either an exact number,
    -mg,   --main-gpu INDEX                 the GPU to use for the model (with split-mode = none), or for
                                            single value is broadcast across all devices, default: 1024
    --spec-draft-ngl, -ngld, --gpu-layers-draft, --n-gpu-layers-draft N
    -st,   --single-turn                    run conversation for a single turn only, then exit when done
    liqixin@fedora:~/Dev/llama.cpp$ 
    
  • AI代码生成安全策略:内网隔离与私有化模型落地指南

    AI代码生成进入企业应用后,安全成核心问题,使用AI快速生成代码已成为现实。但一个随之而来的问题也变得紧迫:生成的代码涉及商业逻辑、客户数据、技术架构,是否应该继续依赖云端模型,还是应该隔离到内网? 内网隔离和私有化模型不是可有可无的功能,而是企业安全策略的重要组成。与其担心成本,不如从风险角度审视:一次泄露损失远大于长期的架构投资。

    现在的问题不是”要不要用AI生成代码”,而是”如何安全地用AI生成代码”。 这不仅是技术问题,更是关乎企业安全战略的决策。本文基于实践经验,分享我的观察和思考。

    为什么要重新审视AI代码生成的安全性?

    在过去,代码是有形资产,保管在源代码库和服务器里。但AI改变了这一切:

    1. 数据流动的不透明性

    当你将代码片段发送给云端AI模型(如ChatGPT、Claude)来生成代码时:

    • 代码被上传到第三方服务器
    • 可能被用于模型训练(如果未关闭相关选项)
    • 存储在云端的日志中
    • 可能在隐私政策更新时被用于新的目的

    风险:公司的业务逻辑、系统架构、API设计等敏感信息外泄。

    2. 法规遵从的困境

    不同国家和行业有不同的数据保护要求:

    • 欧盟:GDPR对数据跨境传输有严格限制
    • 中国:网络安全法、数据安全法要求重要数据本地存储
    • 金融行业:更严格的信息安全要求
    • 医疗行业:HIPAA等法规对患者数据保护

    3. 竞争情报泄露

    AI模型经过大规模数据训练,理论上可以记忆或推断输入数据模式。虽然开发者声称不会这样做,但:

    • 技术上仍存在风险
    • 合同条款可能变更
    • 子公司可能有不同的政策

    4. 供应链安全考虑

    一旦依赖某个AI厂商,就引入了新的供应链风险:

    • 服务可用性(宕机、限流)
    • 价格变化
    • 政策突变
    • 地缘政治风险

    现状对比:云端vs内网模型

    云端模型(如ChatGPT、Claude)

    优势

    • 能力最强,模型参数量大
    • 无需本地计算资源
    • 维护成本低
    • 快速迭代,总是最新版本

    劣势

    • 数据可能外泄
    • 成本随使用量增加
    • 依赖网络连接
    • 无法自定义
    • 法规遵从困难

    私有化蒸馏模型(本地部署)

    优势

    • 数据完全本地化,无外泄风险
    • 符合各类法规要求
    • 可离线运行
    • 长期成本更低
    • 可针对公司业务优化

    劣势

    • 需要本地计算资源(特别是GPU)
    • 模型能力较弱(通常比开源模型好,比闭源模型差)
    • 需要技术团队维护
    • 初期部署成本高
    • 需要持续更新

    我的建议方案:分层防御

    基于安全性、成本与工程可实现性,推荐将AI代码生成方案分成三层,形成层级防护策略:

    第一层:云端模型(开放区)

    使用场景:

    • 学习和探索性编程
    • 公开技术讨论
    • 通用工具代码(如数据处理函数)
    • 非敏感算法实现

    操作规范:

    • 允许:通用函数、公开库调用、技术原理咨询
    • 禁止:核心业务逻辑、API密钥、数据库连接字符串、客户数据、架构图

    第二层:私有化蒸馏模型(内网区)

    使用场景:

    • 核心业务逻辑编码
    • 敏感模块生成
    • 涉及客户或企业数据的功能
    • 系统架构与权限控制相关代码

    第二层目标:数据在企业可控网络内流转,避免敏感信息进入公共云。

    第三层:代码审查与合规控制

    不论模型部署方式,都应强制执行:

    1. 不直接上生产:AI生成代码需人工审核
    2. 代码审查:资深工程师复核
    3. 敏感词扫描:自动检测敏感字段(密钥、账号、IP等)
    4. 依赖评估:验证第三方库安全性
    5. 安全审计:定期检查模型调用日志与数据流

    常见疑虑和解答

    Q: 私有化模型的能力会不会太弱?

    A: 这取决于选择。目前的开源模型在代码生成上已经相当不错。虽然不如最强的闭源模型,但对企业内部使用完全足够。关键是合适即可,不必最强。而且私有化模型可以微调,针对公司代码风格优化。

    Q: 我们公司很小,负担不起模型的投入啊?

    A: 有几个选择:

    1. 使用开源模型,租用按小时计费的GPU
    2. 多个公司共享一套私有化部署(虽然涉及信息共享)
    3. 优先保护最敏感的部分,其他部分先用云端
    4. 等待模型成本进一步下降(正在发生)

    Q: 云端模型是否真的会泄露数据?

    A: 根据公开信息:

    • OpenAI、Anthropic都承诺不用对话来训练模型(可选中禁用)
    • 但源代码中的数据依然被传输和储存
    • 即使不主动泄露,也存在被黑客窃取、员工泄露等风险
    • 风险永远存在于数据传输过程

    Q: 团队不愿意放弃ChatGPT怎么办?

    A: 这很正常。建议:

    1. 明确禁止使用ChatGPT处理敏感代码(制度强制)
    2. 为团队提供同样好用的内部替代品
    3. 展示安全事件的案例(激励改变)
    4. 渐进式迁移而不是一刀切
  • 使用AI编码时,应该何时初始化Git?我的实践心得

    最近我开始尝试用Vibe Coding的方式来开发项目,让AI来辅助编写代码。在这个过程中,我遇到了一个看似简单但值得深思的问题:应该等项目成型后再使用Git,还是从第一行代码就开始版本控制?

    • 代码决策的审计日志 – 记录了每一步为什么改动
    • AI优化的实验室 – 安全地尝试不同的Prompt和方案
    • 代码质量的守门人 – 通过commit记录强制你思考每一步的意义

    我的建议:项目第一天就运行git init 这是我在实践中得出的最重要的经验之一。希望对你的AI编码之旅有所帮助!

    1. 为什么传统开发中人们会犹豫?

    在人工编写代码的年代,很多开发者会觉得:项目还不成熟,加入Git可能显得过度设计。等代码稳定了,功能明确了,再导入版本控制。这个想法在某个时代是可以理解的。

    但AI辅助编码改变了游戏规则。

    2. AI编码的独特挑战

    当你使用AI来生成代码时,出现了一些新的情况:

    2.1 生成质量的不确定性

    AI生成的代码可能一次就很完美,也可能需要多次调整。如果没有Git,你很难分辨哪个版本是有效的,哪个引入了bug。

    2.2 Prompt与代码的对应关系

    当某个功能出现问题时,你想回到某个特定的Prompt执行结果来对比。Git commit的message可以记录当时的Prompt,形成代码和指令的完整链条。

    2.3 实验和分支

    AI可能生成多个不同的解决方案。你想同时尝试不同的实现方式,然后选择最优的。分支管理在这里就变得非常有用。

    2.4 快速迭代的代价

    用AI编码的速度很快,一下子就生成了大量代码。如果中间有问题,往往很难定位改动是在哪一步引入的。频繁的小commit可以精确追踪问题源头。

    3. 我的实践结果

    我采用了以下工作流,效果很好:

    3.1 项目初期

    git init
    git add .
    git commit -m "Initial commit - project setup"

    3.2 每次AI生成重要代码段后

    git add .
    git commit -m "Feature: xxx - AI generated with prompt: [prompt关键字]"

    3.3 AI代码需要修改时

    git add .
    git commit -m "Fix: xxx - reviewed and adjusted manually"

    这样做的好处显而易见:

    1. 完整的进化链 – 从Prompt到初版代码,再到最终版本,整个过程都记录在案
    2. 快速定位问题 – 如果某个功能出问题,可以通过git log找到相关的所有commit
    3. 安全的实验 – 敢于尝试新想法,因为随时可以回滚
    4. 代码审查友好 – 使用git diff可以清楚看到每个步骤改动了什么
    5. 团队协作准备 – 即使目前是个人项目,这个习惯为未来团队合作打好基础

    4. 关键点

    4.1 Commit Message要清晰

    一定要在message中标注资源来源:

    • "Feature: xxx - AI generated" – 表示AI生成
    • "Fix: xxx - manual review"– 表示手工调整

    这样回头查看时一目了然。

    4.2 创建.gitignore

    从项目初期就排除不必要的文件:

    node_modules/
    __pycache__/
    .env
    *.log
    build/
    dist/
    .DS_Store

    针对你的项目类型调整即可。

    4.3 考虑创建分支

    对于不确定性较大的功能,创建特性分支尝试:

    git checkout -b feature/experimental-ai-solution
    # AI生成代码并测试
    git add .
    git commit -m "Experiment: xxx"
    # 如果成功,合并到main
    git checkout main
    git merge feature/experimental-ai-solution

    4.4 定期推送到远程

    即使没有团队合作,也建议推送到GitHub或其他平台作为备份:

    git remote add origin https://github.com/你的账号/项目名.git
    git push -u origin main