deepopen-com/deepopen

非自回归System 1决策引擎,专为结构化类型决策场景设计 DeepOpen Multilingual, non-autoregressive System 1 decision engine.

DeepOpen: 의도 분류 프레임워크 및 구조화된 의사 결정 SDK

DeepOpen은 텍스트(또는 JSON)를 받아 사전 정의된 질문에 답하는 소프트웨어 프레임워크입니다. 개방형 텍스트를 생성하는 대신, 제공한 엄격한 선택 집합에서 레이블, 점수 또는 확률을 반환합니다. 사용자 지정 머신러닝 코드를 작성하지 않고 작은 고정 의사 결정 엔진(예: "이 요청은 어떤 부서가 처리해야 합니까?")을 구축하는 방법으로 생각하세요.

기능

  • 입력: 텍스트 또는 JSON(예: 고객 메시지).
  • 출력: 정의된 범주 중 하나, 숫자 점수 또는 확률 추정치. 예를 들어 이메일을 billing, technical, sales 또는 other로 분류하고 신뢰도 값을 제공할 수 있습니다.
  • 긴 형식의 응답을 생성하지 않습니다 — 설정한 제한된 옵션에서만 선택합니다.

사용 방법

먼저 사전 훈련된 모델(체크포인트라고 함)을 로드합니다. README는 Hugging Face(업스트림 Laya 모델)에서 로드하는 방법을 보여줍니다. 그런 다음 일련의 질문을 정의합니다. 각 질문에는 유형(choice, score 또는 noul)과 특정 기준이 있으며 입력과 함께 전달합니다. 결과에는 답변, 확률 및 신뢰도 점수가 포함됩니다.

언어 감지(대략적인 휴리스틱, 정확성 오라클 아님)를 처리하고 올바른 모델을 자동으로 로드하는 Router 클래스가 제공됩니다. 명시적 선택 또는 자체 데이터에서 검증한 후 auto_task_detection을 켜서 다른 체크포인트(영어, 다국어 또는 전문 typed-decisions 모델) 간에 전환할 수도 있습니다.

SDK에는 guard_questions(), moderation_questions(), triage_questions(), email_questions()와 같은 일반적인 작업을 위한 질문 템플릿도 포함되어 있습니다. 이들은 기성 질문 세트이지만 README는 프로덕션 안전 보장이 아님을 경고합니다. 중요한 결정에 사용하기 전에 정확성을 검증하고 신뢰도를 보정해야 합니다.

벤치마크 및 품질

README는 두 가지 주요 정확도 수치를 보고합니다.

데이터셋 테스트 정확도 구성
BANKING77 94.1234%(3개 시드 중 최고) 단일 분류기, SAM 시드 13
CLINC150 98.0222% 4-인코더 앙상블

하지만 중요한 주의 사항이 많이 있습니다.

  • BANKING77: 94.1234%는 3회 실행 중 최고입니다(3-시드 평균은 94.0368%). README는 재현된 기준선에 대한 통계적으로 확립된 개선이 없다고 명시합니다.
  • CLINC150: 이는 범위 내 150개 의도만 다루며 범위 외(OOS) 감지를 제외합니다. 결과는 이기종 앙상블(1개의 Laya 기반 모델 + 3개의 DeBERTa-v3-large 모델)에서 나온 것입니다.
  • README에는 다른 훈련 실행에서 나온 다른 수치(예: BANKING77에서 94.0909%, 단일 모델의 CLINC150에서 97.7556%)가 포함된 이전 테이블이 있습니다. 이들은 상호 교환할 수 없습니다. 별도의 실험입니다.

이 수치 중 어느 것도 공식 리더보드 순위로 주장되지 않습니다. 프로젝트 자체 평가에서 나온 것이며 Hugging Face 비교 페이지에 연결됩니다.

알려진 한계(명시적으로 명시됨)

  • 예측은 틀릴 수 있습니다. 높은 신뢰도 점수는 정확성을 보장하지 않습니다.
  • 확률은 자체 데이터에서 검증해야 합니다.
  • 기본 체크포인트는 출시된 그대로 과신합니다. 온도 피팅(보정 기술)은 별도의 데이터 분할을 사용해야 합니다.
  • Typed-decisions 정확도는 낮습니다(400건 / 2,000건 결정 테스트에서 0.766). 두 기본 체크포인트 모두 해당 제로샷 작업에서 우연 수준에 가깝습니다.
  • 한 보고된 실험에서 모더레이션 정확도는 0.530에 불과합니다.
  • 언어 범위(광고된 100개 이상 언어)는 모든 언어에서 동일한 품질을 의미하지 않습니다. 테스트된 51개 MASSIVE 언어 중 45개만 "3× 무작위" 정확도를 초과했습니다.
  • 프롬프트 예산이 공유되므로 큰 옵션 세트는 성능을 저하시키며, 순서 점수(1-5와 같은 척도)는 알려진 약점입니다.
  • 지연 시간 수치는 특정 GPU(NVIDIA T4) 및 웜 추론에 대한 것입니다. 고정된 추론 속도를 보장하지 않습니다.

이러한 한계는 과장을 방지하기 위해 README에 명시되어 있습니다.

설치 및 종속성

  • Python 3.10+ 및 Git이 필요합니다.
  • 저장소에서 직접 설치: pip install "git+https://github.com/deepopen-com/deepopen.git".
  • CPU 전용인 경우 먼저 CPU PyTorch를 설치합니다.
  • GPU 사용자는 CUDA 환경과 일치하는 PyTorch 빌드가 필요합니다.

업스트림 프로젝트와의 관계

README는 SDK 및 기본 모델 아키텍처가 Laya(오픈 소스 의도 분류 모델)에서 파생되었음을 명시합니다. 이 저장소는 DeepOpen 패키징 및 문서화와 BANKING77 및 CLINC150에 대한 재현 실험(중국어 가이드 포함)을 추가합니다. 또한 벤치마크 스크립트, T4 벤치마크 노트북, typed-decisions 모델용 미세 조정 노트북도 포함합니다.

기본 설치 패키지는 항상 업스트림 Laya 체크포인트를 로드합니다(DeepOpen이 훈련한 모델이 아님). 실험 가이드는 원하는 경우 작업별 모델을 훈련하고 내보내는 방법을 설명합니다.

법적 및 귀속

이 프로젝트는 Apache License 2.0에 따라 라이선스가 부여됩니다. README는 업스트림 귀속을 유지하고 의도된 사용을 위해 별도의 모델 및 데이터셋 라이선스를 검토하도록 상기시킵니다.


요약하면, DeepOpen은 사전 훈련된 모델에서 제한된 분류 또는 점수 시스템을 구축하기 위한 잘 문서화된 SDK이며, 강점과 약점을 투명하게 보고합니다. 즉시 배포 가능한 안전 시스템이 아닙니다. 중요한 일에 신뢰하기 전에 자체 데이터에서 출력을 검증해야 합니다.

관련

  • 프로젝트
  • 프로젝트
  • 프로젝트
  • 프로젝트
  • 프로젝트