본문 바로가기

Contact 日本語 English

【알고리즘】 22강. 자연어 처리(NLP)와 거대 언어 모델(LLM)

 

22강. 자연어 처리(NLP)와 거대 언어 모델(LLM)

 

추천글 : 【알고리즘】 알고리즘 목차


1. 자연어 처리 [본문]

2. 거대 언어 모델 [본문]

3. 생물정보학과 언어 모델 [본문]


a. 프롬프트 엔지니어링 

b. 자연어 처리 및 LLM 유용 함수 모음

c. LLM 관련 탐구 주제


 

1. 자연어 처리(natural language processing, NLP) [목차]

⑴ 정의 : 텍스트 기반의 인공지능 모델

⑵ 텍스트 전처리 : 비정형 텍스트를 컴퓨터가 인식하게 하기 위해 수행하는 전처리  

① 토큰화(tokenization)

○ 문장 혹은 말뭉치(corpus)에서 최소 의미 단위인 토큰으로 분할하여 컴퓨터가 인식하도록 하는 방법

영어 : 주로 띄어쓰기 기준으로 나눔

○ 75개의 영단어 ≃ 100개의 토큰

○ 예 : I / ate / noodle / very / deliciously

한글 : 주로 단어 안의 형태소를 기준으로 나눔 

○ 예 : 나 / 는 / 국수 / 를 / 매우 / 맛있게 / 먹었다  

○ 예 : OpenAI Tokenizer 

② 품사 태깅(POS tagigng, part of speech tagging)

○ 형태소의 품사를 태깅하는 기법 

③ 표제어 추출(lemmatization)

○ 단어들로부터 표제어(사전어)를 찾는 기법

○ 예 : am, are, is → be 

④ 어간 추출(stemming)

○ 단어에서 접두사 및 접미사를 제거하여 어간을 획득하는 기법

⑤ 불용어(stopword) 처리

○ 조사, 접미사 같은 실제 의미 분석을 하는 데 거의 기여하지 않는 단어를 처리하는 기법 

⑶ 텍스트 마이닝(text mining)

① 토픽 모델링 

기계학습 및 자연어 처리 분야에서 토픽이라는 문서 집합의 추상적인 주제를 발견하기 위한 통계적 모델 중 하나

○ 텍스트 본문의 숨겨진 의미 구조를 발견하기 위해 사용됨 

② 워드 클라우드

○ 자연어 처리를 통해 사람들의 관심사 또는 빈도수를 단순 카운트하여 시각화

③  소셜 네트워크 분석(SNA, social network analysis)

○ 그룹에 속한 사람들 간의 네트워크 특성과 구조를 분석하고 시각화하는 분석 기법

④ TF-IDF(term frequency-inverse document frequency)

○ 여러 문서로 이루어진 문서 군이 있을 때 어떤 단어가 특정 문서 내에서 얼마나 중요한 것인지 추출하는 기법

⑷ 트랜스포머(transformer)

① 문제 정의 : 다음 단어 예측

 

 

Figure. 1. 트랜스포머 문제 정의

 

단계 1. 문장을 여러 개의 토큰으로 분리하고 각 토큰을 임베딩 스페이스(embedding space) 위에 올림

 

 

Figure. 2. 토큰 임베딩(token embedding)

 

단계 2. 각 단어 별로 attention weight를 부여하면 다음 단어 예측을 할 수 있음 

 

 

Figure. 3. attention weight와 다음 단어 예측

 

단계 3. attention multilayer perceptron으로 attention weight를 보정할 수 있음 

 

 

Figure. 4. attention multilayer perceptron

 

단계 4. attention, multilayer percentron을 serial 하게 붙임으로써 계속 문장을 생성할 수 있음

○ To date, the cleverest thinker of all time was ___ → undoubtedly

To date, the cleverest thinker of all time was undoubtedly ___ → Einstein

To date, the cleverest thinker of all time was undoubtedly Einstein, ___ → for 

 

 

Figure. 5. serical circuit of attention and perceptrons

 

⑸ 자연어 처리 모델

 종류 1. LSA(latent semantic analysis)

 종류 2. PLSA(probabilistic latent semantic analysis)

 종류 3. LDA(latend dirichlet allocation)

○ 생성형 확률 모델 

○ reference 없이 deconvolution을 할 때에도 사용할 수 있음 (ref)

⑹ 자연어 모델의 평가 (ref)

① parallel text dataset : Canadian Parliament (영어 ↔ 프랑스어), European Parliament (여러 언어 지원)

SNS

③ Bleu score (ref)

④ perplexity 

 

 

2. 거대 언어 모델(large language model, LLM) [목차]

⑴ 정의 : 파라미터의 수가 billion 단위인 자연어 처리 모델

① 파라미터의 수를 세는 방법은 다음을 참고 

용어 1. 7B, 13B, 30B, 65B의 의미 : 자연어 모델을 구성하는 파라미터 개수가 7 billion, 13 billion, 30 billion, 및 65 billion이라는 것

용어 2. token : 모델이 처리하는 텍스트의 단위

○ word-level tokenization : [ChatGPT, is, an, AI, language, model, .

 subword-level tokenization : [Chat, G, PT, is, an, AI, language, model, .

 character-level tokenization : [C, h, a, t, G, P, T,  , i, s,  , a, n,  , A, I,  , l, a, n, g, u, a, g, e,  , m, o, d, e, l

용어 3. 0-shot, 1-shot, 5-shot, 64-shot 등의 의미 : 하나의 task 당 주어지는 예시의 개수를 의미

○ 0-shot prompting

 

Q: <Question>?
A:

 

○ few-shot prompting 

 

Q: <Question>?
A: <Answer>
Q: <Question>?
A: <Answer>
Q: <Question>?
A: <Answer>
Q: <Question>?
A:

 

⑵ 종류

GPT, GPT-2, GPT-3, GPT-J, GPT-Neo, GPT-3.5, GPT-4

② Gopher

Chinchilla

④ Flan, PaLM, Flan-PaLM

⑤ OPT-IML

LLaMA, LLaMA2 : 설치형 모델. Meta에서 개발 

Alpaca

BERT, RoBERTa, ALBERT

XLNet, T5, CTRL, BART

ollama : 다음 LLM들을 모두 지원

Llama2 (7B)

○ Mistral (7B)

○ Dolphin Phi (2.7B)

○ Phi-2 (2.7B)

○ Neural Chat (7B)

○ Starling (7B)

○ Code Llama (7B)

○ Llama2 Uncensored (7B)

○ Llama2 (13B)

○ Llama2 (70B)

○ Orca Mini (3B)

○ Vicuna (7B)

○ LLaVA (7B)

AlphaGeometry : symbolic deduction을 구현하여 IMO 수준의 기하 문제를 풀 수 있음

⑫ 기타 유용한 생성형 AI 툴

○ GitHub Copilot 

https://www.perplexity.ai 

https://consensus.app 

https://scite.ai/assistant

○ SciSpace / typeset.io 

○ Elicit.com 

⑶ 주요 파라미터 

① temperature = 0 : 매우 결정론적 출력을 생성
② max_tokens API Call settings = 100 : 100 토큰까지의 응답이 capped
③ top_p = 1.0 : 모든 가능한 토큰을 사용하여 응답을 생성
④ frequency_penalty = 0.0 : 자연스럽게 반복되는 토큰을 피하지 않음
⑤ presence_penalty = 0.0 : 토큰 재사용에 대한 벌칙이 적용되지 않음

⑷ 프로그래머의 역할

역할 1. LLM 모델의 개발 : 현실적이지는 않음

○ LLM 모델 개발은 상당한 규모의 서버가 필요하므로 OpenAI, Meta, Google 정도 규모가 아니면 어려움

○ 심지어 Naver, Kakao도 그 규모를 달성하지 못함

○ OpenAI, Meta, Google 등이 힘을 합치지 않는 한 ChatGPT 4.0이 최종 버전의 LLM이라고 예측하는 사람들도 있음

역할 2. fine-tuning 

○ 모델은 이미 정해져 있고, 특정 학습 데이터를 많이 제공하여 특정 분야에 적합한 모델로 개선하는 것

○ 예 : ChatGPT fine-tuning

역할 3. DB에서 크롤링 후 LLM으로 태그

역할 4. 프롬프트 엔지니어링

역할 5. 이미 정해져 있는 모델을 다른 프론트엔드, 백엔드와 붙여서 여러 서비스에 활용

⑸ ChatGPT의 단점

① 이미지를 처리하지 못함

② 최신성이 없음 : 파라미터 튜닝으로 해결할 수는 없음

③ 창의성이 없음 : 평균만을 추구하므로 

④ 실제 세계를 이해하지 못함 : 양자역학이 지배하는 실제 세계와 반도체가 지배하는 사이버 공간은 차이가 있기 때문

 

 

3. 생물정보학과 언어 모델 [목차]

 

출처: 이미지 클릭(Med-PaLM)
출처 : 이미지 클릭

 

Figure. 6. 생물정보학과 언어 모델

 

BioBERT

⑵ BioNER

⑶ SQuAD

⑷ BioASQ

PubMedGPT (BioMedLM)

⑹ BioGPT 

scBERT

⑻ GPT-Neo

⑼ PubMedBERT

⑽ BioLinkBERT

⑾ DRAGON

⑿ BioMedLM

Med-PaLM, Med-PaLM M 

BioMedGPT

tGPT 

CellLM 

Geneformer 

scGPT 

scFoundation 

SCimilarity

CellPLM 

 

입력: 2021.12.11 17:34

수정: 2023.05.18 11:36