Lantern

Meridian: 부서별 파일에서 담당자가 있는 액션으로.

베트남에 공장 4곳을 둔 가상의 제조업체 Meridian Components를 대상으로 구축한 사례입니다. 아래의 모든 SAS 화면은 실제 구축에 사용한 Viya 환경에서 2026년 10월에 캡처했습니다. 모든 숫자는 그 환경이 만들어 낸 결과입니다.

처음 시작한 부서 파일
19처음 시작한 부서 파일
40개 정제 규칙으로 수정한 행
28,09840개 정제 규칙으로 수정한 행
비교한 품절 모델
7비교한 품절 모델
게시된 의사결정이 하나하나 확인한 액션
306게시된 의사결정이 하나하나 확인한 액션

공장은 4곳, 진실은 부서마다 하나씩.

Meridian은 공장 4곳과 창고 4곳을 부서별 워크북으로 운영합니다. 교대별 생산 실적, 구매 추적표, 재고 실사 결과, 표준 원가표가 그것입니다. 부서마다 자기 버전의 숫자를 갖고 있어서, 주간 회의는 숫자를 바탕으로 움직이기보다 숫자를 맞추는 일로 시작됐습니다.

누구에게도 쓰던 파일을 버리라고 하지 않았습니다. SAS가 파일을 있는 그대로 읽어 들이고, 프로젝트는 5단계로 구성됩니다. 각 단계는 프로그램 폴더 하나이고, 모든 프로그램 옆에는 플로우가 있습니다.

결정
파일은 있는 그대로 읽어 들이고, 모든 수정은 SAS 안에서 누구나 읽을 수 있는 코드로 합니다.
이유
사람들은 믿고 쓰던 도구를 그대로 쓰고, 모든 수정은 누군가의 사본 속에 숨지 않고 눈에 보이며 반복할 수 있습니다.
사용 도구
SAS StudioSAS Content
05 Decide and Act 프로그램과 플로우가 있는 GDA Meridian 폴더를 보여 주는 SAS Studio
그림 1. SAS Content의 프로젝트: 단계마다 폴더 하나(Collect, Clean, Insights, Visualize, Decide and Act), 그리고 모든 프로그램 옆에 플로우가 있습니다.원본 크기로 보기

한 번만 정제합니다. 감사할 수 있는 규칙으로.

19개 파일은 원시 테이블 23개, 정제 테이블 12개, 의사결정에 바로 쓸 수 있는 골드 테이블 23개가 되었습니다. 40개 정제 규칙이 28,098행을 수정했습니다. 텍스트로 입력된 금액, 세 가지 형식이 섞인 날짜, 여러 방식으로 쓰인 교대 코드 같은 것들입니다. 규칙마다 데이터 품질 로그에 한 줄씩 기록합니다.

모든 프로그램에 플로우가 있으므로, SAS Lineage는 어떤 테이블이든 그것을 만든 프로그램까지 거슬러 올라가고, 그것을 읽는 리포트까지 이어지는 경로를 그릴 수 있습니다.

결정
규칙 하나에 로그 한 줄, 그리고 모든 프로그램에 플로우.
이유
관리자가 어떤 숫자의 출처를 물으면, 답은 회의가 아니라 SAS Lineage에서의 클릭 한 번입니다.
사용 도구
SAS Studio 플로우DATA step과 PROC SQLSAS Lineage
dec_01 플로우와 Visual Analytics 리포트 2개가 표시된 GOLD_ACTIONS의 SAS Lineage 그래프
그림 2. GOLD_ACTIONS의 SAS Lineage: 이 테이블을 만드는 플로우, CAS에 있는 테이블, 그리고 이 테이블을 읽는 Visual Analytics 리포트 2개.원본 크기로 보기

품절을 예측하고, 모델끼리 경쟁하게 합니다.

계획 담당자의 질문은 단순합니다. 어느 창고의 어떤 제품이 앞으로 4주 안에 재주문점 아래로 떨어질까? Model Studio는 같은 변수(재주문점 대비 재고, 운송 중 재고, 최근 출하량, 공급업체 지연, 계절)로 후보 모델 7개를 학습시켰고, 뒤쪽 주는 테스트용으로 학습에서 제외했습니다.

학습에서 제외한 주에서 순위 성능이 가장 좋았던 Forest를 Model Manager에 챔피언으로 등록했습니다. 그래디언트 부스팅은 챌린저로서 매주 코드로 재학습되므로, 챔피언의 성능이 떨어지면 숫자에 그대로 드러납니다.

결정
Forest가 챔피언이고, 그래디언트 부스팅은 챌린저로 남습니다.
이유
Forest는 한 번도 보지 못한 데이터에서 순위 성능이 가장 좋았고, 챌린저를 두면 챔피언의 성능이 떨어지기 시작하는지 알 수 있습니다.
사용 도구
Model StudioModel Manager
결측값 대체, 변수 선택, 모델 7개, 앙상블, 모델 비교로 구성된 Model Studio 파이프라인
그림 3. Model Studio의 Pipeline 1: 결측값 대체와 변수 선택을 거쳐 후보 모델들과 앙상블로 이어지고, 마지막에 모델을 비교합니다.원본 크기로 보기
Forest가 챔피언으로 표시된 모델 비교 표
그림 4. 테스트 파티션 기준 모델 비교. 챔피언으로 별표가 붙은 Forest의 KS(0.80)와 곡선 아래 면적(0.94)이 가장 높습니다.원본 크기로 보기
Forest 모델이 챔피언으로 지정된 Model Manager 프로젝트 Meridian stockout risk
그림 5. 챔피언은 Model Manager의 Meridian stockout risk 프로젝트에 등록되어 있습니다.원본 크기로 보기

업무 책임자가 읽을 수 있는 규칙으로 결정합니다.

점수는 아직 액션이 아닙니다. Meridian_next_best_action 의사결정은 챔피언 모델을 실행한 뒤 두 규칙 세트를 거칩니다. “조치 선택”(규칙 6개)은 재고 포지션에 재주문이 필요한지, 구매 주문의 납기를 독촉해야 하는지, 제품에 마진 검토가 필요한지, 라인을 점검해야 하는지를 정합니다. “우선순위, 담당자, 검토”(규칙 14개)는 걸린 금액에 따라 우선순위를 정하고, 담당자를 고르고, 기한을 정하고, 언제 두 번째 사람이 확인할지 결정합니다.

의사결정은 SAS Micro Analytic Service에 게시되므로, 웹 요청을 보낼 수 있는 것이라면 무엇이든 무엇을 해야 할지 물어볼 수 있습니다.

결정
임계값은 프로그램 코드가 아니라 규칙 세트에 둡니다.
이유
공급망 책임자는 개발자 없이도 “최근 주문의 60%에서 공급업체가 지연되면 납기 독촉”을 읽고 바꿀 수 있으며, Intelligent Decisioning은 모든 변경의 버전을 관리합니다.
사용 도구
Intelligent DecisioningMicro Analytic Service
의사결정 플로우: Start, Forest 모델, 규칙 세트 조치 선택, 규칙 세트 우선순위, 담당자, 검토, End
그림 6. 의사결정 플로우: 챔피언 모델, 그다음 두 규칙 세트. 게시 전에 검증했습니다.원본 크기로 보기
IF, AND, THEN 규칙이 있는 규칙 세트 Meridian 1 조치 선택
그림 7. 규칙 세트 “조치 선택”: 재주문점 아래에 있는 재고 포지션은 재주문, 모델이 4주 안에 품절될 가능성이 높다고 본 포지션은 조기 경보 재주문이 됩니다.원본 크기로 보기
microAnalyticService에 게시된 의사결정 하나를 보여 주는 Intelligent Decisioning 배포 페이지
그림 8. Micro Analytic Service 대상에 게시되었으며, 모델은 의사결정 안에 포함되어 있습니다.원본 크기로 보기

매주 월요일, 같은 로직으로 실행합니다.

예약된 작업이 매주 월요일 06:00에 실행됩니다. Lantern에서 사람들이 결정하고 해결한 내용을 다시 읽어 들이고, 이번 주 후보 액션을 만들고, 각 후보를 게시된 의사결정에 보내고, 메시지 초안을 작성하고, 지난주 결과를 측정한 뒤, 결과를 Lantern으로 보냅니다.

배치 작업도 다른 모든 곳과 같은 게시된 의사결정을 호출하므로, 리포트의 액션과 화면의 액션이 서로 다를 수 없습니다. 의사결정 서비스에 연결할 수 없으면 작업은 멈추고, 빈 목록을 게시하는 대신 지난주 액션을 유지합니다.

  1. 1Lantern에서 결정과 해결 내용 다시 읽기
  2. 2후보 액션 만들기
  3. 3모든 후보를 Meridian_next_best_action에 보내기
  4. 4메시지 초안 작성 및 확인
  5. 5이전 액션 이후의 결과 측정
  6. 6액션, 결과, 품절 리스크를 Lantern으로 보내기
결정
규칙을 코드에 복사하지 않고, 배치 작업에서 게시된 의사결정을 호출합니다.
이유
결정하는 곳은 한 곳뿐입니다. 규칙 하나를 바꾸면 모든 채널이 한꺼번에 바뀌고, 어긋나는 것이 없습니다.
사용 도구
SAS Job ExecutionPROC HTTPMicro Analytic Service
작업이 게시된 의사결정을 호출하는 방법
proc http url="&base./microanalyticScore/modules/meridian_next_best_action/steps/execute"
     method="POST" in=_nq out=_na ct="application/json" oauth_bearer=sas_services;
  headers "Accept"="application/json";
run;
주간 작업 로그에서, 2026년 10월 20일
NOTE: Lantern decisions read into APP_ACTION_DECISIONS.
NOTE: Lantern resolutions read into APP_ACTION_RESOLUTIONS.
NOTE: Decision service answered all 306 rows (meridian_next_best_action).
ACT REORDER High 55 55 1,994,641,000
ACT EXPEDITE_PO High 47 47 181,319,000
ACT INVESTIGATE_LINE High 12 12 790,203,000
NOTE: Lantern gold_actions: {"rows": 306, "table": "gold_actions", "skipped": []}
NOTE: Lantern gold_stockout_risk: {"rows": 16800, "table": "gold_stockout_risk", "skipped": []}
NOTE: Lantern gold_model_metrics: {"rows": 11, "table": "gold_model_metrics", "skipped": []}

모든 액션에 담당자 한 명, 그리고 근거를 함께.

Lantern은 각 액션에 담당자 한 명을 지정하고, SAS가 왜 이 액션을 올렸는지 보여 줍니다. 작동한 규칙, 재고 포지션에 대한 챔피언의 확률, 그리고 우선순위와 담당자, 기한을 정한 규칙 세트입니다. 담당자는 일을 하고(공급업체에 전화하고, 라인을 점검하고, 주문을 넣고), 한 일을 기록한 뒤 해결 처리합니다.

무엇이 보이는지는 역할에 따라 달라집니다. 구매 담당자는 구매 주문을, 교대 책임자는 자기 라인을 보며, 데이터베이스가 행 단위로 이를 강제합니다.

결정
구축하고 관리하는 사람에게는 Viya 라이선스를, 실행하는 모든 사람에게는 Lantern을.
이유
수백 명의 현장 인력이 Viya 라이선스 없이도 SAS의 의사결정에 따라 움직일 수 있고, 이들이 결정한 모든 것은 다음 월요일에 SAS로 돌아갑니다.
사용 도구
LanternPostgreSQL 행 수준 보안
재주문 액션이 열려 있고 권장 다음 단계와 SAS 의사결정이 표시된 Lantern 액션 목록
그림 9. Lantern의 액션: 다음 단계, 규칙 세트가 정한 담당자와 기한, 그리고 SAS가 이 액션을 올린 이유 한 줄.원본 크기로 보기
SAS의 판단 과정: 품절 모델, 규칙 세트 조치 선택, 규칙 세트 우선순위, 담당자, 검토
그림 10. 같은 액션의 근거를 단계별로, 의사결정의 응답에서 그대로 가져왔습니다.원본 크기로 보기

결과를 측정하고, 모델을 정직하게 유지합니다.

작업은 매주 해결된 액션을 그 뒤에 일어난 일과 대조합니다. 재고가 바닥났는지, 구매 주문이 제때 도착했는지, 불량률이 다시 내려왔는지를 확인합니다. 결과는 Lantern으로 보내져 액션 옆에 표시됩니다.

모델도 같은 방식으로 평가합니다. 챔피언, 챌린저, 그리고 단순히 재고 수준으로 순위를 매기는 방법을 학습에서 제외한 같은 1,100행으로 채점하며, 그중 138행은 4주 안에 품절되었습니다.

결정
모든 모델을 같은 행으로, 단순한 기준선과 나란히 평가합니다.
이유
모델은 재고 수준으로 순위를 매기는 것보다 나을 때만 쓸 가치가 있습니다. 챔피언은 가장 위험한 300개에서 기준선보다 품절을 13건 더 포착합니다.
사용 도구
SAS 프로그램Visual AnalyticsLantern

같은 보류 데이터로 평가한 품절 모델

모델AUC가장 위험한 300개에서 포착한 품절
Forest, 챔피언0.939133 / 138
그래디언트 부스팅, 챌린저0.927129 / 138
재고 수준만, 기준선0.918120 / 138

AUC: 0.5는 동전 던지기, 1.0은 완벽. 2026년 10월 20일 ins_02로 계산했습니다.

Forest, 그래디언트 부스팅, 재고 수준만을 비교하는 Lantern 패널
그림 11. Lantern 안에서 본 같은 비교와 Model Studio에서 화면까지의 경로.원본 크기로 보기
페이지 이름이 2개 언어로 된 SAS Visual Analytics 리포트 Meridian Control Tower
그림 12. Visual Analytics의 Meridian Control Tower. 페이지 이름은 영어와 베트남어로 되어 있습니다.원본 크기로 보기

의사결정 기록

  1. 출발점

    파일은 있는 그대로 읽어 들이고, 모든 수정은 SAS 안에서 누구나 읽을 수 있는 코드로 합니다.

    SAS Studio, SAS Content

  2. 정제와 추적

    규칙 하나에 로그 한 줄, 그리고 모든 프로그램에 플로우.

    SAS Studio 플로우, DATA step과 PROC SQL, SAS Lineage

  3. 예측

    Forest가 챔피언이고, 그래디언트 부스팅은 챌린저로 남습니다.

    Model Studio, Model Manager

  4. 의사결정

    임계값은 프로그램 코드가 아니라 규칙 세트에 둡니다.

    Intelligent Decisioning, Micro Analytic Service

  5. 매주 실행

    규칙을 코드에 복사하지 않고, 배치 작업에서 게시된 의사결정을 호출합니다.

    SAS Job Execution, PROC HTTP, Micro Analytic Service

  6. Lantern에서 실행

    구축하고 관리하는 사람에게는 Viya 라이선스를, 실행하는 모든 사람에게는 Lantern을.

    Lantern, PostgreSQL 행 수준 보안

  7. 측정

    모든 모델을 같은 행으로, 단순한 기준선과 나란히 평가합니다.

    SAS 프로그램, Visual Analytics, Lantern

어떻게 동작하나

Lantern은 Viya 주간 작업이 게시하는 테이블을 읽으므로 워크스페이스의 모든 숫자는 실제 SAS 결과입니다. 각 부분이 어디에서 만들어졌는지는 위의 각 섹션에서 보여 줍니다.

Lantern이 일하는 모습을 보세요.

데모는 실제 공급망 데이터셋으로 만든 가상의 제조사 Meridian에서 실행됩니다. 로그인해 그 팀처럼 이번 주 액션을 처리해 보세요.