尧图网站设计 尧图网站设计YAOTU DESIGN
ARTICLE DETAIL

资讯详情

深耕网站设计与一线实操的经验洞察。

SGLang 多模态完整指南:让模型看图、懂视频、做图文检索一步到位

SGLang 多模态完整指南:让模型看图、懂视频、做图文检索一步到位 SGLang 多模态完整指南让模型看图、懂视频、做图文检索一步到位【免费下载链接】sglangSGLang is a high-performance serving framework for large language models and multimodal models.项目地址: https://gitcode.com/GitHub_Trending/sg/sglang丢一张截图给模型问这是啥或者把一段会议录屏丢过去让它总结重点——这类需求看起来离生产环境还差一步其实也就是几行 API 调用的距离。SGLang 是一个面向大语言模型与多模态模型的高性能推理服务框架图像问答、视频理解、图文嵌入检索这些能力都能接。读完全文你会知道能接哪些视觉模型、怎么一条命令拉起服务以及视频抽帧和图文检索该怎么调。能接哪些多模态模型端侧、主力、专项三档端侧轻量MiniCPM-V 2.6openbmb/MiniCPM-V-2_6约 8B面向移动/边缘部署优化MiniCPM-o 版本再加音频、视频模态。主力视觉模型图像文本进、文本出Qwen-VLQwen/Qwen3-VL-235B-A22B-Instruct图像分析与讨论的当前标杆。Llama 3.2 Vision 11Bmeta-llama/Llama-3.2-11B-Vision-Instruct适合视觉问答这类任务。Gemma 3google/gemma-3-4b-it4B/12B/27B 三档每张图像编码成 256 个 token放在 128K 上下文里。LLaVA 系liuhaotian/llava-v1.5-13b、lmms-lab/llava-next-72bLLaVA-OneVisionlmms-lab/llava-onevision-qwen2-7b-ov可一次输入多张图甚至视频帧兼容 OpenAI Vision API 的格式。DeepSeek-VL2deepseek-ai/deepseek-vl2带专用图像处理器Kimi-VLmoonshotai/Kimi-VL-A3B-Instruct可从图像理解并生成文本MiMo-VL 7BXiaomiMiMo/MiMo-VL-7B-RL用原生分辨率 ViT 抓细粒度细节。Mistral-Small-3.1-24Bmistralai/Mistral-Small-3.1-24B-Instruct-2503支持图像输入还带工具调用和结构化输出。专项能力Janus-Pro 1B/7Bdeepseek-ai/Janus-Pro-7B图像理解和生成都能做视觉编码路径与生成解耦。Phi-4-multimodalmicrosoft/Phi-4-multimodal-instruct文本、视觉、音频三模态多模态能力通过 LoRA 增强。GLM-4.5V 106B / GLM-4.1V 9Bzai-org/GLM-4.5V靠可扩展强化学习做多模态推理启动时记得加--chat-template glm-4v。DotsVLMrednote-hilab/dots.vlm1.inst及其 OCR 变体rednote-hilab/dots.ocr后者是专用 OCR 模型注意别给它加--trust-remote-code。另外如果模型的对话格式比较特殊启动时可以指定自定义模板仓库里就有现成参考examples/chat_template/vision_template_sarashina_vl.jinjaSarashina-VL 用。️ 场景一让模型看懂一张图含多图先把服务拉起来一条命令的事python3 -m sglang.launch_server \ --model-path meta-llama/Llama-3.2-11B-Vision-Instruct \ --host 0.0.0.0 --port 30000调用侧直接用 OpenAI 客户端就行——SGLang 的接口和 OpenAI 兼容你原来对接其他推理服务的代码基本能原样搬过来from openai import OpenAI client OpenAI(base_urlhttp://localhost:30000/v1, api_keyNone) resp client.chat.completions.create( modelmeta-llama/Llama-3.2-11B-Vision-Instruct, messages[{role: user, content: [ {type: text, text: 这张图里有什么}, {type: image_url, image_url: { url: https://github.com/sgl-project/sglang/blob/main/test/lang/example_image.png?rawtrue}}, ]}], max_tokens300, ) print(resp.choices[0].message.content)多图就更有意思了在同一个content列表里继续追加image_url项即可模型能把两张毫不相关的图分别描述再对比。不想引客户端库的话直接 POST/v1/chat/completions也行JSON 结构完全一样。 场景二让模型看懂视频抽帧转 base64视频理解本质上是把视频变成一串图片。思路三步走用 decord 均匀抽帧 → 每帧压成 JPEG → base64 编码后塞进content当image_url用import base64, io from decord import VideoReader, cpu from PIL import Image vr VideoReader(jobs_presenting_ipod.mp4, ctxcpu(0)) n 10 # 抽帧数量 idx [int(i * (len(vr) - 1) / (n - 1)) for i in range(n)] # 均匀采样 frames vr.get_batch(idx).asnumpy() content [] for f in frames: buf io.BytesIO() Image.fromarray(f).save(buf, formatJPEG) content.append({type: image_url, image_url: { url: data:image/jpeg;base64, base64.b64encode(buf.getvalue()).decode()}}) content.append({type: text, text: 请描述这段视频。})剩下的照旧把messages[{role: user, content: content}]发给client.chat.completions.create模型就会输出一段视频描述。帧数怎么取舍帧多信息全但 token 变长、响应变慢、显存吃紧。问这视频讲了什么这类整体性问题均匀抽 10 帧通常够用要定位某个具体动作或时间点就在该时段附近加帧、加密采样。特别长的视频建议先分段处理别一次性把整个文件读进来。 场景三图文嵌入检索embedding想做以文搜图找相似图或者聚类就走嵌入这条路先用--is-embedding参数启动服务模型Alibaba-NLP/gme-Qwen2-VL-2B-Instruct请求体里文本、图像可以混着传返回的是同一个向量空间的 embeddingimport requests payload { model: gme-qwen2-vl, input: [ {text: Represent this image in embedding space.}, {image: https://huggingface.co/datasets/liuhaotian/llava-bench-in-the-wild/resolve/main/images/023.jpg}, ], } resp requests.post(http://127.0.0.1:30000/v1/embeddings, jsonpayload).json() print(resp[data][0][embedding])文字和图片的向量落在同一个空间直接算相似度就能做检索、聚类接上向量数据库就是一套图文搜索系统。⚡ 参数与性能怎么调6 条可操作清单特征张量留在 GPU 上默认情况下多模态特征张量处理完会搬回 CPU 省显存显存够的话启动时加--keep-mm-feature-on-device张量常驻 GPU少一次设备间拷贝延迟直接受益。控制分辨率分辨率越高计算和内存开销越大先按模型的要求降采样多数模型对输入分辨率有明确规格。批处理提吞吐请求可以排队的话就让多个多模态请求攒一批框架会自动合并GPU 利用率更实在。GPU 打底多卡扩展视觉编码器的计算量不小大模型直接多 GPU 或上云部署。挂上监控仓库自带 Prometheus/Grafana 配置边调边看延迟、吞吐和 GPU 占用瓶颈一眼定位。重复请求吃缓存同一批图反复问命中内置缓存就不用重算省时间也省卡。收尾服务一拉起来看图、读视频、图文检索之间只是请求体的差别——选个模型、拷走上面的代码今天就能跑通。想继续深挖仓库里这几处值得看一眼官方视觉 API 文档docs/docs/basic_usage/openai_api_vision.mdx图文嵌入示例脚本examples/runtime/multimodal_embedding.py自定义视觉对话模板examples/chat_template/vision_template_sarashina_vl.jinja视觉服务测试test/registered/vlm/test_vision_openai_server_a.py【免费下载链接】sglangSGLang is a high-performance serving framework for large language models and multimodal models.项目地址: https://gitcode.com/GitHub_Trending/sg/sglang创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考
返回列表