24.12.23 - 24.12.27
이번 주에는 LLM과 관련한 프로젝트를 진행했다. 챗봇을 만드는 실습으로, 우리 조는 세법 관련 데이터를 학습한 챗봇을 만들기로 했다. 프로젝트를 진행하며 전처리 과정에 따라 결과가 크게 달라지는 것을 직접 확인할 수 있었고, 이러한 경험이 매우 흥미로웠다. 특히, 프롬프트 템플릿 메시지 작성 방식에 따라 결과가 극명하게 변화하는 점이 인상 깊었다. 작은 차이들이 결과에 미치는 영향을 체감하며 프로젝트를 더욱 재미있게 느낄 수 있어서 좋았다.
이번 주에는 CNN(합성곱 신경망)과 관련된 여러 중요한 개념과 기술을 배웠다.
transforms
와 Image Augmentationtorchvision.transforms
를 사용하면 회전, 크기 조정, 플립 등 다양한 변환을 쉽게 적용할 수 있다. VGGNet
ResNet
MobileNet
이러한 내용들을 배우며 CNN의 강력함과 다양한 활용 방법에 대해 깊이 이해할 수 있었고 특히, Image Augmentation과 Pretrained Model을 실제로 활용하며 실무에 적용 가능한 기술을 익힐 수 있었다.
깃헙 주소: https://github.com/SKNETWORKS-FAMILY-AICAMP/SKN06-3rd-4Team
데이터 전처리
# 머리말, 꼬리말 제거
regex1 = rf'법제처\s*\d+\s*국가법령정보센터\n{file_name.replace("_", " ")}\n'
text = re.sub(regex1, '', text, flags=re.MULTILINE)
# [ ]로 감싸진 텍스트 제거
text = re.sub(r'\[[\s\S]*?\]', '', text)
# < >로 감싸진 텍스트 제거
text = re.sub(r'<[\s\S]*?>', '', text)
# 페이지 번호 패턴 제거
text = re.sub(r'^- \d{1,3} -', '', text)
# - 머리말 및 사이드바 제거
regex2 = (r"2\n0\n2\n5\n\s*달\n라\n지\n는\n\s*세\n금\n제\n도|"
r"\n2\n0\n2\n4\n\s*세\n목\n별\n\s*핵\n심\n\s*개\n정\n세\n법|"
r"\n2\n0\n2\n4\n\s*개\n정\n세\n법\n\s*종\n전\n-\n개\n정\n사\n항\n\s*비\n교\n|"
r"\s*3\s*❚국민・기업\s*납세자용\s*|"
r"\s*2\s*0\s*2\s*4\s|"
r"\s한국세무사회\s|"
r"\n7\n❚국민・기업 납세자용|"
r"\n71\n❚상세본|")
re.sub(regex2, "", text)
# 문장이 다음줄로 넘어가면서 생기는 \n 제거
re.sub(r"([\uAC00-\uD7A3])\n+([\uAC00-\uD7A3])", r"\1\2" , text) #앞뒤글자 합치기
# NaN 제거
re.sub(r"\bNaN\b", r"\1\2" , text)
# 하나 이상의 공백문자를 한 개의 공백문자로 바꾸기
re.sub(r"\s+", " ", text)
단위 프로젝트 후 항상 보는 시험이 있는데, 이번 시험 주제는
이었는데, 알면서도 틀린 문제도 있었지만 2~3문제는 아예 몰라서 찍었던 것 같다... 시험 끝나고 그 개념을 다시 찾아봐야했고 나의 부족함을 한참 느끼며 진도는 끝났지만 전체적으로 내용을 다시 공부하며 복습해야겠다!
프로젝트를 하며 3일간(크리스마스 포함) 불태운 탓에 체력적으로나 멘탈적으로나 조금 지친 것 같다. 하지만 다음 주부터 시작하는 WEB! 너무 반가운 주제라 기대가 큰만큼, 열심히 수업을 듣고자 충분히 재충전하고 와야겠다 :)