Weave 가드레일 작동 방식
Weave 가드레일은 인라인 Weave Scorers를 사용해 사용자 입력이나 LLM 출력을 평가하고, LLM의 응답을 실시간으로 조정합니다. 다양한 목적에 맞춰 콘텐츠를 평가하도록 맞춤형 scorer를 설정하거나 기본 제공 Scorer를 사용할 수 있습니다. 이 가이드에서는 두 유형의 scorer를 모두 가드레일로 사용하는 방법을 설명합니다. 애플리케이션의 제어 흐름을 수정하지 않고 프로덕션 트래픽을 수동적으로 평가하려면 모니터를 대신 사용하세요. 모니터와 달리 가드레일은 애플리케이션의 제어 흐름에 영향을 미치므로 코드 변경이 필요합니다. 하지만 가드레일의 모든 scorer 결과는 Weave 데이터베이스에 자동으로 저장되므로, 추가 설정 없이도 가드레일은 모니터 역할도 합니다. 원래 어떤 방식으로 사용했는지와 관계없이 과거 scorer 결과를 분석할 수 있습니다.Weave TypeScript SDK는 가드레일을 설정하는 데 필요한 도구를 지원하지 않습니다.
Weave 가드레일 성능 최적화
가드레일은 애플리케이션의 제어 흐름을 중단하고 응답의 방향을 바꿀 수 있으므로, 지나치게 복잡하면 성능에 영향을 줄 수 있습니다. 최상의 성능을 위해 다음 권장 사항을 따르세요.- 가드레일 로직을 최소화하고 빠르게 유지하세요.
- 자주 사용하는 결과를 캐시하세요.
- 비용이 큰 외부 API 호출을 피하세요.
- 반복적인 초기화 비용을 피할 수 있도록 메인 함수 밖에서 가드레일을 초기화하세요.
- scorer가 ML 모델을 로드하는 경우.
- 지연 시간이 중요한 로컬 LLM을 사용하는 경우.
- scorer가 네트워크 연결을 유지하는 경우.
- 트래픽이 많은 애플리케이션을 운영하는 경우.
예시: 기본 제공 moderation Scorer를 사용하여 가드레일 만들기
다음 예시에서는 사용자 prompt를 OpenAI의 GPT-4o mini 모델로 보냅니다. 그런 다음 모델의 응답을 OpenAI의 moderation API로 전달하여 LLM의 응답에 유해하거나 유독한 콘텐츠가 포함되어 있는지 평가합니다. 모델의 응답은 가드레일 함수(generate_safe_response())로 전달되며, 이 함수는 OpenAIModerationScorer를 사용해 LLM의 원래 응답을 확인합니다. 그런 다음 함수 로직은 OpenAI의 평가 응답에서 passed 필드의 불리언 값을 확인하고, 그 값에 따라 애플리케이션의 응답 방식이 결정됩니다.
{output}이 {ground_truth}를 기준으로 정확한지 평가하세요.” 자세한 내용은 프롬프트 변수를 참조하세요.
예시: 맞춤형 Scorer를 사용해 가드레일 만들기
다음 예시에서는 이메일 주소, 전화번호, 주민등록번호와 같은 LLM 응답의 개인 식별 정보(PII)를 감지하는 맞춤형 가드레일을 생성합니다. 이렇게 하면 생성된 콘텐츠에 민감한 정보가 노출되는 것을 방지할 수 있습니다.generate_safe_response 함수는 맞춤형 PIIDetectionScorer를 적용합니다.
Weave를 AWS Bedrock Guardrails와 통합하기
이미 AWS에서 콘텐츠 정책을 관리하고 있다면, AWS Bedrock Guardrails를 사용해 구성된 정책에 따라 콘텐츠를 감지하고 필터링하는BedrockGuardrailScorer를 사용해 Weave에 이를 적용할 수 있습니다.
Bedrock Guardrails 인테그레이션을 설정하기 전에 다음이 필요합니다.
- Bedrock에 액세스할 수 있는 AWS 계정.
- AWS Bedrock 콘솔에서 구성한 가드레일.
boto3Python 패키지.
bedrock_runtime_kwargs 매개변수에 리전 값을 전달하세요.
AWS Bedrock에서 가드레일을 만드는 예시는 Bedrock guardrails notebook을 참조하세요.
다음 예시에서는 사용자에게 결과를 반환하기 전에 텍스트 생성 결과가 AWS Bedrock Guardrails 정책에 부합하는지 확인합니다: