PDF-Extract-Kit部署教程:AWS云服务部署指南
1. 引言
1.1 技术背景与应用场景
随着数字化办公和学术研究的快速发展,PDF文档中结构化信息的提取需求日益增长。无论是科研论文中的公式、表格,还是企业报告中的图表与文本内容,传统手动复制方式效率低下且易出错。为此,PDF-Extract-Kit应运而生——这是一个由开发者“科哥”二次开发构建的PDF智能提取工具箱,集成了布局检测、公式识别、OCR文字提取、表格解析等核心功能,支持通过WebUI进行可视化操作。
该工具基于深度学习模型(如YOLO用于布局分析、PaddleOCR用于文本识别),能够高效地将复杂PDF或扫描图像转换为可编辑的LaTeX、Markdown、HTML及纯文本格式,广泛适用于学术写作、资料归档、数据迁移等场景。
1.2 部署目标与价值
本文聚焦于如何在AWS云服务平台上完成 PDF-Extract-Kit 的完整部署,帮助用户实现: - 远程访问 WebUI 界面 - 高性能 GPU 加速推理 - 持久化运行服务 - 安全稳定的生产级部署
相比本地运行,AWS部署具备弹性扩展、跨地域协作和长期可用性优势,特别适合团队共享使用或集成到更大系统中。
2. AWS环境准备
2.1 创建EC2实例
登录 AWS管理控制台,进入 EC2 服务页面,点击“启动实例”。
推荐配置: -AMI 镜像:Ubuntu Server 22.04 LTS (HVM), SSD Volume Type -实例类型:g4dn.xlarge(含NVIDIA T4 GPU,性价比高) -存储:至少30GB GP2卷(用于安装依赖和缓存模型) -安全组:开放以下端口 -22:SSH 远程连接 -7860:Gradio WebUI 访问端口 -8888(可选):Jupyter Notebook 调试
⚠️ 注意:确保密钥对已下载并妥善保存(
.pem文件),后续将用于SSH登录。
2.2 连接实例并更新系统
使用终端连接实例:
ssh -i your-key.pem ubuntu@<your-instance-public-ip>连接成功后执行系统更新:
sudo apt update && sudo apt upgrade -y3. 环境搭建与依赖安装
3.1 安装CUDA与NVIDIA驱动
由于 PDF-Extract-Kit 使用深度学习模型,需启用GPU加速。AWS g系列实例默认不预装驱动,需手动安装。
# 添加 NVIDIA PPA 源 sudo add-apt-repository ppa:graphics-drivers/ppa -y sudo apt update # 安装推荐版本的驱动(以535为例) sudo apt install nvidia-driver-535 -y重启实例使驱动生效:
sudo reboot重新登录后验证驱动是否正常:
nvidia-smi若显示GPU信息,则说明安装成功。
3.2 安装Docker与NVIDIA Container Toolkit
为简化部署流程,建议使用 Docker 容器化运行项目。
# 安装 Docker sudo apt install docker.io -y sudo systemctl enable docker sudo usermod -aG docker ubuntu # 免sudo运行docker # 安装 NVIDIA Container Toolkit 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 update sudo apt install -y nvidia-docker2 sudo systemctl restart docker3.3 克隆项目代码
git clone https://github.com/kege/PDF-Extract-Kit.git cd PDF-Extract-Kit💡 若仓库私有,请提前配置 SSH Key 或使用 HTTPS + Token 方式克隆。
4. 构建与运行容器镜像
4.1 编写Dockerfile(可选自定义)
若需定制环境,可在项目根目录创建Dockerfile:
FROM pytorch/pytorch:2.0.1-cuda11.7-cudnn8-runtime WORKDIR /app COPY . . RUN pip config set global.index-url https://pypi.tuna.tsinghua.edu.cn/simple \ && pip install --no-cache-dir -r requirements.txt \ && pip install gradio uvicorn fastapi EXPOSE 7860 CMD ["python", "webui/app.py"]构建镜像:
docker build -t pdf-extract-kit .4.2 使用官方镜像快速启动(推荐)
项目可能提供预构建镜像,可直接拉取运行:
docker run --gpus all -d -p 7860:7860 \ -v $(pwd)/outputs:/app/outputs \ --name pdf-extract-webui \ kege/pdf-extract-kit:latest参数说明: ---gups all:启用GPU --p 7860:7860:映射端口 --v:挂载输出目录持久化结果 --d:后台运行
查看容器状态:
docker ps5. 启动WebUI服务与远程访问
5.1 手动启动服务(非容器方式)
若选择直接在主机运行(不推荐生产环境):
# 创建虚拟环境 python3 -m venv venv source venv/bin/activate # 安装依赖 pip install torch torchvision torchaudio --index-url https://download.pytorch.org/whl/cu118 pip install -r requirements.txt # 启动服务(绑定0.0.0.0以允许外部访问) python webui/app.py --host 0.0.0.0 --port 78605.2 配置反向代理(可选)
为提升安全性,可使用 Nginx 做反向代理,并启用 HTTPS。
安装 Nginx:
sudo apt install nginx -y配置/etc/nginx/sites-available/pdf-extract:
server { listen 80; server_name your-domain-or-ip; location / { proxy_pass http://127.0.0.1:7860; proxy_set_header Host $host; proxy_set_header X-Real-IP $remote_addr; proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; } }启用站点:
sudo ln -s /etc/nginx/sites-available/pdf-extract /etc/nginx/sites-enabled/ sudo nginx -t && sudo systemctl reload nginx5.3 访问WebUI界面
打开浏览器,输入:
http://<your-aws-public-ip>:7860即可看到 PDF-Extract-Kit 的 WebUI 界面,功能包括: - 布局检测 - 公式检测与识别 - OCR 文字提取 - 表格解析
上传测试文件验证各项功能是否正常。
6. 性能优化与稳定性建议
6.1 内存与显存监控
使用htop和nvidia-smi实时监控资源占用:
sudo apt install htop -y htop观察是否存在内存溢出或显存不足问题。对于大尺寸PDF或多任务并发,建议升级至g4dn.2xlarge或更高配置。
6.2 自动重启机制
防止服务意外中断,可设置 systemd 服务守护进程。
创建服务文件:
sudo nano /etc/systemd/system/pdf-extract.service内容如下:
[Unit] Description=PDF Extract Kit WebUI After=docker.service Requires=docker.service [Service] Type=simple User=ubuntu WorkingDirectory=/home/ubuntu/PDF-Extract-Kit ExecStart=/usr/bin/docker start pdf-extract-webui || /usr/bin/docker run --gpus all -p 7860:7860 -v $(pwd)/outputs:/app/outputs --name pdf-extract-webui kege/pdf-extract-kit:latest Restart=always [Install] WantedBy=multi-user.target启用服务:
sudo systemctl daemon-reexec sudo systemctl enable pdf-extract.service sudo systemctl start pdf-extract.service6.3 模型缓存加速
首次运行会自动下载 YOLO、PaddleOCR、LaTeX识别等模型,耗时较长。建议: - 将~/.cache目录挂载为EBS卷或EFS共享存储 - 或打包已下载模型的镜像供复用
7. 故障排查与常见问题
7.1 服务无法访问
| 可能原因 | 解决方案 |
|---|---|
| 安全组未开放7860端口 | 在AWS控制台添加入站规则 TCP:7860 |
| 应用未绑定0.0.0.0 | 启动命令添加--host 0.0.0.0 |
| 防火墙拦截 | 检查 Ubuntu UFW 状态sudo ufw status |
7.2 GPU不可用
nvidia-smi # 检查是否识别GPU docker run --rm --gpus all nvidia/cuda:11.8-base nvidia-smi # 测试容器内GPU若失败,检查 NVIDIA Container Toolkit 是否正确安装。
7.3 模型加载失败
- 确保网络通畅(尤其GitHub和HuggingFace访问)
- 可替换为国内镜像源(如清华TUNA)
- 手动下载模型权重并放入指定路径
8. 总结
8.1 核心成果回顾
本文详细介绍了如何在 AWS 云平台上部署PDF-Extract-Kit——一个由“科哥”开发的多功能 PDF 智能提取工具箱。我们完成了从 EC2 实例创建、GPU 驱动安装、Docker 容器化部署到 WebUI 远程访问的全流程实践,实现了以下关键目标: - ✅ 利用 AWS g4dn 实例实现 GPU 加速推理 - ✅ 通过 Docker 容器保障环境一致性 - ✅ 开放公网访问接口,支持多人协同使用 - ✅ 设置持久化存储与自动重启机制,提升稳定性
8.2 最佳实践建议
- 优先使用容器化部署:避免依赖冲突,便于迁移与备份。
- 定期备份 outputs 目录:防止数据丢失。
- 限制公网访问权限:可通过 VPC、子网或前置身份认证增强安全。
- 按需启停实例:节省成本,非工作时间可停止实例。
8.3 扩展方向
未来可进一步集成: - S3 存储对接,实现海量文档自动化处理 - API 接口封装,供其他系统调用 - 多语言支持与更复杂的版面还原能力
💡获取更多AI镜像
想探索更多AI镜像和应用场景?访问 CSDN星图镜像广场,提供丰富的预置镜像,覆盖大模型推理、图像生成、视频生成、模型微调等多个领域,支持一键部署。