TensorFlow:如何自行部署内部使用的Embedding Projector服务?
TensorFlow Embedding Projector 私有化部署方案
前置依赖
- 源码来源:Projector的完整开源代码位于
tensorflow/tensorboard仓库的tensorboard/plugins/projector路径下,直接拉取对应稳定版本的分支即可,无需使用公网Demo的反向编译资源。 - 本地编译环境:仅需准备Node.js 16+、Python 3.8+,所有依赖均可提前同步到内部私有源,无需公网连接。
部署步骤
第一步:编译独立静态UI包
- 进入拉取的
projector插件目录,执行npm install安装前端依赖,依赖包可提前上传到内部npm源,离线环境也可正常安装。 - 执行
npm run build编译生成纯静态资源包,编译产物全部为HTML、CSS、JS文件,无任何服务端依赖,也不会内置任何对公网接口的调用。
第二步:部署到内部服务器
- 将编译好的静态资源包上传到自有服务器,使用任意静态文件服务(Nginx、Apache、甚至直接用
python -m http.server命令)启动即可,可自定义端口、仅开放内部网络访问权限。 - 若需要权限管控,直接在静态服务层配置IP白名单、账号密码校验即可,无需修改Projector的源码逻辑。
自有数据集适配方法
无需修改UI代码,和公网版本的使用逻辑完全一致:
- 提前准备两类本地文件:嵌入向量TSV文件(每行存储单个向量的各维度数值)、元数据TSV文件(每行存储对应向量的标签、分类等描述信息)。
- 打开部署好的内部Projector页面,点击左侧的Load按钮,本地上传两个TSV文件即可完成加载,所有数据仅在浏览器本地内存中处理,不会上传到任何外部节点。
- 如果需要默认加载内部固定数据集,可以修改编译产物中的配置文件,将数据集路径写死为内部静态资源地址,页面打开后会自动加载,无需每次手动上传。
安全说明
所有向量的解析、降维计算、可视化渲染全在用户浏览器端完成,部署的服务端仅负责分发静态UI资源,不会存储、上报任何用户的向量数据,完全满足内部敏感数据的可视化需求。
常见问题优化
- 打包体积过大:可按需裁剪不需要的3D渲染依赖、多语言包,最小打包体积可控制在2MB以内,加载速度更快。
- 大量向量加载卡顿:单页面最多支持10万条向量的流畅渲染,超过该量级建议先对向量做抽样处理后再上传。
内容的提问来源于stack exchange,提问作者Afiq Johari
相关产品推荐
相关产品推荐

