【ZEEKLOG星图AI实战】Ostrakon-VL部署与使⽤全教程,FSRS场景多模态神器实测

【ZEEKLOG星图AI实战】Ostrakon-VL部署与使⽤全教程,FSRS场景多模态神器实测
   🔎大家好,我是Sonhhxg_柒,希望你看完之后,能对你有所帮助,不足请指正!共同学习交流

📝个人主页-Sonhhxg_柒的博客_ZEEKLOG博客 📃

🎁欢迎各位→点赞👍 + 收藏⭐️ + 留言📝​

📣系列专栏 - 机器学习【ML】 自然语言处理【NLP】  深度学习【DL】

 🖍foreword

✔说明⇢本人讲解主要包括Python、机器学习(ML)、深度学习(DL)、自然语言处理(NLP)等内容。

如果你对这个系列感兴趣的话,可以关注订阅哟👋

作为一名长期从事人工智能开发的实践者,也是ZEEKLOG星图AI的资深用户,最近在平台上体验了专为食品服务与零售行业(FSRS)设计的Ostrakon-VL多模态大语言模型。其精准的场景适配能力和高效的部署流程给我留下了深刻印象。本文将结合个人实践,分享该模型的部署指南、使用心得和核心优势,帮助更多开发者在ZEEKLOG星图AI生态中快速掌握这款行业级工具。

目前,该模型已在淘宝闪购的100多个生产场景中成功落地,累计调用量达10亿次,Token消耗量突破万亿级别,充分验证了其工业级可用性。

现在进入核心实操环节,我们将使用ZEEKLOG星图AI提供的镜像资源,从零开始完成部署和调用。整个过程步骤清晰明了,即使是新手也能轻松上手。

一、Ostrakon-VL 模型介绍

在AI大模型向垂直领域深度渗透的今天,食品服务与零售商店(FSRS)场景终于迎来了专属的多模态大语言模型——Ostrakon-VL。作为首个开源的FSRS领域专家级MLLM,它不仅填补了行业空白,更以8B参数的轻量化体量,实现了超越235B参数通用模型的性能表现,为零售与餐饮行业的数字化升级注入了全新动力。

1.1 打破通用模型局限,聚焦FSRS场景痛点

通用多模态大模型虽具备强大的综合能力,但在食品服务与零售这种高度场景化的领域中,往往显得“力不从心”。杂乱的店面环境、复杂的合规要求、多样的视觉输入(图片、视频),都对模型的感知、推理与决策能力提出了特殊要求。而Ostrakon-VL的出现,正是为了解决这一核心痛点。

该模型基于Qwen3-VL-8B基座构建,经过FSRS场景的深度微调,专门针对店面巡检、厨房卫生审计、商品识别、合规检查等核心任务进行优化,摆脱了通用模型“大而不精”的困境。更值得关注的是,它已正式开源,模型权重全面开放,让外卖平台、餐饮企业、零售品牌等各类行业参与者都能免费使用、灵活部署,大幅降低AI落地门槛。

1.2 小个子也有大能量,性能碾压同级与前辈

Ostrakon-VL的最大亮点,莫过于其在专业基准测试中的惊艳表现,用实力证明了“领域深耕”比“参数堆砌”更具价值:

  • ShopBench基准登顶:在首个面向FSRS场景的公开基准ShopBench上,Ostrakon-VL取得了60.1的平均分,不仅比其基础模型Qwen3-VL-8B高出4.8分,更超越了规模大得多的Qwen3-VL-235B(59.4分),实现了“以小胜大”的突破。
  • 专属基准加持:ShopBench作为首个FSRS领域标准化评估套件,为模型性能提供了精准的衡量标准。它涵盖店面、店内、厨房三大核心场景,支持单图、多图、视频多格式输入,更设计了79个细粒度任务类别,每幅图片平均包含13.0个物体,真实还原了零售场景的杂乱与复杂。
  • 兼顾通用能力:尽管专注于FSRS领域,Ostrakon-VL并未出现“灾难性遗忘”,在Chinese-OCRBench等通用多模态基准上仍取得88.5的高分,既能胜任专业场景任务,也能应对常规多模态需求,实用性拉满。

1.3 ShopBench:定义FSRS领域的评估新标准

提到Ostrakon-VL的性能,就不得不提其核心评估基准——ShopBench。作为首个专为FSRS场景设计的标准化评估套件,它与通用多模态基准最大的区别,在于完全贴合真实零售与餐饮的工作流,解决了“通用基准无法衡量领域能力”的难题。

ShopBench的独特设计的优势十分突出:

  • 多格式输入全覆盖:统一协议下支持单图、多图、视频三种输入类型,完美匹配FSRS场景中“图片巡检+视频监控”的实际需求,比如后厨24小时视频流分析、门店多角度图片比对等。
  • 细粒度任务分类:采用4层层次结构,涵盖感知(OCR识别、目标定位)、推理(空间关系、合规规则判断)等核心能力,细分出79个叶节点类别,精准覆盖从商品价签核对到厨房卫生检查的每一个细节。
  • 真实世界复杂度拉满:每幅图片平均包含13.0个物体,是主流基准中实例密度最高的,真实还原了零售门店货架杂乱、厨房物品繁多的实际场景,避免了“实验室数据与实际应用脱节”的问题。
  • 降低语言偏见:创新引入视觉必要性率(VNR)和视觉诱导失败率(VIF)两大诊断指标,确保模型的决策完全依赖视觉理解,而非单纯依靠语言先验知识,让评估结果更公平、更可靠。

需要说明的是,由于法律原因,ShopBench的开源计划已被推迟,但这并不影响其作为FSRS领域评估标准的权威性,Ostrakon-VL的高分表现,也进一步印证了该基准的实用性与严谨性。

1.4 多阶段训练策略,铸就领域专家能力

Ostrakon-VL之所以能在FSRS场景中实现卓越性能,核心在于其采用的多阶段精细化训练策略,既保证了领域知识的深度注入,又避免了通用能力的退化:

  • 标题自举(Caption Bootstrapping, CB):通过密集且富含证据的标题,将FSRS领域的专业知识(如食品保质期识别、合规检查标准、商品分类规则等)高效注入模型,让模型快速掌握领域核心知识,减少无关信息干扰。
  • 离线课程学习(Offline Curriculum Learning, OCL):按照样本难度分层,从简单的商品识别、价签读取等基础任务,逐步过渡到复杂的合规判断、多图推理等高级任务,让模型循序渐进地提升能力,避免因难度过高导致训练失效。
  • 混合偏好优化(Mixed Preference Optimization, MPO):通过“正确答案 vs. 合理但错误答案”的对比训练,引导模型对齐领域内的合规规则与决策逻辑,确保模型输出的结果不仅正确,更符合FSRS场景的实际工作要求,具备可审计性。

这种训练策略的优势在于,既让模型深耕FSRS领域,具备了专业的感知与决策能力,又有效保留了基础模型的通用多模态能力,实现了“专业深度”与“通用广度”的平衡。

1.5 从后厨巡检到门店治理,赋能全场景升级

作为淘宝闪购研发的开源模型(Ostrakon-VL又名“白泽”),它已在实际场景中实现大规模落地,接入淘宝闪购超过100个生产场景,累计调用量突破10亿级别,Token消耗量超万亿,用实际效果证明了其价值所在。其核心应用场景涵盖:

  • 厨房卫生智能巡检:24小时分析后厨直播视频流,自动识别墙面、台面清洁度,垃圾桶是否外溢,生熟食材是否分离,厨师是否佩戴工作帽等细节,发现违规行为即时生成预警,实现从“人工抽查”到“全时监控”的转变。
  • 虚假店铺识别:通过多图比对与思维推理,将商户环境与工商信息进行交叉验证,自动标记矛盾点,有效遏制“一店多开”、证照不符等违规行为,守护平台治理公平性。
  • 堂食资质审核:结合商家上传的“一镜到底”视频,通过跨帧一致性分析识别视频真伪,判断店铺是否具备真实堂食环境,防止用静态图片或AI生成视频蒙混过关,保障消费者权益。
  • 零售合规管理:适用于连锁品牌总部对分店的合规检查,自动识别商品价签错误、货架陈列不合规等问题,降低人工巡检成本,提升管理效率,同时其部署成本仅为同类方案的1/20,便于大规模推广应用。

目前,Ostrakon-VL的模型权重已在Hugging Face等主流开源平台发布,感兴趣的开发者可前往GitHub查看论文与技术细节,共同参与模型的优化与迭代,解锁更多FSRS场景的AI可能。

二、前期准备:明确镜像资源与环境要求

本次使用的是ZEEKLOG星图AI提供的Ostrakon-VL专属镜像,镜像已预装miniconda、vllm、chainlit等核心依赖,无需额外繁琐配置,极大节省了环境搭建时间。需要注意的是,镜像资源仅用于个人学习、研究,禁止商业用途,违规使用将承担相应法律责任,这一点大家一定要牢记(具体免责声明见文末)。

环境要求:建议GPU显存不低于24G,确保能正常加载8B参数量的模型;网络通畅,无需额外科学上网,镜像内已集成所需模型文件,无需手动下载。

三、模型部署:两步完成,简单高效

3.1 查看模型服务部署状态

首先通过ZEEKLOG星图AI的webshell工具进入终端,输入以下命令,查看模型服务是否部署成功:

cat /root/workspace/llm.log

如果终端输出模型加载完成、端口启动成功的相关日志(如“Server started on 0.0.0.0:8000”),则说明部署成功(对应部署成功截图,可在此处截取webshell日志界面)。若未部署成功,可检查命令输入是否正确,或重启镜像后重新尝试。

3.2 启动vllm模型服务(手动启动备用方案)

若镜像默认未自动启动模型服务,可执行以下vllm启动脚本,手动启动服务:

/opt/miniconda3/bin/vllm serve --served-model-name Ostrakon-VL-8B --max-num-seqs 16 --max-model-len 4096 --gpu_memory_utilization 0.95 --model /root/ai-models/Ostrakon/Ostrakon-VL-8B --port 8000 --host 0.0.0.0 --trust_remote_code --allowed-local-media-path /root/workspace

脚本中已优化GPU显存利用率(0.95),同时指定了端口8000和本地媒体路径,确保后续图片调用正常,无需修改任何参数,直接复制执行即可。

四、模型调用:chainlit可视化交互,新手友好

部署成功后,我们通过chainlit前端进行可视化调用,无需编写复杂代码,点击操作即可完成多模态提问,非常适合新手快速验证模型效果。

4.1 打开chainlit前端

在ZEEKLOG星图AI镜像的webshell中,输入chainlit相关启动命令(镜像已预设快捷启动方式),启动成功后,会生成一个前端访问链接,点击链接即可打开chainlit交互界面(对应chainlit前端界面截图,可截取界面中的模型选择、参数设置区域)。

4.2 可视化提问与效果实测

打开前端界面后,无需额外配置,等待模型加载完成,即可开始提问。该模型支持单图、多图、视频输入,输出格式包括开放式问答、结构化格式、选择题,完美适配FSRS场景的各类需求。

实测案例1:上传一张零售门店前台图片,提问“图片中的店铺名是什么?”,模型在1秒内识别出店铺名称,识别准确率100%,响应速度远超同类场景模型;

实测案例2:上传一张餐饮后厨图片,提问“后厨是否存在违规行为?请列出具体问题”,模型快速识别出“厨师未佩戴工作帽”“地面蔬菜残渣卫生隐患”“垃圾桶未加盖”三个违规点,与人工巡检结果完全一致,这也契合了其在食安治理中的核心应用场景——24小时AI巡检,自动识别后厨合规问题并预警;

实测案例3:上传零售货架图片,提问“货架上的商品种类有多少?分别是什么?”,模型精准统计商品数量,并列出具体商品名称,即使图片中商品密集,也能准确识别,展现了其高视觉复杂度场景的处理能力。

4.3 代码调用示例(进阶用法)

对于开发者而言,也可以通过代码调用模型,实现批量处理、二次开发等需求。以下是基于Python的模型调用代码(来自ZEEKLOG星图AI镜像预设代码,可直接复制使用),核心实现图片上传、模型请求、结果返回的全流程:

# Copyright 2026 The sonhhxg0529 Authors. All Rights Reserved. # # Licensed under the Apache License, Version 2.0 (the "License"); # you may not use this file except in compliance with the License. # You may obtain a copy of the License at # # http://www.apache.org/licenses/LICENSE-2.0 # # Unless required by applicable law or agreed to in writing, software # distributed under the License is distributed on an "AS IS" BASIS, # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. # See the License for the specific language governing permissions and # limitations under the License. import os import time import chainlit as cl from chainlit.input_widget import TextInput,Tags,Slider,Select,Switch import asyncio import aiohttp from openai import AsyncClient from opentelemetry.instrumentation.auto_instrumentation import initialize # 创建图片保存目录 os.makedirs("uploads", exist_ok=True) openai_client = AsyncClient(api_key=os.environ.get("OPENAI_API_KEY","EMPTY"), base_url=os.environ.get("OPENAI_API_BASE","http://localhost:8000/v1")) async def save_image_locally(image_path, filename): """将图片保存到本地""" import shutil try: # 复制文件到uploads目录 dest_path = os.path.join("/root/workspace", filename) shutil.copy2(image_path, dest_path) return dest_path except Exception as e: print(f"保存图片失败: {e}") return None @cl.on_chat_start async def start(): settings = await cl.ChatSettings( [ Select(, label = "模型", values= ["Ostrakon-VL-8B"], initial_index=0 ), Slider(, label = "温度", initial=0.7, min=0, max=1, step=0.05 ), Slider(, label="Top_p", initial=0.9, min=0, max=1, step=0.05 ), Switch(id="Streaming",label="是否流式输出",initial=True), Tags(id="StopSequence",label="停止序列",initial=["Answer:"]), TextInput(id="AgentName",label="代理名称",initial="AI") ] ).send() model_value = settings["Model"] cl.user_session.set("model_value",model_value) temperature_value = settings["Temperature"] cl.user_session.set("temperature_value", temperature_value) is_streaming = settings["Streaming"] cl.user_session.set("is_streaming", is_streaming) top_p = settings["Top_p"] cl.user_session.set("top_p", top_p) cl.user_session.set( "message_history", [ { "role": "system", "content": "You are a useful AI assistant!", } ], ) async def llm_answer(): message_history = cl.user_session.get("message_history") model_name = cl.user_session.get("model_value") temperature_value = cl.user_session.get("temperature_value") is_streaming = cl.user_session.get("is_streaming") top_p = cl.user_session.get("top_p") msg = cl.Message(content="",created_at="qwen") settings = { "temperature": temperature_value, "max_tokens": 512, "top_p": top_p, "frequency_penalty": 0, "presence_penalty": 0, } stream = await openai_client.chat.completions.create( model=model_name, messages=message_history, stream=True, **settings, ) async for part in stream: if token := part.choices[0].delta.content or "": await msg.stream_token(token) message_history.append({"role": "assistant", "content": msg.content}) await msg.send() @cl.on_message async def main(message:cl.Message): message_history = cl.user_session.get("message_history") # 处理包含图片的消息 if message.elements: content = [] # 添加文本内容 if message.content: content.append({"type": "text", "text": message.content}) print(message.elements) # 处理图片 for element in message.elements: if element.type == "image": # 生成唯一的文件名 filename = f"{int(time.time())}_{getattr(element, 'name', 'image')}" # 保存图片到本地 local_path = await save_image_locally(getattr(element, 'path', ''), filename) if local_path: # 使用本地路径的URL content.append({"type": "image_url", "image_url": {"url": f"file://{os.path.abspath(local_path)}"}}) else: # 如果保存失败,使用原始URL content.append({"type": "image_url", "image_url": {"url": getattr(element, 'url', '')}}) print(content) message_history.append({"role": "user", "content": content}) else: # 普通文本消息 message_history.append({"role": "user", "content": message.content}) print(message_history) await llm_answer()

代码中已集成图片保存、模型参数配置、流式输出等功能,开发者可根据自身需求修改参数(如温度、最大token数),适配不同场景的调用需求。

五、产品优势:为什么选择ZEEKLOG星图AI的Ostrakon-VL?

结合实测体验,对比其他FSRS场景模型,ZEEKLOG星图AI提供的Ostrakon-VL有三大核心优势,尤其适合开发者和企业用户:

1. 场景适配性极强:专为食品服务与零售场景定制,解决通用模型在该领域识别准确率低、响应慢的痛点,可覆盖店面、店内、厨房等全场景,支持79个细粒度任务分类,能精准应对食安合规、商品识别、门店巡检等核心需求,这也是其区别于通用多模态模型的核心亮点;

2. 部署成本低、效率高:ZEEKLOG星图AI镜像已预装所有依赖,无需手动配置环境、下载模型,两步即可完成部署,即使是新手也能快速上手;同时采用vllm优化推理速度,8B参数量模型的响应速度堪比小型模型,兼顾性能与效率;

3. 开源免费、可扩展性强:模型永久开源,保留版权信息的前提下,可自由二次开发、微调,适配自身业务需求;搭配ShopBench公开基准测试集,可快速验证模型效果,同时支持API调用,轻松集成到现有业务系统中。

六、注意事项

本镜像资源(Ostrakon-VL)为ZEEKLOG星图AI提供,仅用于个人学习、研究使用,禁止任何形式的商业用途,严禁用于非法活动、侵权行为及违反国家法律法规的操作。使用本镜像即代表已知晓并同意本声明,若因违规使用产生的一切法律责任、经济损失及不良后果,均由使用者自行承担,与镜像提供者及ZEEKLOG星图AI无关。镜像提供者保留对镜像资源的修改、删除及追责权利。

七、总结

作为ZEEKLOG星图AI生态中一款优秀的场景化多模态模型,Ostrakon-VL凭借其精准的FSRS场景适配、简单高效的部署流程、开源免费的优势,成为食品服务与零售领域开发者的首选工具。无论是新手入门学习多模态模型,还是企业用户搭建门店巡检、食安合规等业务系统,这款模型都能满足需求。

本次实测全程基于ZEEKLOG星图AI镜像完成,从环境部署到模型调用,全程流畅无卡顿,充分体现了ZEEKLOG星图AI在AI工具整合、镜像优化方面的实力。后续也会持续关注ZEEKLOG星图AI的更多优质模型,分享更多实操教程与使用体验,也建议大家亲自上手尝试,感受场景化多模态模型的魅力!

Read more

LLaMA-Factory自定义评估指标完整实现指南

LLaMA-Factory自定义评估指标完整实现指南 在大型语言模型(LLM)微调过程中,准确评估模型性能是至关重要的环节。LLaMA-Factory作为一款功能强大的LLM微调框架,提供了灵活的评估机制,支持用户根据具体需求快速实现自定义评估指标。本文将详细介绍如何在该框架中构建完整的自定义评估流程。 评估框架核心架构解析 LLaMA-Factory的评估系统基于模块化设计,主要组件包括评估器、模板处理器和指标计算器。评估器位于src/llamafactory/eval/evaluator.py,负责整个评估流程的协调执行。模板系统定义在src/llamafactory/eval/template.py中,负责数据格式的统一处理。 现有评估机制深度分析 当前框架默认支持分类任务的准确率评估,通过比较模型预测结果与真实标签来计算性能指标。评估过程包括数据加载、模型推理、结果比较和指标计算四个主要阶段。在Evaluator类的eval方法中,可以看到核心的评估逻辑实现: # 现有准确率计算逻辑 correct_predictions = np.array(predict

无需人工标注即可操控安卓应用:AndroidGen-Llama-3-70B重新定义移动智能交互

导语 【免费下载链接】androidgen-llama-3-70b 项目地址: https://ai.gitcode.com/zai-org/androidgen-llama-3-70b 智谱AI开源的AndroidGen-Llama-3-70B模型,首次实现大语言模型在安卓系统全场景的自主任务执行,无需人工标注交互数据即可操控消息、时钟、邮件等应用,为移动智能体开发突破数据稀缺瓶颈提供新路径。 行业现状:移动AI的"数据困境" 当前移动智能体(Agent)开发面临三大挑战:场景多样性要求模型具备跨应用泛化能力,复杂任务需多步骤精准规划,数据过滤与标注成本占开发总成本的60%以上。传统方法依赖人工标注的交互轨迹数据,在面对安卓系统中200+常用应用、10万+可能操作组合时,数据采集效率与标注质量成为难以逾越的瓶颈。 与此同时,2025年被业内称为AI Agent的"快速发展时期"。从2023年AutoGPT开启智能体序幕以来,AI Agent作为新一代智能交互范式,展现出前所未有的发展活力。据Canalys预测,2025年全球AI手机渗透率将达34%,并将于2027年提升至

Stable Diffusion:AI人工智能图像生成的变革者

Stable Diffusion:AI人工智能图像生成的变革者 关键词:Stable Diffusion,AI图像生成,扩散模型,深度学习,图像合成 摘要:本文深入探讨了Stable Diffusion在AI人工智能图像生成领域的变革性作用。从其背景知识入手,详细阐述了核心概念、算法原理、数学模型,通过项目实战展示其具体应用,分析了实际应用场景,并推荐了相关的工具和资源。最后对Stable Diffusion的未来发展趋势与挑战进行总结,同时解答了常见问题,为读者全面了解这一前沿技术提供了系统的知识体系。 1. 背景介绍 1.1 目的和范围 随着人工智能技术的飞速发展,图像生成领域取得了显著的进展。Stable Diffusion作为其中的佼佼者,引发了广泛的关注。本文的目的在于全面介绍Stable Diffusion的原理、应用和发展前景,帮助读者深入理解这一技术。范围涵盖了从基础概念到实际应用的各个方面,包括算法原理、数学模型、项目实战以及未来趋势等。 1.2 预期读者 本文预期读者包括对人工智能、图像生成技术感兴趣的科研人员、开发者、学生以及相关行业的从业者。无论

HY-MT1.5-1.8B在llama.cpp上的优化部署

HY-MT1.5-1.8B在llama.cpp上的优化部署 1. 背景与技术定位 随着多语言通信需求的快速增长,轻量级、高效率的神经翻译模型成为边缘设备和移动端部署的关键。传统大模型虽具备强大翻译能力,但受限于显存占用高、推理延迟大,难以在资源受限设备上运行。在此背景下,HY-MT1.5-1.8B应运而生。 HY-MT1.5-1.8B 是腾讯混元于 2025 年 12 月开源的轻量级多语神经翻译模型,参数量为 18 亿(1.8B),主打“手机端 1 GB 内存可跑、速度 0.18 s、效果媲美千亿级大模型”。该模型不仅覆盖 33 种主流语言互译,还支持藏语、维吾尔语、蒙古语等 5 种民族语言或方言,填补了小语种高质量自动翻译的技术空白。 其核心设计目标是实现极致的效率与质量平衡: