TL;DR

  • Jev는 미리 정한 답변별 신뢰도 점수를 반환하는 분류기로, 기존 대형 언어 모델(LLM)의 텍스트 생성 대신 생산 소프트웨어의 입력 검증 로직에 적용할 수 있음.
  • 학습이나 미세 조정 없이 일반적인 분류기로 사용할 수 있으며, 리뷰 감성 분석에서는 긍정 0.28, 중립 0.61, 부정 0.11의 확률을 반환함.
  • 정규식이나 zod로 형식 오류를 검사하고, Jev로 이메일 주소와 전화번호가 실제일 가능성을 판별하는 조합이 유용함.
  • 가입 양식 데모에서는 입력란 포커스가 해제될 때 검증을 실행하고, 점수가 0.5 미만이면 실제 번호나 주소를 요청하는 오류를 표시함.
  • 지연 시간이 짧고 비용이 낮아 핵심 경로의 검증에도 적용할 수 있으며, 일반적인 규모의 서비스에서 기존 프로그래밍 로직으로 해결하기 어려운 문제의 대안이 될 수 있음.

Jev와 입력 검증

  • Jev 발표 이후 전통적인 대형 언어 모델(LLM)로 처리하기 어려운 문제에 적용하는 여러 사례가 등장했으며, 테트리스 플레이부터 자동차 운전까지 다양한 데모가 공개됨.
  • 실제 제품 소프트웨어에서 Jev를 활용하는 방식에 관심을 둠.
  • Jev의 핵심 용도는 분류기임. 상태와 선택지가 미리 정해진 질문을 입력하면 텍스트를 생성하는 대신 각 답변의 점수를 반환하므로, 학습 단계 없이 일반적인 검증 코드에 통합할 수 있음.
  • 기존 LLM처럼 원시 텍스트를 출력하는 대신 각 답변에 대한 신뢰도 점수를 반환하므로, 학습이나 미세 조정 없이 일반적인 분류기로 활용 가능함.
  • 리뷰 감성 분류 예시에서 입력 문구는 “제품은 잘 작동하지만 배송이 몹시 느렸음”이며, 결과는 긍정 0.28, 중립 0.61, 부정 0.11임.

입력 검증

  • 사용자가 입력하는 정보가 잘못되었거나 형식이 깨진 경우, 누락된 경우, 의도적으로 오해를 유도하는 경우를 처리하는 데 많은 시간과 검증 로직이 소요됨.
  • 정규식과 zod 같은 도구를 사용해도 데이터 검증 로직은 틀리기 쉬움.
  • Jev에 이메일 주소가 실제이며 유효한지 질문할 수 있음. 기준에는 “실제이고 유효할 가능성이 높은 이메일 주소”와 “가짜이거나 유효하지 않을 가능성이 높은 이메일 주소”를 각각 참과 거짓으로 정의함.
  • gmail.com 같은 제공업체의 주소도 유효한 것으로 취급하도록 기준에 명시해야 함. 기준을 변경하는 방식으로 Jev가 허용할 항목을 지정함.
  • 이메일 주소 검증에는 정규식을 사용할 수 있지만, 이메일 형식 검사가 간단한 문제는 아님.
  • 형식 검사는 여전히 중요함. 빈 필드, @ 누락, 너무 짧은 전화번호 등은 zod나 정규식으로 확인해야 함.
  • 더 어려운 문제는 이메일이나 전화번호가 실제일 가능성을 판별하는 일임. 일부 제품은 봇 계정 생성, 무료 혜택 수령 등의 목적으로 가짜 정보를 대량 입력하는 스팸을 받음.
  • 이메일이나 전화번호의 형식뿐 아니라 실제일 가능성까지 판단하는 방식이 도움이 될 수 있음.

가입 양식 데모

  • 가입 양식에서 Jev를 사용해 전화번호와 이메일 주소를 검증하고, 실제일 가능성을 판별하는 데모를 제작함.
  • Tommy Tutone의 노래 “867-5309/Jenny”로 유명한 867-5309 전화번호는 별도 지시 없이도 거부됨. “555” 번호와 example.com 이메일 주소 같은 다른 가짜 입력도 거부됨.
  • 이런 값은 명시적으로 프로그래밍되지 않았으며, 분류기가 실제 번호나 이메일이 아닐 가능성이 높다고 판단함.
  • 데모는 입력란 포커스가 해제될 때 두 검사를 실행함. 점수가 0.5 미만이면 오류를 표시하고 실제 번호나 주소를 요청함.
  • 대안으로 명백한 가짜 입력은 차단하고 점수가 중간대인 경우에만 경고할 수 있음.

`zod` 통합

  • zod 같은 검증 라이브러리에 Jev를 직접 통합하는 방식도 가능함.
  • 예시 구성은 z.object 스키마의 전화번호 문자열에 비동기 검사를 적용하고, TypeSafeClient와 @typesafe-ai/sdk의 noul을 사용해 “실제이며 유효한 전화번호처럼 보이는가?”를 질문함.
  • Jev가 반환하는 answers.valid.noul 점수가 0.6 이상이면 검증을 통과시키고, 그렇지 않으면 “유효한 전화번호를 입력해 달라”는 오류 메시지를 반환함.

운영 환경 적용

  • 지연 시간이 짧고 비용이 낮아 전화번호 검증과 같은 핵심 경로에서도 Jev 실행이 현실적인 선택이 됨.
  • 대부분의 서비스처럼 대규모로 운영하지 않는 경우, 전통적인 프로그래밍 로직으로 거의 해결할 수 없는 고전적인 문제를 처리하는 좋은 방법이 될 수 있음.