ChatGPT를 활용한 오타보정

ChatGPT가 사람을 대체할 수 있을까?

  • GPT가 사람을 대체할거다, 인간의 시대가 끝났다 라는 얘기들이 한창이다. 그런데 아직까지는 피부에 와닿지 않았다
  • 확실히 개발할 때 사용하면 생산성이 올라간다. 특히 프론트 쪽 개발할 때 화들짝 놀란다. 스크린샷만 줘도 바로 코드가 나와버리니…
  • 요즘 여러 회사 테크 블로그를 보면 GPT를 서비스에 적용하는걸 흔하게 볼 수 있다
  • 마침 우리 팀에서도 GPT를 검색 서비스에 어떻게 활용할 수 있을까 하는 논의가 나와 업무를 진행하게 됐다

오타보정 서비스에 활용해보자!

  • 검색 서비스에는 어쩔 수 없이 NLP 딥러닝 요소가 들어갈 수 밖에 없다
  • 그렇다고 모델러 한명을 붙잡고 개발을 매번 진행하기에는 어려운 점이 있다
  • 그것에 대한 해결책을 GPT가 줄 수 있지 않나 싶었다
  • 우리는 openai 최신 버전인 Chatgpt 4o를 이용해서 ‘오타보정’ 서비스에 활용해보기로 했다

HOW?

Process Pipeline

  • 오타보정 대상 검색어의 기준을 세우고, 그 검색어들을 GPT를 통해 오타보정
    [보정 대상 기준]
    1. 검색 결과 실패 페이지로 떨어지는 경우
    2. 오타보정을 했는데 Click이 낮은 경우
    3. 오타보정했는데 보정한 결과가 마음에  들어 원래 검색어로 돌아간 경우
    
  • GPT 오타보정한 결과를 검수하여 MySQL에 저장
  • 배치를 돌려 오타보정했던 결과들을 Redis에 적재 후, 유입되는 검색어와 매칭 img.png

ChatGPT Prompt

저는 쇼핑몰 검색 개발자입니다. 사이트로 들어오는 검색어의 오타를 보정하고 싶습니다. 다음 요구 사항을 고려해주세요:
1. OOO 쇼핑몰 관련 키워드 우선: OOO 쇼핑몰과 관련된 키워드에 대해 정확한 보정이 필요합니다.
2. 일반적인 검색어도 포함: 일반적인 쇼핑몰 검색어에 대해서도 오타 보정을 적용해주세요.
3. 특수문자 제외하고 처리해주세요.
4. 한글 <-> 영어 이렇게 서로는 바꾸지 말아주세요.
주어진 고려사항을 충족하지 않을시 처벌을 받을 것입니다.

[Example]
룰류례몬 => 룰루레몬
나이케모자 => 나이키모자
ㄱㅕㅇ량항공점퍼+남성 => 경량항공점퍼남성
cj백설토마토스퍼게티소스 => cj백설토마토스파게티소스
  • Prompt를 위와 같이 짰는데 재밌던 점은 마지막에 협박을 할 시 더 잘 먹힌다는 점이다
  • Prompt를 잘 짜는 Tip에 관한 논문도 있다
  • 어느정도 요구사항을 정해놓고, GPT한테 짜달라고 시키면 Prompt를 만들어준다. 이 방식이 매우 효율적인 것 같다
  • 심지어 위에 있는 논문 링크를 주니깐 참고해서 짜주더라 ㄷㄷ

결과

  • 일주일마다 배치를 돌리는데 집계되는 오타보정 수는 한 25000개 정도이다
  • DB에 쌓이는 데이터는 단순 오타보정 뿐만아니라, 모델 학습 데이터나 서로간에 부분일치를 시켜 재현을 높이는 방식도 좋을 것 같다

Review

  • GPT를 서비스에 활용할 방법은 무궁무진한거 같다. 특히 상품제목, 카테고리 등의 데이터 어뷰징 검출에 좋을 것 같다
  • 좀만 더 다듬으면 대체할 수 있는 단순 작업들이 많을 것 같다. 이러다 나까지 대체되겠다
  • 검색 서비스에는 Semantic Search에 활용하면 재밌을 것 같다. 예를 들자면 GPT한테 해당 검색어의 의도를 파악해보라고 시키는거다
  • 요즘 LLM 엔지니어, Prompt 엔지니어도 생기는 추세인데 나도 이 쪽으로 한번..?

Categories:

Updated:

Leave a comment