05可视化一站式部署:Text Generation WebUI 完整搭建与使用
可视化一站式部署:TextGen(原 Text Generation WebUI)完整搭建与使用
系列定位:本地大模型部署系列 · 第5篇 | 阶段二:主流部署方案实战
适用读者:想通过可视化界面调试大模型参数的工程师;需要快速对比不同模型效果的从业者;想用最少代码搭建本地 AI 对话服务的人。
一、前言:这篇解决什么问题?
前两篇我们分别用 Ollama 实现了一键部署,用 llama.cpp 实现了极致轻量——但两者都缺少一个关键能力:可视化。调参数只能改命令行或配置文件,对比不同模型效果需要来回切换,对话调试没有直观的界面。
TextGen(原 Text Generation WebUI,社区常称 oobabooga)就是为此而生——它给本地大模型套上了一层 Gradio 可视化界面,让你像用 ChatGPT 一样调参、对话、对比,所有操作点点鼠标就能完成。
本篇解决的核心问题:从零搭建 TextGen,实现模型可视化加载、参数实时调节、对话调试、批量生成对比、API 服务开启的全流程闭环。
读完本篇你将获得:
| 交付物 | 说明 |
|---|---|
| 完整安装流程 | 一键脚本 + 手动安装,Windows / Linux 双平台 |
| 多格式模型加载对比 | GGUF / GPTQ / AWQ / FP16 加载方式与选择逻辑 |
| 可视化调参实操 | Generation tab 全参数详解,不同场景推荐配置 |
| API 服务对接 | OpenAI 兼容接口开启,Python 调用示例 |
| 踩坑排查指南 | 6 类高频问题 + 一步到位解决方案 |
二、核心原理极简讲解
2.1 TextGen 的定位:模型推理的”瑞士军刀”
TextGen(项目原名 oobabooga,2026年4月正式更名;社区旧称 text-gen-webui 或 ooba)是一个面向本地大模型的可视化推理前端。它的核心价值用一个词概括:全格式通吃 + 可视化调参。
1 | Ollama: 一键部署,但只支持 GGUF,无可视化 |
如果说 Ollama 是”自动挡”,llama.cpp 是”手动挡”,那 TextGen 就是”带全息仪表盘的手自一体”——你既能在可视化界面里点点鼠标调参数,又能切到 API 模式对接自己的应用。
2.2 架构设计:Gradio 前端 + 多后端支持
1 | ┌──────────────────────────────────────────────────────┐ |
关键设计:
| 组件 | 职责 | 说明 |
|---|---|---|
| Gradio 前端 | 可视化交互界面 | 提供 Chat / Default / Notebook 三种对话模式 |
| 统一调度层 | 模型加载/卸载/推理管理 | 根据模型格式自动选择后端,用户也可手动指定 |
| Transformers 后端 | HuggingFace 原生推理 | 支持 FP16/BF16/GPTQ/AWQ,最通用的后端 |
| llama.cpp 后端 | GGUF 格式推理 | 调用 llama.cpp 的 Python 绑定,CPU/GPU 混合推理 |
| ExLlamaV2 后端 | EXL2 格式推理 | 针对 RTX 30/40 系列优化的极致速度后端 |
| AutoGPTQ 后端 | GPTQ 格式推理 | 4-bit 量化专用后端,显存效率高 |
2.3 为什么它适合调试和测试
三个核心能力让 TextGen 成为调试利器:
- 可视化参数调节:temperature、top_p、top_k、repetition_penalty 等参数全部有滑块,拖一下就能看到效果变化,不需要改配置文件重启服务
- 实时对比测试:同一个 prompt 可以快速切换不同模型或不同参数反复生成,对比输出差异
- 多种加载方式:GGUF、GPTQ、AWQ、FP16 一站式支持,想试哪个格式直接加载,不用换工具
工程决策视角:TextGen 的价值不在于”生产级部署”,而在于”快速验证”——当你需要评估一个模型在特定参数下的效果、对比不同量化格式的精度损失、调试 prompt 模板时,它是最高效的工具。验证完成后,再切到 Ollama 或 vLLM 做生产部署。
三、环境 & 前置依赖
3.1 系统要求
| 项目 | 最低要求 | 推荐配置 |
|---|---|---|
| 操作系统 | Windows 10 / Ubuntu 20.04 | Windows 11 / Ubuntu 22.04 |
| Python | 3.10 | 3.10 或 3.11(3.12 部分依赖兼容性欠佳) |
| GPU | 无独显可用(CPU推理慢) | NVIDIA RTX 3060 12GB+ |
| 系统内存 | 8GB | 16GB+ |
| 硬盘空间 | 15GB(含基础依赖) | 50GB+ SSD(模型文件占大头) |
| NVIDIA Driver | ≥ 450.x | ≥ 525.x(CUDA 12.x) |
| CUDA Toolkit | 11.8 / 12.x | 12.x(与 PyTorch 版本匹配) |
3.2 硬件与模型对应速查
| 模型规模 | 量化格式 | 文件大小 | 最低显存/内存 | 推荐显卡 |
|---|---|---|---|---|
| 7B | GGUF Q4_K_M | ~4.7GB | 8GB | RTX 3060 12G / RTX 4060 8G |
| 7B | GPTQ-Int4 | ~4.0GB | 6GB | RTX 3060 12G |
| 7B | AWQ-Int4 | ~4.0GB | 6GB | RTX 3060 12G |
| 7B | FP16 | ~14.5GB | 16GB | RTX 4080 16G |
| 13B | GGUF Q4_K_M | ~8.7GB | 12GB | RTX 3060 12G / RTX 4070 12G |
| 70B | GGUF Q4_K_M | ~40GB | 48GB | A100 / 多卡 |
3.3 项目更名提醒
⚠️ 重要:该项目于 2026年4月 正式由
text-generation-webui更名为 TextGen(仓库名简化为textgen)。旧仓库oobabooga/text-generation-webui仍保留但已停止更新,请使用新仓库oobabooga/textgen。本文所有命令和路径均已更新为新名称。如果你在网上看到旧名称的教程,对应关系如下:
旧名称 新名称 Text Generation WebUI TextGen text-generation-webui(仓库/目录名) textgen oobabooga/text-generation-webui(GitHub) oobabooga/textgen
3.4 与其他框架环境的兼容说明
TextGen 基于 Python + PyTorch,与其他 Python 生态框架(Transformers、vLLM)共享底层依赖。建议使用独立 conda 环境,避免与 Ollama 等非 Python 工具冲突:
1 | # Ollama:独立二进制,不依赖 Python,不会冲突 |
四、Step-by-Step 实操流程
4.1 获取源码与一键安装脚本
Windows
1 | # 克隆仓库(2026年4月后请使用新仓库地址) |
Linux
1 | # 克隆仓库(2026年4月后请使用新仓库地址) |
国内访问 GitHub 慢?可使用镜像加速:
1 git clone https://mirror.ghproxy.com/https://github.com/oobabooga/textgen.git
一键脚本会自动完成:创建 conda 环境 → 安装 PyTorch → 安装项目依赖 → 拉取扩展插件。首次安装约需 10-20 分钟,取决于网速。
4.2 手动安装方式(适合需要自定义的场景)
一键脚本方便但不够灵活。如果你需要指定 CUDA 版本、自定义 PyTorch 版本或排查安装问题,推荐手动安装:
1 | # 步骤1:创建 conda 环境 |
工程决策:手动安装的核心价值在于可控性。一键脚本安装的 PyTorch 可能与你的 CUDA 版本不匹配,手动安装可以精确指定
cu121/cu118,避免运行时报 CUDA 版本不匹配的错误。
4.3 首次启动与访问
1 | # 方式1:使用启动脚本(推荐,包含常用参数) |
启动成功后,终端会输出类似信息:
1 | Running on local URL: http://127.0.0.1:7860 |
浏览器打开 http://127.0.0.1:7860 即可访问 WebUI 界面。
界面概览:

| 标签页 | 功能 | 说明 |
|---|---|---|
| Chat | 对话模式 | 最常用,类似 ChatGPT 的多轮对话界面 |
| Default | 补全模式 | 单轮文本补全,适合调试 prompt 模板 |
| Notebook | 笔记本模式 | 左右分栏,左边输入右边输出,适合长文本编辑 |
| Parameters | 参数配置 | Generation / Model / Training 等参数面板 |
| Model | 模型管理 | 下载、加载、卸载模型 |
4.4 模型下载与加载
模型下载
TextGen 支持直接从 HuggingFace 下载模型:
- 点击界面顶部 Model 标签页
- 在 Download model 区域输入 HuggingFace 仓库 ID(如
Qwen/Qwen2.5-7B-Instruct-GPTQ-Int4) - 点击 Download 按钮,等待下载完成
也可以手动将模型文件放到 textgen/models/ 目录下。
不同格式加载方式对比
| 模型格式 | 后端加载器 | 推荐场景 | 加载参数要点 |
|---|---|---|---|
| GGUF | llama.cpp | CPU 推理、低显存 GPU 混合推理 | 设置 n-gpu-layers 控制 GPU offload |
| GPTQ | AutoGPTQ 或 Transformers | 4-bit 量化 GPU 推理,显存效率高 | 勾选 load-in-4bit,需 auto-gptq 库 |
| AWQ | Transformers | 4-bit 量化 GPU 推理,速度优于 GPTQ | 勾选 load-in-4bit,需 autoawq 库 |
| EXL2 | ExLlamaV2 | RTX 30/40 系列极致速度 | 需要 exllamav2 库,仅支持 Ampere+ 架构 |
| FP16/BF16 | Transformers | 高精度推理,显存充足时 | 无需额外量化参数,显存需求最大 |
模型加载操作步骤
- 点击 Model 标签页
- 在左侧 Model 下拉框中选择已下载的模型
- 在 Loader 下拉框中选择加载器(通常自动检测,也可手动指定):
- GGUF 文件 → 选择
llama.cpp - GPTQ 文件 → 选择
AutoGPTQ或Transformers - AWQ 文件 → 选择
Transformers - EXL2 文件 → 选择
ExLlamaV2 - FP16 文件 → 选择
Transformers
- GGUF 文件 → 选择
- 根据需要在下方设置加载参数(如
n-gpu-layers、load-in-4bit等) - 点击 Load 按钮加载模型
加载器选择逻辑:如果不确定选哪个,优先用
Transformers——它是最通用的后端,支持最多格式。只有当你明确需要 llama.cpp 的 CPU/GPU 混合推理能力或 ExLlamaV2 的极致速度时,才需要切换到专用后端。
4.5 对话界面使用
模型加载成功后,点击顶部 Chat 标签进入对话界面。
Chat 模式
Chat 模式提供类似 ChatGPT 的多轮对话体验:
- 输入框:底部文本框输入消息,按回车或点击 Send 发送
- 对话历史:中间区域展示完整的多轮对话记录
- 角色切换:左侧可设置 System prompt、User name、Bot name
- 清除对话:点击左侧 Clear history 清空当前对话
- 保存/加载对话:左侧 Save history / Load history 管理对话记录
Instruct 模式
Instruct 模式适合单轮指令式提问(不需要多轮上下文):
- 在 Chat 界面左侧,将 Mode 从
chat切换为instruct - Instruct 模式下,每条消息独立,不会保留多轮上下文
- 适合测试 prompt 模板效果、快速验证单轮问答质量
对话模板配置
不同模型使用不同的对话格式(Chat Template)。WebUI 支持多种内置模板:
- ChatML(
<|im_start|>system\n...<|im_end|>):Qwen2.5、Yi 等模型使用 - Llama3(
<|begin_of_text|><|start_header_id|>...):Llama3 系列使用 - Alpaca(
### Instruction:\n...### Response:\n):较早的指令微调模型 - Vicuna(
USER: ... ASSISTANT:):Vicuna 系列模型
加载模型时 WebUI 通常会自动识别对话模板。如果对话输出格式异常(如出现特殊标记符号),说明模板可能不匹配,需要在 Parameters → Chat 中手动选择正确的模板。
4.6 推理参数可视化调节
点击顶部 Parameters 标签,然后选择 Generation 子标签。这是 TextGen 最核心的功能之一——所有推理参数都有可视化滑块,拖动即可实时生效。
Generation tab 核心参数:
| 参数 | 默认值 | 作用 | 调参建议 |
|---|---|---|---|
max_new_tokens |
512 | 最大生成 token 数 | 短回答 256,长文章 1024-2048 |
temperature |
0.7 | 控制随机性 | 事实性任务 0.1-0.3;创意写作 0.7-1.0 |
top_p |
0.9 | 核采样阈值 | 0.85-0.95 通用;精确回答降至 0.5 |
top_k |
40 | 最高概率 K 个 token | 20-60 通用;增大更随机 |
repetition_penalty |
1.15 | 重复惩罚 | 1.1-1.3,模型重复时调高 |
min_p |
0.05 | 最小概率阈值 | 0.01-0.1,替代 top_k 的现代方案 |
typical_p |
1.0 | Typical Sampling | 0.5-0.9,适合长文本生成 |
mirostat_mode |
0 | Mirostat 采样模式 | 0=关闭;2=Mirostat 2.0(自适应) |
mirostat_tau |
5.0 | Mirostat 目标熵 | 3.0-8.0,越低越确定 |
mirostat_eta |
0.1 | Mirostat 学习率 | 0.05-0.3,控制调整速度 |
encoder_repetition_penalty |
1.0 | 编码器重复惩罚 | 1.0-1.5,增强 prompt 关注度 |
no_repeat_ngram_size |
0 | 禁止重复 n-gram | 0=关闭;设 3-5 避免短语重复 |
seed |
-1 | 随机种子 | -1=随机;固定值可复现输出 |
参数调优场景速查:
1 | 精确问答/RAG/知识提取: |
核心认知:与 Ollama 和 llama.cpp 不同,TextGen 的参数调节是实时生效的——你不需要重启服务,调完滑块立刻在对话中看到效果。这让它成为参数调优的最佳工具:先用 TextGen 找到最佳参数组合,再把参数固化到 Ollama 的 Modelfile 或 llama.cpp 的启动命令中。
4.7 批量生成与对比测试
TextGen 提供两种批量生成方式:
方式1:同一参数多次生成
在 Chat 界面发送消息后,点击生成结果下方的 Continue 或 Regenerate 按钮,可以基于同一输入重新生成,对比不同输出。
方式2:不同参数对比测试
- 在 Parameters → Generation 中设置一组参数(如 temperature=0.3)
- 在 Chat 界面发送 prompt,记录输出
- 调整参数(如改为 temperature=0.8)
- 点击 Regenerate,对比两次输出差异
- 重复此过程,找到最佳参数组合
方式3:不同模型对比
- 在 Model 标签中加载模型 A
- 在 Chat 界面发送 prompt,保存对话
- 切换加载模型 B(Unload 当前模型 → Load 新模型)
- 发送相同 prompt,对比两个模型的输出质量
4.8 开启 API 服务
TextGen 支持 OpenAI 兼容的 API 接口,可以在启动时或运行时开启。
启动时开启 API
1 | # 启动时添加 --api 参数 |
运行时开启 API
在 WebUI 界面中,点击 Parameters → API 标签,勾选 Enable API 即可。
API 调用示例
API 默认在 http://127.0.0.1:5000 提供服务(注意:API 端口与 WebUI 端口不同)。
健康检查:
1 | curl http://127.0.0.1:5000/v1/models |
OpenAI 兼容 Chat 接口:
1 | curl http://127.0.0.1:5000/v1/chat/completions \ |
Python 调用(OpenAI SDK):
1 | from openai import OpenAI |
工程决策:API 端口与 WebUI 端口分离是好的设计——WebUI 端口(7860)服务浏览器访问,API 端口(5000)服务程序调用,互不干扰。如果你的应用已经对接了 OpenAI API,只需把
base_url改为 TextGen 的 API 地址、把model改为本地模型名,即可零改造切换到本地推理。
4.9 扩展功能简介
TextGen 丰富的扩展(Extensions)生态是其差异化优势:
| 扩展 | 功能 | 启用方式 |
|---|---|---|
| openai | OpenAI 兼容 API 服务 | 启动参数 --api 或界面勾选 |
| multimodal | 多模态(图片输入) | 安装 multimodal 扩展,支持 LLaVA 等视觉模型 |
| training | LoRA 微调训练 | 界面 Training 标签页,支持 QLoRA 微调 |
| character | 角色扮演 | 界面 Chat 左侧 Character 区域,加载角色卡 |
| superbooga | 超级文档检索 | ChromaDB 向量检索,简易 RAG 功能 |
| silero_tts | 语音合成 | 文字转语音输出 |
| whisper_stt | 语音输入 | 语音转文字输入 |
| gallery | 模型/角色画廊 | 浏览和下载社区角色卡 |
扩展安装在 textgen/extensions/ 目录下,大部分随主仓库一起下载,部分需要在界面中手动安装。
五、关键参数详解
5.1 模型加载参数
| 参数 | 适用后端 | 作用 | 推荐设置 |
|---|---|---|---|
n-gpu-layers |
llama.cpp | 卸载到 GPU 的层数,0=纯 CPU,-1=全部 GPU | 有 GPU 设 -1;显存不足时减小(如 20) |
load-in-8bit |
Transformers | 8-bit 量化加载(需 bitsandbytes) | 显存紧张时启用,质量损失极小 |
load-in-4bit |
Transformers | 4-bit 量化加载(需 bitsandbytes) | 显存非常紧张时启用,有一定质量损失 |
use_flash_attention_2 |
Transformers | 启用 Flash Attention 2 | RTX 30/40 系列推荐启用,减少显存 + 加速 |
compress_pos_emb |
llama.cpp | 位置嵌入压缩(扩展上下文) | 需要超长上下文时设置(如 4.0 表示扩展 4 倍) |
alpha_value |
llama.cpp | RoPE 频率缩放因子 | 配合 compress_pos_emb 使用 |
gpu-split |
ExLlamaV2 | 多卡显存分配 | 多 GPU 时指定每张卡分配的显存比例 |
cfg-cache |
所有 | CFG 引导生成的 KV Cache | 使用 CFG 采样时需启用 |
5.2 生成参数深度解读
temperature:控制采样分布的”锐度”。值越低,概率最高的 token 被选中的概率越大,输出越确定;值越高,低概率 token 有更多机会被选中,输出越多样。
1 | temperature = 0.1:几乎总是选概率最高的 token → 输出稳定、可预测 |
top_p(核采样):不是从所有 token 中采样,而是只从概率累积达到 top_p 的那部分 token 中采样。top_p=0.9 意味着只考虑概率累积前 90% 的 token,排除掉尾部 10% 的低概率 token。
top_k:直接限制候选 token 数量为概率最高的 K 个。与 top_p 互为补充——top_k 控制候选数量,top_p 控制候选概率范围。两者同时设置时取交集。
repetition_penalty:对已经出现过的 token 施加惩罚,降低其再次出现的概率。值 > 1.0 启用惩罚,值越大惩罚越强。
min_p:设置 token 概率的最低阈值。比 top_k 更智能——它会动态过滤掉概率低于最高概率 token 的 min_p 倍的 token。例如 min_p=0.05,如果最高概率 token 的概率是 0.8,则过滤掉概率低于 0.04 的 token。
5.3 采样策略详解
| 策略 | 原理 | 适用场景 |
|---|---|---|
| Greedy | 每步选概率最高的 token | 确定性任务、翻译、数学 |
| Top-K/Top-P | 限制候选范围后随机采样 | 通用场景,最常用的策略 |
| Mirostat | 自适应调节温度,维持目标”惊奇度” | 长文本生成,避免重复和退化 |
| Typical P | 基于信息熵选择”典型”的 token | 创意写作,避免无聊又不失控 |
| Min P | 动态概率阈值过滤 | 通用替代 top_k,效果更稳定 |
Mirostat 使用建议:
1 | 启用 Mirostat 2.0: |
5.4 模型加载器选择逻辑
1 | 你有 GGUF 模型? |
六、踩坑记录 & 问题解决
坑 1:一键脚本安装失败
症状:start_windows.bat 或 start_linux.sh 执行中途报错退出。
常见原因与解决:
| 原因 | 解决方案 |
|---|---|
| conda 未安装或不在 PATH 中 | 先安装 Miniconda:winget install Anaconda.Miniconda(Windows)/ bash Miniconda3-latest-Linux-x86_64.sh(Linux) |
| 网络问题导致 pip 安装超时 | 设置 pip 镜像:pip config set global.index-url https://pypi.tuna.tsinghua.edu.cn/simple |
| Git 未安装 | 安装 Git:winget install Git.Git(Windows)/ sudo apt install git(Linux) |
| 权限不足(Linux) | 不要用 sudo 运行脚本,检查目录写权限 |
一键脚本失败时,改用手动安装(4.2 节),每一步都能看到具体报错,更容易排查。
坑 2:CUDA 版本不匹配导致加载失败
症状:模型加载时报 CUDA version mismatch 或 RuntimeError: CUDA error。
排查步骤:
1 | # 步骤1:检查系统 CUDA 驱动版本 |
关键认知:
nvidia-smi显示的 CUDA 版本是驱动支持的最高版本,PyTorch 的 CUDA 版本是实际编译版本。PyTorch 的 CUDA 版本 ≤ 驱动支持的版本即可,不必完全一致。
坑 3:模型加载 OOM
症状:加载模型时报 CUDA out of memory 或 torch.cuda.OutOfMemoryError。
按优先级依次尝试:
| 方案 | 操作 | 效果 |
|---|---|---|
| 减小上下文长度 | Parameters → Generation → truncation_length 设为 2048 或 1024 |
KV Cache 显存占用减半 |
| 启用 8-bit/4-bit 加载 | Model 加载时勾选 load-in-8bit 或 load-in-4bit |
模型权重显存占用减半或更多 |
| 减少 GPU offload 层数 | llama.cpp 后端设置 n-gpu-layers 为 20 或更低 |
部分层走 CPU,降低显存占用 |
| 换用量化版本 | 加载 GPTQ-Int4 或 GGUF Q4_K_M 版本 | 文件更小,显存需求更低 |
| 启用 Flash Attention | 勾选 use_flash_attention_2 |
减少注意力计算的显存占用 |
| 换更小模型 | 从 13B 换到 7B,从 7B 换到 3B | 最根本的解决方案 |
坑 4:Gradio 界面无法访问
症状:启动成功但浏览器打不开页面。
排查步骤:
1 | # 1. 确认服务正在运行 |
坑 5:Windows 下路径过长问题
症状:模型文件路径超过 Windows 260 字符限制,导致文件读取失败。
解决方案:
1 | # 方案1:将模型目录设为短路径 |
坑 6:中文对话乱码修复
症状:中文对话输出为乱码、方块或问号。
解决方案:
1 | # Windows PowerShell:设置终端编码 |
如果界面显示乱码但模型输出内容正确,通常是浏览器编码问题,刷新页面即可。如果模型输出本身就是乱码,检查对话模板(Chat Template)是否正确匹配模型。
七、场景适配 & 优劣分析
7.1 适合场景
| 场景 | 说明 | 推荐配置 |
|---|---|---|
| 参数调试 | 可视化滑块实时调节,快速找到最佳参数组合 | 7B Q4_K_M + Generation tab |
| 模型对比测试 | 快速切换不同模型/量化格式,对比输出质量 | 多格式模型 + Chat 模式 |
| 演示展示 | 漂亮的 Web 界面,适合给非技术人员演示 AI 能力 | --listen 局域网访问 |
| LoRA 测试 | 内置训练扩展,轻量微调后直接测试效果 | Training tab + QLoRA |
| 个人使用 | 本地对话,隐私安全,支持角色扮演 | Chat 模式 + Character 扩展 |
| Prompt 工程 | Instruct 模式调试 prompt 模板,实时看效果 | Default/Instruct 模式 |
7.2 不适合场景
| 场景 | 原因 | 更好的选择 |
|---|---|---|
| 高并发 API 服务 | Gradio + 单进程架构,并发能力有限 | vLLM(PagedAttention,吞吐量 20x+) |
| 生产环境部署 | 缺乏监控、限流、鉴权等生产级能力 | vLLM + FastAPI 网关 |
| 无 GUI 的服务器 | Gradio 前端需要浏览器访问 | Ollama / llama.cpp server |
| 极致推理性能 | Python + Gradio 有额外开销 | llama.cpp 直接编译 / vLLM |
| 大规模集群部署 | 单机架构,不支持分布式 | vLLM + Ray |
7.3 与 Ollama / vLLM 的定位区分
1 | 易用性: Ollama >>> TextGen > vLLM > llama.cpp |
一句话定位:
- TextGen = 可视化调试,参数调优首选
- Ollama = 快速上手,开发调试首选
- llama.cpp = 极致控制,低配环境之王
- vLLM = 生产部署,高并发性能天花板
工程决策:完整的本地部署工作流应该是——先用 TextGen 可视化调试参数和对比模型 → 确定最优配置后用 Ollama 快速封装日常使用 → 生产场景切 vLLM。三个工具各司其职,按场景选择。
八、本篇小结
核心知识点复盘
- TextGen 定位:模型推理的”瑞士军刀”,核心价值是可视化调参 + 多格式支持
- 架构设计:Gradio 前端 + 多后端(Transformers/llama.cpp/ExLlamaV2/AutoGPTQ),按模型格式自动选后端
- 安装方式:一键脚本省心但可控性差,手动安装灵活但步骤多,按需选择
- 模型格式选择:GGUF 选 llama.cpp 后端,GPTQ 选 AutoGPTQ,AWQ/FP16 选 Transformers,EXL2 选 ExLlamaV2
- 参数调优流程:在 TextGen 可视化调参 → 确定最优参数 → 固化到 Ollama Modelfile 或 llama.cpp 命令
- API 服务:
--api参数开启 OpenAI 兼容接口,端口 5000,Python/requests/curl 均可调用 - 踩坑核心:CUDA 版本匹配、OOM 降级策略、路径/编码问题是三大高频坑
常用操作速查表
1 | # ===== 安装 ===== |
1 | # Python 调用 |
关键参数速查
| 场景 | temperature | top_p | repetition_penalty | max_new_tokens |
|---|---|---|---|---|
| 精确问答 | 0.1-0.3 | 0.5-0.85 | 1.15 | 256 |
| 创意写作 | 0.7-1.0 | 0.9-0.95 | 1.1 | 1024 |
| 代码生成 | 0.2-0.4 | 0.85 | 1.2 | 512 |
| 长文档总结 | 0.3 | 0.9 | 1.15 | 512 |
本文为「本地大模型部署系列」第5篇,完整系列持续更新中。