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개의 값”
  • 특정 그룹의 시퀀스 토큰별로 그룹만들기
  • 값의 변화에 대한 기록 방법
  • 특정 프레임의 조건을 만드는 트릭
  • 태깅값에 의한 집계

예제 준비중

대학 전공서적, 기술서적 무료 다운로드 사이트 및 기타

LibGen(Library Gernesis)이라는 사이트에서 받으면 됩니다.

러시아 사이트인 것 같습니다.

https://libgen.is/

Z=library도 유명합니다.

https://z-lib.is/

논문 받는 곳은 다들 아시는

https://sci-hub.se/

그리고 논문의 Impact를 알아보는 Journal Impact Search 입니다.

https://www.bioxbio.com/

저널의 랭킹을 보는 곳은 SJR

https://www.scimagojr.com/journalrank.php

PySpark lit 메쏘드

pyspark에서 .lit()는 문자열의 값을 모두 채워서 컬럼으로 만들어주는 메소드입니다.

다음과 같이 사용합니다.

import pyspark
from pyspark.sql import SparkSession

spark = SparkSession.builder.appName('SparkByExamples.com').getOrCreate()
data = [("111",50000),("222",60000),("333",40000)]
columns= ["EmpId","Salary"]
df = spark.createDataFrame(data = data, schema = columns)

더 자세한 것은 아래의 블로그를 참고하세요.

https://cosmosproject.tistory.com/291