CS/NLP 17

실습2-2. 텍스트 정보 추출 모델 API 생성

배경이전 연구에서 문자 데이터의 특정 정보를 효율적으로 추출하는 방법에 대해 탐구하였습니다.이 과정에서 다양한 기계 학습 및 자연어 처리 모델 중 KoBERT 모델이 한국어 텍스트에 대해 우수한 성능을 보임을 확인했습니다.https://chocochip125.tistory.com/220 텍스트 정보 추출 (with. 개체명 인식(NER))보호되어 있는 글입니다. 내용을 보시려면 비밀번호를 입력하세요.chocochip125.tistory.com이에 본 프로젝트는 학습된 KoBERT 모델을 활용하여 문자 데이터로부터 필요한 도메인 정보를 식별하고 추출하는 API를 구현하는 것을 목표로 하였습니다. 구현 과정모델 및 토크나이저 로드: 학습된 KoBERT 모델과 토크나이저를 메모리에 로드하여 요청 처리를 준비입..

CS/NLP 2024.03.27

실습2-1. 텍스트 정보 추출 모델 (with. 개체명 인식(NER))

배경 및 목표이전에 진행된 작업은 수신된 문자 메시지를 그 내용이 속하는 클래스별로 분류하는 과제였습니다.https://chocochip125.tistory.com/212 종설 분류 모델 api 생성배경 이전 연구에서 다양한 기계 학습 모델 중에서 문자 데이터를 효과적으로 다중 분류할 수 있는 모델로 랜덤 포레스트를 선택했습니다. https://chocochip125.tistory.com/211 종설 분류 모델 보고서 보chocochip125.tistory.com 이는 다양한 유형의 메시지를 효율적으로 관리하고 필요한 정보에 쉽게 접근할 수 있도록 하는 기반 작업이었습니다. 그러나, 수신 문자의 모든 내용을 그대로 프롬프트로 활용하는 방식은 효율성이 떨어집니다. 만약 각 클래스에 맞는 필요한 도메인 정보..

CS/NLP 2024.03.26

실습1-2. 텍스트 분류 모델 API 생성

배경이전 연구에서 다양한 기계 학습 모델 중에서 문자 데이터를 효과적으로 다중 분류할 수 있는 모델로 랜덤 포레스트를 선택했습니다.https://chocochip125.tistory.com/211 종설 분류 모델 보고서보호되어 있는 글입니다. 내용을 보시려면 비밀번호를 입력하세요.chocochip125.tistory.com이번 단계에서는 학습된 랜덤 포레스트 모델을 로드하여, 애플리케이션에서 문자 데이터를 전송할 시 해당 데이터의 분류 클래스를 반환하는 API를 구현하는 작업을 진행하였습니다.이를 위해 API 개발에 간편하고 효율적인 FastAPI 프레임워크를 사용했습니다. 구현 과정모델 및 벡터라이저 로드먼저, 학습 과정에서 생성된 랜덤 포레스트 모델과 TF-IDF 벡터라이저를 로드합니다.# 랜덤 포레..

CS/NLP 2024.03.21

실습1-1. 텍스트 분류 모델 생성

분류 모델 선정본 프로젝트에서는 문자 데이터를 다양한 클래스로 분류해야 하는 과제에 직면하였습니다. 문자 데이터의 성격과 프로젝트 요구 사항을 고려하여, AI 기반 모델을 활용한 분류 방식을 채택하기로 결정하였습니다. 이에 따라, 텍스트 분류에 적합한 여러 모델을 검토한 결과, 다음 네 가지 모델을 후보로 선정하였습니다.CNN (Convolutional Neural Networks): 주로 이미지 처리에 사용되나, 텍스트에서도 유효합니다. 단어나 문장의 지역적 패턴 인식을 통해 텍스트 분류에 활용됩니다.LSTM (Long Short-Term Memory): 시퀀스 데이터 처리에 최적화된 모델로, 텍스트의 순서와 문맥을 이해하여 복잡한 텍스트 구조를 효과적으로 처리합니다.랜덤 포레스트 (Random For..

CS/NLP 2024.03.21

이론 4. 문서 분류 모델

문서 분류(document classification)정의: 문서가 주어졌을 때, 해당 문서의 범주를 분류하는 과제종류:범주 분류감성 분석(sentiment analysis): 문장의 극성(polarity)를 분류하는 과제 분류 모델 처리 구조1. 모델 입력문장을 토큰 시퀀스로 변환하기 위해 토크나이저와 어휘 사전(vocab)을 활용토큰 시퀀스에 스페셜 토큰(CLS, SEP) 첨부 2. 모델 처리입력된 토큰 시퀀스의 각 토큰에 대해 임베딩(토큰을 벡터 변환)을 계산최종적으로 문장 수준의 벡터 추출 3. 분류 태스크 모듈 첨가문장 수준의 벡터에 작은 추가 모듈을 덧붙여 모델 전체의 출력이 [긍정일 확률, 부정일 확률] 형태가 되로록 설정 태스크 모듈 구조1. 드롭 아웃 처리드롭 아웃 정의: 입력 벡터 요소..

CS/NLP 2023.11.13

이론 3-6. 단어/문장을 벡터로 변환(임베딩)

파인 튜닝(fine-tuning)정의: 프리트레인을 마친 모델 위에 작은 모듈을 쌓아 태스크를 수행하는 구조종류: 다운스트림 태스크에 따라 크게 2가지 방식으로 나뉨문장 벡터 활용: 문서 분류단어 벡터 활용: 개체명 인식 파인 튜닝 과정토큰화 진행문장을 워드피스로 토큰화 + 문장 앞뒤에 시작과 끝을 알리는 스페셜 토큰 추가(CLS, SEP) 계산BERT는 트랜스포머 인코더 블록을 여러 개 쌓은 구조각 블록의 입력과 출력은 단어의 벡터 시퀀스블록 내에서 토큰 벡터를 2개씩 짝을 지어 서로의 관계를 모두 고려하는 방식으로 계산 최종문장 벡터BERT 모델의 마지막 블록에서 CLS에 해당하는 벡터를 추출그리고 여기에 간단한 처리를 해서 최종 출력을 생성 단어 벡터BERT 모델의 마지막 블록에서 모든 토큰에 해당..

CS/NLP 2023.11.13

이론 3-4. 트랜스포머에 적용된 기술

트랜스포머는셀프 어텐션 말고도 다양한 기법을 통해 성능이 좋음 트랜스포머 블록인코더와 디코더는 본질적인 구조는 비슷멀티 헤드 어텐션 + 피드포어드 뉴럴 네트워크 + 잔차 연결 및 레이어 정규화 피드포워드 뉴럴 네트워크(feedforward neural network)멀티 헤드 어텐션의 출력은 입력 단어들에 대응하는 벡터 시퀀스해당 벡터를 입력으로 사용구조: 입력층(x) + 은닉층(h) + 출력층(y)으로 구성각 구성들은 뉴런으로 구성됨입력층의 뉴련 개수 = 출력층의 뉴런 개수 = 은닉층의 뉴런 개수 * 4예시) 768차원, 768차원, 2048차원 뉴런수식: ∑ (xi​⋅wi​)+b  ( 이전 뉴런 값(xi) * 가중치(wi) + 바이어스(b) )가중치와 바이어스는 학습 과정에서 업데이트활성화 함수: 뉴..

CS/NLP 2023.11.13

이론 3-3 셀프 어텐션 동작 원리

인코더/디코더 입력 생성 - 트랜스포머 토큰 시퀀스에 위치 정보(문장 내에서 몇번째 위치)를 추가하여 벡터 시퀀스로 변환하는 것다음 인코더/디코더 블록의 입력은 이전 블록의 출력 -> 이를 시퀀스 개수(N) 만큼 반복  트랜스포머 출력층(output layer)출력층의 입력은 디코더 마지막 블록의 출력 벡터 시퀀스출력층의 출력은 타킷 언어의 어휘 수만큼의 차원을 갖는 벡터타깃 언어의 어휘가 3만개면, 3만 개의 차원수를 가지며 3만 개 요소값을 전부 더하면 그 합은 1 셀프 어텐션 내부 동작(1) 쿼리, 키, 값 만들기

CS/NLP 2023.11.13

이론 3-2. 트랜스포머

트랜스포머배경2017년 구글이 제안한 시퀀스-투-시퀀스(sequence-to-sequence) 모델최근 NLP분야에서 트랜스포머 기반 언어 모델이 각광 받음(GPT, BERT) 시퀀스-투-시퀀스정의: 특정 속성을 지닌 시퀀스(source language)를 다른 속성의 시퀀스(target language)로 변환하는 작업예시)기계 번역: 한국어(소스 시퀀스) -> 영어(타겟 시퀀스)기온 데이터(소스 시퀀스) -> 태풍 발생 여부(타겟 시퀀스) 인코더와 디코더시퀀스-투-시퀀스 과저 수행 모델은 인코더와 디코더 2개 파트로 구성인코딩: 소스 시퀀스 정보를 압축하여 디코더로 보내는 과정디코딩: 인코딩된 소스 시퀀스 정보를 받아 타깃 시퀀스를 생성하는 과정 모델 학습트랜스포머의 학습은 인코더와 디코더의 입력이 ..

CS/NLP 2023.11.11