Repolode
doofzoff

doofzoff/SIMURG

반복 루프와 언어 이탈 같은 LLM 디코딩 오류를 감지해 잘못된 토큰이 사용자에게 보이기 전에 중단하는 numpy 전용 Python 가드입니다.

스타
101
포크
15
열린 이슈
0
마지막 커밋
28일 전

어떤 프로젝트인가요?

SIMURG는 LLM이 생성하는 토큰 스트림을 감시해 반복 붕괴, 언어 간 이탈, 상투적인 문구의 되풀이, 구조적으로 깨진 출력, 유출된 채팅 템플릿 마커 같은 디코딩 오류를 감지합니다. 처음 350자는 보류한 뒤 내보내고, 이후 400자마다 스트림을 다시 검사하며, 보정된 임계값을 넘으면 출력을 끊어 오류가 있는 텍스트가 사용자에게 표시되지 않도록 합니다. 각 경보에는 사람이 이해할 수 있는 사유와 오류가 시작된 것으로 추정되는 위치가 포함됩니다.

핵심 기능은 numpy만으로 실행되므로 모델이나 GPU가 필요 없으며, vLLM, llama.cpp server, TGI, Ollama, OpenAI 등 OpenAI 호환 채팅 completions 엔드포인트 어디서나 사용할 수 있습니다. GuardedLLM 래퍼는 재시도 및 대체 모델 로직을 제공하고, self-heal 경로를 사용하면 전체 답변을 다시 생성하는 대신 검증된 정상 접두부부터 이어서 생성할 수 있습니다. 임계값은 정상 출력 데이터를 기준으로 보정하며, 프로젝트에는 자체 트래픽을 대상으로 재학습하는 명령어와 실시간 가드 및 세션 재생을 위한 대시보드가 포함됩니다.

이 프로젝트는 사실 오류가 아니라 전달 과정의 오류를 감지한다고 명시합니다. 유창하지만 거짓인 문장에는 통계적 특징이 없기 때문입니다. 선택적으로 사용할 수 있는 소형 transformer 계층, 근거 확인을 위한 웹 검색 계층, 실험적인 피드백 학습 모듈도 포함되어 있습니다.

핵심 기능

  • 01스트리밍 출력에서 반복 루프, 언어 이탈, 문구 되풀이, 구조적으로 깨진 출력, 템플릿 유출을 감지합니다.
  • 02처음 몇 글자를 보류하고 보정된 임계값을 넘으면 스트림을 끊어 오류가 있는 텍스트가 표시되지 않도록 합니다.
  • 03모델이나 GPU 없이 numpy만으로 실행되며, OpenAI 호환 엔드포인트 어디서나 사용할 수 있습니다.
  • 04사람이 이해할 수 있는 경보 사유와 오류가 시작된 것으로 추정되는 위치를 제공합니다.
  • 05시도한 생성이 문제로 판정되면 재시도하거나 다른 모델로 대체합니다.
  • 06자체 정상 출력 데이터를 사용한 임계값 재학습과 실시간 가드 대시보드를 지원합니다.

활용 사례

  • 양자화 모델이나 자체 호스팅 모델을 사용하는 사용자 대상 챗봇에서 비정상 출력을 방지합니다.
  • 토큰이 UI에 도달하기 전에 추론 서버 앞단에 스트림 중간 품질 게이트를 추가합니다.
  • 실패 패턴을 찾기 위해 프로덕션 모델의 오류가 있는 생성을 감사하고 재생합니다.
  • 라벨이 지정된 예제로 사용자 모델의 새 실패 유형을 학습해 감지합니다.

빠른 시작

  1. 1

    PyPI에서 패키지를 설치합니다

    pip install simurg
  2. 2

    또는 저장소를 clone하여 소스에서 설치합니다

    git clone https://github.com/doofzoff/SIMURG.git
  3. 3

    프로젝트 폴더로 이동한 후 editable 모드로 설치합니다

    cd SIMURG && pip install -e .
  4. 4

    재현 가능한 벤치마크를 실행합니다

    python3 -m simurg.data.evaluate

사용 전 알아둘 점

  • 이 모델의 캘리브레이션은 번들로 제공되는 합성 벤치마크에 맞춰져 있으므로, 프로덕션에서 사용하기 전에 자체 트래픽으로 재학습해야 합니다.
  • 스트림 중간에서 손상이 발생하면 재시도로 대체될 때까지 최대 약 900자의 잘못된 꼬리 부분이 남을 수 있으며, hold window에서 시작되는 손상을 완전히 차단하는 것은 벤치마크 21개 사례 중 12개뿐입니다.

토픽

자주 묻는 질문

SIMURG은(는) 무엇인가요?
반복 루프와 언어 이탈 같은 LLM 디코딩 오류를 감지해 잘못된 토큰이 사용자에게 보이기 전에 중단하는 numpy 전용 Python 가드입니다. SIMURG는 LLM이 생성하는 토큰 스트림을 감시해 반복 붕괴, 언어 간 이탈, 상투적인 문구의 되풀이, 구조적으로 깨진 출력, 유출된 채팅 템플릿 마커 같은 디코딩 오류를 감지합니다. 처음 350자는 보류한 뒤 내보내고, 이후 400자마다 스트림을 다시 검사하며, 보정된 임계값을 넘으면 출력을 끊어 오류가 있는 텍스트가 사용자에게 표시되지 않도록 합니다. 각 경보에는 사람이 이해할 수 있는 사유와 오류가 시작된 것으로 추정되는 위치가 포함됩니다.
SIMURG은(는) 무료로 사용할 수 있나요? 라이선스는 무엇인가요?
SIMURG은(는) Apache-2.0 라이선스의 오픈소스입니다. 상업용 제품에 사용하기 전에 라이선스 조건을 확인하세요.
SIMURG은(는) 아직 유지보수되고 있나요?
활발히 유지보수 중. SIMURG의 마지막 커밋은 2026년 9월 21일입니다.
SIMURG은(는) 어디에 사용할 수 있나요?
양자화 모델이나 자체 호스팅 모델을 사용하는 사용자 대상 챗봇에서 비정상 출력을 방지합니다. 토큰이 UI에 도달하기 전에 추론 서버 앞단에 스트림 중간 품질 게이트를 추가합니다. 실패 패턴을 찾기 위해 프로덕션 모델의 오류가 있는 생성을 감사하고 재생합니다. 라벨이 지정된 예제로 사용자 모델의 새 실패 유형을 학습해 감지합니다.
SIMURG는 어떻게 설치하나요?
PyPI에서 패키지를 설치합니다: pip install simurg 또는 저장소를 clone하여 소스에서 설치합니다: git clone https://github.com/doofzoff/SIMURG.git 프로젝트 폴더로 이동한 후 editable 모드로 설치합니다: cd SIMURG && pip install -e . 재현 가능한 벤치마크를 실행합니다: python3 -m simurg.data.evaluate
SIMURG은(는) 어디서 받을 수 있나요?
소스 코드와 설치 방법은 GitHub에 있습니다: https://github.com/doofzoff/SIMURG

요약은 프로젝트 README를 바탕으로 AI가 작성했습니다. GitHub 통계는 매일 갱신됩니다.

관련 프로젝트