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
安装方法:
- 克隆或下载本仓库。
- 运行适合你所用操作系统的
start_linux.sh
,start_windows.bat
,start_macos.sh
, 或start_wsl.bat
脚本。 - 当被询问时,选择你的GPU供应商。
- 开始使用!
该脚本会创建一个名为 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)。