한국어임베딩 자연어 처리 모델 성능
저자: 이기창 지음
단어와 문장의 연관성
임베딩이 더 궁금해진 이유가 있다. 별자리에 대한 과학과 우리의 음양오행에 대한 해석에 대한 키워드와 문장의 연관성이 있는지 궁금해지면서 시작됐다.
성향에 대한 키워드가 있으면 다른 자료에서 같은 년월시에 태어난 사람이 같다면 우주가 증명이 되는 것만같은 생각이 들었기 때문인데, 결국 개인적인 호기심 때문에 어쩌다보니 책을 찾아서 읽게 되었다. 사실 실습은 다 해보지 못했지만, 얻어가는 지식은 많았기에 짧은 공유를 해야겠다는 생각이 들었다.
한국어가 어렵기 때문에
처음 서울시에서 시작한 새싹프로젝트에서 훈련과정을 들으며 아무래도 시간이 짧다보니 이해가 힘들었던 부분이었다. 처음에 계속 한국어는 복잡하다고 들었지만 솔직히 뭐가 어떻게 왜 그렇게 다른지 몰랐다. 자연어처리가 사람의 언어를 컴퓨터 언어로 바꾸는 것이라 할 때, 깊은 인상을 받았다.


인상깊었던 점은 중요하다고 생각하는 부분을 상세히 알 수 있었다. 내용은 뉴럴 네트워크 발전으로 정보가 우리에게 넘어오는 방향의 역사를 본다고 해야할까? 동시에 머신 러닝 논문들을 압축시켜 이해하도록 녹아내리려 한 것 같았다. 그러나 너무 수학이라 어려워서 다는 이해하지 못했다.. 대상 독자를 읽고 무서웠는데 이유를 읽고나면 알게된다. 그래도 호기심이 있음 다는 몰라도 보긴 해야지!! 우선 책은 경희대학교 서울 캠퍼스에서 빌렸다.
벡터들 사이의 유사도와 초반 모델
한국어 말뭉치는 구분 짓는게 어렵다. 통계적 패턴으로 학습을 시키는데 초반 모델을 상상만 해도 내가 과연 가능할까? 라는 생각이 들었다. 왜냐하면 초반엔 언어학적 지식과 컴퓨터의 이해도 필요하기 때문에 상상이 안된다. 책에서 한국어는 명사 앞에 관형사가 올 수 있고, 조사가 명사 뒤에 오는 정도가 많고, 동사는 부사가 그 앞에 오고 어미가 그 뒤에 나타난다고 하는데 학창시절에 배운 그런 용어는 잘 기억이 안나지만 영어과 반대다는 기억이 난다. 여하튼 그런 규칙을 알려주며 딥러닝을 했다는 사실이 놀랍다.
예측 기반 방법으로 어느 단어 주변이 있으면 다른 빈칸에 특정 단어가 언제 어떤 것이 나타날지 예측한다. 토픽 기반 방법도 존재하는데 잠재되어 있는 토픽과 주제를 추론하며 임베딩을 수행한다. 초반에 사람이 개입하다가 이후 개입을 멈추고 모델이 이해하도록 유도한게 엔드투엔드 모델인데 seq2seq 가 대표적이라고 한다.
문맥 추론 의미적 문법적인 맥락
다음 이미지는 내가 깊게 감탄한 페이지인데, 처음엔 전처리가 데이터가 지저분하다면 의미가 없다는 말을 들어올 때 이해가 안갔는데 결과를 위해서는 어쩔 수 없는 거였다.

정말 신기하고 재미있는 한글과 컴퓨터 세상처럼 느껴졌다. 단어 예측에서 문장 문맥 예측이 흥미로웠다. 나는 우선 내가 갖고 있던 별자리 자료 찾아둔 것을 말뭉치 사전을 만드는 일을 해보기로 했다.
내가 갖고 있던 자료는 사진으로 된 PDF라서 어떻게 글로 바꿀까 고민을 먼저 했다. 과거에 만들었던 RAG챗봇은 글로 이루어진 PDF로 가능한 터라 어도비 ocr 번역도 해보고 아이폰으로 그 부분을 꾹 눌러서 글자 복사도 해보니 오래 걸리거나 전혀 말이 안되게 나왔다. 그리하여 저는 결국
제일 효율적이고 빨랐던 방법 (그림 pdf 를 ocr 글이 있는 pdf로 바꾸며 텍스트 파일로 저장하기)
클로드 등 LLM을 사용한다. (제일 정확한 방법)
1. 사진으로 된 pdf를 채팅으로 전하거나 클로드 코드로 위치를 전달한다.
2. 글자 인식이 가능한지 묻는다. 그리고 .txt 파일로 만들어 달라고 한다.
제일 별로였던 방법은, 어도비 pdf 로 글자 추출하는 방법이었어요. 돈주고 쓰는데 이해가 안되네요.

책에서는 FullTokenizer 로 했는데 저는 잘 안되길래 음? 뭐지 싶어서 물어보니까 새로 나온 버전으로 버트워드피스를 쓰는 것 같더라고요.

이제 토큰을 분리해보고 보니 아래와 같이 쭈욱 들어왔는데 이걸 보니 나는 또 내 다른 별자리 문장 문맥이랑 어떻게 연결해야 할지 몰라 고민을 하다가 그냥 책을 계속 읽어나갔다.
종종
될
당신이
당신은
##까지
사실 학원에서 초반에 Bow와 n-gram 을 배우는데 까맣게 있고 있다가 책으로 다시 접하니 반가웠다. 전엔 하나도 이해가 가지 않던 하이퍼볼릭탄젠트와 소프트맥스로 출력과 출력을 거치는데 무슨 말이지 하며 눈물이 날뻔 했던 부분이 좀더 이해가 가능해졌다. 물론 인공지능의 도움도 조금 빌렸지만.
값들(입력층)을 탄젠트를 거치며(은닉층) -1~1 사이 값으로 예측할 단어를 뚜렷하게 만들도록 한다. 그리고 그 벡터에 소프트맥스 함수를 적용(출력층)하면 벡터 값이 0~1 사이 값으로 나와서 통계적으로 많이 나오는 단어를 유추해 문장에서 단어를 맞춰가며 학습한다.
결론적으로 한국어 임베딩 책에서는 전처리 자연어 처리의 머신 러닝 부분을 조금 더 깊게 이해할 수 있는 기회를 줬다. 나중에 발전되는 이야기를 듣다보며 인공지능이 정말 숫자들이 맞구나 싶었다. 그래서 더 많이 생각이 드는 부분은 인공지능이 잘못 되면 숫자 값이 잘못된 것이거나 나쁜 방향으로 쓰도록 한것이라 생각이 들었다. 그래서 오히려 숫자라 강력하다고 생각이 든다.