杉数发布首个开源运筹学大模型ORLM,效果超越GPT-4

ORLM: Training Large Language Models for Optimization Modeling


在智能决策支持领域,运筹学是关键的技术手段之一。近年来AI得到快速发展,但是在线性规划等领域,主要还是应用运筹优化技术。大模型在NLP、CV等领域得到了快速的发展,不过目前与运筹优化的的融合仍然较少。


杉树是国内领先运筹优化服务提供商,为了结合运筹优化和大模型的能力,提出了首个开源运筹学大模型ORLM,并开源了对应的数据集和评估基准,为大模型在智能决策领域落地提供支持。

论文地址:https://arxiv.org/pdf/2405.17743

Github地址:https://github.com/Cardinal-Operations/ORLM

HuggingFace地址https://huggingface.co/CardinalOperations/ORLM-LLaMA-3-8B


摘要


本文提出了一种针对复杂运筹学问题的解决方案——使用大型语言模型(LLMs)进行自动化优化建模。然而,现有方法依赖于专有LLMs的快速工程,存在数据隐私问题,不适用于工业应用。本文提出了使用开源LLMs进行优化建模的方法,并设计了OR-INSTRUCT,一个针对特定需求创建合成数据的半自动化过程。同时,本文还介绍了IndustryOR基准测试,这是第一个用于测试LLMs解决实际运筹学问题的工业基准测试。最终,本文的方法在NL4OPT、MAMO和IndustryOR基准测试中取得了最先进的性能。



简介


大型语言模型(LLMs)在自动化优化建模方面发挥着重要作用,能够解决复杂的运筹学问题。应用LLMs可以提高物流、医疗、金融等行业的决策效率,尤其在处理动态和不确定情况时具有优势。研究表明,使用LLMs直接生成数学模型可以取得突破性进展,但目前仍然依赖专有LLMs,存在数据隐私问题。


训练开源LLMs用于优化建模,需要满足四个关键要求:覆盖各种场景、问题类型和难度;反映目标和约束的变化;适应不同客户的语言多样性;包含多种建模技术。数据收集具有挑战性,因为私人工业案例中的数据很难满足这些要求。


本文设计并实施OR-INSTRUCT,一个半自动化的过程,用于创建符合特定要求的合成数据。该过程使用迭代的自举算法,收集种子行业案例并扩展数据池,通过扩展和增强训练数据池来生成更多样化的数据。最终,通过过滤低质量数据,生成适用于实际工业的优化建模的开源LLMs,取得了在基准测试中的最佳表现。


背景和需求


运筹优化模型定义


运筹优化(OR)是指将现实世界的问题进行数学建模,概念化为形式目标和约束。求解运筹优化模型需要将数学模型转换为求解器可以理解的程序。目标是在一定约束的情况下,从一组可行解中找到最优解。


任务模型通常表示成三元组(p, m, c)的形式。该任务的OR模型f一般是学习一个映射f: p→(m, c)。在示例中,我们使用COPT作为默认解算器,在实际使用时,可以使用任何其他成熟的求解器。


训练用于运筹优化的LLM


理想情况下,训练有素的OR LLM应该是有效的,健壮的,并适用于现实世界的场景。为了提高泛化程度,我们期望LLM满足一下需求:


期望1 全面覆盖:数据集应涵盖:1)供应链优化、调度、库存管理、运输物流等多种场景;2)不同的问题类型,如线性规划、整数规划和混合整数规划;3)不同的难度等级(简单、中等、困难)。


期望2 环境适应性:在现实世界的工业环境中,问题的目标和约束经常由于业务目标、市场条件或资源的变化而改变。数据集应该包含反映这些动态变化的案例。


期望3 语言多样性:用自然语言描述的问题往往表现出不同的语法、歧义和复杂性。例如,一个问题可能提到“库存溢出”,而另一个问题可能提到“库存过剩”。将这种语言多样性纳入数据集可以提高模型理解不同描述的能力。


期望4 解决方案可变性:对于一些具有挑战性的问题,可能存在多种建模技术,例如通过引入辅助变量对非线性问题进行线性化。在数据集中包含这种多样性允许模型学习不同的建模技术和方法。


OR-INSTRUCT:训练高效的运筹优化LLMS


数据集对于模型训练至关重要,但由于私人工业案例数据难以获取且公共数据集无法满足要求,因此设计了OR-INSTRUCT,通过扩展和增强策略来生成符合要求的合成数据。


扩大数据覆盖范围(期望1)


OR-INSTRUCT使用GPT-4从686个真实行业案例中扩展场景和问题类型,以生成新数据。OR-INSTRUCT专注于扩展场景而不是任务。该方法部分满足了全面覆盖的要求,但在难度多样性方面仍有不足。通过手动评估生成的示例的难度,发现大部分都是易于的,因此需要通过增加难度多样性来进一步满足全面覆盖的要求。


问题-解决方案多样性的增强(期望2、3和4)


OR-INSTRUCT旨在处理所有可能的更改,例如问题描述的更改、模型修改或同时更改。这些对应于重新表述问题,改变目标和约束,并结合各种建模技术。总的来说,增强的目的是增强问题解决方案的多样性。


修改目标和约束。第一部分扩展包括添加、删除或替换问题中的目标和约束,以及对数学模型和程序进行必要的调整。具体来说,我们首先向GPT-4提供原始示例,并要求它列出目标和约束的五个潜在变化。这些建议的变化然后反馈给GPT-4,使用准备好的几次提示来修改问题、模型和相应的程序。这种增强旨在增强环境适应性(愿望2)。


改写问题。第二部分增强修改问题的提法,模拟不同客户的表达习惯。这个过程包括指示GPT-4重写OR问题,或简化或复杂,同时确保核心逻辑与解决方案一致,包括数学模型和程序。这种扩展旨在增强语言多样性(愿望3)。


结合多种建模技术。第三部分探讨了不同建模技术的使用。我们从工程师的经验中确定了五种潜在的技术,例如引入辅助变量或使用大M方法,供GPT-4在修改原始数学模型中的目标或约束时进行选择。这种增强旨在增强溶液的可变性(愿望4)。



后处理和滤波


OR-INSTRUCT对生成的示例应用几种启发式方法。首先,我们删除了在任何评估基准中问题相互重复或匹配的例子。接下来,我们手动纠正程序中的小语法错误,有时是由于GPT-4不熟悉COPT API造成的。我们也会丢弃那些程序不能成功执行的例子,因为这些数据显然是低质量的。在对剩余数据进行人工审查后,显示出可接受的正确性准确性(扩展数据为70%,增强数据为75%),我们决定放弃额外的过滤,转而开发全自动过滤机制。这一过滤步骤将删除约39%的生成样例,然后将剩余的样例添加到训练数据池中。


实验


来自GPT-4的OR-INSTRUCT数据


数据生成过程中使用了686个行业案例作为种子数据,通过扩展和增强操作生成了30K个训练样本。数据中57%由扩展操作生成,17.2%由目标和约束变化增强,15.3%由问题重述增强,10.5%由多种建模技术增强。数据质量方面,扩展数据的正确性为70%,增强数据的正确性为75%。该数据已经在初步实验中展现了良好的效果。



模型训练和推理


在训练过程中,我们只计算目标完成的损失。我们应用OR-INSTRUCT Data来训练几个大约7b大小的开源LLM,包括Mistral-7B、Deepseek-Math-7B-Base Shao、LLaMA-3-8B。我们将得到的模型称为ORLM。对于求值过程中的推理,使用0-shot设置下的贪婪解码来消除随机性,选择top-1补全作为最终解。我们从解中提取程序并执行以获得预测的最优值。


评估


使用三种评估基准和指标:NL4OPT、MAMO和IndustryOR。我们使用执行精度来衡量性能,其中执行的最优值与任何提供的基础真值最优值相匹配被认为是正确的。与NL4OPT相比,该指标实现了完全自动化的评估,并为数学建模方法提供了更大的灵活性。


我们从以前的方法中选择了一组不同的模型进行比较。我们包括tag-BART。标准提示方法包括提示专有LLM生成数学程序,作为基本基线。我们还结合了复杂的快速工程方法,如reflection、Chain-of-Experts、OptiMUS。我们分别根据GPT-3.5和GPT-4报告他们的表现。


结果


首先,在NL4OPT测试中,基于LLM的方法通常优于基于plm的最佳方法(tag-BART)。其次,对于专有LLM,随着数学推理能力从GPT-3.5提高到GPT-4,我们观察到所有提示工程方法的性能都有明显提高。最后,基于各种开源LLM的ORLM已经显示出显著改进的优化建模能力,与开源LLM相比,在我们的初步实验中,开源LLM由于无法输出可执行程序而在所有基准测试中得分为0。这证明了OR-INSTRUCT数据的有效性。我们在LLaMA-3-8B上训练的表现最好的ORLM,在NL4OPT、MAMO(包括简单和复杂的线性规划)和工业基准测试上达到了最先进的性能,在微观平均上比基于GPT-4的标准提示高出42.2%,在宏观平均上高出55.4%。我们还想强调的是,与tag-BART不同,我们确保没有使用NL4OPT的训练和验证数据。因此,ORLM在所有基准测试中的性能反映了域外泛化。



分析与讨论


ORLM与GPT-4在工业上的详细比较


ORLM-LLaMA-3-8B在各种难度级别和问题类型中表现优于Standard-GPT-4,尤其是在困难类别中。ORLM-LLaMA-3-8B在线性规划、整数规划和混合整数规划方面表现更好。两个模型在非线性规划和其他罕见问题类型方面表现不佳。OR-INSTRUCT数据对于提高综合覆盖率非常有效。



消融分析


OR-I NSTRUCT中的增强措施通过详细的消融实验验证了其有效性,发现三种增强措施对问题解决多样性有显著贡献,其中重新表述问题的重要性略高于其他两种增强方式。全面增强数据训练的模型表现最佳,删除任何一种增强方式都会导致性能下降。



总结


本文提出了训练开源LLMs用于优化建模的方法,通过设计并实施了OR-INSTRUCT,一个针对特定需求创建合成数据的半自动化过程。同时介绍了IndustryOR基准测试,首个工业基准测试。利用OR-INSTRUCT数据训练了7b规模的开源LLMs,显著提高了优化建模能力。展望未来,将扩展OR-INSTRUCT用于训练开源代理,以实现进一步的进展。

▌关于我们

我们致力于提供优质的AI服务,涵盖人工智能、数据分析、深度学习、机器学习、计算机视觉、自然语言处理、语音处理等领域。如有相关需求,请私信与我们联系。

▌商务合作

请加微信“LingDuTech163”,或公众号后台私信“联系方式”。


关注【灵度智能】公众号,获取更多AI资讯。