小模型,大用途!用于结构化输出的小型语言模型

简介: 小型语言模型(SLM)通常被用于端侧推理,搜索推荐query改写这类对于资源要求低,大规模并发时延要求高的场景

01.引言

小型语言模型(SLM)通常被用于端侧推理,搜索推荐query改写这类对于资源要求低,大规模并发时延要求高的场景。

Osmosis-Structure-0.6B探索了新的场景,基于Qwen3-0.6B,专门设计了一个用于生成结构化输出的小型语言模型(SLM)。尽管其参数规模仅为0.6B,在该模型在于支持框架配合使用时,在提取结构化信息方面表现出色。

该模型的训练方法为在训练的过程中利用结构化输出,迫使模型仅关注推理引擎声明的每个键的值,显著提升了模型在各种领域(尤其是数学推理和复杂问题解决中)生成良好的,结构化回复的能力。

https://live.csdn.net/v/483284

 

 

02.模型效果

研究团队评估了 osmosis 增强的结构化生成在具有挑战性的数学推理基准测试中的有效性。以下结果展示了通过 osmosis 增强的结构化输出在不同模型家族中实现的显著性能提升 Osmosis-Structure-0.6B。

Math DAPO 17K 数据集

模型

结构化输出

结构化 w/ Osmosis

性能提升

Claude 4 Sonnet

15.52%

69.40%

+347%

Claude 4 Opus

15.28%

69.91%

+357%

GPT-4.1

10.53%

70.03%

+565%

OpenAI o3

91.14%

94.05%

+2.9%

表 1: 在 Math DAPO 17K 上的表现

 

AIME 1983-2024 数据集

模型

结构化输出

结构化 w/ Osmosis

性能提升

Claude 4 Sonnet

16.29%

62.59%

+284%

Claude 4 Opus

22.94%

65.06%

+184%

GPT-4.1

2.79%

39.66%

+1322%

OpenAI o3

92.05%

93.24%

+1.3%

表 2: 在 AIME 1983-2024 上的表现

 

这些评估表明,thinking模式下的模型,会提升模型的效果,而且我们使用SLM,可以保持thinking模型的输出转化为标准的结构化。

03.模型训练

Osmosis-Structure-0.6B 是基于 Qwen3-0.6B 构建的。开发团队首先使用随机生成文本及其 JSON 解释的 10 个样本来建立基线格式。然后,我们将强化学习应用于大约 500,000 个 JSON 到自然语言对的例子,这些例子包括带有最终输出的推理轨迹或带有预期结构化格式的自然语言输出。

 

开发团队使用了 verl(https://github.com/volcengine/verl) 作为训练模型的框架,并使用 SGLang(https://github.com/sgl-project/sglang) 作为 rollout 后端。为了实现结构化训练,修改了 verl 代码库的部分内容,以便将 每个样本的 schema 传递到训练数据中。

模型链接:

https://modelscope.cn/models/osmosis-ai/Osmosis-Structure-0.6B

04.使用方式

从魔搭社区下载模型:

modelscope download osmosis-ai/Osmosis-Structure-0.6B --local_dir ./Osmosis-Structure-0.6B

image.gif

推荐使用像 SGLang 这样的引擎来服务模型。要启动服务,请运行以下命令:

import json
from openai import OpenAI
api_key = "osmosis"
api_base_url = "http://0.0.0.0:30000/v1"
client = OpenAI(
    api_key=api_key,
    base_url=api_base_url,
)
# Schema for extracting structured output from reasoning traces
json_schema = json.dumps(
    {
        "type": "object",
        "properties": {
            "answer": {"type": "string"}
        },
        "required": ["answer"]
    }
)
# You can also dump pydantic models to json schema as well
# Example reasoning trace input
reasoning_trace = """
Problem: Solve for x in the equation 2x + 5 = 13
Let me work through this step by step:
First, I need to isolate the term with x. I'll subtract 5 from both sides:
2x + 5 - 5 = 13 - 5
2x = 8
Next, I'll divide both sides by 2 to solve for x:
2x ÷ 2 = 8 ÷ 2
x = 4
Let me verify this answer by substituting back into the original equation:
2(4) + 5 = 8 + 5 = 13 ✓
Ok, which means I got the correct answer, and I'm confident about my answer.
"""
response = client.chat.completions.create(
    model="osmosis-ai/Osmosis-Structure-0.6B",
    messages=[
        {
            "role": "system",
            "content": f"You are a helpful assistant that understands and translates text to JSON format according to the following schema. {json_schema}"
        },
        {
            "role": "user", 
            "content": reasoning_trace,
        },
    ],
    temperature=0,
    max_tokens=512,
    response_format={
        "type": "json_schema",
        "json_schema": {"name": "reasoning_extraction", "schema": json.loads(json_schema)},
    },
)
print(json.dumps(response.choices[0].message.content, indent=2))

image.gif

Ollama

ollama运行

ollama run modelscope.cn/osmosis-ai/Osmosis-Structure-0.6B

image.gif

注:ollama直接推理,不设置system prompt,结构化输出不稳定,也会有非常精简的输出。

或者使用ollama的推理代码

from ollama import chat
from modelscope import snapshot_download
from pydantic import BaseModel
class Answer(BaseModel):
  answer: int
reasoning_trace = """
Problem: Solve for x in the equation 2x + 5 = 13
Let me work through this step by step:
First, I need to isolate the term with x. I'll subtract 5 from both sides:
2x + 5 - 5 = 13 - 5
2x = 8
Next, I'll divide both sides by 2 to solve for x:
2x ÷ 2 = 8 ÷ 2
x = 4
Let me verify this answer by substituting back into the original equation:
2(4) + 5 = 8 + 5 = 13 ✓
Ok, which means I got the correct answer, and I'm confident about my answer.
"""
response = chat(
  messages=[
    {
        "role": "system",
        "content": f"You are a helpful assistant that understands and translates text to JSON format according to the following schema. {Answer.model_json_schema()}"
    },
    {
      'role': 'user',
      'content': reasoning_trace,
    }
  ],
  model=snapshot_download("osmosis-ai/Osmosis-Structure-0.6B"),
  format=Answer.model_json_schema(),
)
answer = Answer.model_validate_json(response.message.content)
print(answer)

image.gif

 

点击 链接,即可跳转链接~

https://modelscope.cn/models/osmosis-ai/Osmosis-Structure-0.6B

目录
相关文章
|
机器学习/深度学习 监控 算法
yolov8+多算法多目标追踪+实例分割+目标检测+姿态估计(代码+教程)
yolov8+多算法多目标追踪+实例分割+目标检测+姿态估计(代码+教程)
|
2月前
|
Kubernetes 应用服务中间件 nginx
Kubernetes (K8s) 从入门到实战:命名空间、Pod、Controller、Service,图文并茂
本文是K8s初学者的实战笔记,系统讲解命名空间(隔离资源、环境划分、权限控制)、Pod(最小调度单元、多容器、标签、生命周期、探针、资源限制)、控制器(Deployment灰度发布/回滚、StatefulSet/Job/DaemonSet)及Service(ClusterIP/NodePort、负载均衡、多端口)等核心概念与操作,附带丰富命令示例和原理剖析。
Kubernetes (K8s) 从入门到实战:命名空间、Pod、Controller、Service,图文并茂
|
机器学习/深度学习 数据采集 并行计算
面壁小钢炮MiniCPM 4.0开源,端侧推理常规提速5倍!
面壁智能重磅推出MiniCPM 4.0 ——一个极致高效的端侧大模型,通过其 CPM.cu 自研推理框架,可实现220倍极致的速度提升,5 倍常规提速。
1793 14
|
网络协议 网络安全 数据安全/隐私保护
windocs连接麒麟桌面---vnc软件
windocs连接麒麟桌面---vnc软件
1624 0
|
人工智能 自然语言处理 API
研究大模型门槛太高?不妨看看小模型SLM,知识点都在这
大型语言模型(LLM)在文本生成、问答等领域表现出色,但也面临资源受限环境应用难、领域知识不足及隐私问题等挑战。为此,小型语言模型(SLM)逐渐受到关注,其具备低延迟、成本效益高、易于定制等优点,适合资源受限环境和领域知识获取。SLM可通过预训练、微调和知识蒸馏等技术增强性能,在自然语言处理、计算机视觉等领域有广泛应用潜力。然而,SLM也存在复杂任务表现有限等问题,未来研究将进一步提升其性能与可靠性。 论文链接:https://arxiv.org/abs/2411.03350
827 5
|
7月前
|
人工智能 自然语言处理 监控
企业有哪些agent应用场景(2026年新版)
阿里云瓴羊推出企业级AI Agent解决方案,整合Quick Audience(智能营销)、Quick Service(情感化服务)、Quick BI(对话式BI)与Dataphin(自动驾驶数据治理),打通数据孤岛与业务断点,构建安全可控、跨场景协同的“数字员工团队”,赋能企业智能化升级。(239字)
|
8月前
|
人工智能 自然语言处理 搜索推荐
企业有哪些agent应用场景
随着大模型成熟,AI智能体(Agent)加速落地企业五大核心场景:营销、客服、数据分析、运营与电商。瓴羊基于“AgentOne”平台,打造Quick Audience、Quick Service等系列Agent产品,深度融合业务与数据,推动Agent从“可用”迈向“好用”“必用”,重塑企业生产力结构。(239字)
|
测试技术 Docker 容器
使用Docker构建多环境应用:开发、测试、生产环境
Docker已经成为了现代应用程序开发和部署的核心工具之一。通过使用Docker,开发团队可以轻松地在不同的环境中构建、测试和部署应用程序,从而提高开发速度和应用程序的可移植性。本文将介绍如何使用Docker构建多环境应用,包括开发、测试和生产环境,并提供丰富的示例代码,以帮助大家轻松应对不同环境的挑战。
|
8月前
|
存储 人工智能 JSON
从入门到实践:不懂代码也能微调大模型,普通人AI进阶指南
本文详解大模型微调:为何需要(让AI更懂你)、原理何在(参数微调如“专项特训”)、如何实操(四步完成数据准备→云端训练→参数配置→效果评估),并指出工具平民化正使个性化AI触手可及。(239字)
987 4
|
9月前
|
安全 API 流计算
Microsoft Teams、Zalo 接入背后的 Channel 架构演进
Clawdbot 于2026年1月两周内极速集成Teams、Zalo、Telegram——得益于革命性hannel插件化架构:告别单体耦合,通过标准化接口+动态加载,新平台接入仅需300行代码、零改核心。生态已启,质量与安全规范亟待共建。
903 1