本地部署 text-generation-webui

news2025/1/20 11:00:54

本地部署 text-generation-webui

  • 0. 背景
  • 1. text-generation-webui 介绍
  • 2. 克隆代码
  • 3. 创建虚拟环境
  • 4. 安装 pytorch
  • 5. 安装 CUDA 运行时库
  • 6. 安装依赖库
  • 7. 启动 Web UI
  • 8. 访问 Web UI
  • 9. OpenAI 兼容 API

0. 背景

一直喜欢用 FastChat 本地部署大语言模型,今天试一试 text-generation-webui 这个项目。

在这里插入图片描述

1. text-generation-webui 介绍

text-generation-webui 适用于大型语言模型的 Gradio Web UI。支持transformers、GPTQ、AWQ、EXL2、llama.cpp (GGUF)、Llama 模型。

它的特点如下,

  • 3种界面模式:default (two columns), notebook, chat
  • 支持多个模型后端:Transformers、llama.cpp(通过 llama-cpp-python)、ExLlama、ExLlamaV2、AutoGPTQ、AutoAWQ、GPTQ-for-LLaMa、CTransformers、QuIP#。
  • 下拉菜单可在不同模型之间快速切换。
  • 大量扩展(内置和用户贡献),包括用于真实语音输出的 Coqui TTS、用于语音输入的 Whisper STT、翻译、多模式管道、向量数据库、Stable Diffusion集成等等。有关详细信息,请参阅 wiki 和扩展目录。
  • 与自定义角色聊天。
  • 适用于指令跟踪模型的精确聊天模板,包括 Llama-2-chat、Alpaca、Vicuna、Mistral。
  • LoRA:使用您自己的数据训练新的 LoRA,动态加载/卸载 LoRA 以进行生成。
  • Transformers 库集成:通过 bitsandbytes 以 4 位或 8 位精度加载模型,将 llama.cpp 与 Transformers 采样器( llamacpp_HF 加载器)结合使用,使用 PyTorch 以 32 位精度进行 CPU 推理。
  • 具有 OpenAI 兼容的 Chat 和 Completions API 服务器 - 请参阅示例。

2. 克隆代码

git clone https://github.com/oobabooga/text-generation-webui.git; 
cd text-generation-webui

3. 创建虚拟环境

(Optional)安装 Conda,

curl -sL "https://repo.anaconda.com/miniconda/Miniconda3-latest-Linux-x86_64.sh" > "Miniconda3.sh"
bash Miniconda3.sh

创建虚拟环境,

conda create -n textgen python=3.11 -y
conda activate textgen

4. 安装 pytorch

pip3 install torch torchvision torchaudio --index-url https://download.pytorch.org/whl/cu121

确认 pytorch 是否安装成功,

python -c "import torch;print(torch.cuda.is_available()):

--- 安装成功输出应该为 True
True

5. 安装 CUDA 运行时库

conda install -y -c "nvidia/label/cuda-12.1.1" cuda-runtime

如果您需要 nvcc 手动编译某些库,请将上面的命令替换为,

conda install -y -c "nvidia/label/cuda-12.1.1" cuda

6. 安装依赖库

pip install -r requirements.txt
pip install transformers_stream_generator
pip install tiktoken

7. 启动 Web UI

python server.py
# python server.py --trust-remote-code --listen

8. 访问 Web UI

使用浏览器打开 http://localhost:7860/?__theme=dark

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

9. OpenAI 兼容 API

pip install -r extensions/openai/requirements.txt

启动,

python server.py --trust-remote-code --api --api-port 8000 --listen

refer:https://github.com/oobabooga/text-generation-webui/wiki/12—OpenAI-API

完结!

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

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

GitOps实践指南:GitOps能为我们带来什么?

Git,作为开发过程中的核心工具,提供了强大的版本控制功能。即便在写代码的时候稍微手抖一下,我们也能通过 Git 的差异对比(diff)轻松追踪到庞大工程中的问题,确保代码的准确与可靠。这种无与伦比的自省能力…

python如何通过日志分析加入黑名单

python通过日志分析加入黑名单 监控nginx日志,若有人攻击,则加入黑名单,操作步骤如下: 1.读取日志文件 2.分隔文件,取出ip 3.将取出的ip放入list,然后判读ip的次数 4.若超过设定的次数,则加…

面向对象(高级)知识点强势总结!!!

文章目录 一、知识点复习1-关键字:static1、知识点2、重点 2-单例模式(或单子模式)1、知识点2、重点 3-理解main()方法1、知识点2、重点 4-类的成员之四:代码块1、知识点2、重点 5-关键字:final1、知识点2、重点 6-关键…

Python 网络编程之搭建简易服务器和客户端

用Python搭建简易的CS架构并通信 文章目录 用Python搭建简易的CS架构并通信前言一、基本结构二、代码编写1.服务器端2.客户端 三、效果展示总结 前言 本文主要是用Python写一个CS架构的东西,包括服务器和客户端。程序运行后在客户端输入消息,服务器端会…

ArcGIS Pro中Conda环境的Scripts文件解读

Scripts中包含的文件如下 1. propy.bat 用于在 ArcGIS Pro 外部运行 Python 脚本(扩展名为 .py 的文件)。使用的conda环境是与ArcGIS pro环境同步。propy.bat原理是代替各自python环境下的python.exe,主要区别是propy.bat使用的是与Pro同的…

YOLOv8算法优化:解决YOLOv8无法打印计算量(GFLOPs)的问题点

💡💡💡本文内容:解决YOLOv8无法打印计算量的问题点 💡💡💡本文提供:1)训练阶段自动打印计算量;2)提供离线打印计算量的代码; 1.计算量介绍 FLOPS:注意S是大写,是 “每秒所执行的浮点运算次数”(floating-point operations per second)的缩写。它常被用…

JavaScript 工具库 | PrefixFree给CSS自动添加浏览器前缀

新版的CSS拥有多个新属性,而标准有没有统一,有的浏览器厂商为了吸引更多的开发者和用户,已经加入了最新的CSS属性支持,这其中包含了很多炫酷的功能,但是我们在使用的时候,不得不在属性前面添加这些浏览器的…

nodejs业务分层如何写后端接口

这里展示的是在node express 项目中的操作 ,数据库使用的是MongoDB,前期关于express和MongoDB的文章可访问: Nodejs后端express框架 server后端接口操作:通过路由匹配——>调用对应的 Controller——>进行 Service调用——&…

基于YOLOv8深度学习的45种交通标志智能检测与识别系统【python源码+Pyqt5界面+数据集+训练代码】目标检测、深度学习实战

《博主简介》 小伙伴们好,我是阿旭。专注于人工智能、AIGC、python、计算机视觉相关分享研究。 ✌更多学习资源,可关注公-仲-hao:【阿旭算法与机器学习】,共同学习交流~ 👍感谢小伙伴们点赞、关注! 《------往期经典推…

TCP的三次握手

TCP 是一种面向连接的单播协议,在发送数据前,通信双方必须在彼此间建立一条连接。所谓的“连接”,其实是客户端和服务器的内存里保存的一份关于对方的信息,如 IP 地址、端口号等。 TCP 可以看成是一种字节流,它…

强化学习与推荐系统结合

强化学习与推荐系统结合,是在智能体的学习过程中,会根据外部反馈信息,改变自身状态,在根据自身状态进行决策,就是行动反馈,状态更新,在行动的循环。 深度强化学习推荐系统框架是基于强化学习的…

【数据结构】顺序表与单链表的增删查改

文章目录 前言顺序表增删查改顺序表的定义与初始化增删查改操作测试代码完整代码 单链表的增删查改数据结构定义动态申请节点单链表的尾插和头插单链表的尾删和头删单链表的查找单链表的插入和删除销毁链表测试代码完整代码 总结 前言 在计算机编程领域,数据结构是…

力扣Hot100——柱状图中最大矩形(单调栈)

题目链接:https://leetcode.cn/problems/largest-rectangle-in-histogram/description/?envTypestudy-plan-v2&envIdtop-100-liked 经典的单调栈问题 思路:考虑单调递增栈,如果说我拿到的数字比栈顶来的要小,那么说明了我前…

geotool解析shp文件org.locationtech.jts.geom.Polygon报错问题

最近在研究利用geotool制作专题图的功能。geotool加载shp文件和sld样式文件,选然后导出图片,发现点没问题,面总会报: 网上搜到类似问题: GIS:shp文件解析相关_org.locationtech.jts.geom.polygon.getexteriorring(-CS…

搭建APP应用程序如何选择服务器

我经常收到许多关于如何搭建 APP 的询问。其中,如何选择服务器是许多初创企业和开发者经常面临的问题。带着这些问题我也通过一些科技手段收集整理了些知识,今天我就和大家来来探讨如何选择服务器,帮助您搭建一个稳定、高效、安全的 APP。 Ap…

javaEE -18(11000字 JavaScript入门 - 3)

一:事件 (高级) 1.1 注册事件(绑定事件) 给元素添加事件,称为注册事件或者绑定事件,注册事件有两种方式:传统方式和方法监听注册方式 传统注册方式 : 利用 on 开头的…

模式识别与机器学习-SVM(线性支持向量机)

线性支持向量机 线性支持向量机间隔距离学习的对偶算法算法:线性可分支持向量机学习算法线性可分支持向量机例子 谨以此博客作为复习期间的记录 线性支持向量机 在以上四条线中,都可以作为分割平面,误差率也都为0。但是那个分割平面效果更好呢&#xff1…

你好!Apache Seata

北京时间 2023 年 10 月 29 日,分布式事务开源项目 Seata 正式通过 Apache 基金会的投票决议,以全票通过的优秀表现正式成为 Apache 孵化器项目! 根据 Apache 基金会邮件列表显示,在包含 13 个约束性投票 (binding votes) 和 6 个…

[MySQL] MySQL 高级(进阶) SQL 语句

一、高效查询方式 1.1 指定指字段进行查看 事先准备好两张表 select 字段1,字段2 from 表名; 1.2 对字段进行去重查看 SELECT DISTINCT "字段" FROM "表名"; 1.3 where条件查询 SELECT "字段" FROM 表名" WHERE "条件…

工具系列:TimeGPT_(4)预测区间数据

文章目录 预测区间历史预测 预测区间 预测区间提供了对预测值的不确定性的度量。在时间序列预测中,预测区间根据您设置的置信水平或不确定性,给出了一个估计的范围,未来观测值将在其中。这种不确定性水平对于做出明智决策、风险评估和规划至…