GTE文本向量模型部署全攻略:从零到一搭建企业级文本处理服务

news2026/3/27 14:59:51
GTE文本向量模型部署全攻略从零到一搭建企业级文本处理服务1. 项目介绍与核心价值如果你正在寻找一个能一站式解决中文文本分析难题的工具那么GTE文本向量模型可能就是你的答案。想象一下一个模型就能帮你识别文档里的关键人物、地点分析句子之间的逻辑关系判断用户评论的情感倾向甚至还能回答基于文档的问题。这听起来像是需要多个专业团队才能完成的工作但现在通过一个部署好的服务就能全部搞定。GTE文本向量-中文-通用领域-large应用基于ModelScope社区的优秀模型构建它把六种常见的自然语言处理任务打包成了一个开箱即用的Web服务。无论是电商平台需要分析海量商品评论还是内容团队要快速给文章打标签分类或者是客服系统希望自动提取用户反馈中的关键信息这个模型都能派上用场。最让人心动的是它的部署过程比想象中简单得多。你不需要成为深度学习专家也不需要搭建复杂的机器学习平台。跟着这篇指南用Docker和几个配置文件就能在自己的服务器上跑起一个专业级的文本分析服务。接下来我会带你一步步走完从环境准备到生产优化的完整流程。2. 环境准备与架构设计2.1 你的机器需要满足什么条件在动手之前我们先看看硬件和软件的基本要求。虽然这个模型对资源不算特别苛刻但合适的配置能让它运行得更顺畅。最低配置要求操作系统Ubuntu 18.04、CentOS 7或者更新的版本都行内存至少8GB如果处理大量文本或者并发请求多建议16GB以上存储空间准备10GB左右的空闲空间主要用来放模型文件和运行环境Docker版本20.10.0或更新这是容器化的基础Docker Compose版本1.29.0或更新用来管理多个服务推荐配置生产环境CPU4核以上处理速度会快很多内存16GB或更多内存越大能同时处理的文本就越多GPU虽然不是必须的但如果你有NVIDIA GPU显存4GB以上处理速度能提升好几倍网络稳定的网络连接首次运行需要下载模型文件如果你用的是云服务器选择通用计算型或者内存优化型的实例通常比较合适。个人电脑的话现在的游戏本或者工作站基本都能满足要求。2.2 为什么要用Docker Compose来部署你可能会问直接运行Python脚本不行吗当然可以但用Docker Compose有几个实实在在的好处第一是环境隔离。模型依赖的各种库、特定版本的Python全都打包在容器里不会跟你系统上其他项目冲突。今天装这个明天装那个最后环境乱掉的问题不会再发生。第二是一致性。你在自己电脑上测试好的服务用同样的配置放到服务器上保证运行效果一模一样。开发、测试、生产环境的高度一致能省去很多调试时间。第三是易于扩展。当你的用户量增长需要部署多个实例来分担压力时Docker Compose能轻松管理多个容器。加个配置参数就能一键扩展。第四是简化运维。更新版本替换整个镜像就行。查看日志一条命令就能看到所有服务的输出。出了问题需要回滚切换回之前的镜像版本就好。我们的部署架构很简单但实用一个容器跑模型应用本身另一个容器跑Nginx作为反向代理和负载均衡。这种分离让每个部分各司其职也方便以后单独升级或扩展。3. 一步步搭建你的文本处理服务3.1 创建项目目录和基础文件首先我们在服务器或者本地电脑上创建一个专门的项目目录把所有相关文件都放在里面这样管理起来清晰明了。# 创建项目根目录 mkdir gte-text-service cd gte-text-service # 创建应用和Nginx的子目录 mkdir -p app nginx # 在app目录下创建模型文件目录 mkdir -p app/iic现在你的目录结构应该是这样的gte-text-service/ ├── app/ │ └── iic/ # 这里后面会放模型文件 └── nginx/3.2 准备模型文件模型文件是整个服务的核心。根据镜像描述我们需要的是iic/nlp_gte_sentence-embedding_chinese-large这个模型。如果你已经有下载好的模型文件直接复制到app/iic/目录下就行。如果还没有这里有两种获取方式方式一从ModelScope下载推荐# 创建一个简单的下载脚本 download_model.py from modelscope import snapshot_download model_dir snapshot_download(iic/nlp_gte_sentence-embedding_chinese-large) print(f模型下载到: {model_dir})运行这个脚本它会自动下载模型到本地缓存然后你可以把文件复制到我们的项目目录里。方式二使用预打包的镜像如果你用的是已经包含模型的完整镜像通常模型文件会在容器内的特定路径。你可以进入容器把文件复制出来# 假设你的镜像叫gte-model:latest docker run -d --name temp-model gte-model:latest docker cp temp-model:/path/to/model/files ./app/iic/ docker stop temp-model docker rm temp-model确保模型文件完整后检查一下app/iic/目录里应该有这些关键文件配置文件通常是config.json、模型权重文件pytorch_model.bin或类似、词汇表文件等。3.3 编写应用的核心文件现在我们来创建应用运行所需的各种配置文件。别担心每个文件我都解释清楚是干什么的你跟着做就行。第一步创建Python依赖文件在app/目录下创建requirements.txt这里列出了运行所需的所有Python包Flask2.3.3 modelscope1.11.0 transformers4.36.2 torch2.0.0 sentencepiece protobuf这些包的作用分别是Flask创建Web API服务modelscope阿里的模型库我们的GTE模型来自这里transformersHugging Face的Transformer库处理模型的核心torchPyTorch深度学习框架sentencepiece和protobuf模型运行需要的辅助库第二步创建Flask应用主文件在app/目录下创建app.py这是整个服务的核心from flask import Flask, request, jsonify from modelscope.pipelines import pipeline from modelscope.utils.constant import Tasks import logging import os # 设置日志 logging.basicConfig(levellogging.INFO) logger logging.getLogger(__name__) app Flask(__name__) # 全局变量存储模型管道 pipelines {} def load_models(): 加载所有任务对应的模型 tasks { ner: Tasks.named_entity_recognition, relation: Tasks.relation_extraction, event: Tasks.event_extraction, sentiment: Tasks.sentiment_analysis, classification: Tasks.text_classification, qa: Tasks.question_answering } model_path os.getenv(MODEL_PATH, /app/iic) for task_name, task_type in tasks.items(): try: logger.info(f正在加载 {task_name} 模型...) pipelines[task_name] pipeline( tasktask_type, modelmodel_path, model_revisionv1.0 ) logger.info(f{task_name} 模型加载成功) except Exception as e: logger.error(f加载 {task_name} 模型失败: {str(e)}) pipelines[task_name] None return all(pipelines.values()) app.route(/health, methods[GET]) def health_check(): 健康检查接口 return jsonify({status: healthy, models_loaded: len(pipelines)}) app.route(/predict, methods[POST]) def predict(): 统一的预测接口 try: data request.get_json() if not data: return jsonify({error: 请求数据为空}), 400 task_type data.get(task_type, ).lower() input_text data.get(input_text, ) if not task_type: return jsonify({error: 缺少任务类型(task_type)}), 400 if not input_text: return jsonify({error: 缺少输入文本(input_text)}), 400 if task_type not in pipelines: return jsonify({error: f不支持的任务类型: {task_type}}), 400 if pipelines[task_type] is None: return jsonify({error: f{task_type} 模型未加载成功}), 500 # 执行预测 result pipelines[task_type](input_text) return jsonify({ task_type: task_type, input_text: input_text, result: result }) except Exception as e: logger.error(f预测出错: {str(e)}) return jsonify({error: str(e)}), 500 if __name__ __main__: # 加载模型 if load_models(): logger.info(所有模型加载完成服务启动中...) host os.getenv(HOST, 0.0.0.0) port int(os.getenv(PORT, 5000)) debug os.getenv(FLASK_ENV, development) development app.run(hosthost, portport, debugdebug) else: logger.error(模型加载失败服务无法启动)这个文件做了几件重要的事情定义了一个Flask应用提供Web服务加载六种不同任务的模型提供健康检查接口方便监控提供统一的预测接口根据任务类型调用对应的模型第三步创建启动脚本在app/目录下创建start.sh这是容器的启动入口#!/bin/bash echo 启动GTE文本向量服务... # 等待模型文件就绪如果是挂载卷的话 if [ ! -d /app/iic ]; then echo 错误模型目录 /app/iic 不存在 exit 1 fi echo 检查模型文件... MODEL_FILES$(ls /app/iic/ | wc -l) echo 找到 $MODEL_FILES 个模型文件 # 设置Python路径 export PYTHONPATH/app:$PYTHONPATH # 启动Flask应用 echo 启动Flask应用... exec python app.py记得给这个脚本执行权限chmod x app/start.sh第四步创建Dockerfile在app/目录下创建Dockerfile告诉Docker如何构建我们的应用镜像# 使用Python 3.9的官方镜像作为基础 FROM python:3.9-slim # 设置工作目录 WORKDIR /app # 安装系统依赖 RUN apt-get update apt-get install -y \ gcc \ g \ rm -rf /var/lib/apt/lists/* # 复制依赖文件 COPY requirements.txt . # 安装Python依赖 RUN pip install --no-cache-dir -r requirements.txt # 复制应用代码 COPY . . # 创建非root用户运行应用安全最佳实践 RUN useradd -m -u 1000 appuser chown -R appuser:appuser /app USER appuser # 暴露端口 EXPOSE 5000 # 启动命令 CMD [bash, start.sh]这个Dockerfile做了几件事基于官方的Python 3.9镜像安装编译需要的工具安装Python依赖包复制我们的应用代码创建一个专门的用户来运行应用更安全指定启动命令3.4 配置Nginx反向代理为什么需要Nginx直接访问Flask的5000端口不行吗行是行但Nginx能带来几个好处负载均衡以后可以轻松扩展多个应用实例静态文件服务如果需要的话HTTPS支持配置SSL证书更方便访问控制限制IP、频率限制等第一步创建Nginx配置文件在nginx/目录下创建nginx.conf# 全局配置 user nginx; worker_processes auto; error_log /var/log/nginx/error.log warn; pid /var/run/nginx.pid; # 事件模块配置 events { worker_connections 1024; } # HTTP模块配置 http { include /etc/nginx/mime.types; default_type application/octet-stream; # 日志格式 log_format main $remote_addr - $remote_user [$time_local] $request $status $body_bytes_sent $http_referer $http_user_agent $http_x_forwarded_for; access_log /var/log/nginx/access.log main; # 基础优化 sendfile on; tcp_nopush on; tcp_nodelay on; keepalive_timeout 65; types_hash_max_size 2048; # Gzip压缩 gzip on; gzip_vary on; gzip_min_length 1024; gzip_types text/plain text/css text/xml text/javascript application/json application/javascript application/xmlrss application/atomxml; # 上游服务配置我们的Flask应用 upstream gte_app { server gte-app:5000; # 如果需要负载均衡可以添加更多服务器 # server gte-app2:5000; # server gte-app3:5000; } # 服务器配置 server { listen 80; server_name localhost; # 健康检查端点 location /health { proxy_pass http://gte_app/health; proxy_set_header Host $host; proxy_set_header X-Real-IP $remote_addr; access_log off; } # API接口 location /predict { # 增加超时时间模型推理可能需要较长时间 proxy_read_timeout 300s; proxy_connect_timeout 75s; proxy_send_timeout 300s; proxy_pass http://gte_app/predict; proxy_set_header Host $host; proxy_set_header X-Real-IP $remote_addr; proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; proxy_set_header X-Forwarded-Proto $scheme; # 限制请求体大小防止过大文本 client_max_body_size 10M; } # 默认路由 location / { proxy_pass http://gte_app; proxy_set_header Host $host; proxy_set_header X-Real-IP $remote_addr; proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; proxy_set_header X-Forwarded-Proto $scheme; } # 静态文件服务如果有的话 location /static/ { alias /app/static/; expires 30d; } } }第二步创建Nginx的Dockerfile在nginx/目录下创建Dockerfile# 使用官方Nginx镜像 FROM nginx:alpine # 复制自定义配置 COPY nginx.conf /etc/nginx/nginx.conf # 创建日志目录 RUN mkdir -p /var/log/nginx # 暴露80端口 EXPOSE 80 # 启动Nginx CMD [nginx, -g, daemon off;]3.5 编写Docker Compose配置文件现在到了最关键的一步创建docker-compose.yml文件这个文件会告诉Docker Compose如何启动和管理我们的所有服务。在项目根目录gte-text-service/下创建docker-compose.ymlversion: 3.8 # 定义所有服务 services: # GTE应用服务 gte-app: build: ./app # 使用app目录下的Dockerfile构建 container_name: gte-application # 容器名称 ports: - 5000:5000 # 映射端口主机端口:容器端口 volumes: # 挂载卷这样修改代码不需要重建镜像 - ./app:/app # 模型数据卷持久化存储模型文件 - model-data:/app/iic environment: # 环境变量 - FLASK_ENVproduction - MODEL_PATH/app/iic - HOST0.0.0.0 - PORT5000 restart: unless-stopped # 自动重启策略 networks: - gte-network # 加入自定义网络 # 资源限制生产环境建议设置 deploy: resources: limits: memory: 8G cpus: 4.0 reservations: memory: 4G cpus: 2.0 # 健康检查 healthcheck: test: [CMD, curl, -f, http://localhost:5000/health] interval: 30s timeout: 10s retries: 3 start_period: 40s # Nginx反向代理服务 nginx: build: ./nginx # 使用nginx目录下的Dockerfile构建 container_name: gte-nginx ports: # 映射80端口这样外部可以通过80端口访问 - 80:80 # 如果需要HTTPS可以映射443端口 # - 443:443 depends_on: - gte-app # 依赖gte-app服务会等它启动后再启动 volumes: # 挂载Nginx配置 - ./nginx/nginx.conf:/etc/nginx/nginx.conf restart: unless-stopped networks: - gte-network # 网络定义 networks: gte-network: driver: bridge # 使用桥接网络容器间可以互相通信 # 卷定义 volumes: model-data: driver: local # 本地卷持久化存储模型数据这个配置文件定义了两个服务gte-app我们的文本处理应用和nginx反向代理。它们通过gte-network网络连接nginx服务依赖gte-app服务。3.6 环境变量配置文件为了更灵活地管理配置我们可以创建一个.env文件来设置环境变量。在项目根目录创建.env# 应用配置 FLASK_ENVproduction MODEL_PATH/app/iic HOST0.0.0.0 PORT5000 # 模型配置 MODEL_NAMEiic/nlp_gte_sentence-embedding_chinese-large MAX_SEQ_LENGTH512 # 最大序列长度根据你的需求调整 BATCH_SIZE1 # 批处理大小如果内存大可以调大 # 性能配置 WORKER_COUNT4 # 工作进程数 THREAD_COUNT2 # 每个工作进程的线程数 # 日志配置 LOG_LEVELINFO LOG_FILE/app/logs/app.log # Nginx配置 NGINX_WORKER_PROCESSESauto NGINX_WORKER_CONNECTIONS10244. 启动服务与验证4.1 一键启动所有服务所有文件都准备好了现在可以启动服务了。在项目根目录执行# 构建并启动所有服务-d表示后台运行 docker-compose up -d # 查看服务状态 docker-compose ps你会看到类似这样的输出Name Command State Ports -------------------------------------------------------------------------------------- gte-application bash start.sh Up 0.0.0.0:5000-5000/tcp gte-nginx nginx -g daemon off; Up 0.0.0.0:80-80/tcp这表示两个服务都成功启动了。第一次运行可能会花一些时间因为Docker需要下载基础镜像、构建我们的镜像并且应用需要加载模型文件。4.2 查看启动日志如果想知道启动过程中发生了什么可以查看日志# 查看所有服务的日志 docker-compose logs # 实时查看日志类似tail -f docker-compose logs -f # 只看某个服务的日志 docker-compose logs gte-app正常启动的话你应该能在日志中看到模型加载成功的信息。模型加载可能需要几分钟时间特别是第一次运行的时候。4.3 测试服务是否正常服务启动后我们来测试一下各个接口是否正常工作测试健康检查接口curl http://localhost/health应该返回{status:healthy,models_loaded:6}测试命名实体识别NERcurl -X POST http://localhost/predict \ -H Content-Type: application/json \ -d { task_type: ner, input_text: 2022年北京冬奥会在北京举行谷爱凌获得了自由式滑雪女子大跳台金牌。 }测试情感分析curl -X POST http://localhost/predict \ -H Content-Type: application/json \ -d { task_type: sentiment, input_text: 这款手机拍照效果很棒电池续航也很给力就是价格稍微贵了点。 }测试文本分类curl -X POST http://localhost/predict \ -H Content-Type: application/json \ -d { task_type: classification, input_text: 央行宣布降准0.5个百分点释放长期资金约1万亿元 }如果所有这些测试都返回了合理的结果恭喜你你的GTE文本向量服务已经成功部署并运行起来了。5. 生产环境优化建议5.1 性能优化配置当你的服务开始处理真实的生产流量时可能需要一些优化来确保稳定性和性能。调整Docker Compose配置gte-app: # ... 其他配置保持不变 deploy: resources: limits: memory: 16G # 根据你的服务器内存调整 cpus: 8.0 # 分配更多CPU核心 reservations: memory: 8G cpus: 4.0 # 添加GPU支持如果你有NVIDIA GPU runtime: nvidia # 需要先安装nvidia-container-toolkit environment: - NVIDIA_VISIBLE_DEVICESall优化Flask应用配置在app.py中我们可以使用生产级的WSGI服务器替代Flask自带的开发服务器# 创建新的启动文件 gunicorn_config.py import multiprocessing # 工作进程数通常设置为CPU核心数*21 workers multiprocessing.cpu_count() * 2 1 # 每个工作进程的线程数 threads 2 # 绑定地址 bind 0.0.0.0:5000 # 工作模式 worker_class gthread # 最大并发请求数 worker_connections 1000 # 超时时间秒 timeout 300 # 访问日志 accesslog /app/logs/access.log # 错误日志 errorlog /app/logs/error.log # 日志级别 loglevel info然后修改start.sh使用Gunicorn启动#!/bin/bash echo 启动GTE文本向量服务... # 等待模型文件就绪 if [ ! -d /app/iic ]; then echo 错误模型目录 /app/iic 不存在 exit 1 fi echo 检查模型文件... MODEL_FILES$(ls /app/iic/ | wc -l) echo 找到 $MODEL_FILES 个模型文件 # 设置Python路径 export PYTHONPATH/app:$PYTHONPATH # 创建日志目录 mkdir -p /app/logs # 使用Gunicorn启动生产环境 echo 使用Gunicorn启动Flask应用... exec gunicorn -c gunicorn_config.py app:app记得在requirements.txt中添加gunicorngunicorn21.2.05.2 高可用部署对于关键业务系统你可能需要部署多个实例来确保高可用性。多副本部署gte-app: image: your-registry/gte-app:latest # 使用构建好的镜像 deploy: replicas: 3 # 启动3个实例 restart_policy: condition: on-failure delay: 5s max_attempts: 3 update_config: parallelism: 1 delay: 10s # ... 其他配置更新Nginx配置实现负载均衡upstream gte_app { # 使用Docker Compose的服务发现 server gte-app-1:5000; server gte-app-2:5000; server gte-app-3:5000; # 负载均衡策略 least_conn; # 最少连接数 # 或者使用轮询 # ip_hash; # 基于IP的哈希保持会话 }5.3 添加监控和日志监控是生产环境不可或缺的一部分。我们可以添加一些简单的监控配置。添加Prometheus监控可选在docker-compose.yml中添加prometheus: image: prom/prometheus:latest container_name: prometheus ports: - 9090:9090 volumes: - ./prometheus.yml:/etc/prometheus/prometheus.yml - prometheus-data:/prometheus command: - --config.file/etc/prometheus/prometheus.yml - --storage.tsdb.path/prometheus - --web.console.libraries/etc/prometheus/console_libraries - --web.console.templates/etc/prometheus/consoles - --storage.tsdb.retention.time200h - --web.enable-lifecycle restart: unless-stopped networks: - gte-network grafana: image: grafana/grafana:latest container_name: grafana ports: - 3000:3000 environment: - GF_SECURITY_ADMIN_PASSWORDadmin123 # 修改为你的密码 - GF_INSTALL_PLUGINSgrafana-piechart-panel volumes: - grafana-data:/var/lib/grafana restart: unless-stopped networks: - gte-network创建prometheus.yml配置文件global: scrape_interval: 15s evaluation_interval: 15s scrape_configs: - job_name: gte-app static_configs: - targets: [gte-app:5000] metrics_path: /metrics - job_name: nginx static_configs: - targets: [nginx:80] metrics_path: /nginx_status5.4 安全加固建议使用HTTPS在生产环境一定要启用HTTPS设置访问控制限制访问IP添加认证定期更新及时更新基础镜像和安全补丁备份配置定期备份Docker Compose配置和模型文件6. 常见问题与解决方案6.1 模型加载失败问题现象启动时日志显示模型加载失败或者健康检查返回的models_loaded小于6。可能原因和解决方案模型文件缺失或损坏# 进入容器检查模型文件 docker exec -it gte-application ls -la /app/iic/ # 应该有类似这样的文件 # config.json # pytorch_model.bin # vocab.txt # 等等...内存不足# 查看容器内存使用 docker stats gte-application # 如果内存不足增加内存限制 # 在docker-compose.yml中调整 # limits: # memory: 16G磁盘空间不足# 检查磁盘空间 df -h # 清理不需要的镜像和容器 docker system prune -a6.2 服务响应慢问题现象API请求响应时间很长或者超时。优化建议启用批处理修改代码支持批量处理# 在app.py中修改predict函数支持批量输入 input_texts data.get(input_texts, []) if isinstance(input_texts, str): input_texts [input_texts] # 批量处理 results [] for text in input_texts: result pipelines[task_type](text) results.append(result)调整模型参数根据你的文本长度调整MAX_SEQ_LENGTH# 在加载模型时指定参数 pipelines[task_name] pipeline( tasktask_type, modelmodel_path, model_revisionv1.0, max_seq_len256 # 根据实际情况调整 )使用GPU加速如果你有NVIDIA GPU# 安装NVIDIA容器工具包 distribution$(. /etc/os-release;echo $ID$VERSION_ID) curl -s -L https://nvidia.github.io/nvidia-docker/gpgkey | sudo apt-key add - curl -s -L https://nvidia.github.io/nvidia-docker/$distribution/nvidia-docker.list | sudo tee /etc/apt/sources.list.d/nvidia-docker.list sudo apt-get update sudo apt-get install -y nvidia-container-toolkit sudo systemctl restart docker # 在docker-compose.yml中启用GPU runtime: nvidia environment: - NVIDIA_VISIBLE_DEVICESall6.3 并发请求处理能力不足问题现象多个并发请求时服务响应变慢或失败。解决方案增加工作进程数# 在gunicorn_config.py中 workers multiprocessing.cpu_count() * 2 1 # 根据CPU核心数调整使用消息队列对于大量请求可以引入消息队列# 在docker-compose.yml中添加Redis redis: image: redis:alpine container_name: redis ports: - 6379:6379 volumes: - redis-data:/data networks: - gte-network实现请求队列在应用层添加请求队列机制6.4 容器间网络通信问题问题现象Nginx无法连接到应用服务返回502错误。排查步骤# 1. 检查容器网络 docker network inspect gte-text-service_gte-network # 2. 测试容器间连通性 docker exec -it gte-nginx ping gte-app # 3. 检查应用服务是否正常 docker exec -it gte-application curl http://localhost:5000/health # 4. 检查Nginx配置 docker exec -it gte-nginx nginx -t7. 总结通过这篇详细的部署指南你应该已经成功搭建了一个功能完整的GTE文本向量处理服务。让我们回顾一下整个部署过程的关键点部署流程回顾环境准备确保服务器满足基本要求安装Docker和Docker Compose项目结构创建清晰的项目目录分离应用代码和配置应用开发编写Flask应用集成六种文本处理功能容器化创建Dockerfile将应用打包成镜像服务编排使用Docker Compose管理多服务架构反向代理配置Nginx提供统一的访问入口启动验证一键启动所有服务测试各个接口生产优化根据实际需求调整配置确保稳定高效这个部署方案的主要优势标准化一次构建到处运行环境一致性有保障可扩展轻松扩展实例数量应对流量增长易维护配置集中管理更新升级简单资源隔离每个服务独立运行互不干扰生产就绪支持监控、日志、健康检查等生产级功能实际使用建议从小规模开始先部署单实例根据实际使用情况再考虑扩展监控是关键即使是最简单的日志监控也能帮你快速发现问题定期备份模型文件和配置文件的备份很重要版本控制对Dockerfile和配置文件使用Git管理安全第一生产环境一定要配置HTTPS和访问控制这个GTE文本向量服务现在可以集成到你的各种应用中可以是内容管理系统的自动标签功能可以是客服系统的智能分析模块也可以是数据分析平台的信息提取工具。它的六种文本处理能力基本上覆盖了大多数文本分析的需求场景。部署过程中如果遇到问题不要着急。容器化部署的一个好处就是调试方便你可以随时进入容器查看状态修改配置后快速重启或者回滚到之前的版本。多实践几次你就会发现这种部署方式其实非常直观和高效。获取更多AI镜像想探索更多AI镜像和应用场景访问 CSDN星图镜像广场提供丰富的预置镜像覆盖大模型推理、图像生成、视频生成、模型微调等多个领域支持一键部署。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/2450334.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

SpringBoot-17-MyBatis动态SQL标签之常用标签

文章目录 1 代码1.1 实体User.java1.2 接口UserMapper.java1.3 映射UserMapper.xml1.3.1 标签if1.3.2 标签if和where1.3.3 标签choose和when和otherwise1.4 UserController.java2 常用动态SQL标签2.1 标签set2.1.1 UserMapper.java2.1.2 UserMapper.xml2.1.3 UserController.ja…

wordpress后台更新后 前端没变化的解决方法

使用siteground主机的wordpress网站,会出现更新了网站内容和修改了php模板文件、js文件、css文件、图片文件后,网站没有变化的情况。 不熟悉siteground主机的新手,遇到这个问题,就很抓狂,明明是哪都没操作错误&#x…

网络编程(Modbus进阶)

思维导图 Modbus RTU(先学一点理论) 概念 Modbus RTU 是工业自动化领域 最广泛应用的串行通信协议,由 Modicon 公司(现施耐德电气)于 1979 年推出。它以 高效率、强健性、易实现的特点成为工业控制系统的通信标准。 包…

UE5 学习系列(二)用户操作界面及介绍

这篇博客是 UE5 学习系列博客的第二篇,在第一篇的基础上展开这篇内容。博客参考的 B 站视频资料和第一篇的链接如下: 【Note】:如果你已经完成安装等操作,可以只执行第一篇博客中 2. 新建一个空白游戏项目 章节操作,重…

IDEA运行Tomcat出现乱码问题解决汇总

最近正值期末周,有很多同学在写期末Java web作业时,运行tomcat出现乱码问题,经过多次解决与研究,我做了如下整理: 原因: IDEA本身编码与tomcat的编码与Windows编码不同导致,Windows 系统控制台…

利用最小二乘法找圆心和半径

#include <iostream> #include <vector> #include <cmath> #include <Eigen/Dense> // 需安装Eigen库用于矩阵运算 // 定义点结构 struct Point { double x, y; Point(double x_, double y_) : x(x_), y(y_) {} }; // 最小二乘法求圆心和半径 …

使用docker在3台服务器上搭建基于redis 6.x的一主两从三台均是哨兵模式

一、环境及版本说明 如果服务器已经安装了docker,则忽略此步骤,如果没有安装,则可以按照一下方式安装: 1. 在线安装(有互联网环境): 请看我这篇文章 传送阵>> 点我查看 2. 离线安装(内网环境):请看我这篇文章 传送阵>> 点我查看 说明&#xff1a;假设每台服务器已…

XML Group端口详解

在XML数据映射过程中&#xff0c;经常需要对数据进行分组聚合操作。例如&#xff0c;当处理包含多个物料明细的XML文件时&#xff0c;可能需要将相同物料号的明细归为一组&#xff0c;或对相同物料号的数量进行求和计算。传统实现方式通常需要编写脚本代码&#xff0c;增加了开…

LBE-LEX系列工业语音播放器|预警播报器|喇叭蜂鸣器的上位机配置操作说明

LBE-LEX系列工业语音播放器|预警播报器|喇叭蜂鸣器专为工业环境精心打造&#xff0c;完美适配AGV和无人叉车。同时&#xff0c;集成以太网与语音合成技术&#xff0c;为各类高级系统&#xff08;如MES、调度系统、库位管理、立库等&#xff09;提供高效便捷的语音交互体验。 L…

(LeetCode 每日一题) 3442. 奇偶频次间的最大差值 I (哈希、字符串)

题目&#xff1a;3442. 奇偶频次间的最大差值 I 思路 &#xff1a;哈希&#xff0c;时间复杂度0(n)。 用哈希表来记录每个字符串中字符的分布情况&#xff0c;哈希表这里用数组即可实现。 C版本&#xff1a; class Solution { public:int maxDifference(string s) {int a[26]…

【大模型RAG】拍照搜题技术架构速览:三层管道、两级检索、兜底大模型

摘要 拍照搜题系统采用“三层管道&#xff08;多模态 OCR → 语义检索 → 答案渲染&#xff09;、两级检索&#xff08;倒排 BM25 向量 HNSW&#xff09;并以大语言模型兜底”的整体框架&#xff1a; 多模态 OCR 层 将题目图片经过超分、去噪、倾斜校正后&#xff0c;分别用…

【Axure高保真原型】引导弹窗

今天和大家中分享引导弹窗的原型模板&#xff0c;载入页面后&#xff0c;会显示引导弹窗&#xff0c;适用于引导用户使用页面&#xff0c;点击完成后&#xff0c;会显示下一个引导弹窗&#xff0c;直至最后一个引导弹窗完成后进入首页。具体效果可以点击下方视频观看或打开下方…

接口测试中缓存处理策略

在接口测试中&#xff0c;缓存处理策略是一个关键环节&#xff0c;直接影响测试结果的准确性和可靠性。合理的缓存处理策略能够确保测试环境的一致性&#xff0c;避免因缓存数据导致的测试偏差。以下是接口测试中常见的缓存处理策略及其详细说明&#xff1a; 一、缓存处理的核…

龙虎榜——20250610

上证指数放量收阴线&#xff0c;个股多数下跌&#xff0c;盘中受消息影响大幅波动。 深证指数放量收阴线形成顶分型&#xff0c;指数短线有调整的需求&#xff0c;大概需要一两天。 2025年6月10日龙虎榜行业方向分析 1. 金融科技 代表标的&#xff1a;御银股份、雄帝科技 驱动…

观成科技:隐蔽隧道工具Ligolo-ng加密流量分析

1.工具介绍 Ligolo-ng是一款由go编写的高效隧道工具&#xff0c;该工具基于TUN接口实现其功能&#xff0c;利用反向TCP/TLS连接建立一条隐蔽的通信信道&#xff0c;支持使用Let’s Encrypt自动生成证书。Ligolo-ng的通信隐蔽性体现在其支持多种连接方式&#xff0c;适应复杂网…

铭豹扩展坞 USB转网口 突然无法识别解决方法

当 USB 转网口扩展坞在一台笔记本上无法识别,但在其他电脑上正常工作时,问题通常出在笔记本自身或其与扩展坞的兼容性上。以下是系统化的定位思路和排查步骤,帮助你快速找到故障原因: 背景: 一个M-pard(铭豹)扩展坞的网卡突然无法识别了,扩展出来的三个USB接口正常。…

未来机器人的大脑:如何用神经网络模拟器实现更智能的决策?

编辑&#xff1a;陈萍萍的公主一点人工一点智能 未来机器人的大脑&#xff1a;如何用神经网络模拟器实现更智能的决策&#xff1f;RWM通过双自回归机制有效解决了复合误差、部分可观测性和随机动力学等关键挑战&#xff0c;在不依赖领域特定归纳偏见的条件下实现了卓越的预测准…

Linux应用开发之网络套接字编程(实例篇)

服务端与客户端单连接 服务端代码 #include <sys/socket.h> #include <sys/types.h> #include <netinet/in.h> #include <stdio.h> #include <stdlib.h> #include <string.h> #include <arpa/inet.h> #include <pthread.h> …

华为云AI开发平台ModelArts

华为云ModelArts&#xff1a;重塑AI开发流程的“智能引擎”与“创新加速器”&#xff01; 在人工智能浪潮席卷全球的2025年&#xff0c;企业拥抱AI的意愿空前高涨&#xff0c;但技术门槛高、流程复杂、资源投入巨大的现实&#xff0c;却让许多创新构想止步于实验室。数据科学家…

深度学习在微纳光子学中的应用

深度学习在微纳光子学中的主要应用方向 深度学习与微纳光子学的结合主要集中在以下几个方向&#xff1a; 逆向设计 通过神经网络快速预测微纳结构的光学响应&#xff0c;替代传统耗时的数值模拟方法。例如设计超表面、光子晶体等结构。 特征提取与优化 从复杂的光学数据中自…