Skip to content

자연어 처리 #87

@Jinsun-Lee

Description

@Jinsun-Lee
  • 데이터 파이프라인: 순차적인 흐름으로 데이터를 처리하는 것
  • 웹 = 요청 + 응답
  • 배치 프로그램 = 한 곳에서 + 모든 것을 한 번에
  • DW, ML, AI 등 데이터 분야에서 많이 사용

  • NLP ⊃ LLM
  • NLP는 컴퓨터가 인간의 언어를 이해/분석/생성하도록 만드는 것을 의미
  • LLM은 대규모 파라미터를 가진 언어 모델(대부분 transfomer 구조 기반)

  • 벡터 공간 모델(Vector Space Model, VSM)
  • 텍스트를 수치 벡터로 표현
  • 문서간 유사도 계산, 검색, 분류 등에 활용하는 정보검색/자연어처리의 기본 모델
  • 문서를 기하학적 공간의 점으로 본다
  • 문서 집합에서 등장하는 모든 단어를 차원으로 갖는 n차원 공간을 구성
  • 각 문서는 벡터로 표현 D = (w₁, w₂, ..., wₙ)
  • 여기서 wᵢ는 해당 단어의 가중치다. 단순 빈도(TF) 또는 TF-IDF를 사용한다.

  • TF-IDF 벡터화(Term Frequency–Inverse Document Frequency)
  • 문서를 숫자 벡터로 변환하는 방법
  • TF는 특정 단어가 한 문서 안에서 얼마나 자주 등장하는지
  • IDF는 전체 문서 집합에서 그 단어가 얼마나 희귀한지
  • 한 문서 안에서는 자주 등장하지만, 전체 문서에서는 드물게 등장하는 단어가 높은 점수
    D1: “I like apple”
    D2: “I like banana”
    D3: “I like apple banana”
    
    “I”, “like”는 모든 문서에 등장하므로 IDF가 낮다.
    “apple”과 “banana”는 일부 문서에만 등장하므로 상대적으로 IDF가 높다.
    

  • 유사도 계산 방식
  • COSINE 유사도 / FAISS 라이브러리가 많이 쓰임
  • 가장 일반적인 방식은 코사인 유사도
  • 값 범위는 0~1로 1에서 가까울수록 두 문서가 유사

  • 벡터 DB(Vector Database)는 고차원 벡터(embedding)를 저장하고, 유사도 기반 검색을 수행하는 데이터베이스
  • 전통적인 RDB나 키-값 DB가 “정확히 일치하는 값”을 찾는 데 최적화되어 있다면, 벡터 DB는 “의미적으로 비슷한 것”을 찾는 데 최적화되어 있다.

  • 대규모 언어 모델 LLM 기반으로 언어 모델의 튜닝과 지식 증류 기반의 소형 언어 모델 제작이 필수적
  • 언어 모델 튜닝 기법: SFT, PEFT, RLHF 등
  • 경량화 전략: LoRA, QLoRA, Adapter Tuning 등

  • 워드 임베딩로 단어의 의미적 관계를 효율적으로 표현할 수 있게 됨
  • 2013년 구글의 word2vec과 스탠포드의 GloVe와 같은 임베딩 모델
  • CBOW 모델에서는 주변 단어의 임베딩 평균을 통해 중심 단어를 예측

  • 이후 17년의 구글 Transformer 아키텍처 등장으로 자연어처리 분야가 붐
  • Transformer 모델은 문장 내 단어 간 관계를 효과적으로 학습할 수 있도록, self attention을 도입해서 기존 순차적인 모델(RNN, LSTM 등)이 지닌 한계를 극복함
  • Transformer 아키텍처에서 3가지의 어텐션이 이루어지는 위치: encoder / encoder-decoder / decoder

  • 이후 Transformer 모델을 기반으로 18년 OpenAI가 발표한 GPT(Generative Pretrained Transfomer) 모델은 방대한 데이터를 이용하여 사전학습을 수행한 후, 다양한 작업에 맞춰 파인튜닝을 진행하는 방식을 소개함
  • GPT-3는 1750억 개의 파라미터를 활용하여 범용성을 크게 확대함
  • 이어 Meta의 LLaMa(Large Language Model Meta AI) 등의 등장

  • 언어모델의 튜닝
  • SFT 지도형 파인튜닝, 가장 기본적이고 직관적으로 사람이 사전에 준비한 명확한 정답이 포함된 데이터를 사용하여 모델을 지도학습하는 방법

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions