반응형

2024/04 154

자연어 처리 정리 - 2강 Text mining

자연어 처리 - 검색엔진 (검색어 - Query와 관련된 글 나열), 번역, 긍 부정 판단, 정보 요약, 질문 답변(GPT) NLP는 여러 학문이 종합되어 있고, 언어(자연어)를 컴퓨터가 이해하는 체계로 넘겨주어(embedding, vector representation) 컴퓨터가 처리 언어의 표현을 어렵게 하는 것 - 엄청난 애매모호함, 복잡한 사회 과정, 동음이의어, 공유 지식

transformer, attention 정리 3

2024.04.11 - [인공지능/공부] - transformer, attention 정리 2 transformer, attention 정리 2 seq2seq - RNN기반 모델 = vanishing gradient problem, 고정된 벡터에 모든 정보 압축하다 보니 정보 손실 발생 이 구조는 입력 문장이 길면 품질이 떨어지게 된다! -> attention 등장 attention value - 단어가 얼마 yoonschallenge.tistory.com 여기 이어서 계속 되는 자료입니다. 자연어 처리에서 순서가 중요하다는 것을 알기 때문에 순서를 집어 넣어준다! 위치정보가 반영된다! 근데 positional encoding을 하면 I가 다른 단어의 embedding과 동일하게 변하는 경우도 생기지 않..

인공지능/공부 2024.04.11

transformer, attention 정리 2

seq2seq - RNN기반 모델 = vanishing gradient problem, 고정된 벡터에 모든 정보 압축하다 보니 정보 손실 발생 이 구조는 입력 문장이 길면 품질이 떨어지게 된다! -> attention 등장 attention value - 단어가 얼마나 중요하냐 query - 입력 key - 모든 말 뭉치들 저거 각각 내적하면 유사도가 나온다. 스코어 = 유사도 - 유사하면 가중치를 크게 주겠다. 스칼라 점수가 튀어나온다. == 어텐션 스코어 합을 1로 만들어 주는 과정이다. 단어 각각을 어느정도 볼 것이냐 여기서 h1은 인코더의 hidden state이다. 임베딩 차원 만큼의 결과가 나온다. 가중치를 곱하여 입력 차원을 맞춰준다. attention의 등장 BUT RNN을 기반으로 사용한..

인공지능/공부 2024.04.11

attention, Transformer 정리 1

attention이 명확하게 정리되지 않아서 일단 다양하게 영상을 보고 정리를 시도해 보려고 합니다... https://youtu.be/6s69XY025MU?si=3vgHGAPVJINkCOl7 이번에도 시작은 이 영상 입니다.. 텐서 기본정보 1. 정보를 나타나는 텐서는 가중지 Weight를 통과해도 이 전의 정보를 가지고 있다. 2. Weight(양수이며 더하면 1)를 곱한 후 더하면 Weight가 큰 곳의 정보를 더 가지고 있다. 3. 내적은 비슷한 정보끼리 하면 커지고, 상관 없는 정보라면 작아진다. -> 내적 : 정보의 비슷한 정도 Query - 정보를 요청한다. 검색어. 계정 정보. key - 서로 다른 정보 몇개. 사이트들 Value Query는 Weight q에 통과시키고, key는 Weig..

인공지능/공부 2024.04.11

자연어 처리 Python 실습 - 한국어 관계 추출

Introduction Chapter 7. 자연어 이해(NLU) Task 강의의 한국어 관계 추출 Task 실습 강의입니다. 이번 실습에서는 (1) KLUE-BERT base 모델을 KLUE 벤치마크 데이터셋의 KLUE-RE 데이터셋으로 파인튜닝하고, (2) 파인튜닝한 모델의 관계 추출 작업에 대한 성능과 결과를 분석해보겠습니다. !pip install transformers 1. KLUE-BERT 모델 불러오기 오늘 실습에는 대표적인 한국어 BERT 모델인 KLUE-BERT 모델을 사용합니다! KLUE-BERT 모델은 벤치마크 데이터인 KLUE에서 베이스라인으로 사용되었던 모델로,모두의 말뭉치, CC-100-Kor, 나무위키, 뉴스, 청원 등 문서에서 추출한 63GB의 데이터로 학습된 모델입니다. Mo..

자연어 처리 python 실습 - 한국어 자연어 추론 Task 실습

한국어 자연어 추론 Task 실습 Introduction Chapter 7. 자연어 이해(NLU) Task 강의의 한국어 자연어 추론 Task 실습 강의입니다. 이번 실습에서는 (1) SKTBrain이 공개한 KoBERT를 KLUE 벤치마크 데이터셋의 KLUE-NLI 데이터셋으로 파인튜닝하고, (2) 파인튜닝한 모델의 자연어 추론 작업에 대한 성능과 결과를 분석해보겠습니다. 자연어 추론(NLI) 작업의 목표는 가설 문장과 전제 문장 간의 관계를 추론하는 것입니다. 전제가 주어지면 NLI 모델은 가설이 참(entailment), 거짓(contradiction) 또는 미결정(neutral)인지 결정합니다. 이 작업은 RTE(Recognizing Textual Entailment)라고도 합니다. !pip in..

자연어 이해 NLU - Relation Extraction Task 관계 추출

트리플 데이터 - 객체 3개가 연결되어있다. subject에 대한 정보를 달라고 했을 때 object나 relation을 꺼내서 주면 된다. 1. 심볼릭 구조를 뉴럴넷에 활용한 것이다. 2. 로직 룰을 뉴럴넷에 활용했다. 관계 추출 작업은 구조적인 작업이므로 CNN도 활용 가능하다. CNN - 구획적으로 특징을 뽑는다. 임베딩을 이미지처럼 주어주면 CNN이 특징을 잘 뽑는다. 두 엔티티가 관계 정보만 학습한다. 집중해야할 엔티티를 명시적으로 표시해줬다. 학습 초기의 어려운 문제는 노이즈다! 데이터의 학습 순서를 바꾸어 효율적인 학습을 할 것이다. 쉬운 예제를 통해 일반적인 파라미터를 만든 후 어려운 관계 추출을 학습시켜 파라미터를 단단하게 만든다. 한국어로 관계추출 할 경우 이 것을 활용하면 된다.

생성형 인공지능 입문 6주차 퀴즈

1. 다음 문제 중 올바르지 않는 것을 고르시오. GPT의 장점이 아닌것은? 하나를 선택하세요. 1.자연스러운 텍스트 생성 2.문맥 파악의 다양성 3.대화형 응답 능력 4.빠른 프로토타이핑 음 4번...? 빠르진 않은거 같은데 2번 이었네요...? LLM이라서 엄청 느릴 줄 알았는데 GPT(Generative Pre-trained Transformer)의 주요 장점 중 하나는 자연스러운 텍스트 생성, 문맥 파악의 다양성, 대화형 응답 능력입니다. 이 모델은 다양한 자연어 처리 작업에서 뛰어난 성능을 보이며, 특히 대규모 데이터셋을 바탕으로 사전 학습된 후 특정 태스크에 대해 미세 조정될 수 있기 때문에, 자연스러운 언어 생성, 문맥에 기반한 이해, 대화 응답 등에서 강력한 성능을 발휘합니다. 그러나 "빠..

인공지능/공부 2024.04.10

자연어 처리 온라인 강의 - Machine Translation with RNN

RNN - 인코더와 디코더로 구성되어 있다. 인코더 인풋 - 번역해야될 문장 디코더 출력 - 번역 된 문장 입력이 들어갈 수록 정보가 사라져서 마지막 입력의 영향이 커지게 된다. -> 정보 병목 현상 -> attention 등장 attention - 딥러닝을 비틀어서 효율적으로 학습시킨 경험적 모델 어떤 단어를 집중해야 하는지 나온다. transformer 계열의 모든 모델에서 attention 개념이 사용된다. 인코더 모델과 디코더 모델의 어텐션을 계산해서 아웃풋을 계산한다. 디코더의 시작값과 인코더 모든 값을 내적하면 인코더 인풋 개수만큼 스칼라 값이 나온다. -> soft max를 취하면 1이 되면 확률 분포가 나온다. = attention distribution을 얻는다. 유사도를 얻게 된다-> ..

자연어 처리 과제 2 - CNN text classification 감성 분석

기본적인 구조입니다. 전처리를 진행해야죠 # total text tokens total_words = [] for words in words_list: total_words.extend(words) from collections import Counter c = Counter(total_words) # 빈도를 기준으로 상위 10000개의 단어들만 선택 max_features = 10000 common_words = [word for word, count in c.most_common(max_features)] print(common_words.index('행')) print(common_words[248]) 토큰화해서 제일 많이 나온 단어 10000개만 사용할 겁니다. 확인해보면 행이란 단어는 248번째..

728x90
728x90