LLM On Kubernetes

从今年开始,人们对大型语言模型 (LLM) 及其在 GPU 基础设施上的部署的兴趣显着增加。这种不断增长的热情是由人工智能和机器学习的进步推动的,这需要 GPU 能够有效提供大量的计算能力。GPU 领先制造商 Nvidia 的股价也因这一趋势而飙升。同样诞生了大量的大模型,对于这些模型的部署和管理也变得越来越重要,在这方面 OllamaOpenUI 是一个不错的选择。
在这里插入图片描述
Ollama 是一个开源的机器学习模型部署工具,它可以帮助您将模型部署到生产环境中,简化大型语言模型 (LLM) 的管理和交互。Ollama 拥有各种一流的开源模型,例如 Llama 3、Phi 3、Mistral 等等,我们可以将 Ollama 看成是 Docker,但是专注于机器学习模型。
在这里插入图片描述
使用 Ollama 部署模型非常简单,就类似于使用 Docker 部署应用程序一样。但是,如果你对 CLI 不熟悉,那么使用 Ollama 会有点痛苦。为了解决这个问题,我们可以使用一个 open-webui 的项目,它提供了一个漂亮的界面,可以让您更轻松地部署模型。

为了更好地管理 Ollama,我们可以将 Ollama 部署到 Kubernetes 集群中。这样,我们就可以更

以下是针对地质找矿和水工环地质勘查行业的详细部署指南,所有组件均安装在D盘,充分利用GPU资源,实现本地化知识库管理和Word报告自动化生成: --- ### **一、系统准备与目录创建** #### **1. 创建主目录结构** ```powershell # 打开PowerShell(管理员权限) # 创建主目录 mkdir D:\personal ai # 创建子目录 mkdir D:\personal ai\docker-data mkdir D:\personal ai\ollama mkdir D:\personal ai\ragflow mkdir D:\personal ai\dify mkdir D:\personal ai\models mkdir D:\personal ai\templates mkdir D:\personal ai\output ``` #### **2. 更新显卡驱动** 1. 访问[NVIDIA驱动下载页](https://www.nvidia.cn/Download/index.aspx) 2. 选择匹配显卡的驱动程序 3. 安装时选择: - **自定义安装** - 勾选**清洁安装** - 安装位置选择:`D:\personal ai\NVIDIA` --- ### **二、Docker Desktop安装与汉化** #### **1. 安装Docker Desktop** 1. 下载安装程序:[Docker Desktop for Windows](https://desktop.docker.com/win/main/amd64/Docker%20Desktop%20Installer.exe) 2. 运行安装程序: - 取消勾选"Use WSL 2 instead of Hyper-V" - 点击"Advanced": - 安装路径:`D:\personal ai\Docker` - 数据存储路径:`D:\personal ai\docker-data` - 勾选: - ☑ Add shortcut to desktop - ☑ Enable WSL 2 Features - ☑ Add Docker binaries to PATH #### **2. Docker汉化** ```powershell # 下载汉化包 Invoke-WebRequest -Uri "https://ghproxy.com/https://github.com/Docker-Hub-frproxy/docker-desktop-zh/releases/download/v4.30.0/zh-CN.zip" -OutFile "D:\personal ai\docker-zh.zip" # 解压并替换文件 Expand-Archive -Path "D:\personal ai\docker-zh.zip" -DestinationPath "D:\personal ai\Docker\resources" -Force # 重启Docker Restart-Service -Name "Docker Desktop Service" ``` #### **3. 配置GPU支持** 1. 创建配置文件: ```powershell notepad $env:USERPROFILE\.wslconfig ``` 2. 输入以下内容: ```ini [wsl2] memory=16GB # 根据实际内存调整,建议≥16GB processors=8 # 根据CPU核心数调整 swap=0 localhostForwarding=true [nvidia] enabled=true cudaVersion=12.2 # 与安装的CUDA版本一致 ``` --- ### **三、Ollama + DeepSeek部署** #### **1. 安装Ollama** ```powershell # 下载安装程序 Invoke-WebRequest -Uri "https://ollama.com/download/OllamaSetup.exe" -OutFile "D:\personal ai\OllamaSetup.exe" # 静默安装到指定目录 Start-Process "D:\personal ai\OllamaSetup.exe" -ArgumentList "/S /D=D:\personal ai\ollama" -Wait ``` #### **2. 配置模型存储路径** ```powershell # 设置环境变量 [Environment]::SetEnvironmentVariable("OLLAMA_MODELS", "D:\personal ai\models", "Machine") # 重启Ollama服务 Restart-Service -Name "Ollama" ``` #### **3. 下载DeepSeek模型** ```powershell # 拉取7B参数模型(适合44GB显存) ollama pull deepseek-llm:7b # 验证安装 ollama run deepseek-llm:7b "地质找矿的基本流程是什么?" ``` --- ### **四、RAGFlow本地部署** #### **1. 创建docker-compose.yml** ```powershell # 创建配置文件 @" version: '3.8' services: ragflow: image: infiniflow/ragflow:latest container_name: ragflow ports: - "9380:9380" volumes: - "D:/personal ai/ragflow/data:/opt/ragflow/data" - "D:/personal ai/models:/opt/ragflow/models" environment: - NVIDIA_VISIBLE_DEVICES=all - NVIDIA_DRIVER_CAPABILITIES=compute,utility deploy: resources: reservations: devices: - driver: nvidia count: 2 capabilities: [gpu] "@ | Out-File -FilePath "D:\personal ai\ragflow\docker-compose.yml" -Encoding utf8 ``` #### **2. 启动RAGFlow** ```powershell # 进入目录 cd D:\personal ai\ragflow # 启动容器 docker compose up -d # 查看日志(确保正常运行) docker logs ragflow ``` --- ### **五、Dify工作流部署** #### **1. 创建docker-compose.yml** ```powershell @" version: '3' services: dify: image: langgenius/dify:latest container_name: dify ports: - "80:3000" volumes: - "D:/personal ai/dify/data:/data" environment: - DB_ENGINE=sqlite - GPU_ENABLED=true depends_on: - ragflow "@ | Out-File -FilePath "D:\personal ai\dify\docker-compose.yml" -Encoding utf8 ``` #### **2. 启动Dify** ```powershell cd D:\personal ai\dify docker compose up -d ``` --- ### **六、地质行业知识库配置** #### **1. 上传地质资料** 1. 访问 `http://localhost:9380` 2. 创建知识库 → 命名"地质矿产知识库" 3. 上传文件类型: - 地质调查报告(PDF/DOCX) - 矿产储量估算表(XLSX) - 水文地质图件(JPG/PNG) - 工程地质剖面图(DWG) #### **2. 配置检索策略** ```yaml # 在RAGFlow高级设置中 chunk_size: 1024 # 适合技术文档 chunk_overlap: 200 metadata_fields: # 地质专用元数据 - project_name - geological_period - mineral_type - gis_coordinates ``` --- ### **七、报告生成工作流配置** #### **1. 在Dify中创建工作流** 1. 访问 `http://localhost` 2. 创建应用 → 选择"工作流" 3. 节点配置: ``` [输入] → [RAGFlow检索] → [Ollama处理] → [Word生成] ``` #### **2. 配置Ollama节点** ```json { "model": "deepseek-llm:7b", "parameters": { "temperature": 0.3, "max_tokens": 4096, "system_prompt": "你是一位资深地质工程师,负责编写专业地质报告。使用规范的地质术语,遵循GB/T 9649地质矿产术语标准。" } } ``` #### **3. 创建Word模板** 1. 在 `D:\personal ai\templates` 创建 `地质报告模板.docx` 2. 包含字段: ```markdown ## {{project_name}}地质调查报告 ### 一、区域地质背景 {{regional_geology}} ### 二、矿产特征 {{mineral_characteristics}} ### 三、水文地质条件 {{hydrogeological_conditions}} [附图:{{figure_number}}] ### 四、资源量估算(单位:万吨) | 矿种 | 332 | 333 | 334 | |---|---|---|---| {{resource_table}} ``` #### **4. Python报告生成脚本** 在Dify中创建 `report_generator.py`: ```python from docx import Document from docx.shared import Pt import pandas as pd import json def generate_geological_report(data): # 加载模板 doc = Document(r'D:\personal ai\templates\地质报告模板.docx') # 填充文本内容 for p in doc.paragraphs: p.text = p.text.replace('{{project_name}}', data['project_name']) p.text = p.text.replace('{{regional_geology}}', data['regional_geology']) p.text = p.text.replace('{{hydrogeological_conditions}}', data['hydro_conditions']) # 填充资源表格 table = doc.tables[0] resources = json.loads(data['resource_table']) for i, mineral in enumerate(resources): row = table.add_row() row.cells[0].text = mineral['type'] row.cells[1].text = str(mineral['332']) row.cells[2].text = str(mineral['333']) row.cells[3].text = str(mineral['334']) # 保存报告 output_path = fr"D:\personal ai\output\{data['project_name']}_地质调查报告.docx" doc.save(output_path) return {"status": "success", "path": output_path} ``` --- ### **八、工作流测试与使用** #### **1. 触发报告生成** ```powershell curl -X POST http://localhost/v1/workflows/run \ -H "Content-Type: application/json" \ -d '{ "inputs": { "project_name": "云南某铜矿勘探", "requirements": "需要包含:\n1. 矿区水文地质分析\n2. 铜矿体三维模型描述\n3. JORC标准资源量估算" } }' ``` #### **2. 输出结果** - 生成文件:`D:\personal ai\output\云南某铜矿勘探_地质调查报告.docx` - 日志位置:`D:\personal ai\dify\data\logs\workflow.log` #### **3. 典型报告结构** ```markdown ## 云南某铜矿勘探地质调查报告 ### 一、区域地质背景 位于扬子地块西缘,出露地层主要为二叠系阳新组灰岩... ### 二、矿产特征 发现3条铜矿体,呈层状产出,平均品位Cu 1.2%... ### 三、水文地质条件 矿区内发育两条季节性河流,地下水类型主要为基岩裂隙水...[附图:图3] ### 四、资源量估算(单位:万吨) | 矿种 | 332 | 333 | 334 | |------|-----|-----|-----| | 铜矿 | 120 | 280 | 150 | ``` --- ### **九、维护与优化** #### **1. GPU监控** ```powershell # 查看GPU利用率 nvidia-smi --query-gpu=utilization.gpu --format=csv -l 5 # Ollama GPU加速验证 ollama run deepseek-llm:7b --verbose ``` #### **2. 地质专业词库增强** 1. 在 `D:\personal ai\models` 创建 `geology_terms.txt` 2. 添加专业术语: ```text 水工环地质 矿产普查 资源量估算 地层划分 构造解析 ``` 3. 在RAGFlow配置中加载术语库 #### **3. 常见问题解决** **问题1:Docker容器无法访问GPU** ```powershell # 验证NVIDIA容器工具包 docker run --rm --gpus all nvidia/cuda:12.2.0-base nvidia-smi # 解决方案 nvidia-smi --gpu-reset ``` **问题2:中文PDF解析乱码** ```yaml # 在RAGFlow配置中添加 parser_config: pdf: text_extraction: lang: chi_sim # 使用中文OCR ``` **问题3:报告生成格式错误** ```python # 在Python脚本中添加格式修复 def fix_table_format(table): for row in table.rows: for cell in row.cells: for paragraph in cell.paragraphs: paragraph.paragraph_format.space_before = Pt(0) paragraph.paragraph_format.space_after = Pt(0) ``` --- ### **十、地质行业应用场景** #### **1. 自动化报告类型** 1. 矿产勘探阶段性报告 2. 水文地质调查评价 3. 矿山环境影响评估 4. 地质灾害风险分析 5. 资源储量动态报表 #### **2. 效率提升对比** | 任务类型 | 传统耗时 | 系统耗时 | |---------|---------|---------| | 矿产调查报告 | 40小时 | 2小时 | | 水文地质图件说明 | 16小时 | 45分钟 | | 资源量估算表 | 8小时 | 实时生成 | 分析优化以上部署方案
最新发布
06-25
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

星光落入你灰蒙蒙的眼

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值