大模型应用

text-generation-webui

作者头像
项目作者oobabooga

LLM UI with advanced features, easy setup, and multiple backend support.

text-generation-webui 预览图

text-generation-webui 介绍

了解项目的详细信息和使用方法

文本生成网页界面

一个用于大型语言模型的Gradio网页界面。

其目标是成为文本生成的stable-diffusion-webui

特性:

  • 3种界面模式:默认(两列)、笔记本和聊天
  • 多个模型后端:transformers、llama.cpp、ExLlama、ExLlamaV2、AutoGPTQ、GPTQ-for-LLaMa、CTransformers、AutoAWQ
  • 下拉菜单可快速切换不同的模型
  • LoRA:可以动态加载和卸载LoRA,使用QLoRA训练新的LoRA
  • 精确的聊天模式指令模板,包括Llama-2-chat、Alpaca、Vicuna、WizardLM、StableLM等
  • transformers库支持4位、8位和CPU推理
  • 使用transformers samples加载llama.cpp模型(llamacpp_HF加载器)
  • 多模态流水线,包括LLaVA和MiniGPT-4
  • 扩展框架
  • 自定义聊天角色
  • 使用Markdown呈现的输出,支持LaTeX渲染,可以与GALACTICA等项目一起使用
  • 与OpenAI兼容的API服务器,提供聊天和完成两个终点节点--参见示例

这个项目有一个详细的文档,可以在这里查看:

https://github.com/oobabooga/text-generation-webui/wiki

安装方法:

  1. 克隆或下载本仓库。
  2. 运行适合你所用操作系统的 start_linux.sh, start_windows.bat, start_macos.sh, 或 start_wsl.bat 脚本。
  3. 当被询问时,选择你的GPU供应商。
  4. 开始使用!

该脚本会创建一个名为 installer_files 的文件夹,然后使用Miniconda设置一个Conda环境。安装是自包含的:如果需要重新安装,只需删除 installer_files,然后再次运行启动脚本。

你可以使用这些脚本中的一个来启动Web UI:

Linux/WSL:start_linux.sh Windows:start_windows.bat macOS:start_macos.sh WSL:start_wsl.bat

然后打开浏览器,访问:

http://localhost:7860/?__theme=dark

你还可以在启动时使用以下命令行标志:

  • -h--help:显示帮助信息并退出
  • --multi-user:多用户模式。聊天记录不会被保存或自动加载。不建议在公共环境中使用。
  • --character CHARACTER:默认加载聊天模式的角色名称。
  • --model MODEL:默认加载的模型名称。
  • --lora LORA [LORA ...]:要加载的LoRA列表。如果要加载多个LoRA,请使用空格分隔它们的名称。
  • --model-dir MODEL_DIR:带有所有模型的目录的路径。
  • --lora-dir LORA_DIR:带有所有loras的目录的路径。
  • --model-menu:在首次启动Web UI时在终端中显示一个模型菜单。
  • --settings SETTINGS_FILE:从此yaml文件加载默认界面设置。参见settings-template.yaml进行了示例。如果您创建了一个名为settings.yaml的文件,则默认情况下将加载此文件,并无需使用--settings标志。
  • --extensions EXTENSIONS [EXTENSIONS ...]:要加载的扩展列表。如果要加载多个扩展,请使用空格分隔它们的名称。
  • --verbose:将提示显示在终端中。
  • --chat-buttons:在聊天选项卡上显示按钮,而不是悬停菜单。

你也可以使用以下命令行标志来控制不同的功能:

  • --loader LOADER:手动选择模型加载器,否则将自动检测。有效选项有:transformers、exllama_hf、exllamav2_hf、exllama、exllamav2、autogptq、gptq-for-llama、llama.cpp、llamacpp_hf、ctransformers、autoawq。
  • --cpu:使用CPU进行文本生成。警告:使用CPU进行训练的速度极慢。
  • --auto-devices:自动将模型分割到可用的GPU和CPU上。
  • --gpu-memory GPU_MEMORY [GPU_MEMORY ...]:每个GPU分配的最大GPU内存(以GB为单位)。示例:--gpu-memory 10 5 表示两个GPU,--gpu-memory 3500MiB 指定单位为MB。
  • --cpu-memory CPU_MEMORY:为离线权重分配的最大CPU内存(以GB为单位)。
  • --disk:如果模型对GPU和CPU的内存总和太大,则将剩余图层发送到磁盘。
  • --disk-cache-dir DISK_CACHE_DIR:磁盘缓存的保存目录,默认为“cache”。
  • --load-in-8bit:以8位精度加载模型(使用bitsandbytes)。
  • --bf16:使用bfloat16精度加载模型。需要NVIDIA Ampere GPU。
  • --no-cache:在生成文本时将use_cache设置为False。这会略微降低VRAM的使用量,但会降低性能。
  • --xformers:使用xformer的内存高效注意力机制。
  • --sdp-attention:使用PyTorch 2.0的SDP注意力机制。
  • --trust-remote-code:在加载模型时将trust_remote_code设置为True。对某些模型来说是必要的。
  • --use_fast:在加载标记器时将use_fast设置为True
  • --use_flash_attention_2:在加载模型时将use_flash_attention_2设置为True
  • --load-in-4bit:使用4位精度加载模型(使用bitsandbytes)。
Stars
44.1k
Forks
5.7k
Watch
341
版本 v3.6.1
GNU Affero General Public License v3.0
更新于 2025年6月25日
免责声明:本站大资源来自网络收集整理,小部分资源来自原创,如有侵权等,请联系处理。

相关项目

探索更多类似的开源项目