Data for Breakfast 서울 - 3월 19일 (목)

데이터와 에이전틱 인텔리전스로 비즈니스 가치를 실현하세요!

BERT 소개: NLP 모델 설명

BERT의 개념과 작동 방식을 알아보세요. BERT 모델 아키텍처, 알고리즘, AI와 NLP 작업 전반에 미친 영향 및 대규모 언어 모델의 진화를 확인해 봅니다.

  • 개요
  • BERT란?
  • BERT가 중요한 이유
  • BERT 작동 방식
  • BERT의 실제 사용 사례
  • BERT의 주요 한계
  • BERT vs. 기타 언어 모델 비교
  • 결론
  • BERT 관련 자주 묻는 질문
  • Snowflake를 사용하는 고객 사례
  • Snowflake 리소스

개요

BERT(Bidirectional Encoder Representations from Transformers)는 컴퓨터가 자연어를 처리하는 방식에 획기적인 전환점을 가져온 모델입니다. 2018년 Google이 개발한 이 오픈소스 접근 방식은 텍스트를 양방향으로 동시에 분석해 컨텍스트 속에서 단어의 의미를 더 정밀하게 파악할 수 있도록 설계됐습니다. BERT는 대규모 텍스트 데이터를 사용해 언어 모델을 사전 학습한 뒤, 이후 다양한 작업에 맞게 파인튜닝하는 방식을 정립했습니다. 이는 오늘날 사용되는 트랜스포머 기반 대규모 언어 모델의 토대를 마련했으며, 컨텍스트에 대한 깊은 이해가 인간의 언어를 제대로 이해하는 AI를 만드는 핵심이라는 점을 보여줍니다.

이 가이드에서는 BERT의 핵심 개념을 설명하고 작동 원리를 살펴본 뒤, 대표적인 실제 활용 사례를 소개합니다.

BERT란?

BERT는 각 단어를 순차적으로 처리하는 대신, 특정 단어의 앞뒤 단어를 동시에 분석함으로써 자연어 처리(NLP)에 혁신을 가져왔습니다. 기반이 되는 트랜스포머 아키텍처를 통해 언어 모델은 문장 내에서 단어 간 거리에 관계없이 서로 간의 중요도를 판단할 수 있으며, 주변 컨텍스트를 바탕으로 철자가 동일한 단어의 의미도 구분할 수 있습니다.

또한 BERT는 모델 학습을 위한 2단계 프로세스를 도입했습니다. 먼저 레이블이 없는 방대한 텍스트로 모델을 학습시켜 언어 패턴에 대한 전반적인 이해를 형성합니다. 그 다음 소규모 레이블 데이터 세트를 사용해 특정 작업에 맞게 모델을 파인튜닝하며, 이러한 접근 방식을 '전이 학습'이라고 합니다. 이로 인해 각 언어 모델을 처음부터 학습할 필요가 없어졌고, 인터넷 검색과 감성 분석을 포함한 다양한 애플리케이션에서 최첨단 자연어 처리(NLP)를 활용할 수 있게 됐습니다. 

Google은 2019년 검색 엔진에 BERT를 통합해 사람들이 실제로 작성하는 방식 그대로 검색어를 이해할 수 있도록 했습니다. 이 기술은 현재 거의 모든 영어 검색어에 적용되고 있으며, 다양한 언어로도 확장돼 복잡한 질문 해석, 대화형 검색 이해, 컨텍스트가 중요한 쿼리 처리에서 Google의 정확도를 크게 향상시켰습니다.

BERT가 중요한 이유

BERT의 양방향 컨텍스트 분석 능력은 AI와 NLP 진화 과정에서 중요한 이정표로 평가됩니다. 이를 통해 질문 응답, 감성 분석, 명명된 엔터티 인식(단어가 사람, 제품, 조직 또는 기타 엔터티를 나타내는지 자동으로 분류하는 작업)을 포함한 11개 NLP 과제 전반에서 기록적인 성과를 달성할 수 있었습니다. BERT에 사용된 트랜스포머 아키텍처는 긴 텍스트 전반에 걸친 단어 간 관계를 포착함으로써, 사실상 모든 최신 LLM의 기반이 되었습니다.

BERT 작동 방식

BERT의 학습과 추론은 여러 정교한 메커니즘이 결합돼 이루어집니다. 

 

토크나이제이션

BERT는 텍스트를 토큰이라는 더 작은 단위로 분해합니다. 예를 들어 ‘playing’이라는 단어는 ‘play’와 ‘##ing’로 나뉠 수 있습니다. 각 토큰은 숫자로 변환되며, 문장 시작에는 [CLS], 문장 사이에는 [SEP] 같은 특수 마커가 추가됩니다. 이 방식을 통해 드물게 사용되는 단어에 대한 정확도를 높이고 어휘 크기를 보다 효율적으로 관리할 수 있습니다.

 

입력 임베딩

각 토큰에는 세 가지 유형의 임베딩이 적용됩니다. 토큰 임베딩은 단어 자체를, 위치 임베딩은 시퀀스 내에서의 위치를, 세그먼트 임베딩은 어떤 문장에 속하는지를 나타냅니다. 이를 통해 BERT는 텍스트의 내용과 구조에 대한 유용한 정보를 함께 활용할 수 있습니다. 

 

어텐션 메커니즘 

BERT는 어텐션 메커니즘을 사용하여 문장 내의 각 단어가 다른 모든 단어를 얼마나 고려해야 하는지 계산합니다. 예를 들어 ‘bank’라는 단어를 처리할 때 문장 내 다른 모든 단어에 어텐션 점수를 부여합니다. ‘river’와 ‘water’가 함께 등장하면 높은 점수를 받게 되며, 이는 ‘bank’가 강둑을 의미할 가능성이 높다는 것을 나타냅니다. 반대로 ‘money’와 ‘deposit’가 더 높은 점수를 받으면, BERT는 ‘bank’를 금융 기관으로 이해합니다. 

 

트랜스포머 인코더 레이어

BERT는 여러 개의 스택 계층을 통해 텍스트를 처리하며, 각 계층은 여러 개의 어텐션 계산을 병렬로 실행합니다. 각 계층은 점진적으로 더 복잡한 패턴을 캡처합니다. 초기 계층은 기본적인 문법을 학습하는 반면, 심층 계층은 추상적인 관계와 의미 체계를 이해합니다.

 

사전 학습 작업 

사전 학습 과정의 일부로, BERT는 토큰의 15%를 무작위로 마스킹하고 해당 토큰을 예측합니다. 이를 통해 양방향 이해 능력이 강화됩니다. 또한 문장 쌍을 분석해, 두 번째 문장이 원문에서 첫 번째 문장보다 앞에 오는지 또는 뒤에 오는지를 예측합니다. 이 기법은 문장 간 관계를 이해하는 데 도움이 됩니다.

 

파인튜닝과 추론

사전 학습이 완료되면 개발자는 상단에 작업별 계층을 추가해 감성 분석이나 스팸 감지와 같은 특정 작업을 수행하도록 BERT를 학습시킬 수 있습니다. 추론 단계에서 텍스트는 모든 어텐션 계층을 거치며 컨텍스트에 기반한 이해를 형성하고, BERT는 이러한 풍부한 표현을 기반으로 예측 결과를 출력합니다.

BERT의 실제 사용 사례

2018년 도입 이후, BERT는 다양한 실제 사용 사례에 널리 적용되어 왔습니다. 대표적인 사례는 다음과 같습니다.

 

Google 검색 

BERT는 복잡한 쿼리의 컨텍스트 및 의도를 더 잘 이해할 수 있도록 Google의 검색 순위를 뒷받침하며, 특히 단어 순서와 전치사가 중요한 긴 대화형 검색에서 효율을 발휘합니다. 

 

가상 어시스턴트 

BERT는 Google Assistant나 Alexa 같은 음성 어시스턴트가 사용자의 의도를 더 정확히 파악해, 실제로 원하는 바를 잘 이해할 수 있도록 지원합니다. 또한 대화 전반에 걸쳐 컨텍스트를 유지함으로써 후속 질문에 대해 보다 정확한 응답을 지원합니다.

 

헬스케어 

임상 기록과 의료 기록을 분석함으로써 BERT는 관련 환자 정보를 추출하고 진단을 식별하며, 치료 계획에서 발생할 수 있는 잠재적인 약물 상호작용이나 불일치를 사전에 식별할 수 있습니다. 

 

리걸 테크 

BERT는 수천 건의 법률 문서에서 핵심 조항, 의무 사항, 위험 요소를 식별하는 계약 분석 도구에 활용됩니다. 또한 판례 전반에 대한 시맨틱 검색을 지원해, 서로 다른 용어가 사용되더라도 변호사가 관련 판례를 효율적으로 찾을 수 있도록 합니다.

 

전자상거래 

BERT는 고객의 의도를 이해함으로써 챗봇이 고객 서비스 문의에 보다 정확하게 응답할 수 있도록 지원하며, 제품 리뷰를 감성별로 분류할 수 있습니다.

 

소셜 미디어 

BERT는 키워드 기반 접근 방식보다 뛰어난 컨텍스트 이해를 바탕으로 혐오 발언, 괴롭힘, 허위 정보를 탐지해 콘텐츠 조정을 지원합니다. 또한 사용자에게 관련성 높은 연결, 그룹 또는 콘텐츠를 추천하는 소셜 미디어 추천 시스템도 구동합니다.

BERT의 주요 한계

초기 설계 기준으로 볼 때, BERT에는 몇 가지 한계가 존재합니다. 대표적인 한계 요소는 다음과 같습니다.

 

높은 연산 비용

BERT는 학습과 추론 모두에서 상당한 컴퓨팅 파워를 요구하기 때문에, 특히 자원이 제한된 디바이스 환경에서는 실시간 애플리케이션에 적용하기에 비용 부담이 크고 지연이 발생할 수 있습니다. 

 

제한된 입력 길이

BERT는 최대 512토큰 길이의 시퀀스만 처리할 수 있어, 전체를 하나의 맥락으로 이해해야 하는 법률 계약서나 연구 논문과 같은 장문 문서에는 문제가 될 수 있습니다. 

 

텍스트 생성 불가

텍스트 이해를 위한 인코더로만 설계된 BERT는 일관된 응답을 생성하거나 새로운 콘텐츠를 만들어내는 데에는 한계가 있습니다. 반면, GPT 모델과 이해와 생성을 모두 처리하도록 설계된 이후의 인코더-디코더 아키텍처는 요약이나 번역과 같은 작업에 적합합니다.

 

하이퍼파라미터 민감도

모델 성능은 학습률, 배치 크기, 그리고 BERT가 학습 데이터 세트를 한 차례 모두 처리하는 횟수와 같은 설정에 따라 크게 달라질 수 있습니다. 이로 인해 광범위한 파인튜닝이 필요할 수 있습니다.

 

다국어 성능의 과제

다국어 BERT는 104개 언어를 동시에 학습했기 때문에 언어별로 충분한 학습 집중도를 확보하기 어려웠고, 그 결과 언어별 전용 모델에 비해 성능이 저하됐습니다. 이후 등장한 최신 모델들은 훨씬 더 큰 다국어 데이터 세트를 사용하되, 개선된 샘플링 전략을 적용하거나 교차 언어 전이 학습을 활용해 언어별 성능을 향상시키고 있습니다.

BERT vs. 기타 언어 모델 비교

BERT는 이후 더 발전된 언어 모델들이 등장하는 계기가 됐습니다. 일부 주요 언어 모델은 다음과 같습니다.

 

GPT 

GPT는 단방향(왼쪽에서 오른쪽) 처리 방식을 사용하며, 시퀀스에서 다음 단어를 예측하도록 학습돼 대화나 창작 글과 같이 일관된 텍스트를 생성하는 데 적합합니다. BERT와는 달리, GPT는 단어를 해석할 때 앞선 컨텍스트만 참조하고 뒤에 오는 컨텍스트는 반영하지 않습니다.

 

RoBERTa 

RoBERTa(Robustly Optimized BERT Pretraining Approach)는 BERT와 동일한 양방향 아키텍처를 사용하지만, 10배 더 많은 데이터로 학습됩니다. 또한 동적 마스킹과 같은 개선된 기법을 적용해, 동일한 문장이라도 학습할 때마다 서로 다른 단어를 마스킹합니다. 그 결과, RoBERTa는 BERT의 기본 접근 방식을 변경하지 않고도 성능이 크게 향상됩니다.

 

XLNet 

XLNet은 BERT와 마찬가지로 양방향 컨텍스트 이해를 달성하지만, 마스킹 방식 대신 순열 언어 모델링을 사용해 단어를 무작위 순서로 예측합니다. 이러한 방식 덕분에 BERT보다 더 높은 정확도를 보이는 경우가 많지만, 계산 복잡도가 높아 학습이 더 어렵다는 단점이 있습니다.

 

기능

BERT

GPT

RoBERTa

XLNet

방향

양방향

단방향(왼쪽에서 오른쪽)

양방향

양방향

주요 강점

컨텍스트 이해

텍스트 생성

BERT 이해도 향상

고급 컨텍스트 모델링

훈련 데이터

BookCorpus + Wikipedia(16GB)

다양한 웹 텍스트

BERT보다 10배 더 많은 데이터(160GB)

BERT와 유사

마스킹 전략

무작위 마스킹

마스킹 없음

동적 마스킹

순열 기반

텍스트 생성 가능 여부

아니요

아니요

제한적

훈련 시간

기준

더 빠름

더 김(데이터 규모 증가)

더 김(복잡도 높음)

결론

BERT는 양방향 컨텍스트 이해와 전이 학습이 성능을 획기적으로 개선할 수 있음을 입증함으로써, 기계가 언어를 이해하는 방식을 근본적으로 변화시켰습니다. 셀프 어텐션 메커니즘을 기반으로 한 트랜스포머 아키텍처는 GPT에서 Claude에 이르기까지 거의 모든 최신 언어 모델의 설계 기준이 되었고, 오늘날 AI 혁명을 이끄는 핵심 접근 방식을 정립했습니다. 비록 최신 모델들이 BERT의 역량을 넘어섰지만, 양방향 인코딩, 사전 학습 전략, 어텐션 메커니즘을 중심으로 한 BERT의 핵심 혁신은 오늘날 언어 기반 AI 시스템을 설계하고 이해하는 방식에서 여전히 중요한 위치를 차지하고 있습니다.

BERT 관련 자주 묻는 질문

BERT는 텍스트를 양방향으로 읽고 언어를 이해하도록 설계돼 검색이나 분류와 같은 작업에 적합한 반면, GPT는 왼쪽에서 오른쪽으로 읽는 방식을 사용하며 대화나 창작 글과 같은 텍스트 생성을 위해 구축됐습니다. BERT는 이해 전문가, GPT는 글쓰기 전문가로 생각할 수 있으며, 두 모델은 서로 다른 작업에 최적화돼 있습니다.

BERT는 시퀀스 내에서 다음에 올 단어를 예측하는 것이 아니라, 주변 컨텍스트를 활용해 마스킹된 단어를 채우도록 학습됐기 때문에, 일관된 텍스트 생성에 필요한 역량을 갖추고 있지 않습니다. BERT의 아키텍처는 이해를 목적으로 설계된 인코더이며, 단어를 하나씩 생성하도록 설계된 디코더가 아닙니다.

그렇습니다. 최신 모델들이 BERT의 성능을 넘어섰지만, BERT는 효율적이고 동작 방식이 충분히 검증돼 있고 이해 중심 작업에 매우 적합하기 때문에, Google Search처럼 하루 수십억 건의 쿼리를 처리하는 프로덕션 시스템에서 여전히 광범위하게 사용되고 있습니다. 더 중요한 점은, 양방향 어텐션과 전이 학습에 대한 BERT의 혁신이 사실상 모든 최신 언어 모델의 기반을 마련했다는 것입니다. 따라서 BERT를 직접 사용하지 않더라도, 그 영향력은 오늘날까지 계속되고 있습니다.