BERT로 가속화: NLP 최적화 모델
게시 됨: 2022-03-11BERT로 NLP 가속화: 100배 적은 데이터로 세계 최고 수준의 결과
딥 러닝 자연어 처리(NLP) 분류 모델을 구축할 때 두 가지 주요 어려움이 있습니다.
- 데이터 수집(수천 또는 수백만 개의 분류된 데이터 포인트 가져오기)
- 딥 러닝 아키텍처 및 교육
언어의 복잡성을 이해할 수 있는 복잡한 딥 러닝 모델을 구축하는 능력은 일반적으로 이러한 영역에서 수년간의 경험이 필요했습니다. 문제가 어려울수록 출력이 다양할수록 이러한 각 단계에 더 많은 시간을 할애해야 합니다.
데이터 수집은 부담스럽고 시간이 많이 걸리고 비용이 많이 들고 성공적인 NLP 프로젝트의 가장 큰 제한 요소입니다. 데이터를 준비하고, 탄력적인 파이프라인을 구축하고, 수백 가지의 잠재적인 준비 옵션 중에서 선택하고, "모델 준비"를 하는 데는 재능 있는 기계 학습 엔지니어가 있어도 쉽게 몇 달이 걸릴 수 있습니다. 마지막으로, 딥 러닝 모델을 훈련하고 최적화하려면 직관적인 이해, 기술적 전문성, 문제 해결 능력의 조합이 필요합니다.
이 기사에서 다룰 내용은
- NLP를 위한 딥 러닝 트렌드: 전이 학습을 통해 세계적 수준의 모델을 오픈 소스로 만드는 방법
- BERT 소개: 현재까지 가장 강력한 NLP "도구" 소개 – BERT(변환기의 양방향 인코더 표현)
- BERT가 작동하는 방식과 기업이 NLP 프로젝트에서 실행하는 방식을 변경하는 이유
딥러닝의 트렌드
당연히 이 프로세스의 최적화는 정확도가 높아지면서 시작되었습니다. LSTM(장단기 기억) 네트워크는 많은 NLP 작업에 혁명을 일으켰지만 엄청나게 데이터가 많이 필요했습니다. 이러한 모델을 최적화하고 교육하는 데는 크고 값비싼 기계에서 며칠 또는 몇 주가 소요될 수 있습니다. 마지막으로 이러한 대형 모델을 프로덕션에 배포하는 것은 비용이 많이 들고 번거롭습니다.
이러한 복잡성 생성 요인을 줄이기 위해 컴퓨터 비전 분야는 오랫동안 전이 학습을 사용해 왔습니다. 전이 학습은 다르지만 유사한 작업에 대해 훈련된 모델을 사용하여 새 솔루션에서 솔루션을 가속화하는 기능입니다. 수풀을 처음부터 인식하도록 새 모델을 훈련시키는 것보다 이미 나무를 분류할 수 있는 모델을 재훈련하는 것이 훨씬 적은 노력이 필요합니다.
어떤 사람이 덤불을 본 적이 없지만 일생 동안 많은 나무를 본 시나리오를 상상해 보십시오. 처음부터 수풀을 설명하는 것보다 그들이 나무에 대해 알고 있는 관점에서 수풀이 어떻게 생겼는지 설명하는 것이 훨씬 더 쉽다는 것을 알게 될 것입니다. 전이 학습은 학습을 위한 매우 인간적인 방법이므로 이것이 딥 러닝 작업에서 작동한다는 것은 직관적으로 이해됩니다.
BERT는 더 적은 데이터, 더 적은 교육 시간이 필요하며 더 많은 비즈니스 가치를 얻을 수 있음을 의미합니다. 모든 기업이 구축할 수 있는 NLP 제품의 품질은 세계 최고 수준이 되었습니다.
인 온다 BERT
BERT는 변환기라고 하는 것을 사용하며 문장 인코딩을 생성하도록 설계되었습니다. 기본적으로 BERT는 특정 딥 러닝 모델을 기반으로 하는 언어 모델입니다. 문장 또는 문장 문자열의 문맥, 숫자 표현을 제공하기 위해 특별히 제작되었습니다. 그 디지털 표현은 얕고 복잡하지 않은 모델에 대한 입력입니다. 뿐만 아니라 결과는 일반적으로 우수하며 아직 해결되지 않은 작업에 대해 일부 입력 데이터가 필요합니다.
1년 대신 데이터를 수집하는 데 하루를 보낼 수 있고 LSTM 모델을 생성하기에 충분한 데이터가 없는 데이터 세트를 중심으로 모델을 구축할 수 있다고 상상해 보십시오. 이전에는 필요한 개발 시간과 전문 지식을 감당할 수 없었던 비즈니스에 필요한 NLP 작업의 수는 어마어마합니다.
BERT의 작동 원리
전통적인 NLP에서 모델 훈련의 시작점은 단어 벡터입니다. 단어 벡터는 그 단어가 의미하는 바를 수치적으로 나타내려고 시도하는 숫자 목록 [0.55, 0.24, 0.90, ...]입니다. 숫자 표현을 사용하면 복잡한 모델을 훈련하는 데 해당 단어를 사용할 수 있고 큰 단어 벡터를 사용하면 단어에 대한 정보를 모델에 포함할 수 있습니다.
BERT는 유사한 작업을 수행하지만(사실 시작점은 단어 벡터임) 전체 입력 문장(또는 문장)의 숫자 표현을 생성합니다.
LSTM 모델과 비교할 때 BERT는 많은 작업을 다르게 수행합니다.
- 왼쪽에서 오른쪽 또는 오른쪽에서 왼쪽이 아닌 모든 단어를 한 번에 읽습니다.
- 학습 시간 동안 단어의 15%가 무작위로 선택되어 "마스킹"됩니다(문자 그대로 [MASK] 토큰으로 대체됨).
- 무작위로 선택된 단어의 10%는 변경되지 않은 상태로 남습니다.
- 마스킹된 단어의 10%는 임의의 단어로 대체됩니다.
- (a) 및 (b) 함께 작동하여 모델이 문장의 모든 단어를 예측하도록 합니다(모델은 게으름).
- 그런 다음 BERT는 문장의 모든 단어를 예측하려고 시도하고 마스크된 단어만 손실 함수에 기여합니다(변경되지 않은 단어와 무작위로 대체된 단어 포함).
- 모델은 다음 문장 예측에 대해 미세 조정되었습니다. 이 단계에서 모델은 주어진 문장이 텍스트의 다음 문장인지 확인하려고 시도합니다.
수렴은 느리고 BERT는 훈련하는 데 오랜 시간이 걸립니다. 그러나 텍스트의 컨텍스트 관계를 훨씬 더 잘 학습합니다. 단어 벡터는 모델링할 수 있는 복잡성을 제한하는 매우 얕은 표현입니다. BERT에는 이러한 제한이 없습니다.

대부분의 기업은 여러 GPU를 활용하고 애플리케이션을 훈련하는 데 며칠이 걸리는 사전 훈련된 모델을 사용할 수 있습니다. 기존 BERT 모델을 제자리에서 사용하거나 특정 사용 사례에 맞출 수 없는 경우는 거의 없습니다. BERT를 통해 팀은 솔루션을 10배 가속화할 수 있습니다. 비즈니스 솔루션을 식별하고, 개념 증명을 구축하고, 마침내 해당 개념을 짧은 시간 안에 프로덕션 환경으로 이전할 수 있습니다.
BERT 구현 및 비즈니스 가치 비교
이 기사는 실제 제품을 구축하는 비즈니스 및 엔지니어링 응용 프로그램에 중점을 두고 있으므로 비교 가치를 더 잘 이해하기 위해 두 가지 모델을 만들고 교육합니다.
- BERT: 가장 간단한 BERT 파이프라인. 우리는 표준 방식으로 텍스트를 처리하고 BERT 문장 인코딩을 생성하고 해당 문장 인코딩을 얕은 신경망에 공급합니다.
- LSTM: 표준 Embed - 인코딩 - 참석 - 아키텍처 예측(위 그림 참조)
작업? IMDB의 줄거리를 기반으로 영화의 기원을 예측합니다. 우리의 데이터 세트는 미국, 호주, 영국, 캐나다, 일본, 중국, 한국 및 러시아의 영화와 총 24개의 출처에 대한 16개의 다른 영화를 포함합니다. 총 교육 예제가 35,000개 미만입니다.
다음은 플롯의 예시 스니펫입니다.
수천 년 전, Steppenwolf와 그의 Parademon 군단은 3개의 Mother Box의 결합된 에너지로 지구를 장악하려고 시도합니다. 그들은 올림포스 신, 아마존, 아틀란티스인, 인류, 그리고 그린 랜턴 군단을 포함하는 통일된 군대에 의해 좌절됩니다. Steppenwolf의 군대를 격퇴한 후 Mother Box는 행성의 여러 위치에 분리되어 숨겨집니다. 현재 인류는 슈퍼맨의 죽음으로 인해 마더 박스가 재활성화되고 스테펜울프가 그의 주인인 다크사이드의 호의를 되찾기 위해 지구로 귀환한 것을 애도하고 있습니다. Steppenwolf는 유물을 수집하여 "The Unity"를 형성하는 것을 목표로 하고 있으며, 이는 지구의 생태계를 파괴하고 이를 테라포밍의 이미지로…
짐작하지 못했다면 이것은 미국 영화인 Justice League의 줄거리입니다.
결과
다양한 양의 데이터와 모델 크기에 결과가 어떻게 반응하는지 이해하기 위해 다양한 매개변수 세트를 훈련했습니다. 앞서 말했듯이 BERT의 가장 중요한 부가 가치는 훨씬 적은 수의 데이터가 필요하다는 것입니다.
LSTM 모델의 경우 GPU에서 가능한 가장 큰 모델을 훈련하고 어휘의 크기와 단어 길이를 변경하여 가장 성능이 좋은 모델을 찾았습니다. BERT 모델의 경우 단일 레이어 이상은 없었습니다.
우리는 이 모든 샘플에 대해 테스트 세트를 수정했으므로 동일한 훈련 세트에 지속적으로 점수를 매기고 있습니다.
이 작업에서 BERT 문장 인코딩을 사용하여 훈련된 모델은 단 1000개의 샘플 후에 인상적인 F1 점수 0.84에 도달합니다. LSTM 네트워크는 0.60을 초과하지 않습니다. 더욱 인상적인 것은 BERT 모델을 훈련하는 데 LSTM 모델을 준비하는 시간보다 평균 1/20 시간이 걸렸다는 것입니다.
결론
어떤 메트릭으로든 이러한 결과는 NLP의 혁명을 나타냅니다. 100배 적은 데이터와 20배 적은 교육 시간을 사용하여 세계적 수준의 결과를 달성했습니다. 몇 시간 또는 며칠이 아닌 몇 초 또는 몇 분 만에 고품질 모델을 훈련할 수 있는 기능은 이전에는 감당할 수 없었던 영역에서 NLP를 제공합니다.
BERT는 이 포스트에 있는 것보다 더 많은 용도를 가지고 있습니다. 다국어 모델이 있습니다. 이 게시물에서와 같이 개별적으로 또는 여러 출력을 동시에 사용하여 다양한 NLP 작업을 해결하는 데 사용할 수 있습니다. BERT 문장 인코딩은 앞으로 많은 NLP 프로젝트의 초석이 될 것입니다.
이 게시물 뒤에 있는 코드는 Github에서 사용할 수 있습니다. 또한 독자들에게 이 게시물의 BERT 문장 인코딩을 구축하는 초석이 된 Bert-as-a-service를 확인하도록 권장합니다.