LLM - Detect AI Generated Text

김태준·2023년 12월 22일
0

Deep-Learning

목록 보기
8/10

출처 : https://huggingface.co/blog/large-language-models

오늘은 ChatGPT로 인해 화두로 떠오른 LLM에 대해 구체적인 이론은 무엇이고 왜 유행하게 되었는지, 대표적인 모델은 무엇이 있고 향후 어떤 방식으로 적용될 지에 대해 고민해보고자 한다.

✍️ LLM이란

LLM은 Large Language Model의 약자로 언어모델을 의미하는 LM을 더욱 확장한 개념으로 인간의 언어를 이해하고 생성하도록 훈련된 AI를 통칭한다.

LLM에 앞서 LM은 언어라는 현상을 모델링하고자 단어 시퀀스(문장)에 확률을 할당하는 모델이다. 즉, 가장 자연스러운 단어 시퀀스를 찾아내는 모델을 의미한다.

단어 시퀀스에 확률을 할당하기 위해 가장 보편적으로 사용하는 방법은 크게 이전 단어들이 주어진 상황에서 다음 단어를 예측하는 것이다. 이러한 예측을 수행하기 위해 모델을 만드는 방법은 크게 2가지로 통계 기반과 인공 신경망을 활용한 방법이 있다. 통계의 경우 전문적인 지식을 요하고 인공 신경망의 경우 딥러닝 기반 이해가 깊게 필요하다. 최근 유행 중인 GPT, BERT 모델 역시 인공 신경망을 기반으로 생성한 LM이다.

언어 모델링이란, 주어진 단어들 즉, 이전에 단어들을 기반으로 다음 단어를 예측하는 일이다. LLM 등장 이전 NLP에서 가장 보편적으로 활용되었고 특허와 같은 데이터 분석 수행에 있어 텍스트 분석은 반드시 필요한 작업이다.

언어모델은 문장을 활용해 다음 단어를 예측하는 확률을 할당하는 작업을 수행하며 다음과 같은 작업을 수행한다.

  • Machine Translation
  • Spell Correction
  • Speech Recognition

💡 LLM

앞서 LM에 대해 간략하게 정리해보았다. 더 디테일하게 파고들면 텍스트 데이터를 어떤 방식으로 처리하고 트랜스포머 모델까지 들어가 정리를 해야 하지만, LLM에 대해 알아보면서 정리를 하고자 한다.

LLM은 결국 다양한 NLP 작업을 수행할 수 있는 딥러닝 알고리즘이다. 앞선 언어모델(LM) 앞에 Large라는 단어가 붙는 것으로 트랜스포머 모델을 활용해 빅데이터를 학습한다. 앞선 언어모델과 비교하면 데이터 양의 차이가 가장 두드러지게 나타날 수 있다.

LLM을 기반으로 우리는 STT, TTS 등 텍스트를 활용해 인식, 번역, 예측, 생성을 진행할 수 있다.

🎈 Transformer 모델

LLM의 가장 일반적인 아키텍처로서 인코더와 디코더로 구성되어 있다. 트랜스포머 모델은 입력된 언어/단어 정보들을 토큰화한 이후 토큰 간의 관계를 발견하기 위해 동시에 통계/수학 기법을 적용해 데이터를 처리한다.

트랜스포머 모델은 self-attention 메커니즘과 함께 작동하는데 이 메커니즘은 모델이 장단기 기억 모델과 같은 traditional한 모델보다 더 빠르게 학습할 수 있게 도와준다.

self-attention : 트랜스포머 모델이 시퀀스(문장)의 일부 또는 문장의 전체 맥락을 고려하여 예측을 생성할 수 있도록 함.

LLM은 결국 트랜스포머 모델을 기반으로 시퀀스를 입력받아 인코딩한 이후, 디코딩해 예측을 수행한 결과를 출력하는 방식으로 작동한다. 인코딩 ~ 디코딩 사이에 여러 신경망 layer 들이 구성되어 있는데 순환 레이어, feed-forward 레이어, embedding layer, attention layer 등이 함께 동작한다.
우선 embedding layer는 입력된 텍스트로부터 임베딩을 생성하여 모델이 단어를 인지할 수 있도록 한다.
순환 레이어는 입력 텍스트의 단어를 순서대로 해석하여 문장 내 단어 간의 관계를 파악한다.
FFN은 앞서 생성한 임베딩을 변환하는 작업을 수행하는 레이어가 여러 개 연결되어 있는 것으로 더 높은 수준의 추상화를 수집한다. (즉 모델이 USER의 의도를 파악하기 위함.)

❗ Word Embedding

여기서 임베딩을 자세히 살펴보려 한다. 기존의 ML에서는 숫자나 표를 활용하여 각 단어를 표현했지만, 유의어나 동의어와 같은 관계를 인식하기엔 버거움이 있었다. 이러한 한계를 극복한 것이 word-embedding으로, 다차원 벡터를 활용하여 벡터 공간 내 문맥 상 의미가 비슷하거나 유의어, 동의어에 파라미터를 부여함으로써 해결할 수 있다.

결과적으로 word-embedding을 거쳐 각 단어들은 벡터로 표현되어 계산할 수 있게 되고, 모델에도 투입할 수 있게 된다.

즉 단어를 밀집 벡터(dense vector)의 형태로 표현하는 방법을 워드 임베딩(word embedding)이라고 합니다.

그리고 이 밀집 벡터를 워드 임베딩 과정을 통해 나온 결과라고 하여 임베딩 벡터(embedding vector)라고도 합니다.

✅ LLM 등장 이유

결국 LLM은 다양한 IT 기기들의 등장으로 데이터가 매초 수 억개 생성되는 것을 따라가기 위해 등장한 거대한 LM으로, 기존 특허 분석, 텍스트 마이닝에 적용된 LM에 비해 데이터 양의 차이가 크게 다름을 알 수 있다. LLM의 모델들은 각 기업 별 고유 데이터, Google, Wiki, Github 등 수많은 종류의 오픈 소스 내 시퀀스를 학습하여 문장 구조, 문법, 의미를 기계가 학습한 것을 의미한다.

🎈 LLM이 왜 중요?

  1. 산업 적용 가능성이 높다.
    LLM은 다양한 유형의 소통이 필요한 언어, 일반적인 시뮬레이션에 적합하고 현재 IT 기기를 누구든 소유하고 있기에 데이터 양이 늘어나고 있기에 산업 전반에 AI가 활용되는 범위가 넓어지고 있어 생산성 측면에서 상당히 효율적이다.
    제조업, 서비스업의 경우 LLM을 기반으로 챗봇 서비스를 실행해 고객 서비스 품질을 높이고 있고, 생명과학 분야의 경우 단백질, 분자, DNA, RNA와 같은 분야를 이해하는데 LLM을 활용하고 있다. 또한 ChatGPT와 같이, 소스코드를 작성할 수 있어 많은 개발자들에게도 도움을 줄 수 있고 마케터는 LLM을 활용해 접수된 고객들의 피드백을 바탕으로 세그먼트 분석에도 활용할 수 있다.

🎈 LLM 작동 원리

LLM의 유형은 다음과 같다.
1. SLM (Small Language Model) : 제한된 양의 텍스트 데이터를 학습해 국소적인 문맥, 문법을 이해하는데 초점을 둔 모델.
2. NLM (Neural Language Model) : 기존 통계 기반 LM보다 더 정확한 성능을 제공. (딥러닝 기법을 활용했기에 성능 측면에서 우수하고 Word-Embedding, 문장 완성, Machine Translation 등 NLP 작업에 사용)
3. PLM (Pretrained Language Model) : 빅데이터를 미리 학습한 모델로서 이후 다양한 NLP 작업에 Transfer Learning을 통해 적용된다. ex) BERT, GPT.

사람들이 알고 있는 대부분의 LLM은 대형 PLM을 의미한다.

🎈 LLM 핵심 기술

1960년대 LLM 등장 이후 수많은 연구 끝에 지금의 LLM이 등장하게 되었는데, LLM에 쓰인 유용한 기술에 대해 살펴보고자 한다.

  1. 스케일링
    : 단어 말 그대로 빅데이터셋, 컴퓨팅 리소스를 활용해 LM의 성능을 더욱 향상 시킨 것을 의미한다. LLM의 스케일링 방법은 2가지로 첫째는 모델의 크기를 늘리는 방법이 있지만 더 많은 연산 능력과 메모리를 요구한다. 두번째는 Data Augmentation을 활용해 모델을 확장하는 방법이 있다.

  2. 학습
    다양한 레이어가 병렬되어 활용되기에 수 천 억개의 파라미터가 LLM 신경망 내 존재하는데, 기존 모델 학습과는 달리 분산된 훈련 알고리즘이 필요하다. 이에 따라 DeepSpeed, Megatron-LM과 같은 최적화된 분산 프레임워크들이 출시되었다. 또한 훈련 Loss을 극복하기 위해 모델 재시작, 정밀도 훈련과 같은 최적화 방식도 모델 성능에 아주 주요한 역할을 한다.

  3. 능력 도출
    대규모 언어 데이터를 기반으로 pretrained된 LLM은 다양한 사업 전략에 활용될 수 있지만 명시적인 규칙이나 방법이 제시되어 있지 않기에 적절한 작업 가이드나 특정 상황에 맞는 학습 전략이 필요하다. 따라서 Prompt engineering이 필요하게 되었다.

  4. 정렬 튜닝
    입력문장과 레퍼런스 문장 간의 정렬 정보를 모델 학습 시에 이용하는 방법으로 언어 번역에 유용하게 활용된다.

  5. 도구 조작
    LLM은 텍스트 형태가 아닌 데이터를 처리하는데는 부적합하다. 언어 기반 트랜스포머 모델을 활용하기에 외부 플러그인을 활용하여 해결이 필요하다.

✅ Fine-tuning VS Prompt-tuning

  • Fine-Tuning
    : 사전 학습된 LM 전체를 대상으로 추가 작업 데이터를 이용해 모델을 재학습시키는 방법. 사전 학습한 모델을 초기 가중치로 사용하고 특정 작업에 대한 추가 학습 데이터로 모델 재학습.
    -> 모델 파라미터의 일부, 전체를 재학습하기에 일부 작업에 최적화된 모델 생성 가능
    -> 대량의 추가 작업 필요 가능성 존재
    -> 일반적으로 시간이 오래 걸림
  • Prompt-Tuning
    : 입력 텍스트에 특정 구조화된 프롬프트를 추가하거나 수정해 모델의 동작을 조정하는 방법으로 특정 작업에 최적화된 프롬프트를 구성해 모델 출력 시 원하는 결과 얻도록 모델을 조정하는 기법.
    -> 사전 학습된 모델의 파라미터를 고정하고, 프롬프트 구성을 통해 레이블 값 변화
    -> 기존 데이터에 추가 작업 필요가 없어 데이터 확보에 대한 부담 X
    -> 특정 작업에 최적화는 힘들지만 다양한 작업에 일반적으로 성능 개선
    -> 초기 설정, 프롬프트 구성에 많은 시간 소요.

✅ LLM 모델 종류

LLM 등장 이전, 대표적으로 특허 분석에 활용되는 TF-IDF 통계 기반 LM이 존재했다.

  • BERT : 구글에서 개발한 언어모델로 자연어를 순차적으로 이해하고 질문에 답할 수 있는 트랜스포머 기반 모델.
    cf.https://happy-obok.tistory.com/23

  • PaLM : 구글에서 개발한 모델로 상식적이고 연산적인 추론, 농담, 코드 생성, 번역 등 가능

  • XLNet : 순열 언어 모델로 순차적 순서가 아닌 무작위 순서로 출력 예측을 생성해 BERT와 차별화

✅ 추후 사용될 요소

  1. 카피라이팅
  2. 텍스트 분류 (감정 분석)
  3. ChatGPT와 같은 소스 코드 작성
  4. 텍스트 생성 (다음 단어 예측 기반)
profile
To be a DataScientist

0개의 댓글