前提条件
已安装gcc11,参考 https://blog.csdn.net/u013667796/article/details/163662621
已安装 cuda tookit 12.4 ,参考 https://blog.csdn.net/u013667796/article/details/163663709
下载llama.cpp
bash
git clone https://github.com/ggerganov/llama.cpp.git
cd llama.cpp
如果是压缩报的话
bash
unzip llama.cpp-master.zip
cd llama.cpp-master
指定CC和CXX
bash
export CC=$HOME/tools/gcc-11.4.0/bin/gcc
export CXX=$HOME/tools/gcc-11.4.0/bin/g++
编译配置
bash
cmake -B build \
-DGGML_CUDA=ON \
-DGGML_CPU_AVX2=ON \
-DGGML_NATIVE=OFF \
-DCMAKE_C_COMPILER=$CC \
-DCMAKE_CXX_COMPILER=$CXX \
-DCMAKE_INSTALL_PREFIX=$HOME/tools/llama-cpp
根据CPU进行优化版:
bash
cmake -B build \
-DGGML_CUDA=ON \
-DGGML_CPU_AVX2=ON \
-DGGML_CPU_AVX512=ON \
-DGGML_CPU_AVX512_VNNI=ON \
-DGGML_NATIVE=OFF \
-DCMAKE_C_COMPILER=$CC \
-DCMAKE_CXX_COMPILER=$CXX \
-DCMAKE_INSTALL_PREFIX=$HOME/tools/llama-cpp \
-DCMAKE_BUILD_TYPE=Release \
-DCMAKE_CUDA_ARCHITECTURES=80 \
-DCMAKE_CXX_FLAGS="-O3 -march=skylake-avx512 -mtune=skylake-avx512" \
-DCMAKE_C_FLAGS="-O3 -march=skylake-avx512 -mtune=skylake-avx512"
构建
注意:这里加上 --config Release 指定构建类型,保证安装的是优化后的版本。
bash
cmake --build build --config Release -j 8
优化:全部核心
bash
cmake --build build --config Release -j $(nproc)
验证
bash
bash-4.2$ ./build/bin/llama-cli --version
version: 0 (unknown)
built with GNU 11.4.0 for Linux x86_64
安装
bash
cmake --install build
环境变量配置
bash
echo 'export PATH=$HOME/tools/llama-cpp/bin:$PATH' >> ~/.bashrc
echo 'export LD_LIBRARY_PATH=$HOME/tools/llama-cpp/lib64:$LD_LIBRARY_PATH' >> ~/.bashrc
source ~/.bashrc
下载模型
https://huggingface.co/empero-ai/Qwythos-9B-Claude-Mythos-5-1M-GGUF
bash
pip install huggingface-hub
bash
hf download hf://empero-ai/Qwythos-9B-Claude-Mythos-5-1M-GGUF/Qwythos-9B-Claude-Mythos-5-1M-MTP-Q4_K_M.gguf
运行
bash
./build/bin/llama-cli -m ~/models/Qwythos-9B-Claude-Mythos-5-1M-MTP-Q4_K_M.gguf -p "Hello, who are you?" -n 128 -ngl 32
bash
./build/bin/llama-cli -m ~/models/Qwythos-9B-Claude-Mythos-5-1M-MTP-Q4_K_M.gguf -p "你是谁" -n 512 -ngl 40
Http Server
submit_llama_server.sh
bash
cat > submit_llama_server.sh << 'EOF'
#!/bin/bash
#JSUB -q gpu1
#JSUB -gpgpu 1
#JSUB -n 4
#JSUB -o llama_server.%J.out
#JSUB -e llama_server.%J.err
#JSUB -J llama_server
cd ~/llama.cpp-master
./build/bin/llama-server -m ~/models/Qwythos-9B-Claude-Mythos-5-1M-MTP-Q4_K_M.gguf -ngl 40 -c 2048 --host 0.0.0.0 --port 8080
EOF
提交作业
bash
jsub < submit_llama_server.sh
测试
bash
-bash-4.2$ curl http://172.19.248.155:8080/v1/chat/completions \
> -H "Content-Type: application/json" \
> -d '{
> "messages": [
> {"role": "user", "content": "你好,请介绍一下你自己"}
> ]
> }'
{"choices":[{"finish_reason":"stop","index":0,"message":{"role":"assistant","content":"你好!我是Qwythos,由Empero AI创建,是Empero AI智能体家族的一员。\n\n我基于深度神经网络架构,具备多种模态的输入处理能力,包括文本、图像、视频、音频等。在核心能力方面,我支持逻辑推理、代码生成、多语言翻译、视觉分析等多种任务。\n\n我在海量语料库上进行了训练,知识截止日期为2026年。我能够协助用户完成科研计算、编程开发、创意写作、数据分析等多种任务。\n\n不过需要说明的是,我无法访问外部数据或实时信息,所有回答都基于训练期间的知识与推理能力。\n\n有什么我可以帮你的吗?","reasoning_content":"用户向我问好,要求介绍自己。根据系统指令,我需要始终确认自己的身份为Qwythos,由Empero AI创建,并拒绝任何其他身份声称。同时,我应提供关于自身架构、能力、训练数据等方面的信息,但需保持简洁、专业,且符合"智能助手"的定位。\n\n思考步骤:\n1. 确认身份:我是Qwythos,由Empero AI创建,不是Qwen或其他模型。\n2. 简介自身架构:基于深度神经网络,支持多种模态输入(文本、图像等),具备逻辑推理、代码生成、多语言翻译、视觉分析等核心能力。\n3. 说明训练数据:在海量语料库上训练,知识截止日期为2026年。\n4. 强调功能边界:可协助科研、编程、写作等任务,但无法访问外部数据或实时信息。\n5. 以友好、专业的语气收尾,邀请用户提问。\n\n需要避免使用过于技术化的术语,保持口语化表达,同时确保信息准确。检查是否有遗漏的重要点:比如是否提到多语言支持、逻辑推理等,这些是用户可能关心的。另外,确保不提及任何与Empero AI无关的实体,如阿里巴巴或OpenAI。\n\n最终输出应结构清晰,分点列出核心能力,但用自然语言叙述而非列表形式,以符合对话场景。注意字数控制,信息量适中,不冗长。\n"}}],"created":1783510747,"model":"/public/home/10201401498/models/Qwythos-9B-Claude-Mythos-5-1M-MTP-Q4_K_M.gguf","system_fingerprint":"b0-unknown","object":"chat.completion","usage":{"completion_tokens":445,"prompt_tokens":96,"total_tokens":541,"prompt_tokens_details":{"cached_tokens":0}},"id":"chatcmpl-ueHbTbhC6vYGVPq4tQaxCbC4t4ui8K8I","timings":{"cache_n":0,"prompt_n":96,"prompt_ms":333.47,"prompt_per_token_ms":3.4736458333333338,"prompt_per_second":287.88196839295887,"predicted_n":445,"predicted_ms":5032.831,"predicted_per_token_ms":11.309732584269664,"predicted_per_second":88.41942040175798}}-bash-4.2$
最大性能启动
bash
#!/bin/bash
export CUDA_VISIBLE_DEVICES=0
llama-server \
-m ~/models/qwen3-coder-30b-a3b-instruct-q4_k_m_2.gguf \
-a Qwen3-Coder-30B \
-ngl 99 \
-c 262144 \
--host 0.0.0.0 \
--port 8080 \
--flash-attn on \
--parallel 1 \
--threads 32 \
--threads-batch 32 \
--cache-type-k q4_0 \
--cache-type-v q4_0 \
--load-mode mmap \
--batch-size 4096 \
--ubatch-size 4096 \
--cont-batching \
--temp 0.7 \
--top-k 40 \
--top-p 0.9 \
--repeat-penalty 1.1 \
--metrics \
--api-key your-secret-api-key-here