ktransformers 上的 DeepSeek-R1 671B open-webui

ktransformers 上的 DeepSeek-R1 671B open-webui

  • 一、下载GGUF模型
    • 1. 创建目录
    • 2. 魔塔下载 DeepSeek-R1-Q4_K_M
    • 3. 安装显卡驱动和cuda
    • 4. 显卡 NVIDIA GeForce RTX 4090
  • 二、安装ktransformers
    • 1. 安装依赖
    • 2. 安装uv工具链
    • 3. 下载源码
    • 4. 创建python虚拟环境
  • 三、编译ktransformers
  • 四、运行ktransformers
    • 1. 后台运行
    • 2. API 测试
  • 五、open-webui 集成
    • 1. 安装 open-webui
    • 2. 运行脚本go.sh
    • 3. 启动过程很慢,监听端口 3000 运行后可以访问web界面
  • 参考

一、下载GGUF模型

1. 创建目录

mkdir DeepSeek-R1-GGUF

2. 魔塔下载 DeepSeek-R1-Q4_K_M

https://www.modelscope.cn/models/unsloth/DeepSeek-R1-GGUF

3. 安装显卡驱动和cuda

wget https://developer.download.nvidia.com/compute/cuda/12.6.0/local_installers/cuda_12.6.0_560.28.03_linux.run
sudo sh cuda_12.6.0_560.28.03_linux.run

4. 显卡 NVIDIA GeForce RTX 4090

NVIDIA-SMI 560.35.05 
CUDA Version: 12.6  

二、安装ktransformers

1. 安装依赖

sudo apt-get install git

2. 安装uv工具链

curl -LsSf https://astral.sh/uv/install.sh | sh
source $HOME/.local/bin/env
which uv
which uvx

3. 下载源码

git clone https://github.com/kvcache-ai/ktransformers.git
cd ktransformers
git checkout 94ab2de
git rev-parse --short HEAD # 应显示 94ab2de

4. 创建python虚拟环境

# uv venv ./venv --python 3.11 --python-preference=only-managed
Using CPython 3.11.11
Creating virtual environment at: ./venv
Activate with: source venv/bin/activate

三、编译ktransformers

apt-get install build-essential cmake
source venv/bin/activate
uv pip install -r requirements-local_chat.txt
uv pip install setuptools wheel packaging
# uv pip install setuptools wheel packaging
Using Python 3.11.11 environment at: 
Resolved 3 packages in 454ms
Prepared 1 package in 133ms
░░░░░░░░░░░░░░░░░░░░ [0/2] Installing wheels...                                                                                                     warning: Failed to hardlink files; falling back to full copy. This may lead to degraded performance.
         If the cache and target directories are on different filesystems, hardlinking may not be supported.
         If this is intentional, set `export UV_LINK_MODE=copy` or use `--link-mode=copy` to suppress this warning.
Installed 2 packages in 102ms
 + setuptools==75.8.0
 + wheel==0.45.1

# uv pip install --link-mode=copy packaging
Using Python 3.11.11 environment at:
Audited 1 package in 2ms
系统的物理CPU核心数量
export MAX_JOBS=72
export CMAKE_BUILD_PARALLEL_LEVEL=72
# 安装flash_attn
uv pip install flash_attn --no-build-isolation
export UV_LINK_MODE=copy
uv pip install flash_attn --no-build-isolation
export USE_NUMA=1
git submodule init
git submodule update
KTRANSFORMERS_FORCE_BUILD=TRUE uv pip install . --no-build-isolation

四、运行ktransformers

PYTORCH_CUDA_ALLOC_CONF=expandable_segments:True python3 ktransformers/server/main.py \
    --gguf_path /DeepSeek-R1-GGUF/DeepSeek-R1-Q4_K_M/ \
    --model_path deepseek-ai/DeepSeek-R1 \
    --model_name unsloth/DeepSeek-R1-GGUF \
    --cpu_infer 16 \
    --max_new_tokens 8192 \
    --cache_lens 32768 \
    --total_context 32768 \
    --cache_q4 true \
    --temperature 0.6 \
    --top_p 0.95 \
    --optimize_config_path ktransformers/optimize/optimize_rules/DeepSeek-V3-Chat.yaml \
    --force_think \
    --use_cuda_graph \
    --host 0.0.0.0 \
    --port 8080

1. 后台运行

nohup env PYTORCH_CUDA_ALLOC_CONF=expandable_segments:True python3 ktransformers/server/main.py \
    --gguf_path /DeepSeek-R1-GGUF/DeepSeek-R1-Q4_K_M/ \
    --model_path deepseek-ai/DeepSeek-R1 \
    --model_name unsloth/DeepSeek-R1-GGUF \
    --cpu_infer 16 \
    --max_new_tokens 8192 \
    --cache_lens 32768 \
    --total_context 32768 \
    --cache_q4 true \
    --temperature 0.6 \
    --top_p 0.95 \
    --optimize_config_path ktransformers/optimize/optimize_rules/DeepSeek-V3-Chat.yaml \
    --force_think \
    --use_cuda_graph \
    --host 0.0.0.0 \
    --port 8080 >> server.log 2>&1 &

2. API 测试

curl http://IP:8080/v1/chat/completions \
  -H "Content-Type: application/json" \
  -d '{
    "model": "DeepSeek-R1",
    "messages": [{"role": "user", "content": "你是谁!"}]
  }'

五、open-webui 集成

1. 安装 open-webui

mkdir open-webui
cd open-webui
uv venv ./venv --python 3.11
source venv/bin/activate
uv pip install open-webui

2. 运行脚本go.sh

#!/usr/bin/env bash

source venv/bin/activate

# open-webui 不原生支持HOST和PORT环境变量,需手动传递参数
# https://docs.openwebui.com/getting-started/env-configuration/#port
# 若open-webui运行异常,可执行`rm -rf ./data`清除数据后重启服务并清理浏览器缓存

export DATA_DIR="$(pwd)/data"
export ENABLE_OLLAMA_API=False
export ENABLE_OPENAI_API=True
export OPENAI_API_KEY="dont_change_this_cuz_openai_is_the_mcdonalds_of_ai"
export OPENAI_API_BASE_URL="http://IP:8080/v1" # <--- 需与ktransformers/llama.cpp的API配置匹配
#export DEFAULT_MODELS="openai/foo/bar" # <--- 保留注释,此参数用于`litellm`接入
export WEBUI_AUTH=False
export DEFAULT_USER_ROLE="admin"
export HOST=0.0.0.0
export PORT=3000 # <--- open-webui网页服务端口

open-webui serve \
  --host $HOST \
  --port $PORT

# 在浏览器中访问显示的URL:端口

3. 启动过程很慢,监听端口 3000 运行后可以访问web界面

netstat -netlp    

在这里插入图片描述

参考

  1. ktransformers 上的 DeepSeek-R1 671B
  2. ktransformers

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:/a/978213.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

QT:Graphics View的坐标系介绍

在 Qt 的 Graphics View 框架中&#xff0c;存在三种不同的坐标系&#xff0c;分别是 物品坐标系&#xff08;Item Coordinates&#xff09;、场景坐标系&#xff08;Scene Coordinates&#xff09; 和 视图坐标系&#xff08;View Coordinates&#xff09;。这三种坐标系在图形…

医院HIS接入大模型:算力基础设施与训练能力的深度剖析与测算

一、引言 1.1 研究背景与意义 在数字化医疗快速发展的当下,医院信息系统(Hospital Information System,HIS)作为医疗信息化的核心枢纽,承载着患者诊疗信息、医院运营管理等关键数据 ,对提升医疗服务质量、优化医院管理流程起着至关重要的作用。然而,传统 HIS 在面对日…

入门网络安全工程师要学习哪些内容【2025年寒假最新学习计划】

&#x1f91f; 基于入门网络安全/黑客打造的&#xff1a;&#x1f449;黑客&网络安全入门&进阶学习资源包 大家都知道网络安全行业很火&#xff0c;这个行业因为国家政策趋势正在大力发展&#xff0c;大有可为!但很多人对网络安全工程师还是不了解&#xff0c;不知道网…

阿里云CDN转https个人测试证书过期更换

网站是http的虚拟主机&#xff0c;微信小程序要求https&#xff0c;所以申请了阿里云CDN和个人测试证书&#xff08;以前叫免费证书&#xff09;&#xff0c;把http转成https。 但是个人测试证书只有三个月有效期&#xff0c;所以每隔三个月要手动申请更换一次。 在阿里云CDN…

东信营销科技巨额补贴仍由盈转亏:毛利率大幅下滑,现金流告急

《港湾商业观察》施子夫 近期&#xff0c;东信营销科技有限公司&#xff08;以下简称&#xff0c;东信营销科技&#xff09;递表港交所&#xff0c;联席保荐机构为海通国际和中银国际。 东信营销科技的国内运营主体为深圳市东信时代信息技术有限公司。尽管期内收入规模有所提…

AOP进阶-04.切入点表达式-@annotation

一.annotation注解 我们在最后一个切入点表达式中要匹配多个无规则的方法&#xff0c;这样的写法有些冗余了。而annotation注解就是来解决这一问题的。 annotation注解使用特定的注解来匹配方法。我们首先自定义一个注解&#xff0c;该注解就相当于一个标签&#xff0c;目标对…

特斯拉 FSD 算法深度剖析:软件层面全解读

一、引言 特斯拉的 FSD&#xff08;Full Self-Driving&#xff09;系统作为自动驾驶领域的前沿成果&#xff0c;其软件层面的算法设计至关重要。本文将从软件的角度&#xff0c;深入探讨特斯拉 FSD 所采用的算法&#xff0c;包括感知、规划、控制等多个方面&#xff0c;以期为…

LabVIEW同步数据采集功能

VI通过使用数据采集&#xff08;DAQ&#xff09;硬件系统&#xff0c;进行多通道同步采集&#xff0c;实时获取模拟信号数据。它利用外部时钟信号触发数据采集&#xff0c;支持连续采样模式&#xff0c;并将采集到的数据实时显示在波形图上&#xff0c;方便用户进行数据监控和分…

YOLOv12 ——基于卷积神经网络的快速推理速度与注意力机制带来的增强性能结合

概述 实时目标检测对于许多实际应用来说已经变得至关重要&#xff0c;而Ultralytics公司开发的YOLO&#xff08;You Only Look Once&#xff0c;只看一次&#xff09;系列一直是最先进的模型系列&#xff0c;在速度和准确性之间提供了稳健的平衡。注意力机制的低效阻碍了它们在…

Ubuntu20.04之VNC的安装使用与常见问题

Ubuntu20.04之VNC的安装与使用 安装图形桌面选择安装gnome桌面选择安装xface桌面 VNC-Server安装配置开机自启 VNC Clientroot用户无法登入问题临时方案永久方案 安装图形桌面 Ubuntu20.04主流的图形桌面有gnome和xface两种&#xff0c;两种桌面的安装方式我都会写&#xff0c…

14.二叉搜索树

二叉搜索树 1.概念 ⼆叉搜索树⼜称⼆叉排序树&#xff0c;它或者是⼀棵空树&#xff0c;或者是具有以下性质的⼆叉树: *若它的左⼦树不为空&#xff0c;则左⼦树上所有结点的值都⼩于等于根结点的值 *若它的右⼦树不为空&#xff0c;则右⼦树上所有结点的值都⼤于等于根结点…

web网络安全---cookie篇

什么是Cookie 由于HTTP是一种无状态的协议&#xff0c;服务器单从网络连接上无从知道客户身份。怎么办呢&#xff1f;就给客户端们颁发一个通行证吧&#xff0c;每人一个&#xff0c;无论谁访问都必须携带自己通行证。这样服务器就能从通行证上确认客户身份了。这就是Cookie的…

Qt 开源音视频框架模块之QtAV播放器实践

Qt 开源音视频框架模块QtAV播放器实践 1 摘要 QtAV是一个基于Qt的多媒体框架&#xff0c;旨在简化音视频播放和处理。它是一个跨平台的库&#xff0c;支持多种音视频格式&#xff0c;并提供了一个简单易用的API来集成音视频功能。QtAV的设计目标是为Qt应用程序提供强大的音视…

WPF学习之Prism(二)

前言 学习一下Prism。 1.Prism Prism框架提供了一套丰富的工具、类和模块&#xff0c;帮助开发人员实现以下功能&#xff1a; 模块化&#xff1a;Prism框架支持将应用程序拆分为多个模块&#xff0c;每个模块具有自己的功能和视图。这种模块化的设计使得应用程序更加灵活和…

前端实现rsa加密功能

本文将从web和小程序两个端来实现rsa的加密功能。 一般项目的登录密码、身份证号以及一些用户敏感信息等在传输的时候需要使用加密传输&#xff0c;一般来说&#xff0c;前端只会得到后端给的公钥&#xff0c;而rsa加密&#xff0c;可以用公钥加密&#xff0c;也可以用私钥加密…

VidSketch:具有扩散控制的手绘草图驱动视频生成

浙大提出的VidSketch是第一个能够仅通过任意数量的手绘草图和简单的文本提示来生成高质量视频动画的应用程序。该方法训练是在单个 RTX4090 GPU 上进行的&#xff0c;针对每个动作类别使用一个小型、高质量的数据集。VidSketch方法使所有用户都能使用简洁的文本提示和直观的手绘…

STM32——HAL库开发笔记23(定时器4—输入捕获)(参考来源:b站铁头山羊)

定时器有四个通道&#xff0c;这些通道既可以用来作为输入&#xff0c;又可以作为输出。做输入的时候&#xff0c;可以使用定时器对外部输入的信号的时间参数进行测量&#xff1b;做输出的时候&#xff0c;可以使用定时器向外输出精确定时的方波信号。 一、输入捕获 的基本原理…

Jquery详解

一.Jquery介绍 1.jQuery 是一个快速、简洁的 JavaScript 库&#xff0c;它极大地简化了 HTML 文档遍历、事件处理、动画效果和 AJAX 交互等操作&#xff0c;使开发者能够更轻松地创建动态和交互性强的网页。对原生js的封装,提供了很多时间,调用Api即可,并且对浏览器做了兼容性…

【EB-06】SystemCreator dbc转arxml

SystemCreator dbc转arxml 1. SystemCreator 意义2. SystemCreator使用方法2.1 实现步骤2.2 参考官方文档方法1. SystemCreator 意义 EB Tresos 对dbc直接导入的支持不是很完善,dbc也不是AUTOSAR标准的数据库文件,EB建议所有通信矩阵通过ARXML交互比较合理(AUTOSAR定义的)…

LeetCode225.用队列实现栈

LeetCode225.用队列实现栈 文章目录 LeetCode225.用队列实现栈题目描述实现1:实现2: 题目描述 请你仅使用两个队列实现一个后入先出&#xff08;LIFO&#xff09;的栈&#xff0c;并支持普通栈的全部四种操作&#xff08;push、top、pop 和 empty&#xff09;。 实现 MyStack…