2018 년에 소개 된 Bert는 자연어 처리를 변화 시켰습니다. 감정 분석, 질문 답변 및 언어 추론과 같은 작업에서 잘 수행됩니다. Bert는 양방향 훈련 및 변압기 기반 자체 변환을 사용하여 텍스트의 단어 간의 관계를 이해하는 새로운 방법을 도입했습니다. 그러나 성공에도 불구하고 Bert는 한계가 있습니다. 그것은 계산 효율성, 더 긴 텍스트를 처리하며 해석 가능성을 제공하는 데 어려움을 겪습니다. 이로 인해 이러한 과제를 해결하도록 설계된 모델 인 Modernbert의 개발로 이어졌습니다. Modernbert는 처리 속도를 향상시키고, 더 긴 텍스트를 더 잘 처리하며, 개발자에게 더 많은 투명성을 제공합니다. 이 기사에서는 정서 분석에 Modernbert를 사용하는 방법을 살펴보고 Bert보다 특징과 개선을 강조합니다.
학습 목표
Bert에 대한 간단한 소개와 Modernbert가 존재했던 이유
Modernbert 의 특징을 이해하십시오
감정 분석 예 를 통해 현대 버트를 실질적으로 구현하는 방법
Modernbert의 한계
이 기사는 데이터 과학 블로그 톤의 -
의 일부로 출판되었습니다.
목차 -
- Bert는 무엇입니까?
Modernbert vs Modernbert vs Modernbert Modernbert의 특징을 이해하는 질문
버트 란 무엇입니까?
Transformers의 양방향 인코더 표현을 나타내는 Bert는 2018 년 Google이 소개 한 이래 게임 체인저였습니다. Bert는 모든 방향으로 주변 단어를 볼 수 있도록 컨텍스트를 이해할 수있는 양방향 교육 개념을 도입했습니다. 이로 인해 질문 답변, 감정 분석 및 언어 추론을 포함하여 다수의 NLP 작업에 대한 모델의 성능이 상당히 향상되었습니다. Bert의 아키텍처는 인코더 전용 변압기를 기반으로하며 자체 변환 메커니즘을 사용하여 문장에서 다른 단어의 영향을 평가하고 인코더 만 있습니다. 이는 입력 만 이해하고 인코딩하며 출력을 재구성하거나 생성하지 않음을 의미합니다. 따라서 Bert는 텍스트에서 상황에 맞는 관계를 캡처하는 데 탁월하여 최근 몇 년 동안 가장 강력하고 널리 채택 된 NLP 모델 중 하나입니다.
Modernbert는 무엇입니까?
Bert의 획기적인 성공에도 불구하고 특정 제한 사항이 있습니다. 그들 중 일부는 다음과 같습니다
계산 리소스 : Bertis 계산 비용이 비싸고 메모리 집약적 인 모델, 실시간 응용 프로그램 또는 액세스 가능하고 강력한 컴퓨팅 인프라가없는 설정에 대한 정보.
<:> 컨텍스트 길이 : Bert는 고정 길이 컨텍스트 창이있어 긴 문서와 같은 장거리 입력을 처리하는 데 제한이됩니다.
해석 가능성 : 모델의 복잡성으로 인해 단순한 모델보다 해석이 덜 해석되어 모델에 대한 수정을 거부하고 수행하는 데 어려움이 있습니다.
상식 추론 : Bert는 상식 추론과 주어진 정보를 넘어서 맥락, 뉘앙스 및 논리적 추론을 이해하기 위해 고군분투하고 있습니다.
-
Bert vs Modernbert
- ModernBert는
플래시주의 및 와 같은보다 효율적인 알고리즘을 통합하여 이러한 제한 사항을 해결합니다. 또한 ModernBert는 로터리 위치 임베드 (로프) 와 같은 기술을 통합하여 더 긴 컨텍스트 길이를보다 효과적으로 처리하도록 향상된 개선 사항을 도입합니다.
는보다 투명하고 사용자 친화적이어야함으로써 해석 성을 향상시켜 개발자가 모델을 특정 작업에 쉽게 디버그하고 적응할 수 있도록합니다. 또한 ModernBert는 공동 감각 추론의 발전을 통합하여 제공된 명시 적 정보를 넘어서 맥락, 뉘앙스 및 논리적 관계를 더 잘 이해할 수있게합니다. NVIDIA T4, A100 및 RTX 4090과 같은 일반적인 GPU에 적합합니다.
Modernbert는 웹 문서, 코드 및 과학 기사를 포함한 다양한 영어 소스의 데이터에 대한 교육을 받았습니다. 이전 인코더에서 인기있는 표준 20-40 반복과 달리 2 조의 고유 한 토큰을 훈련시킵니다.
는 다음 크기로 릴리스됩니다
22 개의 층과 1 억 4,000 만 파라미터 가있는 ModernBert-Base
28 층과 3 억 9,500 만 파라미터가있는 Modernbert-Large
Modernbert의 특징을 이해합니다
Modernbert의 독특한 특징 중 일부는 다음과 같습니다
플래시주의
이것은 시간과 메모리 사용 측면에서 변압기 모델의 관심 메커니즘을 속도를 높이기 위해 개발 된 새로운 알고리즘입니다. 작업을 재정렬하고 타일링 및 재 계산을 사용하여주의를 계산할 수 있습니다. 타일링은 대형 데이터를 관리 가능한 청크로 분류하는 데 도움이되며 필요에 따라 중간 결과를 재 계산하여 메모리 사용을 줄입니다. 이로 인해 2 차 메모리 사용량을 선형으로 줄여서 긴 시퀀스에 훨씬 더 효율적입니다. 계산 오버 헤드가 줄어 듭니다. 전통적인주의 메커니즘보다 2-4 배 빠릅니다. 플래시주의는 변압기 모델의 훈련 및 추론 속도를 높이기 위해 사용됩니다.
국소-글로벌 교대주의
Modernbert의 가장 새로운 특징 중 하나는 전 세계적으로주의를 기울이지 않고 번갈아 가며주의를 기울입니다.
전체 입력은 세 번째 계층마다 만 참석합니다. 이것은 전 세계적으로 관심입니다.
한편 다른 모든 레이어에는 슬라이딩 창이 있습니다. 이 슬라이딩 창에서 모든 토큰은 가장 가까운 128 개의 토큰에만 참석합니다. 이것은 지역의 관심입니다.
회전 위치 임베딩 (로프)
로터리 위치 임베드 (ROPE)는 회전 행렬을 사용하여 토큰의 위치를 순서로 인코딩하는 변압기 모델 기술입니다. 그것은 절대 및 상대 위치 정보를 통합하여 토큰 사이의 순서와 거리를 이해하기 위해주의 메커니즘을 조정합니다. 로프는 회전 매트릭스를 사용하여 토큰의 절대 위치를 인코딩하고 상대 위치 정보 또는 토큰 사이의 순서 및 거리를 기록합니다.
aidding 및 시퀀싱
비 포딩 및 시퀀스 포장은 메모리 및 계산 효율을 최적화하도록 설계된 기술입니다.
일반적으로 패딩은 가장 긴 토큰을 찾는 데 사용되며 무의미한 패딩 토큰을 추가하여 나머지 짧은 시퀀스를 채우기 위해 길이와 동일합니다. 이것은 의미없는 토큰의 계산을 증가시킵니다. 패딩 포딩은 시퀀스에서 불필요한 패딩 토큰을 제거하여 낭비 계산을 줄입니다.
시퀀스 포장은 텍스트 배치를 소형 형태로 재구성하여 하드웨어 활용을 극대화하기 위해 짧은 시퀀스를 함께 그룹화합니다.
ModernBert 를 사용한 감정 분석
ModernBert를 실제로 사용하여 감정 분석을 구현합시다. 우리는 ModernBert를 사용하여 감정 분석 작업을 수행 할 것입니다. 감정 분석은 텍스트 (예 : 리뷰)를 긍정적 또는 부정적으로 분류하는 것을 목표로하는 특정 유형의 텍스트 분류 작업입니다.
우리가 사용하고있는 데이터 세트는 리뷰를 긍정적 또는 부정적인 감정으로 분류하기 위해 IMDB Movie Reviews 데이터 세트입니다.
참고 :
Google Colab에서 더 빠른 처리를 위해 A100 GPU를 사용했습니다. 자세한 내용은 다음을 참조하십시오
교육 과정에는 Wandb API 키가 필요합니다. 무게와 바이어스를 통해 하나를 만들 수 있습니다
-
1 단계 : 필요한 라이브러리를 설치하십시오
포옹 페이스 트랜스포머와 함께 작업하는 데 필요한 라이브러리를 설치하십시오.
-
2 단계 : load_dataSet 함수 를 사용하여 IMDB 데이터 세트를로드하십시오
명령 IMDB [ "Test"] [0]은 IMDB Movie Review 데이터 세트의 테스트 분할에서 첫 번째 샘플을 인쇄합니다.
3 단계 : 토큰 화
미리 훈련 된 ModernBert-Base 토큰 화기를 사용하여 데이터 세트를 확인하십시오. 이 프로세스는 텍스트를 모델에 적합한 숫자 입력으로 변환합니다.“Tokenized_test_dataset [0]”명령은 입력 ID 및 레이블과 같은 토큰 화 된 입력을 포함하여 토큰 화 된 테스트 데이터 세트의 첫 번째 샘플을 인쇄합니다.
4 단계 : 감정 분류를위한 ModernBert-Base 모델을 초기화하십시오
5 단계 : 데이터 세트 준비
감정 레이블 열 (레이블)을 '라벨'으로 바꾸고 불필요한 열을 제거하여 데이터 세트를 준비하십시오.
6 단계 : 계산 메트릭을 정의하십시오
F1_Score를 모델을 평가하기위한 메트릭으로 사용하겠습니다. 우리는 평가 예측을 처리하는 함수를 정의하고 F1 점수를 계산합니다. 이를 통해 모델의 예측과 실제 레이블을 비교하겠습니다. #install libraries
!pip install git+https://github.com/huggingface/transformers.git datasets accelerate scikit-learn -Uqq
!pip install -U transformers>=4.48.0
import torch
from transformers import AutoTokenizer, AutoModelForSequenceClassification, TrainingArguments, Trainer,AutoModelForMaskedLM,AutoConfig
from datasets import load_dataset
로그인 후 복사
7 단계 : 훈련 인수를 설정
Hugging Face의 훈련 능력을 사용하여 모델을 미세 조정하기위한 하이퍼 파라미터 및 기타 구성을 정의합니다. 몇 가지 주장을 이해합시다 :
Train_BSZ, Val_BSZ #Load the dataset
from datasets import load_dataset
imdb = load_dataset("imdb")
#print the first test sample
imdb["test"][0]
: 교육 및 검증을위한 배치 크기를 나타냅니다. 배치 크기는 모델의 내부 매개 변수가 업데이트되기 전에 처리 된 샘플 수를 결정합니다.
lr : 학습 속도는 손실 기울기와 관련하여 모델의 가중치 조정을 제어합니다.
베타스 : 이들은 Adam Optimizer의 베타 매개 변수입니다.
#initialize the tokenizer and the model
tokenizer = AutoTokenizer.from_pretrained("answerdotai/ModernBERT-base")
model = AutoModelForMaskedLM.from_pretrained("answerdotai/ModernBERT-base")
#define the tokenizer function
def tokenizer_function(example):
return tokenizer(
example["text"],
padding="max_length",
truncation=True,
max_length=512, ## max length can be modified
return_tensors="pt"
)
#tokenize training and testing data set based on above defined tokenizer function
tokenized_train_dataset = imdb["train"].map(tokenizer_function, batched=True)
tokenized_test_dataset = imdb["test"].map(tokenizer_function, batched=True)
#print the tokenized output of first test sample
print(tokenized_test_dataset[0])
로그인 후 복사
n_epochs : 전체 교육 데이터 세트를 통해 완전한 패스를 나타내는 에포크 수.
eps : 아담 최적화기의 수치 안정성을 향상시키기 위해 분모에 첨가 된 작은 상수.
WD : 큰 무게를 처벌함으로써 과결을 방지하기위한 정규화 기술인 체중 붕괴를 나타냅니다.
-
8 단계 : 모델 훈련
트레이너 클래스를 사용하여 모델 교육 및 평가 프로세스를 수행하십시오.
-
9 단계 : 평가
테스트 데이터 세트에서 훈련 된 모델을 평가하십시오
-
10 단계 : 미세 조정 모델을 저장 -
추가 재사용을 위해 미세 조정 모델 및 토큰 화제를 저장하십시오
11 단계 : 검토의 감정을 예측하십시오
여기 : 0은 부정적인 검토를 나타내고 1은 긍정적 인 검토를 나타냅니다. 내 새 예제의 경우, 지루함은 부정적인 검토 (0)를 나타내고 화려한 긍정적 인 의견을 나타내므로 1은 출력으로 주어질 것입니다. .
-
Modernbert의 한계
Modernbert는 전통적인 버트보다 몇 차례 개선을 가져 오지만 여전히 몇 가지 제한 사항이 있습니다.
- 교육 데이터 편향 : 영어 및 코드 데이터에 대해 교육을 받으므로 다른 언어 나 비 코드 텍스트에서는 효과적으로 수행 할 수 없습니다.
복잡성 : 아키텍처 향상 및 플래시주의 및 로타리 위치 임베드와 같은 새로운 기술은 모델에 복잡성을 추가하여 특정 작업을 구현하고 미세 조정하기가 더 어려워 질 수 있습니다.
추론 속도 - : 플래시주의가 추론 속도를 향상 시키지만 전체 8,192 토큰 창을 사용하면 여전히 느려질 수 있습니다.
결론
Modernbert는 Bert의 기초를 취하고 더 빠른 처리, 긴 텍스트 처리 및 강화 된 해석 성으로 개선합니다. 여전히 교육 데이터 편향 및 복잡성과 같은 도전에 직면하지만 NLP의 상당한 도약을 나타냅니다. Modernbert는 감정 분석 및 텍스트 분류와 같은 작업에 대한 새로운 가능성을 열어 고급 언어를보다 효율적이고 액세스 할 수 있도록합니다.
키 테이크 아웃
-
Modernbert는 비 효율성 및 제한된 상황 처리와 같은 문제를 해결함으로써 BERT에서 향상됩니다.
는 더 빠른 처리와 더 긴 텍스트 지원을 위해 플래시주의 및 로타리 위치 임베드를 사용합니다.
Modernbert는 감정 분석 및 텍스트 분류와 같은 작업에 적합합니다.
는 여전히 영어 및 코드 데이터에 대한 편견과 같은 몇 가지 제한 사항이 있습니다.
포옹 페이스 및 wandb와 같은 도구는 구현 및 사용을 쉽게 할 수 있습니다.
참고 문헌 :
modernbert 블로그
Moderbert 문서
-
이 기사에 나와있는 미디어는 Analytics Vidhya가 소유하지 않으며 저자의 재량에 따라 사용됩니다.
자주 묻는 질문 -
q1. 인코더 전용 아키텍처 란 무엇입니까? -
ans. Ans. 인코더 전용 아키텍처는 출력 시퀀스를 생성하지 않고 입력 시퀀스를 처리하고 입력을 이해하고 인코딩하는 데 중점을 둡니다. Bert의 한계는 무엇입니까? -
ans. Bert의 일부 한계에는 높은 계산 자원, 고정 컨텍스트 길이, 비 효율성, 복잡성 및 상식 추론 부족이 포함됩니다. 주의 메커니즘이란 무엇입니까? -
ans. 주의 메커니즘은 모델이 입력의 특정 부분에 초점을 맞출 수 있도록하는 기술입니다. 번갈아 사항은 무엇입니까?
ans. 이 메커니즘은 텍스트 시퀀스 내의 로컬 및 글로벌 컨텍스트에 초점을 맞추는 것 사이의 번갈아 가며. 국소주의는 인접한 단어 나 문구를 강조하여 세밀한 정보를 수집하는 반면, 글로벌 관심은 텍스트 전체의 전반적인 패턴과 관계를 인식합니다. Q5. 로타리 잠재적 임베딩은 무엇입니까? 고정 위치 임베딩과 어떻게 다릅니 까? 절대 위치 만 포착하는 고정 위치 임베딩과 달리, 로터리 위치 임베드 (로프)는 회전 행렬을 사용하여 절대 및 상대 위치를 모두 인코딩합니다. 로프는 확장 시퀀스에서 더 잘 작동합니다.
위 내용은 Modernbert의 감정 분석 향상의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!