LLM을 효과적으로 사용하기 위해서는 프롬프트가 중요하다!
생성형 AI의 발전 과정
Bag of Words(BoW)
: 텍스트 문서를 컴퓨터 프로그램에서 사용할 수 있는 숫자로 변환하는 자연어 처리 방법 중 하나ex) small dog, small small cat, small cute dog > small, cute, dog, cat으로 구분해서 단어 카운팅해서 각 문장을 숫자로 표현
Google Colabhttps://colab.research.google.com/drive/111i-xwExJEnVFPSMFe8WNNVMMSKz_s8z?usp=sharing
TF-IDF
: 단어의 빈도(Term Frequency)와 문서의 빈도(Inverse Document Frequency)를 토대로, 특정 문서 내에 어떤 단어가 얼마나 중요한지를 찾아내는 자연어처리 방법 중 하나BoW는 모든 단어를 카운팅하므로, 비중요 단어가 중요단어로 인식될 수 있는 문제가 있어 TF-IDF가 등장
모든 문서에서 자주 등장하는 단어는 중요도가 낮다고 판단하며, 특정 문서에서만 자주 등장하는 단어는 중요도가 높다고 판단함
주로 문서의 유사도를 구하는 작업, 검색 시스템에서 검색 결과의 중요도를 정하는 작업, 문서 내에서 특정 단어의 중요도를 구하는 작업 등에 쓰임
tf(d,t) : 특정 문서 d에서의 특정 단어 t의 등장 횟수
df(t) : 특정 단어 t가 등장한 문서의 수
idf(t) : df(t)에 반비례하는 수
TF-DF: TF와 IDF를 곱한 값
Google Colabhttps://colab.research.google.com/drive/1dKZ4NHwHlXfPE5-6sbYHBBRC-4xxuAGi#scrollTo=xuW2wtEDoCL7idf는 여러 문서에서 등장한 단어의 가중치를 낮추는 역할하므로 곱해주는 것
log 안의 식에서 분모에 1을 더해주는 이유는 특정 단어가 전체 문서에서 등장하지 않을 경우에 분모가 0이 되는 상황을 방지하기 위함
log를 씌워주는 이유
dft가 매우 작은 값(즉, 단어가 희귀한 경우)일 때, idf 값이 지나치게 커지는 문제가 발생
희귀 단어의 가중치가 지나치게 커져서, 모델이 이 단어에 과도하게 민감하게 반응할 가능성 높음
log(x)는 입력 값이 커질수록 증가율이 줄어들어 가중치의 성장 속도를 완화할 수 있으므로 log를 씌워줌