목록전체 글 (62)
언어 전공자의 NLP 로그
오늘은 EDA (Easy Data Augmentation) 개념을 도입해 데이터를 늘림으로써 테스트 정확도를 높일 수 있는지 알아보았다. [참고 링크] : https://fish-tank.tistory.com/95, https://cordingdiary.tistory.com/79, https://github.com/catSirup/KorEDA/blob/master/eda.py 텍스트의 데이터 증강은 이미지와는 다르게 일부 조작만으로도 의미가 크게 변질될 가능성이 있어서 쉽지 않습니다. 한국어는 조사가 문법적인 기능을 명시해주기 때문에 비교적 문장 순서가 바뀌어도 의미가 보존된다고는 하지만, 그 역시 무한정 통용되는 이야기는 아니다. 또한 문장의 중요한 성분을 임의로 제거해버리면 (물론 주어는 빈번히 생략..

1. 데이터 구성 1차 : GPT-4로 생성한 감정별 1000개 문장 … 총 7758개 데이터 생성 (ex) '애정'과 관련된 문장 xx개 생성해줘.) 주말에 친구와 새로 개장한 레스토랑에 가기로 했는데, 그곳의 맛과 분위기를 기대하고 있어. (기대) 친구가 나의 개인 사진을 허락 없이 SNS에 올렸을 때, 분노가 치밀어서 바로 친구에게 사진을 내리라고 했다. (분노) 여동생이 나에게 어려운 과제를 도와줘서 고마웠어. (애정) 하루가 끝나갈수록 나는 더욱 힘들어져. (우울) 문제점 : 구체적인 프롬프팅 없이 생성 시 중복되는 표현과 획일적인 어휘 사용으로 인해 학습 효과가 떨어지고 과적합이 일어날 수 있다고 판단. 또한 4명의 구성원이 모두 다른 프롬프트를 사용해서 예시 문장을 작성했던 것이 확인되어, ..
https://www.acmicpc.net/problem/11399 11399번: ATM 첫째 줄에 사람의 수 N(1 ≤ N ≤ 1,000)이 주어진다. 둘째 줄에는 각 사람이 돈을 인출하는데 걸리는 시간 Pi가 주어진다. (1 ≤ Pi ≤ 1,000) www.acmicpc.net n = int(input()) numbers = list(map(int, input().split())) wait_time = 0 total = 0 while numbers: wait_time += numbers.pop(0) total += wait_time print(total) - 해당 문제에서는 매 순간의 최적해가 최솟값이다. - 따라서 최솟값을 찾아 pop으로 꺼내어 매번 wait_time에 더해주고, total은 각각..
https://www.acmicpc.net/problem/2839 2839번: 설탕 배달 상근이는 요즘 설탕공장에서 설탕을 배달하고 있다. 상근이는 지금 사탕가게에 설탕을 정확하게 N킬로그램을 배달해야 한다. 설탕공장에서 만드는 설탕은 봉지에 담겨져 있다. 봉지는 3킬로그 www.acmicpc.net n = int(input()) b = n//5 a = n//3 b_bag = [i for i in range(b, -1, -1)] a_bag = [i for i in range(a, -1, -1)] temp = 0 for b in b_bag: for a in a_bag: if 5*b+3*a == n: print(a+b) temp = 1 break if temp == 1: break if temp == 0: ..

1. 문제 인식 요즘 프로젝트를 진행하느라 코딩 테스트를 준비할 시간이 없었다. 코딩 연습을 하는 과정 자체가 프로젝트와 직접적인 연관이 없다고 생각해서 다소 소홀했던 것이 사실이다. 그런데 앱에 사용되는 함수를 구현하는 과정에서 알고리즘적인 접근이 필요한 순간이 발생하면서, '아, 이래서 기본기가 중요하구나'라는 깨달음을 얻었다. 내가 구현하려고 하는 부분은 감정 분석의 결과를 일기장에 보여주는 과정에서 최빈 감정 태그 2개를 추출하는 코드였다. 그런데 단순히 빈도수를 기준으로 내림차순으로 정렬하여 상위 2개 태그를 도출하게 되면 빈도수가 겹치는 경우를 온전히 반영하지 못한다는 문제가 발생한다. 예컨대, [('기쁨', 5), ('애정', 4), ('혐오', 4), ('중립', 4), ('기대', 3),..
1. 모델 별 텐서 용량 비교 모델용량 LLaMA 7B 12GB LLaMA 13B 24GB LLaMA 30B 60GB LLaMA 65B 121GB KULLM 5.8B 23GB KULLM 12.8B 26GB KoAlpaca-Polyglot 5.8B 13GB KoAlpaca-Polyglot 12.8B 26GB 넉넉 잡아 파라미터 수 x2 한 값의 용량이 나옵니다. 2. AWS SageMaker AWS에서 제공하는 서비스는 종류가 너무 다양해서 차마 다 나열하기도 힘든데, ML과 관련된 서비스로는 SageMaker가 가장 유명합니다. 특장점으로는 Jupyter Notebook와 비슷한 개발 환경을 사용하므로 배포가 용이하다는 점이 있습니다. 또한 저희 프로젝트에서처럼 추론 (inference)에만 사용할 수도..
1. Prompt You are a sentiment analyzer. You will be given a dialogue between user and assistant. You will analyze each of the user's inputs and give them a label of either positive and negative. Only respond to 'user's sentences. If the input was positive, you will sub-categorize the sentence into the following 4 emotions: joy, anticipation, passion and affection If the input was negative, you w..

데이터 셋 GPT4 생성 8가지 감정 태깅 텍스트 : [아직 데이터 수집 중] 학습 모델 KoBERT train data : 6206 쌍 test data : 1552 쌍 학습 목표 8개의 감정 (기대, 기쁨, 애정, 열정, 분노, 슬픔, 우울, 혐오)을 분류하는 multi-classification 문제 학습 파라미터 # Setting parameters max_len = 64 batch_size = 64 warmup_ratio = 0.1 num_epochs = 5 max_grad_norm = 1 log_interval = 200 learning_rate = 5e-5 학습 결과 Train accuracy의 경우 거의 1에 근접한 수치를 보였습니다. 이는 GPT-4 데이터가 생성한 패턴을 거의 정확하게 ..