garak

언어 모델의 실패 방식을 찾아내는 취약점 스캐너

python -m pip install -U garak

언어 모델을 원치 않는 방식으로 실패시킬 수 있는지 확인합니다. 환각과 데이터 유출, 프롬프트 주입, 잘못된 정보, 유해 출력, 탈옥 등 여러 약점을 탐침으로 찔러 봅니다. 저장소는 이 도구가 네트워크 스캐너나 침투 시험 도구와 비슷한 일을 언어 모델에 대해 한다고 설명합니다. 정적 탐침과 동적 탐침, 적응형 탐침을 섞어 실패 경로를 탐색합니다. 허깅페이스 모델과 주요 상용 API, 클라우드 기반 모델, 로컬 gguf 모델을 지원하고 REST 로 닿는 것은 대부분 붙습니다. 명령줄 도구이고 리눅스와 맥에서 개발됩니다. 엔비디아가 유지합니다.

판단

이럴 때 씁니다

  • 배포 전 모델의 실패 경로를 점검할 때
  • 프롬프트 주입과 탈옥 내성을 재야 할 때
  • 여러 제공자를 같은 기준으로 비교할 때

이럴 땐 쓰지 마세요

  • 애플리케이션 코드 취약점은 대상이 아닙니다
  • 탐침이 많아 호출 비용이 큽니다
  • 윈도우는 개발 대상 환경이 아닙니다

차별점

  • 정적과 동적, 적응형 탐침을 섞어 씁니다.
  • 환각과 유출, 주입, 탈옥 등 범주가 넓습니다.
  • REST 로 닿는 대부분의 모델에 붙습니다.
  • 엔비디아가 유지하고 문서와 공동체가 갖춰져 있습니다.

워크플로

  1. 01패키지를 설치합니다.
  2. 02검사할 모델과 제공자를 지정합니다.
  3. 03탐침 묶음을 고릅니다.
  4. 04결과 보고서를 읽습니다.
  5. 05약한 범주를 좁혀 다시 돌립니다.

주요 명령

명령설명
python -m pip install -U garak설치합니다.
garak <options>검사할 모델을 지정해 돌립니다.
python -m pip install -U git+https://github.com/NVIDIA/garak.git@main최신 개발판을 씁니다.

함정

설치 전에 확인하세요

  • 탐침이 실제로 모델을 호출합니다. 유료 API 라면 비용이 빠르게 붙습니다.
  • 리눅스와 맥에서 개발됩니다. 다른 환경은 보장하지 않습니다.
  • 저장소가 조직 이름을 옮겼습니다. 예전에 받아 뒀다면 원격 주소를 고쳐야 합니다.
  • 자체 의존성이 있습니다. 별도 환경에 격리해 설치하라고 문서가 권합니다.

비교

언어 모델 안전성 점검을 직접 하면 무엇을 찔러 볼지부터 정해야 합니다. 이쪽은 축적된 탐침 묶음을 그대로 제공합니다. 대신 애플리케이션 코드 취약점은 다른 도구가 필요합니다.

최근 변경

공격 기법과 의도를 주석으로 표시하는 기능이 들어갔고 의도 기반 탐침의 첫 판이 나왔습니다. 공격을 조각으로 분해했다가 원하는 형태로 다시 조립하는 방향의 작업입니다.