当前位置: 首页 > article >正文

DeepSeek01-本地部署大模型

一、ollama简介:

  1. 什么是 Ollama?
    Ollama 是一个用于本地部署和管理大模型的工具。它提供了一个简单的命令行界面,
    使得用户可以轻松地下载、运行和管理各种大模型。Ollama 支持多种模型格式,
    并且可以与现有的深度学习框架(如 PyTorch、TensorFlow)无缝集成。

  2. 准备工作
    在开始之前,确保你的本地环境满足以下要求:

    • 操作系统:Linux 或 macOS(Windows 也可以,但可能需要额外配置)

    • Python:3.8 或更高版本

    • GPU:推荐使用 NVIDIA GPU,并安装 CUDA 和 cuDNN

二、ollama直接下载安装,部署:

A、官网最新版本0.5.11(2025-02-18):

  1. 官网地址:https://ollama.com/
  2. 下载地址:https://ollama.com/download
  3. Github地址:https://github.com/ollama/ollama

B、下载:

  1. 安装迅雷 https://www.xunlei.com/
  2. 将要下载的文件使用迅雷下载,速度快
  3. 下载绿色解压版地址:https://github.com/ollama/ollama/releases/download/v0.5.11/ollama-windows-amd64.zip
  4. 下载安装版地址:https://github.com/ollama/ollama/releases/download/v0.5.11/OllamaSetup.exe

C、安装(绿色解压版):

  1. 将ollama-windows-amd64.zip解压到一个目录下(不含中文字符)

D、环境变量设置:

  1. 运行程序变量设置:将ollama.exe所在目录添加到PATH目录下

  2. 运行 ollama serve -h 输出如下:

    Start ollamaUsage:ollama serve [flags]Aliases:serve, startFlags:-h, --help   help for serveEnvironment Variables:OLLAMA_DEBUG               Show additional debug information (e.g. OLLAMA_DEBUG=1)OLLAMA_HOST                IP Address for the ollama server (default 127.0.0.1:11434)OLLAMA_KEEP_ALIVE          The duration that models stay loaded in memory (default "5m")OLLAMA_MAX_LOADED_MODELS   Maximum number of loaded models per GPUOLLAMA_MAX_QUEUE           Maximum number of queued requestsOLLAMA_MODELS              The path to the models directoryOLLAMA_NUM_PARALLEL        Maximum number of parallel requestsOLLAMA_NOPRUNE             Do not prune model blobs on startupOLLAMA_ORIGINS             A comma separated list of allowed originsOLLAMA_SCHED_SPREAD        Always schedule model across all GPUsOLLAMA_FLASH_ATTENTION     Enabled flash attentionOLLAMA_KV_CACHE_TYPE       Quantization type for the K/V cache (default: f16)OLLAMA_LLM_LIBRARY         Set LLM library to bypass autodetectionOLLAMA_GPU_OVERHEAD        Reserve a portion of VRAM per GPU (bytes)OLLAMA_LOAD_TIMEOUT        How long to allow model loads to stall before giving up (default "5m")
    
  3. 设置ollama环境变量:

    变量名变量说明变量值
    OLLAMA_MODELS模型数据目录D:\apply\ollama\models
    OLLAMA_HOST配置端口:只填端口号可以同时侦听(所有) IP的:11434 端口:11434
    OLLAMA_ORIGINS允许浏览器跨域请求*

E、运行Ollama

  1. 运行服务:
    • ollama serve
  2. 验证:
    • 在浏览器中输入: http://localhost:11434

F、下载模型

  1. 模型地址:https://ollama.com/library/deepseek-r1
  2. 下载命令:
    ollama pull deepseek-r1:1.5b
    ollama pull deepseek-r1:7b
    ollama pull deepseek-r1:8b
    

G、运行与验证:

  1. 下载命令:
    ollama run deepseek-r1:1.5b
    ollama run deepseek-r1:7b
    ollama run deepseek-r1:8b
    
  2. 验证:
  • 在浏览器中输入: http://localhost:11434

三、ollama的Python客户端

官网:https://pypi.org/project/ollama/#description

A、安装:

  1. 下载Python:https://mirrors.huaweicloud.com/python

  2. 安装python

  3. 修改配置文件:

    Pip的配置文件为用户根目录下的:~/.pip/pip.conf(Windows路径为:C:\Users<UserName>\pip\pip.ini), 您可以配置如下内容:

    [global]
    index-url = https://mirrors.huaweicloud.com/repository/pypi/simple
    trusted-host = mirrors.huaweicloud.com
    timeout = 120
    
  4. 创建一个虚拟环境并激活它:

    python -m venv deepseek-ollama-env
    # source deepseek-ollama-env/bin/activate  # Linux/macOS
    # Windows
    deepseek-ollama-env\Scripts\activate
    
  5. 首先,我们需要安装 Ollama。你可以通过以下命令安装 Ollama:

    python.exe -m pip install --upgrade pip
    pip install  --trusted-host mirrors.huaweicloud.com -i https://mirrors.huaweicloud.com/repository/pypi/simple ollama
    

四、使用 KoboldCPP 在本地部署 DeepSeek 大模型

KoboldCPP 是一个基于 C++ 的高性能推理引擎,专门用于在本地部署和运行大模型。它支持多种模型格式,并且能够高效地利用硬件资源(如 GPU)。本文将详细介绍如何使用 KoboldCPP 在本地部署 DeepSeek 大模型。


1. 什么是 KoboldCPP?

KoboldCPP 是一个轻量级、高性能的推理引擎,专注于在本地运行大模型。它支持以下特性:

  • 高性能:通过 C++ 实现,能够充分利用硬件资源。
  • 多平台支持:支持 Linux、Windows 和 macOS。
  • 易于使用:提供简单的命令行接口,方便快速部署和运行模型。

2. 准备工作

在开始之前,确保你的本地环境满足以下要求:

  • 操作系统:Linux、Windows 或 macOS。
  • Python:3.8 或更高版本(用于模型转换和工具脚本)。
  • GPU:推荐使用 NVIDIA GPU,并安装 CUDA 和 cuDNN(可选,用于加速推理)。
  • 内存:至少 16GB RAM(具体需求取决于模型大小)。

3. 安装 KoboldCPP

下载 KoboldCPP

首先,从 KoboldCPP 的 GitHub 仓库下载预编译的二进制文件:

  • KoboldCPP GitHub Releases

选择适合你操作系统的版本(Windows、Linux 或 macOS),并下载解压。

安装依赖

确保你的系统已安装以下依赖:

  • CUDA(如果使用 GPU):安装与你的 GPU 驱动兼容的 CUDA 版本。
  • OpenBLASMKL(用于 CPU 加速):可以通过包管理器安装。

4. 准备 DeepSeek 大模型

KoboldCPP 支持多种模型格式(如 GGML、GPTQ 等)。你需要将 DeepSeek 大模型转换为 KoboldCPP 支持的格式。

下载模型

从 Hugging Face 或其他来源下载 DeepSeek 大模型。例如:

git lfs install
git clone https://huggingface.co/deepseek-ai/deepseek-large
转换模型格式

使用 transformers 或其他工具将模型转换为 KoboldCPP 支持的格式(如 GGML)。以下是一个示例脚本:

from transformers import AutoModelForCausalLM
import torchmodel_name = "deepseek-ai/deepseek-large"
model = AutoModelForCausalLM.from_pretrained(model_name)# 转换为 GGML 格式
model.save_pretrained("./deepseek-ggml", save_format="ggml")

5. 使用 KoboldCPP 运行模型

启动 KoboldCPP

将转换后的模型文件放入 KoboldCPP 的 models 目录中,然后通过命令行启动 KoboldCPP:

./koboldcpp --model ./models/deepseek-ggml.bin --gpu  # 使用 GPU 加速

如果使用 CPU,可以省略 --gpu 参数:

./koboldcpp --model ./models/deepseek-ggml.bin
参数说明
  • --model:指定模型文件路径。
  • --gpu:启用 GPU 加速(需要 CUDA 支持)。
  • --threads:设置 CPU 线程数(适用于 CPU 模式)。
  • --port:指定服务端口(默认为 5000)。

6. 访问 KoboldCPP Web 界面

启动 KoboldCPP 后,它会自动启动一个本地 Web 服务。打开浏览器,访问以下地址:

http://localhost:5000

你将看到一个简单的 Web 界面,可以在其中输入文本并查看模型的生成结果。


7. 使用 API 访问模型

KoboldCPP 还提供了一个简单的 API,可以通过 HTTP 请求与模型交互。以下是一个示例:

发送请求

使用 curl 或其他 HTTP 客户端发送请求:

curl -X POST http://localhost:5000/api/v1/generate -d '{"prompt": "你好,DeepSeek!","max_length": 50
}'
响应示例
{"text": "你好,DeepSeek!我是一个基于 DeepSeek 大模型的 AI 助手。"
}

8. 进一步优化

  • 量化模型:如果资源有限,可以将模型量化为 4-bit 或 8-bit 以减少内存占用。
  • 多 GPU 支持:如果你的系统有多个 GPU,可以启用多 GPU 推理以进一步提高性能。
  • 批处理:通过调整批处理大小,优化推理速度。

9. 总结

通过 KoboldCPP,我们可以在本地高效地部署和运行 DeepSeek 大模型。无论是用于研究、开发还是生产环境,KoboldCPP 都提供了一个简单而强大的解决方案。希望本文能帮助你顺利在本地部署 DeepSeek 大模型,并充分发挥其潜力。

如果你有任何问题或建议,欢迎在评论区留言!


© 著作权归作者所有

相关文章:

DeepSeek01-本地部署大模型

一、ollama简介&#xff1a; 什么是 Ollama&#xff1f; Ollama 是一个用于本地部署和管理大模型的工具。它提供了一个简单的命令行界面&#xff0c; 使得用户可以轻松地下载、运行和管理各种大模型。Ollama 支持多种模型格式&#xff0c; 并且可以与现有的深度学习框架&#x…...

Java-数据结构-(HashMap HashSet)

一、Tree和Hash的区别 在上一篇文章中&#xff0c;我们讲到了"TreeMap"和"TreeSet"&#xff0c;但当我们刷题的时候却会发现&#xff0c;实际应用Map和Set时&#xff0c;却常常都只会用"HashMap"和"HashSet"&#xff0c;这是为什么呢…...

举个栗子:浅显易懂的理解Transformer 模型

用一个简单的比喻来解释 Transformer 模型&#xff0c;让你轻松理解它的工作原理。 Transformer 的比喻&#xff1a;一个高效的翻译团队 想象一下&#xff0c;Transformer 模型就像一个高效的翻译团队&#xff0c;它的任务是把一段英文翻译成中文。这个团队由两部分组成&#…...

el-table 结合 slot 具名插槽遍历封装列表模板

基础效果 要实现以上效果&#xff0c;可对 el-table 进行封装&#xff0c;将列配置视为数组&#xff0c;循环 el-table-column 标签模板组件 <div class"tableSlot"><el-table :data"dataList" border><el-table-columnv-for"(item, …...

游戏引擎学习第108天

仓库:https://gitee.com/mrxiao_com/2d_game_2 看一下我们现在的进展 今天的工作重点是处理游戏中的Z轴问题&#xff0c;特别是如何在不同的层级之间进行移动&#xff0c;并确保Z轴的处理方式与真实世界中的透视效果一致。当前&#xff0c;游戏中的Z轴运动存在问题&#xff0…...

遵循规则:利用大语言模型进行视频异常检测的推理

文章目录 速览摘要01 引言02 相关工作视频异常检测大语言模型 03 归纳3.1 视觉感知3.2 规则生成Normal and Anomaly &#xff08;正常与异常&#xff09;Abstract and Concrete &#xff08;抽象与具体&#xff09;Human and Environment &#xff08;人类与环境&#xff09; 3…...

网页制作01-html,css,javascript初认识のhtml的基本标记

一、 Html简介 英文全称是 hyper text markup language,超文本标记语言,是全球广域网上描述网页内容和外观的标准. Html作为一款标记语言,本身不能显示在浏览器中.标记语言经过浏览器的解释和编译,才能正确地反映html标记语言的内容. 1.html 的基本标记 1&#xff09;头部标…...

vue 判断字符串开头是http或者https

在 Vue 中判断字符串是否以 http 或 https 开头&#xff0c;可以通过以下步骤实现&#xff1a; 方法一&#xff1a;使用 startsWith() 方法 // 在 Vue 组件的方法或计算属性中 isExternalLink(url) {return url?.startsWith(http://) || url?.startsWith(https://); }方法二…...

linux常用命令大全(包括抓包、网络检测、路由等,做项目一点点总结而来!)

文章目录 常用命令**apt相关****ls**&#xff1a;**cd****cp****ls -l | grep ssh**&#xff1a;会列出当前目录中包含 “ssh” 的文件或目录的详细信息。**系统资源**linux路由相关抓包工具和命令tcpdumpwiresharktshark iperf 常用命令 通过上下方向键 ↑ ↓ 来调取过往执行过…...

HarmonyOS组件之Tabs

Tabs 1.1概念 Tabs 视图切换容器&#xff0c;通过相适应的页签进行视图页面的切换的容器组件每一个页签对应一个内容视图Tabs拥有一种唯一的子集元素TabContent 1.2子组件 不支持自定义组件为子组件&#xff0c;仅可包含子组件TabContent&#xff0c;以及渲染控制类型 if/e…...

Linux学习笔记之虚拟地址空间

1.示例引入 运行如下代码那么运行结果如下图。 #include<stdio.h> #include<unistd.h>int main() {pid_t id fork();if(id-1){printf("创建进程错误&#xff01;\n");return 1;}int size0;if(id0){//子进程while(1){printf("我是子进程&#xff0c…...

前端高级面试题

以下是一些前端高级面试可能涉及到的内容: 一、前端工程化 如何构建一个适合大型团队的前端代码规范和构建流程? 答案: 代码规范方面: 使用ESLint结合Prettier来统一JavaScript和CSS(包括预处理器如Sass或Less)的语法风格。例如,规定变量命名采用驼峰命名法,函数名要有…...

MySQL判空函数--IFNULL函数的使用

文章目录 IFNULL函数介绍IFNULL函数的语法举例相关扩展 IFNULL函数介绍 在MySQL中&#xff0c;IFNULL函数用于判断给定的表达式是否为NULL。如果表达式为NULL&#xff0c;则IFNULL函数返回指定的替代值&#xff1b;如果表达式不为NULL&#xff0c;则返回表达式本身的值。 IFN…...

HTTP的“对话”逻辑:请求与响应如何构建数据桥梁?

一、前言 作为现代互联网通信的基石&#xff0c;HTTP协议定义了客户端与服务器之间的“对话规则”。每一次网页加载、API调用或文件传输的背后&#xff0c;都离不开精心构造的HTTP请求与响应。请求中封装了用户的意图——从请求方法、资源路径到提交的数据&#xff1b;响应则承…...

二〇二四年终总结

写在前面 简单总结一下告诉自己&#xff0c;曾经活着 不必太纠结于当下&#xff0c;也不必太忧虑未来&#xff0c;当你经历过一些事情的时候&#xff0c;眼前的风景已经和从前不一样了。——村上春树 原本应该 24 年年中的时候写 23 年年终的总结&#xff0c;但是一直拖着&…...

[论文阅读] SeeSR: Towards Semantics-Aware Real-World Image Super-Resolution

文章目录 一、前言二、主要贡献三、Introduction四、Methodology4.1 Motivation &#xff1a;4.2Framework Overview.** 一、前言 通信作者是香港理工大学 & OPPO研究所的张磊教授&#xff0c;也是图像超分ISR的一个大牛了。 论文如下 SeeSR: Towards Semantics-Aware Rea…...

全面了解HTTP(一)

全面了解HTTP&#xff08;二&#xff09;-CSDN博客 web及网络基础 使用HTTP协议访问web&#xff1a; HTTP: 网络基础TCP/IP 与HTTP关系密切的协议&#xff1a;IP,TCP,DNS 负责域名解析的DNS服务 各种协议与HTTP协议的关系 URI和URL 简单的HTTP协议 HTTP协议用于客户端和服…...

LM Studio笔记

一、什么是 LM Studio&#xff1f; LM Studio 是一款功能强大、易于使用的桌面应用程序&#xff0c;用于在本地机器上实验和评估大型语言模型&#xff08;LLMs&#xff09;。它允许用户轻松地比较不同的模型&#xff0c;并支持使用 NVIDIA/AMD GPU 加速计算。 功能集&#xff1…...

SoftwareCluster中如何配置VendorSignature

How to create VendorSignature...

Linux CentOS 7部署Vulhub靶场

漏洞复现环境&#xff1a; 1、Linux操作系统中通过Docker部署的Vulhub靶场&#xff1a; docker docker-compose 2、Nmap扫描工具 一、部署靶场 1、安装Docker 1、下载docker yum install docker 安装完成&#xff0c;如下图&#xff1a; 2、开启docker服务 [rootlocalhost…...

Golang GORM系列:GORM分页和排序

高效的数据检索和表示是应用程序开发的关键方面。GORM是健壮的Go对象关系映射库&#xff0c;它为开发人员提供了强大的工具来实现这一点。无论你是在构建动态web应用程序还是数据密集型服务&#xff0c;掌握GORM中的分页和排序使您能够提供无缝且高效的用户体验。本文我们将深入…...

【怎么使用Redis实现一个延时队列?】

怎么使用Redis实现一个延时队列? 详细说明Java代码示例解释注意事项使用Redis实现延时队列通常通过有序集合(Sorted Set)来实现,利用Redis的ZSET类型及其相关命令可以很方便地实现这一功能。 有序集合中的每个元素都有一个分数(score),我们可以利用这个分数来存储消息需…...

HarmonyNext上传用户相册图片到服务器

图片选择就不用说了&#xff0c;直接用 无须申请权限 。 上传图片&#xff0c;步骤和android对比稍微有点复杂&#xff0c;可能是为了安全性考虑&#xff0c;需要将图片先拷贝到缓存目录下面&#xff0c;然后再上传&#xff0c;当然你也可以转成Base64&#xff0c;然后和服务…...

宝塔docker 安装oracle11G

1、拉取镜像 sudo docker pull iatebes/oracle_11g #iatebes为用户名2、查看镜像 sudo docker images3、创建并运行容器 docker run -d --privileged --name oralce11g -p 1521:1521 iatebes/oracle_11g4、登录到容器 5、进入容器并修改system用户密码 docker exec -it orac…...

计算机视觉-OpenCV图像处理

1.Matplotlib数据可视化&#xff08;绘制图像直方图、可视化矩阵&#xff09; # Matplotlib 数据可视化&#xff08;绘制图像直方图、可视化矩阵&#xff09; # 本节主要讲解如何使用 Matplotlib 绘制图像直方图和可视化矩阵。 # 1. 绘制图像直方图 # 2. 可视化矩阵# 1. 绘制图…...

【论文笔记】Transformer^2: 自适应大型语言模型

Code repo: https://github.com/SakanaAI/self-adaptive-llms 摘要 自适应大型语言模型&#xff08;LLMs&#xff09;旨在解决传统微调方法的挑战&#xff0c;这些方法通常计算密集且难以处理多样化的任务。本文介绍了Transformer&#xff08;Transformer-Squared&#xff09;…...

【医学影像AI】50个眼科影像数据集(1)分类任务

【医学影像】50个眼科影像数据集&#xff08;1&#xff09;分类任务 【医学影像】50个眼科影像数据集&#xff08;2&#xff09;分割任务 【医学影像】50个眼科影像数据集&#xff08;3&#xff09;其它任务 【医学影像AI】50 个眼科影像数据集&#xff08;1&#xff09;分类任…...

2025年-G4--lc75--Best Time to Buy and Sell Stock(java版)

1.题目描述 2.思路 思路1: 3.java代码实现 class Solution {public int maxProfit(int[] prices) {// //初始化最小价格为最大值&#xff0c;最大利润为0// int minPriceInteger.MAX_VALUE;// int maxProfit0;// //遍历价格数组// for (int price : prices)// …...

STM32 PWM脉冲宽度调制介绍

目录 背景 PWM 模式 影子寄存器和预装载寄存器 PWM对齐模式 PWM 边沿对齐模式 向上计数配置 向下计数的配置 PWM 中央对齐模式 程序 第一步、使能GPIOB组、AFIO、TIM3外设时钟 第二步、输出通道端口配置​编辑 第三步、定时器配置产生频率 第四步、PWM输出配置 第…...

WebGPU顶点插槽(Vertex Buffer Slot)使用指南

本文将通过完整代码示例和逐行注释&#xff0c;详细解释WebGPU中顶点缓冲区的配置方法&#xff0c;特别针对shaderLocation参数与着色器的对应关系进行重点说明。 一、顶点数据定义与缓冲区创建 // 定义顶点数据结构&#xff08;逻辑层&#xff09; // 包含位置(position)、颜…...