玩转大语言模型——Ubuntu系统环境下使用llama.cpp进行CPU与GPU混合推理deepseek
系列文章目录
玩转大语言模型——使用langchain和Ollama本地部署大语言模型
玩转大语言模型——三分钟教你用langchain+提示词工程获得猫娘女友
玩转大语言模型——ollama导入huggingface下载的模型
玩转大语言模型——langchain调用ollama视觉多模态语言模型
玩转大语言模型——使用transformers中的pipeline调用huggingface中模型
玩转大语言模型——transformers微调huggingface格式的中文Bert模型
玩转大语言模型——使用GraphRAG+Ollama构建知识图谱
玩转大语言模型——完美解决GraphRAG构建的知识图谱全为英文的问题
玩转大语言模型——配置图数据库Neo4j(含apoc插件)并导入GraphRAG生成的知识图谱
玩转大语言模型——本地部署带聊天界面deepseek R1的小白教程
玩转大语言模型——本地部署deepseek R1和本地数据库的小白教程(Ollama+AnythingLLM)
玩转大语言模型——使用LM Studio在本地部署deepseek R1的零基础)教程
玩转大语言模型——Ubuntu系统环境下使用llama.cpp进行CPU与GPU混合推理deepseek
玩转大语言模型——使用Kiln AI可视化环境进行大语言模型微调数据合成
文章目录
- 系列文章目录
- 前言
- 下载并配置llama.cpp
- 更新apt-get
- 下载依赖
- 克隆代码
- 编译项目
- 构建项目文件
- 进一步编译
- 推理
- CLI工具推理
- 推理模板
- server工具
- 结尾
前言
llama.cpp是一个基于C/C++的开源项目,旨在高效地运行大型语言模型推理。纯采用纯C/C++编写,不依赖其他外部库,可移植性强,只要环境支持C/C++运行,就能运行llama.cpp。支持Apple芯片,通过ARM NEON等框架进行优化;支持x86架构的AVX等指令集;提供自定义CUDA内核,支持NVIDIA、AMD等GPU,还支持Vulkan和SYCL后端,可实现CPU+GPU混合推理。除此之外还支持1.5位到8位的整数量化,加快推理速度并减少内存使用,便于在资源有限的设备上运行。从推理速度上来看,相比原始Python实现,采用C++开发的llama.cpp推理速度更快。通过4-bit、GGUF等量化技术,大幅降低显存需求,能在8GB显存的消费级显卡上运行大模型。本篇将以deepseek为例,介绍如何使用llama.cpp部署大语言模型并进行简单应用
下载并配置llama.cpp
在本篇中仅介绍Linux系统、Nvidia显卡下的配置
更多配置的操作见官网:https://github.com/ggml-org/llama.cpp/blob/master/docs/build.md
更新apt-get
sudo apt-get update
下载依赖
sudo apt-get install build-essential cmake curl libcurl4-openssl-dev -y
其中:
- build-essential :必需的工具和库,确保系统能正常进行编译。
- cmake :跨平台的构建系统,用于管理项目的编译过程。
- curl :命令行工具,用于通过 URL 发送和接收数据。
- libcurl4-openssl-dev :cURL的一个库文件,允许在编程中通过 cURL 发送 HTTP 请求。libcurl4-openssl-dev 是与 OpenSSL配合使用的版本,提供了 SSL/TLS 加密支持,用于安全的 HTTP 请求。
克隆代码
github链接:https://github.com/ggml-org/llama.cpp
也可以直接使用git方式下载
git clone https://github.com/ggml-org/llama.cpp
下载后进入到llama.cpp路径
cd llama.cpp
编译项目
构建项目文件
使用CMake构建项目文件
cmake -B build -DBUILD_SHARED_LIBS=OFF -DGGML_CUDA=ON -DLLAMA_CURL=ON
其中参数
| 参数 | 含义 |
|---|---|
| -B | 构建目录,在此命令中为build目录 |
| -DBUILD_SHARED_LIBS | 创建共享库选项,设置为OFF则不创建共享库,仅使用静态库 |
| -DGGML_CUDA | 在有 GPU 的情况下使用 GPU 加速 |
| -DLLAMA_CURL | 支持网络请求 |
进一步编译
cmake --build build --config Release --clean-first --target llama-quantize llama-cli llama-gguf-split
其中参数:
| 参数 | 含义 |
|---|---|
| –build | 用来指示构建文件的路径 |
| –config | 指定构建配置,可选参数Debug(调试版本,包含调试信息但没有优化)、Release(没有调试信息,但运行效率更高) |
| -j | 构建过程使用的并行CPU数 |
| –clean-first | 是否在构建之前清空以前的构建结果,一般建议是情况,防止出现错误 |
| –target | 指定构建的目标,不设置这一参数默认是构建所有的目标 |
本篇中编译的目标以及解释
| 目标 | 解释 |
|---|---|
| llama-quantize | 将模型的精度从浮点数降低到整数,从而减少内存占用和提高推理速度 |
| llama-cli | 用于运行模型或与用户交互 |
| llama-gguf-split | 于将一个大模型文件拆分成多个小文件,方便存储和加载 |
推理
推理时需要先切换到编译后的bin文件目录下
cd /build/bin
CLI工具推理
使用llama-cli可以实现与模型的交互模式推理
./llama-cli -m /home/aixing/learn_llm/gguf_model/deepseek/DeepSeek-R1-Distill-Qwen-7B/DeepSeek-R1-Distill-Qwen-7B-Q4_K_M.gguf
交互如下

如果觉得每次执行都要输入一大堆很麻烦,也可以将命令写入sh文件
echo ./llama-cli -m /home/aixing/learn_llm/gguf_model/deepseek/DeepSeek-R1-Distill-Qwen-7B/DeepSeek-R1-Distill-Qwen-7B-Q4_K_M.gguf > llama-cli-test.sh
下次执行时仅运行sh文件即可
bash llama-cli-test.sh
推理模板
使用以下命令查看相关参数
llama-cli - h
我们可以看到相关的可选模板

随后可以通过设置--chat-template来设定模板,除此之外还可以通过以下命令自定义模板
llama-cli -m model.gguf -cnv --in-prefix 'User: ' --reverse-prompt 'User:'

server工具
使用llama-server可以提供API服务
./llama-server -m /home/aixing/learn_llm/gguf_model/deepseek/DeepSeek-R1-Distill-Qwen-1.5B-Q2_K/DeepSeek-R1-Distill-Qwen-1.5B-Q2_K.gguf --port 8080 --host 0.0.0.0 -ngl 5 --parallel 10
其中参数及其含义
| 参数 | 含义 |
|---|---|
| -m | 模型路径 |
| –port | 端口号,默认是8080 |
| host | 设置为全零代表全都可以访问 |
| -ngl | 卸载到GPU的层数 |
| –parallel | 并发访问数 |
llama-server提供的是类似于OpenAI的接口,如果是本机访问,使用127.0.0.1:8080/v1或localhost:8080,如果是局域网内其他机子,需要将127.0.0.1换成服务器的IP地址。
如果服务器本地可以访问,局域网内访问不了,查看一下防火墙有没有允许外界访问端口,或者如果是自己做测试,且没有其他应用,可以直接关掉防火墙。
如果是使用WSL的Ubuntu系统,最好是用本地访问,由于Windows本身防火墙或者与Windows本身端口冲突都可能会导致远程访问失败,调节起来非常的麻烦。
与此同时,llama.cpp还提供了一个WebUI界面
直接访问localhost:8080就可以使用

结尾
在本章中简单介绍了llama.cpp的使用,实际上llama.cpp的操作细节和参数设置有很多,后续会专门出一个参数的详解
相关文章:
玩转大语言模型——Ubuntu系统环境下使用llama.cpp进行CPU与GPU混合推理deepseek
系列文章目录 玩转大语言模型——使用langchain和Ollama本地部署大语言模型 玩转大语言模型——三分钟教你用langchain提示词工程获得猫娘女友 玩转大语言模型——ollama导入huggingface下载的模型 玩转大语言模型——langchain调用ollama视觉多模态语言模型 玩转大语言模型—…...
20250301在chrome中安装CRX猫抓
20250301在chrome中安装CRX猫抓 2025/3/1 18:08 百度:猫抓 CRX https://www.crx4chrome.com/crx/49597/ 猫抓 (cat-catch) Crx File 2.5.9 for Chrome (Latest Version) Get Latest Version of 猫抓 (cat-catch) from Web Store Developer Tools > cat-catch / E…...
Docker 深度解析:适合零基础用户的详解
此博客涵盖 Docker 的基本概念和作用、架构和核心组件、与传统虚拟机的对比、安装与基本操作,以及在实际开发和运维中的应用场景。 首先,详细解释了 Docker 的基本概念,包括它的诞生背景、作用及其如何解决传统应用部署中的问题。然后&#…...
LeetCode 分割回文串(回溯、dp)
131.分割回文串 给你一个字符串 s,请你将 s 分割成一些 子串,使每个子串都是 回文串 。返回 s 所有可能的分割方案。 示例 1: 输入:s "aab" 输出:[["a","a","b"],["a…...
期权帮|股指期货入门知识:什么是股指期货基差?什么是股指期货价差?
锦鲤三三每日分享期权知识,帮助期权新手及时有效地掌握即市趋势与新资讯! 股指期货入门知识:什么是股指期货基差?什么是股指期货价差? 股指期货的基差与价差是两个重要的价格关系指标,它们反映了现货市场…...
解锁GPM 2.0「卡顿帧堆栈」|代码示例与实战分析
每个游戏开发者都有一个共同的愿望,那就是能够在无需复现玩家反馈的卡顿现象时,快速且准确地定位卡顿的根本原因。为了实现这一目标,UWA GPM 2.0推出了全新功能 - 卡顿帧堆栈,旨在为开发团队提供高效、精准的卡顿分析工具。在这篇…...
Python:类型转换和深浅拷贝,可变与不可变对象
int():转换为一个整数,只能转换由纯数字组成的字符串 浮点型强转整型会去掉小数点及后面的数,只保留整数部分 #如果字符串中有数字和正负号以外的字符就会报错 float():整形转换为浮点型会自动添加一位小数 .0 如果字符串中有…...
Redis——缓存穿透、击穿、雪崩
缓存穿透 什么是缓存穿透 缓存穿透说简单点就是大量请求的 key 根本不存在于缓存中,导致请求直接到了数据库上,根本没有经过缓存这一层。举个例子:某个黑客故意制造我们缓存中不存在的 key 发起大量请求,导致大量请求落到数据库…...
8.1.STM32_OLED
4.STM32_OLED 跟着江协科大的视频,无法点亮OLED屏幕解决办法 每个人使用的0.96寸OLED屏幕信号不一样,存在很多兼容性问题 归根结底就是驱动的问题! 本人的OLED是SSD1306,在淘宝店铺找了驱动文件后成功点亮,示例见文末 请针对自…...
Gartner发布安全运营指标构建指南
如何为安全运营指标构建坚实的基础 安全运营经理需要报告威胁检测、调查和响应计划的有效性,但难以驾驭大量潜在的 SOC 指标。本研究提供了设计针对 SOC 的指标系统的示例和实践。 主要发现 需要清晰、一致的衡量标准来向董事会成员或服务提供商等更广泛的团队传达…...
【赵渝强老师】监控Redis
对运行状态的Redis实例进行监控是运维管理中非常重要的内容,包括:监控Redis的内存、监控Redis的吞吐量、监控Redis的运行时信息和监控Redis的延时。通过Redis提供的监控命令便能非常方便地实现对各项指标的监控。 一、监控Redis的内存 视频讲解如下 【…...
【Unity】搭建HTTP服务器并解决IP无法访问问题解决
一、核心目标与背景 在Unity中搭建本地HTTP服务器,可以用于实现Web与游戏交互、本地数据接口测试、跨设备通信等场景。但在实际部署中,开发者常遇到以下问题: 本机IP无法访问:服务绑定localhost时,局域网设备无法连…...
如何远程访问svn中的URL
简介: 主要opencascade相关知识学习 格言: 万丈高楼平地起 要远程访问 SVN(Subversion)仓库中的 URL,通常需要以下步骤和注意事项: 1. 确认远程 SVN 服务器的访问协议 SVN 支持多种协议访问远程仓库&…...
Free Auto Clicker - 在任意位置自动重复鼠标点击
“想让鼠标自己动起来,解放双手去做更有趣的事?”Free Auto Clicker 就像你的数字小助手,能在任意位置自动重复点击鼠标。从玩游戏到刷网页,这款免费工具让你告别枯燥的重复操作,效率瞬间起飞! 你有没有想…...
0005__PyTorch 教程
PyTorch 教程 | 菜鸟教程 离线包:torch-1.13.1cpu-cp39-cp39-win_amd64.whl https://download.pytorch.org/whl/torch_stable.html...
Unity Burst编译
官网文档:https://docs.unity3d.com/Packages/com.unity.burst1.8/manual/index.html Unity 之Burst 底层原理:https://zhuanlan.zhihu.com/p/623274986 Burst 编译器入门(五):https://developer.unity.cn/projects/5e…...
软件测试中的BUG
文章目录 软件测试的生命周期BugBug 的概念描述 Bug 的要素案例Bug 级别Bug 的生命周期与开发产生争执怎么办?【高频面试题】先检查自身,Bug 是否描述的不清楚站在用户角度考虑并抛出问题Bug 的定级要有理有据提⾼自身技术和业务水平,做到不仅…...
LabVIEW基于IMAQ实现直线边缘检测
本程序基于 NI Vision Development 模块,通过 IMAQ Find Straight Edges 函数,在指定 ROI(感兴趣区域) 内检测多条直线边缘。用户可 动态调整检测参数 或 自定义ROI,实时观察识别效果,适用于 高精度视觉检测…...
C#:LINQ学习笔记01:LINQ基础概念
一、LINQ 架构体系 1. LINQ 的核心思想 统一查询模型:对对象、XML、数据库等不同数据源使用一致的语法。强类型检查:编译时类型安全,减少运行时错误。 2. 核心组件 技术数据源典型场景LINQ to Objects内存集合 (IEnumerable)过滤/排序集合…...
15Metasploit框架介绍
metasploit目录结构 MSF ——the metasploit framework 的简称。MSF高度模块化,即框架结构由多个module组成,是全球最受欢迎的工具 是一筐开源安全漏洞利用和测试工具,集成了各种平台上常见的溢出漏洞和流行sheellcode,并且保持…...
别再死磕PI参数了!用MATLAB/Simulink手把手教你搭建异步电机FOC仿真(附模型下载)
异步电机FOC仿真实战:从零搭建到参数调优全指南 在电机控制领域,矢量控制(FOC)技术因其优异的动态性能和效率表现,已成为工业应用中的主流方案。然而从理论到实践的跨越往往充满挑战——许多工程师能够理解Park变换、空间矢量调制等概念&…...
灰度发布与流量切换
Skeyevss FAQ:灰度发布与流量切换 试用安装包下载 | SMS | 在线演示 项目地址:https://github.com/openskeye/go-vss 1. 目标 新版本 先小流量验证,指标正常再全量;出问题 快速回滚。对 SIP 类系统,还要考虑 会话粘…...
Blender Shape Keys进阶:从表情到形态的精准控制
1. Shape Keys基础概念与核心价值 第一次接触Blender的Shape Keys功能时,我完全被它强大的变形能力震撼了。简单来说,Shape Keys(形态键)就像给3D模型预设了多种"表情包",通过滑块控制就能实现平滑的形态过渡…...
统一去马赛克与降噪技术:ESUM模型解析与应用
1. 项目概述:统一去马赛克与降噪技术研究 在数字图像处理领域,去马赛克(Demosaicing)是图像信号处理(ISP)流水线中最关键的步骤之一。这项技术负责将传感器捕获的原始拜耳模式(Bayer Pattern&am…...
铸件去毛刺,伯朗特机器人带气动打磨头,恒力去除浇口残余
在铸造行业,无论是金属还是非金属铸件,脱模后都会不可避免地产生飞边、毛刺及浇口残余。这些瑕疵不仅影响产品外观,更可能妨碍后续装配,甚至在部件受力时成为应力集中点,影响产品使用寿命与安全性。传统的人工去毛刺作…...
ARM Cortex-M微控制器与瑞萨RA系列开发实战指南
1. 项目概述:从“ARM”到“瑞萨RA”的认知之旅在嵌入式开发的江湖里,如果你还在纠结于8位、16位单片机的选型,或者对“ARM Cortex-M”这个名词感到既熟悉又陌生,那么这篇文章就是为你准备的。我接触过不少从传统8051、AVR转型过来…...
别再死记硬背了!用Cisco Packet Tracer搞定IPv6地址配置(附EUI-64和静态路由实战)
思科模拟器实战:从零掌握IPv6地址配置与路由技术 在数字化浪潮席卷全球的今天,IPv6作为下一代互联网协议,正逐步取代IPv4成为网络世界的基石。然而,对于许多网络初学者来说,IPv6那长达128位的地址和全新的配置方式往往…...
无王无帝定乾坤,来自田间第一人 海棠藏圣定山河
无王无帝定乾坤,来自田间第一人。 自古山河安定,世人皆归功于帝王镇守、朝堂统御, 仿佛万里乾坤唯有王权可镇、唯有霸业可安。 然则山河气运自有天道,世间安定自有公理, 强权只能维系一时疆域,正道方能稳固…...
长期使用Taotoken官方折扣活动对项目运营成本的实际影响
🚀 告别海外账号与网络限制!稳定直连全球优质大模型,限时半价接入中。 👉 点击领取海量免费额度 长期使用Taotoken官方折扣活动对项目运营成本的实际影响 在项目开发与运营中,大模型API调用成本是技术决策者持续关注的…...
拆解安防摄像头的“眼睛”:从IMX290 Sensor到镜头,如何一步步调出通透画质?
拆解安防摄像头的“眼睛”:从IMX290 Sensor到镜头,如何一步步调出通透画质? 在安防监控领域,画质表现直接决定了产品的核心竞争力。当我们谈论"通透画质"时,实际上是在讨论一种光学与电子系统的协同优化艺术…...
