构建llama.cpp并在linux上使用gpu

使用gpu构建llama.cpp

更多详情参见https://github.com/abetlen/llama-cpp-python,官网网站会随着版本迭代更新。

下载并进入llama.cpp

地址:https://github.com/ggerganov/llama.cpp

可以下载到本地再传到服务器上

bash 复制代码
git clone https://github.com/ggerganov/llama.cpp
cd llama.cpp

编译源码(make)

生成./main和./quantize等二进制文件。详见:https://github.com/ggerganov/llama.cpp/blob/master/docs/build.md

使用CPU
bash 复制代码
make
使用GPU
bash 复制代码
make GGML_CUDA=1
可能出现的报错及解决方法

I ccache not found. Consider installing it for faster compilation.

bash 复制代码
sudo apt-get install ccache

Makefile:1002: *** I ERROR: For CUDA versions < 11.7 a target CUDA architecture must be explicitly provided via environment variable CUDA_DOCKER_ARCH, e.g. by running "export CUDA_DOCKER_ARCH=compute_XX" on Unix-like systems, where XX is the minimum compute capability that the code needs to run on. A list with compute capabilities can be found here: https://developer.nvidia.com/cuda-gpus . Stop.

说明cuda版本太低,如果不是自己下载好的,参考该文章nvcc -V 显示的cuda版本和实际版本不一致更换
NOTICE: The 'server' binary is deprecated. Please use 'llama-server' instead.

提示:随版本迭代,命令可能会失效

正确结果

内容很长,只截取了一部分

调用大模型

安装llama.cpp,比较慢

bash 复制代码
CMAKE_ARGS="-DGGML_CUDA=on" pip install llama-cpp-python

调用

python 复制代码
from langchain_community.chat_models import ChatLlamaCpp
from langchain_community.llms import LlamaCpp

local_model = "/data/pretrained/gguf/Meta-Llama-3-8B-Instruct-Q5_K_M.gguf"
llm = ChatLlamaCpp(
    seed=1,
    temperature=0.5,
    model_path=local_model,
    n_ctx=8192,
    n_gpu_layers=64,
    n_batch=12,  # Should be between 1 and n_ctx, consider the amount of VRAM in your GPU.
    max_tokens=8192,
    repeat_penalty=1.5,
    top_p=0.5,
    f16_kv=False,
    verbose=True,
)
messages = [
    (
        "system",
        "You are a helpful assistant that translates English to Chinese. Translate the user sentence.",
    ),
    ("human",
     "OpenAI has a tool calling API that lets you describe tools and their arguments, and have the model return a JSON object with a tool to invoke and the inputs to that tool. tool-calling is extremely useful for building tool-using chains and agents, and for getting structured outputs from models more generally."),
]

ai_msg = llm.invoke(messages)
print(ai_msg.content)

正确打印中存在如下内容,说明找到gpu

复制代码
ggml_cuda_init: found 2 CUDA devices:
  Device 0: 你的gpu型号, compute capability gpu计算能力, VMM: yes
  Device 1: 你的gpu型号, compute capability gpu计算能力, VMM: yes
llm_load_tensors: offloading 32 repeating layers to GPU
llm_load_tensors:        CPU buffer size =   344.44 MiB
llm_load_tensors:      CUDA0 buffer size =  2932.34 MiB
llm_load_tensors:      CUDA1 buffer size =  2183.15 MiB
相关推荐
SEO_juper2 小时前
企业级 AI 工具选型报告:9 个技术平台的 ROI 对比与部署策略
人工智能·搜索引擎·百度·llm·工具·geo·数字营销
同志们4 小时前
LiteLLM Go: 多平台LLM客户端统一接口实现
llm·go
Q同学4 小时前
SciMaster:无需微调,在人类最后考试上刷新 SOTA
人工智能·llm·agent
聚客AI5 小时前
🚀深度解析Agentic RAG:如何突破模型的知识边界
人工智能·llm·掘金·日新计划
青Cheng序员石头8 小时前
【转译】Agentic AI 与 AI Agent:五大差异及其重要性
llm·aigc·agent
青Cheng序员石头8 小时前
Prompt Engineering vs Vibe Coding vs Context Engineering
langchain·llm·aigc
数据智能老司机9 小时前
构建由 LLM 驱动的 Neo4j 应用程序——使用 Neo4j 和 Haystack 实现强大搜索功能
langchain·llm·aigc
胡耀超9 小时前
我们如何写好提示词、发挥LLM能力、写作指南:从认知分析到动态构建的思维方法
人工智能·python·学习·大模型·llm·提示词·八要素思维
慧都小项1 天前
自动化UI测试工具TestComplete的AI双引擎:即时数据集 + 自愈测试
自动化测试·测试工具·llm·数据驱动测试·hipaa标准
AI大模型1 天前
大厂LLM应用岗上岸面经:面28家拿offer,拆解“必问考点+避坑指南”
程序员·llm·agent