비정확한 매칭을 위한 AI 검색

우리는 이 사이트를 대학 학과를 위한 지식 베이스 및 토론 포럼으로 활용하고 있습니다. 예를 들어, 사람들이 다음과 같은 질문을 하고 싶어 할 수 있다고 상상해 볼 수 있습니다.

  • 석사(MSc) 성적은 언제 발표되나요?
  • 임상심리 석사(MPsych) 학생들의 합격 점수는 얼마인가요?
  • 한 번에 몇 주까지 휴가를 신청할 수 있나요?
  • 내 멘티가 1단계 모듈에서 불합격하면 어떻게 되나요?
  • 멘티가 자해 행동을 할 경우 대학은 나에게 무엇을 요구하나요?
  • 연구 참여자에게 얼마를 지급하나요?
  • 어떻게 승진할 수 있나요?
  • 박사 학위 연구 자금의 출처는 무엇인가요? 아니면 학과 박사 학위 장학금은 언제 발표되나요?
  • 프로그램의 어느 단계에서 학생들은 반복 측정 ANOVA에 대해 배우나요?

이 모든 경우에 우리는 꽤 좋은 정보를 가지고 있지만, 전통적인 검색은 요약할 수 있는 올바른 결과를 찾지 못합니다. 때로는 아무것도 찾지 못하고, 때로는 “올바른” 답이 아닌 오래된 토론을 찾기도 합니다.

5개의 좋아요

피드백을 줘서 고마워, Ben.

@falco가 작업 중인 PR 큐에서 Hyde 기반의 의미론적 검색을 개발하고 있어. 준비가 되면 해당 명령어를 추가해 보려고 해.

2개의 좋아요

참고로

여기에는 프로그래머가 아닌 분들이 많을 텐데, 키워드 검색과 의미 기반 검색의 차이는 혼란스럽게 느껴지거나, 그 작동 방식에 대해 더 깊이 알고 싶으신 분들이 계실 수 있습니다. 다음 내용은 프로그래머를 대상으로 한 것이지만, 프로그래머가 아니더라도 두 검색 방식의 차이점에 대한 핵심 개념을 배울 수 있을 정도로 기초적인 수준입니다.

DeepLearning.AI가 최근(2023년 8월 14일) 다음 무료 기초 과정을 추가했습니다.

의미 기반 검색을 활용한 대규모 언어 모델 (참조)

이 과정은 단기 과정 페이지에서 확인할 수 있습니다.


AI 업계의 주요 인물들에 관심을 두시는 분들은 강의를 맡은 몇몇 인사를 알아볼 수 있을 것입니다.

1개의 좋아요

저처럼 연구 논문을 좋아하고 HyDE에 대해 몰랐던 분들을 위해, 해당 논문을 공유합니다.

Luyu Gao, Xueguang Ma, Jimmy Lin, Jamie Callan의 “Precise Zero-Shot Dense Retrieval without Relevance Labels” (pdf)

1개의 좋아요

링크를 제공해 주시겠어요? (아래에서 답변함)

죄송하지만 질문드리는 건, 제가 찾지 못해서입니다. 대신 봇 명령어에 대해서는 알게 되었네요. (참조)

@EricGT 링크 감사합니다. 이미 머신러닝(ML)에 대해 상당한 지식을 갖추고 있는 사람들을 제외하면, 그 논문은 꽤 어렵게 느껴질 수 있습니다.

핵심은 다음과 같습니다. 여기에서 적용되는 HyDE 방식은 먼저 LLM을 사용하여 질문을 기반으로 “가상의” 답변을 생성합니다. 이 답변은 실제 포럼 게시글과 같은 _형식_을 가질 수 있지만, 내용이 정해진 문서 집합이 아닌 LLM에서 생성되기 때문에 환각(hallucination)을 포함하거나 사실적으로 틀릴 수 있습니다. 이 문서는 사용자에게 표시되지 않지만, 흥미로운 점은 이 문서가 사이트의 실제 문서나 주제와 의미적으로 유사하다는 것입니다. 검색은 이 “가상의” 문서와 가장 유사한 실제 문서를 반환하며, 경험적으로 이는 검색어를 임베딩 데이터베이스의 의미적으로 유사한 문서와 단순히 매칭하는 것보다 더 잘 작동하는 것으로 보입니다.

@sam HyDE 기반 검색은 흥미롭고 직접 사용해 보고 싶습니다. 이러한 AI 기능 중 일부에 대해 조정 가능한 옵션(knobs)을 구상하고 계신가요? 예를 들어, 가상의 문서를 생성하는 데 사용되는 프롬프트와 요약/답변을 제어하는 프롬프트를 모두 편집할 수 있으면 좋을 것 같습니다. 현재 챗봇은 답변을 찾을 때 다소 장황한 편입니다. (제가 ChatGPT를 사용할 때처럼) 프롬프트 앞에 “간결하게” 또는 “요약하여” 같은 단어를 추가할 수 있으면 좋겠습니다.

4개의 좋아요
4개의 좋아요

좋은 지적입니다!


많은 분들이 이 발언에 주목하지 않을 수 있지만, 프롬프트 실행에 실제 비용을 지불하고 있다면, 이는 이해해야 할 가장 가치 있는 내용 중 하나입니다.

참고:

프롬프트

40-90%: 프롬프트 끝에 “간결하게”를 추가함으로써 절약되는 비용

응답에 대해 토큰 단위로 비용을 지불한다는 점을 기억하는 것이 중요합니다. 즉, LLM에게 간결하게 답변하도록 요청하면 상당한 금액을 절약할 수 있습니다 [1]. 이는 단순히 프롬프트에 “간결하게”를 추가하는 것 이상으로 확장될 수 있습니다. GPT-4를 사용하여 10가지 대안을 생성하려 한다면, 5개만 요청하고 나머지 절반의 비용을 아끼는 것도 방법입니다.

1개의 좋아요

백엔드는 준비가 되어 있지만, UI가 다소 까다로워서 디스코urse 검색 결과 페이지에 제대로 통합하는 데는 시간이 좀 걸릴 것입니다.

현재 우리는 프롬프트에 대한 제어를 제공하지 않지만, 해당 기능이 잘 작동하도록 만든 후에는 나중에 프롬프트를 사용자 정의할 수 있도록 할 것입니다.

3개의 좋아요

여기 메타에서 바로 사용해 볼 수 있습니다. 검색 페이지로 가서 몇 가지 질문을 입력해 보세요. 결과가 어땠는지 알려주세요.

2개의 좋아요

정말 좋습니다! 특히 정확히 일치하는 검색에서 "결과 없음"을 반환하는 검색어를 입력할 때 더욱 그렇습니다.

마감된 Marketplace 주제에 대해 의미적으로 올바른 매칭이 꽤 많이 나오고 있습니다. 이러한 결과를 반환하는 것이 유용할 수도 있지만, 목록의 하단에 표시되는 것이 더 나을 수도 있습니다.

검색을 특정 카테고리나 태그로 좁힐 수 있다면 좋겠습니다. 예를 들어:

  • "사용자가 워드프레스에서 로그인할 때 활성화 이메일이 전송되지 않도록 하는 방법은 무엇입니까?"라고 검색할 경우, 가장 좋은 결과는 Documentation 또는 #support:wordpress에서 발견될 것입니다.

  • "가장 많은 '좋아요’를 받은 주제를 반환하는 Data Explorer 쿼리를 작성하는 방법은 무엇입니까?"라고 검색할 경우, 가장 좋은 결과는 #data-reportingDocumentation 카테고리에서 발견될 것입니다.

가능하다면, 초기 검색은 가장 가능성이 높은 카테고리에서 결과를 반환하고, 다른 카테고리로 검색을 확장해 보라는 제안이 주어질 수 있습니다.

Discourse를 고객 지원 포럼으로 사용할 때 의미 기반 검색을 첫 단계로 고려해 보면, 특정 카테고리나 태그를 우선순위로 설정할 수 있으면 좋겠습니다. 예를 들어, Meta의 경우 초기 검색에서 Documentation 카테고리를 우선적으로 검색하도록 설정할 수 있습니다.

4개의 좋아요

이 새로운 기능을 통해 해결하고자 했던 문제 중 하나가 바로 그것입니다. 의미론적 검색은 항상 어떤 결과를 찾아냅니다.

현재 의미론적 검색은 매우 기본적인 상태입니다. 백엔드에서 몇 줄의 코드로 구성되어 있으며, 의미론적으로 가장 가까운 결과를 반환합니다. 지난 10년 동안 표준 검색에 추가된 검색 기능, 예를 들어 2.3 버전의 검색 개선 사항 등 많은 기능이 빠져 있습니다. 이 때문에 현재는 보완적인 결과 집합으로 제공되고 있습니다.

이 기능이 잘 받아들여지고 제품에서 UI를 완벽하게 다듬을 수 있다면, 의미론적 검색 결과에 Discourse 고유한 부분들을 통합해 보려 합니다.

5개의 좋아요

네, 복잡한 쿼리에 정말 놀라운 기능입니다.

해당 쿼리에 대한 게시글은 찾지 못했지만, 올바른 위치를 가리키는 충분한 주제들을 찾아냈습니다!

5개의 좋아요