LIMO:上海交大推出高效推理方法,仅需817条训练样本就能激活大语言模型的复杂推理能力

本文涉及的产品
NLP自然语言处理_高级版,每接口累计50万次
NLP 自学习平台,3个模型定制额度 1个月
NLP自然语言处理_基础版,每接口每天50万次
简介: LIMO 是由上海交通大学推出的一种高效推理方法,通过极少量的高质量训练样本激活大语言模型的复杂推理能力。

❤️ 如果你也关注 AI 的发展现状,且对 AI 应用开发非常感兴趣,我会每日分享大模型与 AI 领域的最新开源项目和应用,提供运行实例和实用教程,帮助你快速上手AI技术!

🥦 微信公众号|搜一搜:蚝油菜花 🥦


大家好,我是蚝油菜花,今天跟大家分享一下 LIMO 这个由上海交通大学推出的高效推理方法,仅需817条训练样本就能激活大语言模型的复杂推理能力。

🚀 快速阅读

LIMO 是一种高效的推理方法,旨在通过极少量的高质量训练样本激活大语言模型的复杂推理能力。

  1. 核心功能:仅使用817个精心策划的训练样本,在多个数学推理基准测试中取得显著性能提升。
  2. 技术原理:基于“少即是多推理假设”,利用预训练阶段已编码的领域知识,通过最少但精确组织的认知过程示例来激活复杂的推理能力。

LIMO 是什么

LIMO

LIMO(Less Is More for Reasoning)是上海交通大学研究团队提出的一种高效推理方法。它通过极少量高质量的训练样本激活大语言模型(LLM)的复杂推理能力。核心假设是在预训练阶段已经具备丰富知识基础的模型中,复杂的推理能力可以通过少量但精心设计的训练样本被有效激活。LIMO仅使用817个训练样本,在多个数学推理基准测试中取得了显著的性能提升。

LIMO挑战了传统观点,认为复杂的推理任务需要大量训练数据。相反,LIMO证明了通过极少量但高质量的训练样本,可以实现优越的推理性能。这一发现为未来的推理模型开发提供了新的思路和方向。

LIMO 的主要功能

  • 高效推理激活:LIMO仅使用817个精心策划的训练样本,在多个数学推理基准测试中取得了显著的性能提升。在AIME基准测试中,LIMO的准确率达到了57.1%,在MATH基准测试中达到了94.8%,相比之前的模型分别提升了50.6个百分点和35.6个百分点。
  • 出色的泛化能力:LIMO在10个不同的基准测试中展现了卓越的分布外泛化能力,平均准确率达到了72.8%,相比使用100倍数据训练的模型,LIMO实现了40.5%的绝对性能提升。
  • 验证“少即是多”假设:LIMO的研究提出了“少即是多推理假设”(LIMO Hypothesis),即在基础模型中,当领域知识在预训练阶段已被全面编码时,复杂的推理能力可以通过最少但精确编排的认知过程示范出现。
  • 数据高效性:LIMO仅使用了之前方法所需训练数据的1%,挑战了传统观点认为复杂的推理任务需要大量训练数据的假设。

LIMO 的技术原理

  • 核心假设:LIMO的核心假设是“少即是多推理假设”(LIMO Hypothesis):在基础模型中,当领域知识在预训练中已被全面编码时,可以通过对认知过程的最小但精确组织的示例而出现。假设认为,复杂推理的引发门槛并不固有地受到目标推理任务复杂性的限制,而是由两个关键因素决定:
    • 模型在预训练期间编码的知识基础的完整性:现代基础模型在预训练过程中整合了前所未有数量的数学内容。例如,Llama 2和Llama 3在数学推理方面的训练数据分别达到了1.8T和3.7T代币。
    • 训练后的范例的有效性:这些范例作为“认知模板”展示了模型如何有效运用现有的知识基础来解决复杂的推理任务。
  • 问题定义:LIMO关注于具有可验证答案的推理任务,目标是生成一个答案和一个推理链。
  • 问题选择:选择能促进复杂推理链、多样化思考过程和知识整合的挑战性问题。
  • 推理链构建:收集官方解决方案,补充人类专家和AI专家撰写的解决方案,基于最先进的推理模型生成多样化的解决方法。
  • 训练协议:使用监督微调在LIMO数据集上对大型语言模型进行微调,采用完整参数微调,使用DeepSpeed ZeRO-3优化和FlashAttention-2。

如何运行 LIMO

1. 环境准备

确保安装了所需的依赖库,并配置好环境。可以使用以下命令安装必要的包:

pip install transformers vllm

2. 使用 Hugging Face Transformers

from transformers import AutoModelForCausalLM, AutoTokenizer
import torch

# 初始化模型和分词器
model = AutoModelForCausalLM.from_pretrained(
    "GAIR/LIMO",
    torch_dtype="auto",
    trust_remote_code=True,
    device_map="auto"
)
tokenizer = AutoTokenizer.from_pretrained("GAIR/LIMO", trust_remote_code=True)

# 准备输入消息
messages = [
    {
   "role": "system", "content": "Please reason step by step, and put your final answer within \\boxed{}."},
    {
   "role": "user", "content": "What is the result of 1+1?"}
]

# 格式化输入
text = tokenizer.apply_chat_template(
    messages,
    tokenize=False,
    add_generation_prompt=True
)

# 分词
inputs = tokenizer(text, return_tensors="pt").to(model.device)

# 生成响应
outputs = model.generate(
    **inputs,
    max_new_tokens=32768,
    temperature=0.7,
    top_p=0.95,
    do_sample=True
)

# 解码并打印响应
response = tokenizer.decode(outputs[0][inputs['input_ids'].shape[1]:], skip_special_tokens=True)
print(response)

3. 使用 VLLM

from vllm import LLM, SamplingParams
from transformers import AutoTokenizer

# 初始化模型
llm = LLM(
    model="GAIR/LIMO",
    tensor_parallel_size=4,  # 根据可用GPU调整
    trust_remote_code=True,
    swap_space=60,
    gpu_memory_utilization=0.96,
)

# 准备输入消息
messages = [
    {
   "role": "system", "content": "Please reason step by step, and put your final answer within \\boxed{}."},
    {
   "role": "user", "content": "What is the result of 1+1?"}
]

# 设置分词器
tokenizer = AutoTokenizer.from_pretrained("GAIR/LIMO", trust_remote_code=True)
text = tokenizer.apply_chat_template(
    messages,
    tokenize=False,
    add_generation_prompt=True
)

# 配置生成参数
sampling_params = SamplingParams(
    temperature=0.7,
    max_tokens=32768,
    top_p=0.95,
)

# 生成响应
output = llm.generate(text, sampling_params)
print(output[0].outputs[0].text)

资源


❤️ 如果你也关注 AI 的发展现状,且对 AI 应用开发非常感兴趣,我会每日分享大模型与 AI 领域的最新开源项目和应用,提供运行实例和实用教程,帮助你快速上手AI技术!

🥦 微信公众号|搜一搜:蚝油菜花 🥦

相关文章
|
4天前
|
机器学习/深度学习 人工智能 自然语言处理
PAI Model Gallery 支持云上一键部署 DeepSeek-V3、DeepSeek-R1 系列模型
DeepSeek 系列模型以其卓越性能在全球范围内备受瞩目,多次评测中表现优异,性能接近甚至超越国际顶尖闭源模型(如OpenAI的GPT-4、Claude-3.5-Sonnet等)。企业用户和开发者可使用 PAI 平台一键部署 DeepSeek 系列模型,实现 DeepSeek 系列模型与现有业务的高效融合。
|
4天前
|
人工智能 搜索推荐 Docker
手把手教你使用 Ollama 和 LobeChat 快速本地部署 DeepSeek R1 模型,创建个性化 AI 助手
DeepSeek R1 + LobeChat + Ollama:快速本地部署模型,创建个性化 AI 助手
2009 103
手把手教你使用 Ollama 和 LobeChat 快速本地部署 DeepSeek R1 模型,创建个性化 AI 助手
|
11天前
|
Linux iOS开发 MacOS
deepseek部署的详细步骤和方法,基于Ollama获取顶级推理能力!
DeepSeek基于Ollama部署教程,助你免费获取顶级推理能力。首先访问ollama.com下载并安装适用于macOS、Linux或Windows的Ollama版本。运行Ollama后,在官网搜索“deepseek”,选择适合你电脑配置的模型大小(如1.5b、7b等)。通过终端命令(如ollama run deepseek-r1:1.5b)启动模型,等待下载完成即可开始使用。退出模型时输入/bye。详细步骤如下图所示,轻松打造你的最强大脑。
8599 86
|
1月前
|
供应链 监控 安全
对话|企业如何构建更完善的容器供应链安全防护体系
阿里云与企业共筑容器供应链安全
171370 17
|
1月前
|
供应链 监控 安全
对话|企业如何构建更完善的容器供应链安全防护体系
随着云计算和DevOps的兴起,容器技术和自动化在软件开发中扮演着愈发重要的角色,但也带来了新的安全挑战。阿里云针对这些挑战,组织了一场关于云上安全的深度访谈,邀请了内部专家穆寰、匡大虎和黄竹刚,深入探讨了容器安全与软件供应链安全的关系,分析了当前的安全隐患及应对策略,并介绍了阿里云提供的安全解决方案,包括容器镜像服务ACR、容器服务ACK、网格服务ASM等,旨在帮助企业构建涵盖整个软件开发生命周期的安全防护体系。通过加强基础设施安全性、技术创新以及倡导协同安全理念,阿里云致力于与客户共同建设更加安全可靠的软件供应链环境。
150307 32
|
1天前
|
人工智能 自然语言处理 JavaScript
宜搭上新,DeepSeek 插件来了!
钉钉宜搭近日上线了DeepSeek插件,无需编写复杂代码,普通用户也能轻松调用强大的AI大模型能力。安装后,平台新增「AI生成」组件,支持创意内容生成、JS代码编译、工作汇报等场景,大幅提升工作效率。快来体验这一高效智能的办公方式吧!
900 5
|
3天前
|
API 开发工具 Python
阿里云PAI部署DeepSeek及调用
本文介绍如何在阿里云PAI EAS上部署DeepSeek模型,涵盖7B模型的部署、SDK和API调用。7B模型只需一张A10显卡,部署时间约10分钟。文章详细展示了模型信息查看、在线调试及通过OpenAI SDK和Python Requests进行调用的步骤,并附有测试结果和参考文档链接。
667 5
阿里云PAI部署DeepSeek及调用
|
4天前
|
机器学习/深度学习 人工智能 并行计算
一文了解火爆的DeepSeek R1 | AIGC
DeepSeek R1是由DeepSeek公司推出的一款基于强化学习的开源推理模型,无需依赖监督微调或人工标注数据。它在数学、代码和自然语言推理任务上表现出色,具备低成本、高效率和多语言支持等优势,广泛应用于教育辅导、金融分析等领域。DeepSeek R1通过长链推理、多语言支持和高效部署等功能,显著提升了复杂任务的推理准确性,并且其创新的群体相对策略优化(GRPO)算法进一步提高了训练效率和稳定性。此外,DeepSeek R1的成本低至OpenAI同类产品的3%左右,为用户提供了更高的性价比。
797 10
|
11天前
|
人工智能 自然语言处理 Java
Spring AI,搭建个人AI助手
本期主要是实操性内容,聊聊AI大模型,并使用Spring AI搭建属于自己的AI助手、知识库。本期所需的演示源码笔者托管在Gitee上(https://gitee.com/catoncloud/spring-ai-demo),读者朋友可自行查阅。
939 41
Spring AI,搭建个人AI助手
|
2天前
|
JavaScript 前端开发 API
低代码+阿里云部署版 DeepSeek,10 分钟速成编剧大师
阿里云部署版DeepSeek重磅发布,钉钉宜搭低代码平台已首发适配,推出官方连接器。用户可轻松调用DeepSeek R1、V3及蒸馏系列模型。通过宜搭低代码技术,结合DeepSeek大模型,仅需10分钟即可制作编剧大师应用。
323 18

热门文章

最新文章