에이전시의 마법 신경기호적 프로그래밍을 단순화하다

읽는 시간: 8 분
...

📝 원문 정보

- Title: An Agentic Framework for Neuro-Symbolic Programming
- ArXiv ID: 2601.00743
- 발행일: 2026-01-02
- 저자: Aliakbar Nafar, Chetan Chigurupati, Danial Kamali, Hamid Karimian, Parisa Kordjamshidi

📝 초록

심볼릭 제약 조건을 딥러닝 모델에 통합하면 더 견고하고 해석 가능하며 데이터 효율적인 모델이 될 수 있습니다. 그럼에도 불구하고 이러한 통합은 여전히 시간이 많이 소요되고 어려운 작업입니다. DomiKnowS와 같은 기존 프레임워크는 고수준의 선언적 프로그래밍 인터페이스를 제공하여 이 통합을 돕지만, 사용자가 해당 라이브러리의 특정 문법에 능통하다고 가정합니다. 이러한 종속성을 제거하기 위해 AgenticDomiKnowS(ADS)를 제안합니다. ADS는 에이전시 워크플로를 활용하여 자유 형식의 작업 설명을 완성된 DomiKnowS 프로그램으로 번역하며, 각 DomiKnowS 구성 요소를 따로 생성하고 테스트합니다. 이 워크플로는 사용자가 중간 출력물을 개선할 수 있는 옵션의 인간-인-더-루프 개입을 지원합니다. ADS가 경험 많은 DomiKnowS 사용자와 비사용자 모두에게 신경 기호적 프로그램을 빠르게 작성할 수 있게 하여 개발 시간을 몇 시간에서 10~15분으로 줄일 수 있음을 보여줍니다.

💡 논문 해설

1. **신경망과 기호적 추론의 융합:** 이 논문은 딥러닝 모델에 기호적 추론 방법을 결합한 신경-기호 시스템(NeSy)을 소개합니다. 이를 통해 모델은 더 강력하고 해석 가능하게 됩니다. 이는 마치 자동차에 GPS를 장착해 길 안내를 받듯이, 딥러닝 모델이 논리적 제약 조건을 따라 학습하도록 하는 것입니다.
  1. AgenticDomiKnowS (ADS): ADS는 자연어 지시문과 작업 설명을 사용하여 NeSy 프로그램을 생성하는 방법을 도입합니다. 이 시스템은 마치 AI 코디네이터가 다양한 작업을 분할하고 각각의 단계를 독립적으로 실행 및 수정하도록 하는 것처럼 작동합니다.

  2. 사용자 친화적인 웹 인터페이스: ADS는 사용자가 직접 개입할 수 있는 인터랙티브 웹 인터페이스를 제공하여 프로그래밍 과정을 쉽게 이해하고 검증하거나 수정할 수 있게 합니다. 이는 마치 블록을 조립하는 것처럼, 코드의 각 부분을 편집하고 실행하며 결과를 확인할 수 있는 플랫폼입니다.

📄 논문 발췌 (ArXiv Source)

# 서론

심층 학습 모델에 기호적 추론 방법을 통합한 신경망-기호 시스템(NeSy)은 딥러닝의 강점을 구조화되고 논리적으로 일관된 기호적 형식과 결합하려고 합니다. NeSy 시스템은 순수 신경망 접근법보다 더 견고하고 해석 가능하며 효율적인 모델을 만들 수 있습니다. 그러나 NeSy 프로그램을 작성하는 것은 여전히 어렵습니다. 현재 프레임워크는 사용자가 각 기호적 시스템의 구문과 의미를 이해하도록 요구하여 학습 곡선이 가파르기 때문입니다.

이 복잡성은 DomiKnowS와 같은 NeSy 프레임워크에서 잘 나타납니다. DomiKnowS는 심층 학습 모델과 기호적 논리를 통합하는 선언적 Python 라이브러리입니다. DomiKnowS는 사용자가 개념 그래프를 정의할 수 있게 해줍니다. 이 그래프에는 개념, 관계 및 논리 제약 조건을 포함하며, 이를 심층 학습 모델과 결합합니다. 이러한 개념 그래프가 유연성을 제공하긴 하지만 라이브러리를 활용하기 위해서는 구문을 마스터하고 모든 논리 규칙을 수동으로 인코딩해야 합니다. 이 과정은 경험이 부족한 사용자에게 오류 발생률이 높고 시간이 많이 소요되는 작업입니다.

LLM 지원을 이용하여 DomiKnowS 프로그램 생성에 대한 이전 시도는 개념 그래프와 그 제약 조건만 생성하는 것에 집중했습니다. 이는 이전 LLM의 능력으로 인해 코드 작성 도우미로 주로 사용되는 UI를 제공합니다. 새로운 LLM은 논리적 제약 조건과 고수준 관계 구조를 표현하는 데 개선되었지만, 특정 도메인 라이브러리에 맞는 정확한 구문으로 매핑하는 데 어려움을 겪습니다. 또한 NeSy 라이브러리와 같은 DomiKnowS가 사전 학습 코퍼스에서 부족하거나 존재하지 않기 때문에 LLM은 종종 프로그램 생성에 실패합니다.

WIQA 작업을 위한 DomiKnowS 프로그램의 지식 및 모델 선언. 왼쪽에는 개념 그래프와 논리 제약 조건이 정의되며, 오른쪽은 센서 코드를 보여주는데 이를 통해 속성과 예측 모델이 그래프 개념에 어떻게 연결되는지 지정합니다.

본 시연 논문에서는 이러한 생성 장벽을 극복하고 사용자가 자연어 지시 및 작업 설명을 사용하여 NeSy 프로그램을 작성할 수 있도록 AgenticDomiKnowS (ADS)를 소개합니다. 코드 작성 도우미인 Codex나 Gemini CLI와 달리 ADS는 개발 과정을 독립적인 단계로 나누고 각 코드 섹션을 생성, 실행 및 수정하는 에이전트 워크플로를 사용합니다. 이는 특정 구성 요소 내의 오류를 고립하고 수정할 수 있게 합니다. ADS는 코드 실행 중 식별된 구문 오류와 LLM 기반 리뷰어가 감지한 의미적 오류를 자가 개선 과정에서 수정하는 반복 루프를 사용합니다. ADS는 옵션인 인간-루프 메커니즘을 지원하여 사용자 개입이 가능합니다.

ADS의 인간-루프 메커니즘은 인터랙티브 웹 인터페이스를 통해 제공되며, 이는 ADS에 액세스하고 검증 또는 수정에 필요한 정보를 시각화하는 데 도움을 줍니다. 인터페이스는 DomiKnowS 프로그램을 플러그-앤-플레이용 실행 가능한 Jupyter 노트북으로 생성하여 일반적인 VLMs를 사전 초기화된 학습 모델로 사용해 즉시 추론이 가능합니다. 또한 ADS가 DomiKnowS 사용자가 프로그래밍을 가속화하고 이전 구현 경험 없이도 NeSy 프로그래밍을 채택할 수 있도록 돕는 방법을 보여줍니다.

배경: DomiKnowS

DomiKnowS는 도메인 특수 Python 기반 언어를 사용하여 개념, 관계 및 논리 연산자를 정의하고 이를 논리 제약 조건으로 도메인 지식을 인코딩합니다. WIQA 작업을 예시로 들어 DomiKnowS 프로그램을 설명하겠습니다. WIQA 데이터셋은 파раг라프와 관련된 질문을 포함하며, 이 질문들은 변화의 영향에 대해 is_more, is_less 또는 no_effect로 라벨링되어 있습니다. 이러한 질문들의 답변 사이에는 인과 체인을 형성할 때 전이 관계가 존재합니다. 예를 들어 하나의 질문은 단계 $`A`$에서 $`B`$에 대한 영향을 묻고, 다른 질문은 $`B`$에서 $`C`$에 대한 영향을 물을 수 있습니다. 이들 답변은 논리적으로 세 번째 질문인 $`A`$에서 $`C`$에 대한 영향에 대한 답변을 제약합니다. 이러한 전이성을 해결하는 데 중요하며, 이를 통해 예측의 일관성을 유지할 수 있습니다. Figure 1은 이 작업을 DomiKnowS에서 어떻게 표현하는지 보여줍니다. 여기서 두 가지 주요 구성 요소인 지식 선언과 모델 선언이 강조됩니다.

지식 선언에서는 개념 그래프를 정의합니다. 이를 통해 필요한 논리 제약 조건을 정의할 수 있습니다. WIQA에서 우리는 파라그라프질문 개념을 생성하고, 라벨로서 질문에 연결되는 is_more, is_less, 및 no_effect를 정의합니다. 또한 문단과 질문 사이에 일대다 포함 관계를 정의합니다. 질문 간 논리적 관계를 표현하기 위해 전이성 개념을 도입하여 질문 트리플렛($`t_1, t_2, t_3`$)을 연결합니다. 마지막으로 ifLandL 연산자를 사용해 논리 제약 조건을 추가: 전이 관계가 트리플렛에 존재하면 첫 번째 두 질문($`t_1, t_2`$) 모두 증가(is_more)를 나타내면 세 번째 질문($`t_3`$)도 증가해야 합니다.

모델 선언에서는 데이터셋에서 데이터 요소를 로드하고 이를 센서를 통해 대응하는 개념에 속성으로 연결합니다. 예를 들어 ReaderSensor. 여기에는 훈련 가능한 모델인 LLMLearner도 할당됩니다. 이는 LLM을 감싸 질문 라벨을 예측합니다. 그래프 엣지, 즉 데이터셋에서 제공된 전이성 트리플렛을 채웁니다. 이러한 단계 후에 프로그램은 논리적 제약 조건을 준수하며 출력을 추론하기 위해 수행됩니다. 또한 기본 알고리즘을 사용하여 제약 조건을 만족하도록 모델을 훈련시킬 수 있습니다.

시스템 개요

style="width:100.0%" />
ADS 시스템 워크플로. 왼쪽 패널에는 지식 선언 단계의 구성 요소를 그룹화하고 오른쪽 패널은 모델 선언 단계를 그룹화합니다. 사각형은 LLM 에이전트를 나타내며, 점선 사각형은 인간 행동을 나타냅니다. 타원은 입력/출력을 표시하고 다이아몬드는 결정 지점을 나타냅니다.

ADS는 공유 메모리 상태 사이에서 여러 에이전트가 작동하는 LangGraph 워크플로입니다. 이는 작업 설명, 코드 초안, 리뷰 및 코드 실행의 출력을 저장합니다. Figure 2에서 보듯이 워크플로는 사용자가 제공한 자연어 작업 설명으로 시작됩니다. 이 작업 설명을 기반으로 유사 작업의 예를 RAG 데이터베이스에서 검색하고, 지식 선언과 모델 선언 단계로 진행합니다.

RAG

프로세스는 사용자로부터 입력된 작업 설명에 따라 Rag Selector 에이전트가 12개 이전 DomiKnowS 프로그램 풀에서 가장 유사한 다섯 개를 검색하는 추출 단계로 시작됩니다. 이러한 프로그램은 후속 워크플로의 LLM을 위한 맥락 예제로 사용됩니다. 이들 검색된 프로그램은 DomiKnowS 라이브러리를 사용하는 사용자들이 작성했습니다.

지식 선언

다음 단계는 지식 선언 코드 생성입니다. 이를 통해 그래프 코드를 생성하여 개념 그래프와 1차 논리 제약 조건을 포함합니다. 지식 선언은 세 개의 에이전트 사이의 피드백 루프로 처리됩니다: 그래프 설계 에이전트는 작업 설명과 검색된 RAG 예제를 기반으로 새로운 그래프 코드 구현을 제안합니다. 그 결과, 그래프 실행 에이전트가 새로 생성된 그래프 코드를 실행하고 출력 오류를 기록합니다. 동시에 그래프 리뷰어 에이전트는 생성된 그래프에 대한 자연어 리뷰를 작성하여 의미론적 검증을 수행합니다. 이 리뷰어는 필요하면 제약 조건을 수정하거나 관계의 정의를 수정하고 불필요한 개념을 삭제할 것을 제안합니다. 만약 생성된 그래프가 그래프 실행 에이전트와/또는 그래프 리뷰어 에이전트로부터 승인되지 않으면, 피드백과 함께 그래프 설계 에이전트로 다시 반환됩니다.

에이전트들이 초안을 승인하거나 시도 횟수를 넘기면 워크플로는 그래프 인간 리뷰어 단계에 도달합니다. 이 단계에서는 사용자에게 그래프의 승인 여부와 그렇지 않으면 피드백 수집을 요청합니다. 만약 사용자가 그래프를 거절하면 시스템은 누적된 리뷰 및 실행 메모리를 지우고 시도 카운터를 리셋하여 인간 피드백을 적용한 새로운 수정 라운드에 그래프 설계 에이전트에게 제어권을 반환합니다. 사용자가 승인하면 컨트롤러는 다음 단계로 전환합니다.

모델 선언

모델 선언 단계에서는 ADS가 그래프 개념에 센서와 학습자를 할당합니다. ADS의 중점 설계 결정은 복잡한 DomiKnowS 클래스를 최소화하면서도 기능을 잃지 않아 일반 Python 코드로 이러한 연산을 대리하는 것입니다. 이는 센서가 i) ReaderSensor (데이터 요소 읽기), ii) LabelReaderSensor (라벨/주석 읽기), iii) EdgeReaderSensor (포함 관계에서 개념 연결), iv) ManyToManyReaderSensor (has_a 관계에서 개념 연결)이 됩니다.

DomiKnowS의 학습자 모듈은 라벨을 예측하기 위해 딥러닝 모델을 할당하는 역할을 하지만, 이는 다목적 VLM인 LLMModel으로 대체됩니다. 이를 통해 학습자는 여러모드 입력을 처리할 수 있습니다. 학습자는 제로샷 추론을 수행하거나 DomiKnowS 프레임워크 내에서 미세 조정될 수 있어 정확도를 향상시킬 수 있습니다.

센서 설계 에이전트는 작업 설명, 생성된 그래프 및 RAG에서 검색된 센서 코드를 기반으로 센서 코드를 생성합니다. 구문 오류가 발생하면 자동 수정을 시도합니다. 결과 코드는 센서 인간 코더에게 전달되며 여기서 승인하거나 추가로 편집할 수 있습니다. 모델 선언 단계의 두 번째 단계에서는 사용자가 데이터셋 요소와 그래프 개념 간의 매핑을 자연어로 설명합니다. 이 할당은 다양한 그래프 설계를 지원하기 위해 이 단계에 미루어집니다. 사용자의 설명과 검색된 RAG 예제를 기반으로 속성 지정 에이전트는 코드를 업데이트하여 데이터셋 요소가 개념 속성으로 바인딩되게 합니다. 또한 VLM의 출력을 지정하는 맞춤형 프롬프트를 생성합니다. 최종 코드는 그래프, 데이터셋 및 센서 섹션과 함께 DomiKnowS 설치 명령이 포함된 Jupyter 노트북 셀로 내보내집니다.

사용자 인터페이스 구현

ADS의 사용자 인터페이스 (UI)는 Next.js 프론트엔드와 Python 백엔드인 FastAPI를 갖춘 웹 애플리케이션으로 구성됩니다. 이 시스템은 미시간 주립 대학교 공학 컴퓨팅 서비스 분야에서 관리하는 인프라에 호스팅되며, AMD EPYC 7413 24코어 프로세서와 755GB의 RAM을 갖춘 서버를 사용합니다. UI의 목표는 ADS에 대한 일반적인 액세스를 제공하고 효과적인 인간-루프 상호작용을 위해 검증 또는 수정에 필요한 정보를 명확히 표시하는 것입니다.

백엔드

백엔드는 FastAPI로 구축된 Python 서비스로서 중앙 오케스트레이터 역할을 수행하며, React 프론트엔드와 REST 엔드포인트를 노출하고 MongoDB 인스턴스와 인터페이싱합니다. MongoDB 데이터베이스에서는 사용자 상호작용 후 LangGraph 메모리 상태를 저장하며 기본적인 사용자 및 세션 정보도 함께 저장됩니다.

프론트엔드

프론트엔드는 React와 TypeScript로 구축된 Next.js 앱으로, CSS로 스타일링하고 HTTP 요청을 통해 백엔드의 REST API와 통신합니다. Figure 2에서 보여지는 워크플로의 각 단계마다 인터페이스는 전체 LangGraph 메모리 상태를 가져오지만, 현재 특정 단계에 관련된 정보만 동적으로 렌더링합니다. 예를 들어 Figure 3에서 보듯이 그래프 인간 리뷰어는 최신 생성된 그래프 코드, 에이전트 판결 및 실행 로그가 포함된 뷰를 제공합니다. 이 디자인은 사용자가 정보에 근거한 결정을 내릴 수 있도록 필요한 모든 컨텍스트에 접근할 수 있게 합니다. 또한 사용자는 이전 단계의 세부사항을 검사하기 위해 탭을 전환하여 선택적으로 역사적 관점을 볼 수 있습니다.

style="width:100.0%" />
그래프 인간 리뷰어 인터페이스. 대시보드는 최신 생성된 그래프 초안(왼쪽)과 리뷰어 및 실행 에이전트의 판결을 함께 보여줍니다. 사용자는 "라이브 진행" 패널(오른쪽)에서 에이전트 워크플로 이력을 추적할 수 있으며 코드를 승인하거나 수정을 위한 자연어 피드백을 제공할 수 있습니다.

실험

데이터셋

우리는 12개의 기존 DomiKnowS 프로그램 테스트 데이터셋을 사용합니다. 이 프로그램은 자연어 처리, 컴퓨터 비전 및 제약 만족 문제(CSP)를 포함합니다. NLP 작업에는 20 News 데이터셋에 대한 계층적 주제 분류, RuleTaker, WIQA, BeliefBank 및 ProPara와 같은 논리적이고 인과적인 추론을 다루며 Spam 및 IMDB를 사용한 일관성 제약 조건 하의 분류도 포함됩니다. 비전 도메인에서는 계층적으로 그룹화된 CIFAR-10에 대한 계층적 이미지 인식, Animals & Flowers 이미지 분류 및 MNIST-Sum과 같은 산술 제약 작업을 사용합니다. 마지막으로 CSP 범주에는 스도쿠와 8개의 퀸 문제와 같이 엄격한 논리 제약 조건 충족을 시험하기 위한 고전적인 조합 추론 문제가 포함됩니다. 자세한 내용은 Appendix 8 참조.


📊 논문 시각자료 (Figures)

Figure 1



Figure 2



Figure 3



감사의 말씀

이 글의 저작권은 연구하신 과학자분들께 있으며, 인류 문명 발전에 공헌해주신 노고에 감사를 드립니다.

검색 시작

검색어를 입력하세요

↑↓
ESC
⌘K 단축키