본문 바로가기
AI/개발일지

챗봇 구축 방법론을 생각해보다

by AI미남홀란드 2024. 1. 29.
728x90

챗봇 구축

W5100, W5500, W5100S 과 같이 제품군이 있는 Docs 정보를 토대로 검색증강생성 모델 챗봇을 구축하려고한다.

 

적용대상 :

  • 실시간 챗봇 우선순위 (1)
  • 포럼 QnA 자동답변기능 (2), 채널톡 자동답변(3)

데이터 :

  • 제품군별 독스
  • 모델이 이해할 수 제품군별 이해하도록 최대한 연관시켜서 재 가공
  • h/w engineer 가 매달 실제 고객과 상담한 상담내용을 토대로 자체 QnA(faq) 데이터셋 제작

모델 : OpenAI 쓸 예정 모두 (GPT3.5, GPT4)

  • 오픈소스는 성능이 안좋음 , 한국어파인튜닝도 작업해야하는 우려
  • 코드나, 핀맵을 출력하는 경우 token 제한 이슈

적용 방법론:

  1. VectorDB all data (Chunk size 고려)
  2. ChatGPT - fine-tuning(GPT-3.5-Turbo) -> Naive RAG
  3. Naive Rag MetaData tagging
  • 어떤걸 태그해야하는가?
    • 그 태그가 유사도에 관련을 미치는지?, 프롬프트 엔지니어링으로 그 벡터디비안의 자료를 찾을 수 있는지
  1. Embedding 을 파인튜닝(오픈소스) ? [네이버 정지수님 피드백]
  2. 제품군별로 RAG 를 구축한다. -> UI 관련으로 처리
  • 우려사항 : 비동기처리를 해야하는 경우?(전체 피처에 대한 쿼리), 벡터디비로 연결하기 위한 쿼리유사도 모델을 또 만들어야하는 2-stage 모델?
  1. Langchain ensemble retriever

MOE (오픈소스) ?

고려사항 : 랭체인 인퍼런스 속도 (크로마디비)

Mac M1 pro-> 1분이상

RTX4090 -> 30초

langchain 을 없앤다면 하드코딩으로 구현해야하는지?

  • 리트리버를 그냥 semantic search 처리만 해주면되는건지?

현재 상태 :

Chroma DB 를 활용해서 전체 데이터를 때려박아서 호출을 해봤더니 생각보다 잘해주나? 링크에 대한 할루시네이션이 심함. 링크를 따로 구축해야하는지?

결국.. 데이터가 제일중요하다. 그러나 Docs에도 정확하지 않은 정보들이 많다. 일단 그건 우리의 영역이 아닌것은 확실하다. 우리는 모델이 읽을 수 있도록 확실하게 데이터를 전처리 해줘야하고 신뢰성 문제는 사실 데이터 문제와 다를게 없다. 그러나 이 데이터들도 모델이 리트리버를 하지 못한다면 검색기 문제일것이다. 최대한 열심히 해봐야겠다. 결국 블랙박스라서 다 해보고 테스트를 계속 Try를 해야한다.


728x90