Natural Language Processing
인간 언어와 관련된 모든 것 이해하는데 초점을 맞춘 언어학 및 기계 학습 분야
자연어의 목표 : 맥락(context) 파악
Transformer
기존 RNN 모델 단점 극복
이전 문장들을 잘 기억
문맥상 집중해야할 단어를 잘 캐치 (맥락 파악 좋음)

attention score을 통해서 문맥 단어 캐치
-> 맥락 파악 우수
Hugging face
: 라이브러리와 모델을 제공하는 플랫폼
: 자연어 처리(NLP) 및 인공 지능(AI) 분야에서 가장 인기 있는 오픈 소스 라이브러리와 모델을 제공하는 플랫폼
모델 사용법
1.계정생성하기
https://huggingface.co/
2.




#python 활용 코드
from transformers import PreTrainedTokenizerFast, BartForConditionalGeneration
# Load Model and Tokenize
tokenizer = PreTrainedTokenizerFast.from_pretrained("ainize/kobart-news")
model = BartForConditionalGeneration.from_pretrained("ainize/kobart-news")
# Encode Input Text
input_text = '국내 전반적인 경기침체로 상가 건물주의 수익도 전국적인 감소세를 보이고 있는 것으로 나타났다. 수익형 부동산 연구개발기업 상가정보연구소는 한국감정원 통계를 분석한 결과 전국 중대형 상가 순영업소득(부동산에서 발생하는 임대수입, 기타수입에서 제반 경비를 공제한 순소득)이 1분기 ㎡당 3만4200원에서 3분기 2만5800원으로 감소했다고 17일 밝혔다. 수도권, 세종시, 지방광역시에서 순영업소득이 가장 많이 감소한 지역은 3분기 1만3100원을 기록한 울산으로, 1분기 1만9100원 대비 31.4% 감소했다. 이어 대구(-27.7%), 서울(-26.9%), 광주(-24.9%), 부산(-23.5%), 세종(-23.4%), 대전(-21%), 경기(-19.2%), 인천(-18.5%) 순으로 감소했다. 지방 도시의 경우도 비슷했다. 경남의 3분기 순영업소득은 1만2800원으로 1분기 1만7400원 대비 26.4% 감소했으며 제주(-25.1%), 경북(-24.1%), 충남(-20.9%), 강원(-20.9%), 전남(-20.1%), 전북(-17%), 충북(-15.3%) 등도 감소세를 보였다. 조현택 상가정보연구소 연구원은 "올해 내수 경기의 침체된 분위기가 유지되며 상가, 오피스 등을 비롯한 수익형 부동산 시장의 분위기도 경직된 모습을 보였고 오피스텔, 지식산업센터 등의 수익형 부동산 공급도 증가해 공실의 위험도 늘었다"며 "실제 올 3분기 전국 중대형 상가 공실률은 11.5%를 기록하며 1분기 11.3% 대비 0.2% 포인트 증가했다"고 말했다. 그는 "최근 소셜커머스(SNS를 통한 전자상거래), 음식 배달 중개 애플리케이션, 중고 물품 거래 애플리케이션 등의 사용 증가로 오프라인 매장에 영향을 미쳤다"며 "향후 지역, 콘텐츠에 따른 상권 양극화 현상은 심화될 것으로 보인다"고 덧붙였다.'
input_ids = tokenizer.encode(input_text, return_tensors="pt")
# Generate Summary Text Ids
summary_text_ids = model.generate(
input_ids=input_ids,
bos_token_id=model.config.bos_token_id,
eos_token_id=model.config.eos_token_id,
length_penalty=2.0,
max_length=142,
min_length=56,
num_beams=4,
)
# Decoding Text
print(tokenizer.decode(summary_text_ids[0], skip_special_tokens=True))
주의사항
언어 모델링 코드
#python 활용 코드
# 1.함수불러오기
from transformers import PreTrainedTokenizerFast, BartForConditionalGeneration
# 2.토크나이저 & 모델 불러오기
tokenizer = PreTrainedTokenizerFast.from_pretrained("ainize/kobart-news")
model = BartForConditionalGeneration.from_pretrained("ainize/kobart-news")
# 3.입력값 적기
input_text = '국내 전반적인 경기침체로 상가 건물주의 수익도 전국적인 감소세를 보이고 있는 것으로 나타났다. 수익형 부동산 연구개발기업 상가정보연구소는 한국감정원 통계를 분석한 결과 전국 중대형 상가 순영업소득(부동산에서 발생하는 임대수입, 기타수입에서 제반 경비를 공제한 순소득)이 1분기 ㎡당 3만4200원에서 3분기 2만5800원으로 감소했다고 17일 밝혔다. 수도권, 세종시, 지방광역시에서 순영업소득이 가장 많이 감소한 지역은 3분기 1만3100원을 기록한 울산으로, 1분기 1만9100원 대비 31.4% 감소했다. 이어 대구(-27.7%), 서울(-26.9%), 광주(-24.9%), 부산(-23.5%), 세종(-23.4%), 대전(-21%), 경기(-19.2%), 인천(-18.5%) 순으로 감소했다. 지방 도시의 경우도 비슷했다. 경남의 3분기 순영업소득은 1만2800원으로 1분기 1만7400원 대비 26.4% 감소했으며 제주(-25.1%), 경북(-24.1%), 충남(-20.9%), 강원(-20.9%), 전남(-20.1%), 전북(-17%), 충북(-15.3%) 등도 감소세를 보였다. 조현택 상가정보연구소 연구원은 "올해 내수 경기의 침체된 분위기가 유지되며 상가, 오피스 등을 비롯한 수익형 부동산 시장의 분위기도 경직된 모습을 보였고 오피스텔, 지식산업센터 등의 수익형 부동산 공급도 증가해 공실의 위험도 늘었다"며 "실제 올 3분기 전국 중대형 상가 공실률은 11.5%를 기록하며 1분기 11.3% 대비 0.2% 포인트 증가했다"고 말했다. 그는 "최근 소셜커머스(SNS를 통한 전자상거래), 음식 배달 중개 애플리케이션, 중고 물품 거래 애플리케이션 등의 사용 증가로 오프라인 매장에 영향을 미쳤다"며 "향후 지역, 콘텐츠에 따른 상권 양극화 현상은 심화될 것으로 보인다"고 덧붙였다.'
# 4.토크나이저로 입력값을 변환
input_ids = tokenizer.encode(input_text, return_tensors="pt")
# 5.옵션 지정 및 모델 사용
summary_text_ids = model.generate(
input_ids=input_ids,
bos_token_id=model.config.bos_token_id,
eos_token_id=model.config.eos_token_id,
length_penalty=2.0,
max_length=142,
min_length=56,
num_beams=4,
)
# 6.결과 후처리
print(tokenizer.decode(summary_text_ids[0], skip_special_tokens=True))
언어 모델링 절차
1)전처리
2)모델사용
3)후처리

tokenizer이란?

단계
1. 의미 있는 단위로 쪼개기
2. 숫자화 하기(토큰) integer encoding - 이미 사전으로 만들어놓은 상황

음절단위, 어절 단위로 토큰화 가능
embedidng vector이란?
(유사도: 얼마나 유사한지 수치화 한 것, 코사인 유사도가 가장 일반적)
의미가 있는 숫자로 변환하는 것
: 토큰은 단순히 인덱스가 부여된 값이었지만,유사도를 통해 숫자를 의미로 부여하는 작업이 embedding vector
사람이 쓰는 자연어를 머신이 이해할 수 있는 숫자의 나열 vector로 변환하기
단어나 문장 각각을 벡터로 변환해 벡터 공간(Vector space)으로 끼워넣는다
대표적인 임베딩 기법은 Word2Vec
(단어를 전체 단어들간의 관계에 맞춰 해당 단어의 특성을 갖는 벡터로 바꾸면 단어들 사이의 유사도를 계산하는 일이 가능)
토큰 : 문장을 단위로 쪼개는 것 & 인덱스를 부여하며 의미 없는 구분자 역할
(토큰화된 단위를 임베딩 벡터로)
임베딩 : 1차원된 값(벡터)
(토큰 하나하나 마다 1차원으로 만들며 의미를 부여하는 것 ,워드 임베딩이라고 한다.)
문장으로 변환 : 2차원
데이터셋 : 3차원

Fine: 가중치 결정 / 미세 / 세밀하게
tuning: 조정
LLM 모델 학습의 어려움
Fine-tuning 이란?
Fine-tuning 절차는?

1)사전 훈련된 모델 선택
2)데이터 준비
3)모델 수정
4)추가 학습
DistilBERT

트랜스포머 모델이 요구하는 입력 데이터의 형식

tensorflow모델 입력 위한 dataset변환




