TextGen 启用 embedding 并安装 all-mpnet-base-v2 模型教程
1. 引言TextGen 是一个功能强大的文本生成与处理框架支持通过 embedding 模型将文本转换为向量表示从而进行语义搜索、相似度计算等任务。all-mpnet-base-v2 是 Sentence‑Transformers 提供的一个高性能预训练模型在多种语义相似度任务上表现优异。本文将详细介绍如何在 TextGen 中启用 embedding 功能并安装、配置 all-mpnet-base-v2 模型。2. 环境准备在开始之前请确保你的系统已安装以下基础环境Python 3.8 或更高版本pip 包管理工具可用的网络连接用于下载模型建议使用虚拟环境如 venv 或 conda隔离项目依赖# 创建并激活虚拟环境以 venv 为例 python -m venv textgen-env source textgen-env/bin/activate # Linux/macOS # 或 textgen-env\Scripts\activate # Windows3. 安装 TextGen 与相关依赖首先安装 TextGen参考前一篇文章 TextGen for Local LLM-CSDN博客如果你已经安装了 TextGen可以通过以下命令安装 embedding 扩展pip install sentence-transformers torch transformers --index-url your proxy url # https://nexusoss.xxx.com/repository/pypi-proxy/simple注意embedding 功能依赖于sentence-transformers和torch请确保它们已正确安装。4. 下载并安装 all-mpnet-base-v2 模型all-mpnet-base-v2 模型可以通过sentence-transformers直接加载或从 Model Scope 下载模型文件我使用了 git clone 的方式下载git clone https://www.modelscope.cn/sentence-transformers/all-mpnet-base-v2.git5. 在 TextGen 中启用 embeddingTextGen 提供了统一的接口(OPENEDAI_EMBEDDING_MODEL 和 OPENEDAI_EMBEDDING_DEVICE)来使用 embedding 模型我在TextGen根目录创建 start.sh文件并设置此文件可执行权限在文件中设置参数(我的模型放在 textgen-4.9/user_data/models/embedding/ 下)start.shexport OPENEDAI_EMBEDDING_MODEL/home/ai/textgen-4.9/user_data/models/embedding/all-mpnet-base-v2 export OPENEDAI_EMBEDDING_DEVICEauto # cpu or cuda or auto echo EMBEDDING_MODEL: $OPENEDAI_EMBEDDING_MODEL echo EMBEDDING_DEVICE: $OPENEDAI_EMBEDDING_DEVICE ## 啟動參數 ## --model Qwen3.5-4B-Q4_K_M.gguf ## --extensions rag #有問題chainlit-ui 呼叫 TextGen API 會出現 500 Internal Server Error原因不明暫時先不使用 rag 擴充功能 #./textgen --no-electron --listen --listen-host 0.0.0.0 --model Qwen3.5-4B-Q4_K_M.gguf nohup ./textgen --no-electron --listen --listen-host 0.0.0.0 --model Qwen3.5-4B-Q4_K_M.gguf textgen-$(date %Y%m%d).log 21 echo $! # show PID以下是一个完整的示例展示如何初始化 TextGen 并启用 all-mpnet-base-v2 进行文本向量化user_data/extensions/rag/0.embedding_model_test.pyimport os import numpy as np import torch from sentence_transformers import SentenceTransformer # 修改为你的本地模型目录 MODEL_DIR os.environ.get(MODEL_DIR, /home/ai/textgen-4.9/user_data/models/embedding/all-mpnet-base-v2) # 加载模型从本地文件夹 model SentenceTransformer(MODEL_DIR) # 如有可用 GPU可移动模型到 GPU可选 if torch.cuda.is_available(): model model.to(cuda) sentences [ 这是第一个句子。, 这是第二个句子。, 这是第三条文本用来演示相似度。 ] # 编码为 numpy 向量 embeddings model.encode(sentences, convert_to_tensorFalse, show_progress_barFalse) emb np.array(embeddings, dtypenp.float32) # 计算余弦相似度小数据集示例 emb_norm emb / np.linalg.norm(emb, axis1, keepdimsTrue) sims emb_norm emb_norm.T print(sentences:, sentences) print(embeddings shape:, emb.shape) print(cosine similarity matrix:, sims)执行上面的程式python user_data/extensions/rag/0.embedding_model_test.py运行结果Loading weights: 100%|█████████████████████████████████████████████████████████████████████████████████████████████| 199/199 [00:0000:00, 4662.79it/s]sentences: [这是第一个句子。, 这是第二个句子。, 这是第三条文本用来演示相似度。]embeddings shape: (3, 768)cosine similarity matrix: [[1.0000002 0.88622326 0.6373426 ][0.88622326 1.0000002 0.6343377 ][0.6373426 0.6343377 0.9999999 ]]6. 配置与优化建议设备选择默认情况下模型会在 CPU 上运行。如果你有 GPU可以通过model SentenceTransformer(all-mpnet-base-v2, devicecuda)加速。export OPENEDAI_EMBEDDING_DEVICEcuda # cpu or cuda or auto批量处理对大量文本进行编码时建议使用model.encode(sentences, batch_size32)以提高效率。缓存机制TextGen 支持对已计算的向量进行缓存避免重复计算。可以在初始化时设置use_cacheTrue。模型版本确保使用的sentence-transformers版本与模型兼容推荐使用最新稳定版。7. 常见问题排查下载失败检查网络连接或尝试手动下载模型并指定本地路径。内存不足all-mpnet-base-v2 加载后约占用 1.2 GB 内存。如果内存紧张可考虑使用更小的模型如 all-MiniLM-L6-v2。版本冲突如果遇到sentence-transformers与torch版本不兼容请根据官方文档调整版本。编码速度慢启用 GPU 或调整batch_size可显著提升速度。8. 总结本文介绍了在 TextGen 中启用 embedding 功能并安装 all-mpnet-base-v2 模型的完整步骤。通过上述配置你可以轻松将文本转换为高质量的向量表示并应用于语义搜索、聚类、推荐等场景。如果你在实践过程中遇到问题欢迎在 TextGen 官方社区或 GitHub 仓库中反馈。

相关新闻

数学公式OCR实战:从图片到LaTeX的高效转换方案

数学公式OCR实战:从图片到LaTeX的高效转换方案

数学公式OCR实战:从图片到LaTeX的高效转换方案 【免费下载链接】texify Math OCR model that outputs LaTeX and markdown 项目地址: https://gitcode.com/gh_mirrors/te/texify 在科研写作和学术研究中,我们常常面临一个痛点:如何将纸…

2026/7/21 18:01:59 阅读更多 →
Optimize-Offline组件集成:如何在Windows 10镜像中添加DaRT 10、Windows Store和Microsoft Edge

Optimize-Offline组件集成:如何在Windows 10镜像中添加DaRT 10、Windows Store和Microsoft Edge

Optimize-Offline组件集成:如何在Windows 10镜像中添加DaRT 10、Windows Store和Microsoft Edge 【免费下载链接】Optimize-Offline Optimize-Offline is a Windows 10 offline image optimization framework. 项目地址: https://gitcode.com/gh_mirrors/op/Optim…

2026/7/23 23:06:29 阅读更多 →
Android应用冻结革命:雹(Hail)如何重塑你的设备控制权

Android应用冻结革命:雹(Hail)如何重塑你的设备控制权

Android应用冻结革命:雹(Hail)如何重塑你的设备控制权 【免费下载链接】Hail Disable / Hide / Suspend / Uninstall Android apps without root. 项目地址: https://gitcode.com/gh_mirrors/ha/Hail 雹(Hail)是一款创新的Android应用管理工具,通…

2026/7/23 16:33:28 阅读更多 →

最新新闻

新媒体小编必看:2026国内免费PDF转图片实测,排版再不乱

新媒体小编必看:2026国内免费PDF转图片实测,排版再不乱

一、背景 做新媒体的朋友应该都遇到过这个场景:客户或设计部发来一份PDF排版好的图文内容,要发到公众号、小红书或官网。但平台编辑器不支持PDF直接导入,只能手动一页页截图复制。排版乱了不说,效率还极低。 我上一份工作就常被这…

2026/7/24 11:34:52 阅读更多 →
Kubernetes StatefulSet 实战指南:管理有状态应用

Kubernetes StatefulSet 实战指南:管理有状态应用

1. StatefulSet 基础概念解析StatefulSet 是 Kubernetes 中用于管理有状态应用的核心工作负载控制器。与 Deployment 不同,StatefulSet 为每个 Pod 提供稳定的网络标识和持久化存储,特别适合需要持久化数据、有序部署和稳定网络标识的应用场景。1.1 为什…

2026/7/24 11:34:52 阅读更多 →
OpenClaw高效工作流优化与Skills配置指南

OpenClaw高效工作流优化与Skills配置指南

1. OpenClaw高效工作流优化指南 OpenClaw作为一款新兴的AI辅助工具,正在改变现代职场人的工作方式。不同于简单的自动化工具,它通过skills机制实现了深度的工作流程定制。今天我要分享的是6个经过实战验证的高效skills配置方案,这些方案能帮助…

2026/7/24 11:34:52 阅读更多 →
从TMS37122/127迁移到TMS37126D3:硬件、配置与调试全指南

从TMS37122/127迁移到TMS37126D3:硬件、配置与调试全指南

1. 项目概述与核心价值 在汽车无钥匙进入与启动(PEPS)系统,以及一些需要超低功耗待机的工业无线控制场景里,唤醒接收器(Wake-up Receiver)是个不起眼但至关重要的角色。你可以把它想象成一个极度警觉的“哨…

2026/7/24 11:34:52 阅读更多 →
Linux系统编程实战:从文件IO到多线程避坑指南

Linux系统编程实战:从文件IO到多线程避坑指南

1. 项目背景与定位作为一个在Linux环境下摸爬滚打多年的老运维,我深知新手在学习Linux程序开发时最容易遇到的困境——那些看似简单的概念(比如文件描述符、进程调度、内存映射)在实际操作中总会以各种意想不到的方式"教做人"。这个…

2026/7/24 11:34:52 阅读更多 →
C++17智能指针数组支持详解:从原理到实践

C++17智能指针数组支持详解:从原理到实践

1. 项目概述&#xff1a;为什么C17要增强智能指针的数组支持&#xff1f;如果你写过几年C&#xff0c;大概率在某个深夜对着std::shared_ptr<int[]>或者std::make_shared<int[]>的编译错误抓过头发。在C17之前&#xff0c;标准库的std::shared_ptr和std::weak_ptr对…

2026/7/24 11:33:52 阅读更多 →

日新闻

用Highcharts 创建可拖拽三维散点立方体3D图表

用Highcharts 创建可拖拽三维散点立方体3D图表

该案例基于Highcharts scatter3d 三维散点图实现空间立方体散点可视化&#xff0c;核心特色&#xff1a;三维 X/Y/Z 三轴空间&#xff0c;所有散点分布在 0~10 立方体空间内&#xff1b;散点使用径向渐变实现立体 3D 圆球质感&#xff1b;支持鼠标 / 触屏拖拽画布&#xff0c;…

2026/7/24 0:00:29 阅读更多 →
AppCertDlls:进程创建路径上的 DLL 入口

AppCertDlls:进程创建路径上的 DLL 入口

AppCertDlls&#xff1a;进程创建路径上的 DLL 入口 AppCertDlls 位于 HKLM\System\CurrentControlSet\Control\Session Manager\AppCertDlls。本文的程序功能是只读列出这个键在 64 位和 32 位注册表视图中的全部值&#xff0c;并显示每条值的来源、名称、类型和可安全显示的数…

2026/7/24 0:00:29 阅读更多 →
我的编程之路:第一篇博客

我的编程之路:第一篇博客

大家好&#xff0c;我是一名编程初学者&#xff0c;同时这也是我编程学习之路上的第一篇博客。在这里&#xff0c;我想要向大家介绍我的一些想法和规划。a.自我介绍我是一个刚刚接触编程的新手&#xff0c;目前在学习c语言&#xff0c;我对编程世界充满了强烈的好奇。当然&…

2026/7/24 0:00:29 阅读更多 →

周新闻

Go语言静态资源打包方案对比与实践指南

Go语言静态资源打包方案对比与实践指南

1. 项目背景与核心需求在Go语言开发中&#xff0c;我们经常需要处理静态资源文件的打包问题。无论是Web应用的模板文件、前端资源&#xff0c;还是配置文件、证书等&#xff0c;都需要随程序一起分发。传统做法是将这些文件与编译后的二进制文件放在同一目录下&#xff0c;但这…

2026/7/24 3:59:20 阅读更多 →
Go语言实现高性能LDAP认证服务的架构与实践

Go语言实现高性能LDAP认证服务的架构与实践

1. 项目背景与核心价值LDAP&#xff08;轻量级目录访问协议&#xff09;作为企业级身份认证的黄金标准&#xff0c;已经服务了超过80%的财富500强公司。我在金融科技领域实施统一认证体系时&#xff0c;发现传统Java方案存在启动慢、内存占用高等痛点。而Go语言凭借其协程并发模…

2026/7/24 1:23:39 阅读更多 →
【AI面试官实战指南】:用ChatGPT模拟10类高频技术岗面试,3天提升应答精准度92%

【AI面试官实战指南】:用ChatGPT模拟10类高频技术岗面试,3天提升应答精准度92%

更多请点击&#xff1a; https://intelliparadigm.com 第一章&#xff1a;AI面试官实战指南的核心价值与适用场景 AI面试官并非替代人类HR的“黑箱工具”&#xff0c;而是以可解释、可审计、可迭代的方式&#xff0c;赋能招聘全链路的关键基础设施。其核心价值在于将主观经验沉…

2026/7/23 17:49:47 阅读更多 →

月新闻