Chatbot개발을 위한 KoAlpaca

Alpaca는 Facebook에서 공개한 LLama 모델을 스탠포드에서 개량한 것입니다.

Alpaca에 한국어 학습데이터를 추가한 것이 KoAlpaca입니다.

GPT API가 과금 문제가 있고 제차 빌드를 하려면 비용이 많이 들기 때문에 KoAlpaca의 공개된 엔진을 사용해서 어설픈 챗봇을 만들기로 했었습니다.

하지만 아래와 같은 이유로 포기했습니다.

포기 이유

  • GPU 없이 모델을 로딩해서 인퍼런스(문장완성이나 답변)을 뽑는 것이 너무 느림
  • GPU를 사용하려면 3080ti 같은 PC급 GPU로는 가장 가벼운 모델도 로딩하기 어려움
  • 원할한 서빙을 위해서 A100 이상의 GPU로 서빙을 해야 하는데 비용이 높음
  • KoAlpaca의 품질이 GPT 3.5에 비해서도 확인히 떨어짐. 한국어는 매우 심함

현실적으로 챗봇의 품질을 확보하려면 GPT API를 사용하거나 Azure를 사용하는 것이 가장 품질과 비용을 고려한 솔루션이 될 것 같습니다.

KoAlpaca는 누군가 모델을 더 개선할 때까지 기다려야 할지 모르겠네요.

Bigquery를 이용한 시퀀스(Sequence)데이터 처리 방법

시퀀스 데이터 프로세싱은 다음과 같은 문제가 있습니다.

  1. window function은 where와 같은 조건을 지정해서 프레임내에 로우를 선택할 수 없습니다. 지원하는 경우도 있지만 드뭅니다.
  2. 시퀀스 데이터프로세싱은 매우 중요하지만 분산처리를 하기 매우 어렵기 때문에 처리 속도가 느리거나 정합성을 일부 포기해야 하는 문제가 있습니다.
  3. 시퀀스 데이터프로세싱은 미래에 결정된 데이터에 따라 과거의 데이터를 업데이트하는 것이 매우 어렵거나 되지 않습니다. (Google DataFlow와 같은 것은 가능)

기억해야 할 것

  • 윈도 펑션의 안과 바깥의 구분
    • “윈도 펑션의 결과값은 결국 1개의 값”
  • 특정 그룹의 시퀀스 토큰별로 그룹만들기
  • 값의 변화에 대한 기록 방법
  • 특정 프레임의 조건을 만드는 트릭
  • 태깅값에 의한 집계

예제 준비중