建设银行etc的网站是哪个好报价平台
2026/4/16 20:23:56 网站建设 项目流程
建设银行etc的网站是哪个好,报价平台,建设厅电工证,网站开发前端好还是后端好Chord开源模型部署教程#xff1a;Conda环境Supervisor守护Gradio界面全链路 1. 项目概述 Chord是一款基于Qwen2.5-VL多模态大模型的视觉定位服务#xff0c;能够通过自然语言指令精确定位图像中的目标对象。想象一下#xff0c;你只需要告诉系统找到图里的白色花瓶…Chord开源模型部署教程Conda环境Supervisor守护Gradio界面全链路1. 项目概述Chord是一款基于Qwen2.5-VL多模态大模型的视觉定位服务能够通过自然语言指令精确定位图像中的目标对象。想象一下你只需要告诉系统找到图里的白色花瓶它就能自动在图片上标出花瓶的位置——这就是Chord的核心能力。1.1 核心功能特点多模态理解同时处理文本指令和图像/视频输入精准定位返回目标在画面中的精确坐标(bounding box)零样本学习无需额外标注数据直接适配常见场景开箱即用提供完整的部署方案和Web界面这个教程将带你完成从环境搭建到服务部署的全过程即使你是刚接触AI部署的新手也能跟着步骤顺利完成。2. 环境准备2.1 硬件要求建议配置GPUNVIDIA显卡(显存≥16GB为佳)内存≥32GB存储空间≥50GB可用空间(模型文件约16.6GB)2.2 软件依赖确保系统已安装Linux操作系统(推荐Ubuntu 20.04)NVIDIA驱动和CUDA 11.0Miniconda33. Conda环境配置3.1 创建专用环境conda create -n chord python3.11 -y conda activate chord3.2 安装PyTorchconda install pytorch2.8.0 torchvision0.15.0 torchaudio2.8.0 pytorch-cuda11.8 -c pytorch -c nvidia3.3 安装项目依赖pip install transformers4.57.3 gradio6.2.0 accelerate0.29.34. 模型部署4.1 下载模型文件建议将模型存放在专用目录mkdir -p /root/ai-models/syModelScope/chord cd /root/ai-models/syModelScope/chord从Hugging Face下载模型文件(需先申请访问权限)git lfs install git clone https://huggingface.co/Qwen/Qwen2.5-VL4.2 验证模型创建测试脚本test_load.pyfrom transformers import AutoModelForCausalLM, AutoTokenizer model_path /root/ai-models/syModelScope/chord/Qwen2.5-VL tokenizer AutoTokenizer.from_pretrained(model_path, trust_remote_codeTrue) model AutoModelForCausalLM.from_pretrained( model_path, device_mapauto, trust_remote_codeTrue ) print(模型加载成功)运行测试python test_load.py5. 服务实现5.1 项目结构创建项目目录/root/chord-service/ ├── app/ │ ├── main.py │ ├── model.py │ └── utils.py ├── config/ ├── logs/ └── supervisor/5.2 核心代码实现app/model.py- 模型推理核心import torch from transformers import AutoModelForCausalLM, AutoTokenizer from PIL import Image class ChordModel: def __init__(self, model_path, deviceauto): self.device device self.model_path model_path self.model None self.tokenizer None def load(self): self.tokenizer AutoTokenizer.from_pretrained( self.model_path, trust_remote_codeTrue ) self.model AutoModelForCausalLM.from_pretrained( self.model_path, device_mapself.device, torch_dtypetorch.bfloat16, trust_remote_codeTrue ) def infer(self, image, prompt, max_new_tokens512): if not isinstance(image, Image.Image): image Image.open(image) inputs self.tokenizer( prompt, return_tensorspt ).to(self.model.device) image_tensor self.tokenizer.process_images( [image], self.model.config ).to(self.model.device) outputs self.model.generate( **inputs, imagesimage_tensor, max_new_tokensmax_new_tokens, do_sampleTrue ) response self.tokenizer.decode( outputs[0], skip_special_tokensTrue ) # 解析bounding box信息 boxes self._parse_boxes(response) return { text: response, boxes: boxes, image_size: image.size } def _parse_boxes(self, text): # 实现box解析逻辑 pass6. Gradio界面开发app/main.py- Web界面实现import gradio as gr from model import ChordModel import os model ChordModel( model_pathos.getenv(MODEL_PATH), deviceos.getenv(DEVICE, auto) ) model.load() def process_image(image, prompt): result model.infer(image, prompt) # 绘制bounding box annotated_image draw_boxes(image, result[boxes]) return annotated_image, str(result[boxes]) with gr.Blocks() as demo: gr.Markdown(# Chord视觉定位系统) with gr.Row(): with gr.Column(): image_input gr.Image(label上传图片) text_input gr.Textbox(label文本提示, placeholder例如找到图中的白色花瓶) submit_btn gr.Button(开始定位) with gr.Column(): image_output gr.Image(label定位结果) text_output gr.Textbox(label坐标信息) submit_btn.click( fnprocess_image, inputs[image_input, text_input], outputs[image_output, text_output] ) if __name__ __main__: demo.launch(server_portint(os.getenv(PORT, 7860)))7. Supervisor服务配置7.1 安装Supervisorsudo apt-get install supervisor7.2 创建配置文件/etc/supervisor/conf.d/chord.conf:[program:chord] command/opt/miniconda3/envs/chord/bin/python /root/chord-service/app/main.py directory/root/chord-service userroot autostarttrue autorestarttrue stderr_logfile/root/chord-service/logs/chord.log stdout_logfile/root/chord-service/logs/chord.log environment MODEL_PATH/root/ai-models/syModelScope/chord/Qwen2.5-VL, DEVICEauto, PORT78607.3 启动服务sudo supervisorctl reread sudo supervisorctl update sudo supervisorctl start chord8. 服务验证与使用8.1 检查服务状态sudo supervisorctl status chord正常输出应显示chord RUNNING pid 12345, uptime 0:05:008.2 访问Web界面在浏览器中打开http://服务器IP:78608.3 使用示例上传一张包含多个物体的图片输入描述如找到图中所有的狗点击开始定位按钮查看标注结果和坐标信息9. 常见问题解决9.1 模型加载失败症状日志中出现CUDA out of memory错误解决方案检查GPU内存使用情况nvidia-smi尝试减小模型加载精度model AutoModelForCausalLM.from_pretrained( model_path, device_mapauto, torch_dtypetorch.float16, # 改用float16 trust_remote_codeTrue )9.2 端口冲突症状服务启动失败提示Address already in use解决方案查找占用端口的进程lsof -i :7860修改服务端口environment PORT7861 # 修改为其他端口重启服务10. 性能优化建议10.1 批处理支持修改model.py增加批处理功能def batch_infer(self, images, prompts, max_new_tokens512): if len(images) ! len(prompts): raise ValueError(图像和提示数量不匹配) image_tensors self.tokenizer.process_images( images, self.model.config ).to(self.model.device) inputs self.tokenizer( prompts, return_tensorspt, paddingTrue ).to(self.model.device) outputs self.model.generate( **inputs, imagesimage_tensors, max_new_tokensmax_new_tokens ) results [] for i in range(len(outputs)): text self.tokenizer.decode( outputs[i], skip_special_tokensTrue ) boxes self._parse_boxes(text) results.append({ text: text, boxes: boxes, image_size: images[i].size }) return results10.2 启用量化对于显存有限的GPU可以使用4-bit量化from transformers import BitsAndBytesConfig quant_config BitsAndBytesConfig( load_in_4bitTrue, bnb_4bit_compute_dtypetorch.bfloat16 ) model AutoModelForCausalLM.from_pretrained( model_path, device_mapauto, quantization_configquant_config, trust_remote_codeTrue )获取更多AI镜像想探索更多AI镜像和应用场景访问 CSDN星图镜像广场提供丰富的预置镜像覆盖大模型推理、图像生成、视频生成、模型微调等多个领域支持一键部署。

需要专业的网站建设服务?

联系我们获取免费的网站建设咨询和方案报价,让我们帮助您实现业务目标

立即咨询