LangKit
LangKit
LangKit는 WhyLabs에서 만든 오픈소스 텍스트 메트릭 도구 모음이에요. 언어 모델(LLM 포함)의 입력·출력 텍스트에서 유용한 신호를 뽑아내는 다양한 메서드를 제공하고, 오픈소스 데이터 로깅 라이브러리인 whylogs와 함께 사용할 수 있도록 설계됐어요.
LLM을 운영 환경에 배포하면 입력 조합이 무한해서 그만큼 무한한 출력을 만들 수 있다는 리스크가 생겨요. 텍스트는 구조화되지 않은 형태라 ML 관찰 가능성(ML observability)에서 다루기 어려운 도전 과제인데, 모델의 동작에 대한 가시성이 없으면 심각한 결과로 이어질 수 있죠. LangKit은 이 문제를 해결해서 모델의 동작을 모니터링할 수 있게 도와줘요.
출처: 문서
본문
LangKit은 LLM 가드레일(guardrail)과 관찰 가능성을 위한 신호를 기본 제공하는데, 대표적인 메트릭은 다음과 같아요.
- 텍스트 품질 (Text Quality)
- 가독성 점수(readability score)
- 복잡도(complexity) 및 학년 점수(grade score)
- 텍스트 연관성 (Text Relevance)
- 프롬프트/응답 간 유사도 점수
- 사용자가 정의한 테마에 대한 유사도 점수
- 보안 및 개인정보 (Security and Privacy)
- patterns: 사용자가 정의한 정규식 패턴 그룹과 일치하는 문자열 개수
- jailbreaks: 알려진 jailbreak 시도와의 유사도 점수
- prompt injection: 알려진 프롬프트 인젝션 공격과의 유사도 점수
- hallucinations: 응답 간 일관성 검사
- refusals: 알려진 LLM 거절(거부) 응답과의 유사도 점수
- 감성 및 유해성 (Sentiment and Toxicity)
- 감성 분석(sentiment analysis)
- 유해성 분석(toxicity analysis)
WhyLabs 통합
LangKit은 whylogs가 기본 제공하는 String 피처의 UDF 모음에 자동으로 연결되는 UDF들을 포함하고 있어요. 결과로 생성되는 프로필은 WhyLabs 플랫폼에서 시각화하고 모니터링할 수 있으며, 직접 분석할 수도 있어요.
설치
PyPI에서 다음과 같이 설치해요.
pip install langkit[all]
사용 예시
LangKit 모듈은 whylogs가 기본 제공하는 String 피처 UDF 모음에 자동으로 연결돼요. LangKit 모듈을 임포트한 다음, 아래 예시처럼 커스텀 스키마를 인스턴스화하면 돼요.
import whylogs as why
from langkit import llm_metrics
results = why.log({"prompt": "Hello!", "response": "World!"}, schema=llm_metrics.init())
위 코드를 실행하면 텍스트 피처에 대한 whylogs 기본 메트릭과 임포트한 모듈에 정의된 모든 메트릭이 포함된 세트가 생성돼요.
벤치마크
| AWS 인스턴스 타입 | 메트릭 모듈 | Throughput |
|---|---|---|
| c5.xlarge | Light metrics | 2335 chats/sec |
| LLM metrics | 8.2 chats/sec | |
| All metrics | 0.28 chats/sec | |
| g4dn.xlarge | Light metrics | 2492 chats/sec |
| LLM metrics | 23.3 chats/sec | |
| All metrics | 1.79 chats/sec |
더 많은 사용 예시와 모듈별 메트릭, 자주 묻는 질문은 LangKit 저장소의 examples, docs/modules.md, docs/faq.md에서 확인할 수 있어요.