[Paper] DSL 또는 코드? LLM이 생성한 대수 사양의 품질 평가: Kinaxis에서의 최적화 사례 연구

발행: (2026년 1월 2일 오전 05:48 GMT+9)
11 min read
원문: arXiv

Source: arXiv - 2601.00469v1

Overview

이 논문은 대형 언어 모델(LLM)이 수학 최적화를 위한 도메인‑특정 언어(DSL) 사양을 신뢰성 있게 생성할 수 있는지, 아니면 범용 코드(예: Python)를 생성하도록 요청받을 때 더 좋은 성능을 보이는지를 조사합니다. 최적화에 널리 사용되는 DSL인 AMPL을 활용하여, 저자들은 자연어 문제 설명을 실행 가능한 모델로 변환하고, 솔버 피드백을 통해 모델을 정제하는 EXEOS라는 시스템을 구축했습니다. 공개 벤치마크와 Kinaxis의 실제 공급망 시나리오에 대한 실험 결과, DSL로 생성된 모델이 Python으로 만든 모델과 동등하거나 경우에 따라 더 높은 정확도를 보임을 확인했습니다.

주요 기여

  • EXEOS 프레임워크: (1) NL 설명으로부터 LLM에게 AMPL 또는 Python 모델을 생성하도록 프롬프트하고, (2) 생성된 모델을 최적화기에 실행하며, (3) 솔버 진단을 기반으로 오류를 반복적으로 수정하는 엔드‑투‑엔드 파이프라인.
  • 실증적 비교: LLM이 생성한 AMPLPython 사양을 두 LLM 계열(GPT‑기반 및 LLaMA‑기반)에서 실행 가능성 및 해결 정확성을 중심으로 비교.
  • 소거 연구: (a) 프롬프트 엔지니어링(DSL‑특화 스캐폴딩 포함), (b) 솔버‑피드백 루프, (c) 모델‑후처리가 전체 품질에 미치는 영향을 입증.
  • 산업 검증: Kinaxis 공급망 최적화 사례를 사용하여 학술 데이터셋을 넘어선 현실적인 테스트베드 제공.
  • 오픈‑소스 아티팩트(프롬프트 템플릿, 평가 스크립트, 선별된 벤치마크) 제공으로 재현성 및 추가 연구 촉진.

방법론

  1. 데이터셋 준비 – 저자들은 1,200개의 최적화 문제를 수집했습니다: 공개 벤치마크(MIPLIB‑style)에서 800개, Kinaxis 내부 공급망 사용 사례에서 400개. 각 문제는 간결한 자연어 설명, 최적 해, 그리고 AMPL과 Python 두 가지 모두에 대한 참조 구현을 포함합니다.
  2. 프롬프트 설계 – 두 종류의 프롬프트를 만들었습니다:
    • DSL‑centric: LLM에게 AMPL 모델을 출력하도록 명시하고, 작은 “템플릿” 형태의 AMPL 구문을 제공하며, 일반적인 구성 요소(집합, 파라미터, 변수, 제약조건)를 나열하도록 요청합니다.
    • Code‑centric: PuLP 라이브러리를 사용한 Python 구현을 요청합니다.
  3. 생성 – 각 자연어(NL) 설명에 대해 선택된 LLM(GPT‑4‑Turbo 또는 LLaMA‑2‑70B)을 세 번 호출하여 후보 사양을 생성합니다.
  4. 솔버 피드백 루프 – 생성된 모델을 해당 솔버(CPLEX for AMPL, CBC for Python)에 전달합니다. 솔버가 구문 오류, 정의되지 않은 기호, 혹은 비실현성을 보고하면, EXEOS가 오류 메시지를 추출하고 원래 프롬프트에 간결한 “수정 지시문”을 추가한 뒤 LLM에 다시 질의합니다. 이 루프는 최대 세 번 반복됩니다.
  5. 평가 지표
    • 실행 가능성: 모델이 오류 없이 실행되는가?
    • 정확성: 해결책이 알려진 최적 목표값과 1 % 허용 오차 이내로 일치하는가?
    • 개발 노력: 전체 LLM 호출 횟수(수정 호출 포함)로 측정합니다.
  6. 소거 실험 – 저자들은 (a) DSL‑특화 템플릿, (b) 수정 루프, (c) 생성 후 포맷팅을 체계적으로 비활성화하여 각 구성 요소의 기여도를 정량화했습니다.

결과 및 발견

지표AMPL (DSL)Python (code)
첫 시도 실행 가능률68 %74 %
수정 후 실행 가능률92 %95 %
목표 정확도 (오차 ≤1 %)85 %81 %
문제당 평균 LLM 호출 수1.71.5
최선 사례 (GPT‑4‑Turbo)94 % correct90 % correct
  • DSL 경쟁력 – 수리 루프를 적용하면 AMPL 모델이 Python과 비교 가능한 실행 가능률을 보일 뿐만 아니라 최적화 목표에 대한 정확도가 더 높아집니다.
  • 프롬프트의 영향 – 간결한 AMPL 템플릿을 추가하면 첫 시도 실행 가능률이 약 12 % 상승하고 수리 반복 횟수가 감소합니다.
  • 솔버 피드백은 핵심 – 수리 루프를 제거하면 두 언어 모두 정확도가 약 15 % 감소하는데, 이는 반복적인 오류‑주도 개선이 EXEOS의 주요 장점임을 확인시켜 줍니다.
  • 산업 사례 – Kinaxis의 공급망 문제에서 EXEOS로 생성된 AMPL 모델은 사내 솔루션과 88 % 일치했으며, Python은 약간 뒤처져 82 %에 머물렀습니다.
  • LLM 패밀리 효과 – GPT‑4‑Turbo가 LLaMA‑2보다 일관되게 우수했지만, DSL과 코드 간 상대적 격차는 패밀리 전반에 걸쳐 비슷하게 유지되었습니다.

실용적 함의

  • 최적화 모델의 빠른 프로토타이핑 – 엔지니어는 일정 관리나 물류 문제를 일상적인 영어로 설명하고 몇 분 안에 바로 실행 가능한 AMPL 모델을 얻을 수 있어, 전통적으로 MDE 프로젝트를 지배해 온 수동 모델링 작업을 크게 줄일 수 있다.
  • DSL 채택 장벽 감소 – 결과는 주류 언어에 대한 “학습 데이터 편향”이 결정적인 장애물이 아니라는 것을 시사한다; 적절한 프롬프트와 피드백 루프를 활용하면 AMPL과 같은 DSL이 LLM 지원 개발의 실현 가능한 목표가 된다.
  • CI 파이프라인 통합 – EXEOS의 복구 루프를 지속적 통합 워크플로의 일부로 자동화할 수 있다: 새로운 자연어 요구사항이 모델 생성을 트리거하고, 솔버가 이를 검증하며, 실패가 발생하면 자동으로 수정된 사양이 포함된 티켓을 생성한다.
  • 비용 효율적인 모델 유지보수 – 비즈니스 규칙이 변경될 때, 자연어 설명을 업데이트하고 EXEOS를 다시 실행하면 모델을 재생성할 수 있어, 매 변경마다 깊은 DSL 전문 지식이 필요하지 않게 된다.
  • 툴링 기회 – EXEOS 스타일 프롬프트를 내장한 IDE 플러그인은 개발자가 동일한 최적화 문제에 대해 “Python”과 “AMPL” 뷰를 전환할 수 있게 하여, 언어 간 검증 및 교육을 촉진한다.

제한 사항 및 향후 연구

  • Domain scope – 연구는 선형/혼합 정수 프로그래밍에 초점을 맞추고 있으며, 비선형, 확률적 또는 조합론적 DSL(예: MiniZinc)으로 확장하면 다른 정확도 패턴이 나타날 수 있습니다.
  • LLM size & cost – GPT‑4‑Turbo와 같은 고성능 모델은 대규모로 질의할 경우 비용이 많이 들기 때문에, 향후 연구에서는 DSL 코퍼스에 특화된 소형 모델을 파인튜닝하는 방안을 탐색할 수 있습니다.
  • Error‑type granularity – 현재 복구 루프는 모든 솔버 오류를 동일하게 처리하고 있으므로, 불가능성(infeasibility)과 무한성(unboundedness)을 구분하는 등 보다 정교한 파싱을 통해 더 스마트한 프롬프트를 생성할 수 있습니다.
  • Human‑in‑the‑loop evaluation – 논문이 자동화된 정확성을 측정한 반면, 도메인 엔지니어를 대상으로 한 사용자 연구를 통해 실제로 사후 편집이 얼마나 필요한지 명확히 할 수 있습니다.
  • Benchmark diversity – 에너지, 금융 등 다른 산업 분야의 실제 사례를 추가하면 연구 결과의 일반성을 검증할 수 있습니다.

전체적으로, 이 논문은 신중한 프롬프트 설계와 반복적인 솔버 피드백을 통해 LLM이 최적화를 위한 고품질 DSL 명세를 생성할 수 있음을 보여주며, 산업 현장에서 모델 기반 엔지니어링을 실현할 실용적인 경로를 제시합니다.

저자

  • Negin Ayoughi
  • David Dewar
  • Shiva Nejati
  • Mehrdad Sabetzadeh

논문 정보

  • arXiv ID: 2601.00469v1
  • 분류: cs.SE
  • 출판일: 2026년 1월 1일
  • PDF: PDF 다운로드
Back to Blog

관련 글

더 보기 »