添加链接
link管理
链接快照平台
  • 输入网页链接,自动生成快照
  • 标签化管理网页链接
text-generation-webui
大模型应用
author_avatar text-generation-webui

A Gradio web UI for Large Language Models. Supports transformers, GPTQ, AWQ, EXL2, llama.cpp (GGUF), Llama models.

标签:
GNU Affero General Public License v3.0
36370 stars
4856 forks
322 watching
最近更新时间: 2024/04/27, 23:25
最新版本: snapshot-2024-04-21
点击访问 oobabooga/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

    安装方法:

  • 克隆或 下载 本仓库。
  • 运行适合你所用操作系统的 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
  •