# SentencePiece

5개의 포스트

토크나이저 정리(BPE,WordPiece,SentencePiece)

https://huggingface.co/docs/transformers/main/tokenizer_summary 이번 글에서는 BPE(Byte-Pair Encoding), WordPiece,SentencePiece에 대해 다룰것이다. ​ text를 분할하여 조각을 내는 것(Tokenizing)은 생각보다 어렵다. 예를들어 > "Don't you love 🤗 Transformers? We sure do." 위와 같은 문장을 공백기준으로 분할한다 하자. 그럼 다음과 같을 것이다. ​ > ["Don't", "you", "love", "🤗", "Transformers?", "We", "sure", "do."] ​ 하지만 이때 "Transformers?" , "do." 를 보면 puntuation(구두점) 들이 같이 포함돼있음을 볼 수 있다. ​ 이렇게 된다면 같은 단어에 대해 서로 다른 구두점을 가지는 단어들을 서로 다른 것으로 간주해야 하므로

2022년 10월 9일
·
1개의 댓글
·
post-thumbnail

M1 Part7 - "Hugging Face Transformers Installation on M1"

INTRO : M1에서 Pytorch GPU 가능 버전을 설치해봤다면, HuggingFace의 transformers를 설치해보고 싶은 마음이 들 것이다. 그런데 M1에서는 이 길이 참 쉽지 않다. 그래서 하나하나 보여주겠다.* 00부터 순서대로 잘 따라와주기를 바란다.* 00 Get Reday: Clone Conda env : conda env 만들어 둔 것이 있다면, clone으로 conda env를 복사해두자. clone한 night라는 conda env에 진입해보자. 01 rust를 설치해보자. 1) M1에 HuggingFace의 transformers를 설치하려면 필요하다고 한다. ![](https://velog.velcdn.com/images/

2022년 9월 29일
·
0개의 댓글
·

[Aiffel] 아이펠 54일차 개념 정리 및 회고

1. 개념 정리 > 노드 2 loss가 높게 유지되는 현상 전처리 확인 model.fit 조건 확인 2. 회고 이상하게 모델이 학습되는 동아 loss가 계속 0.4-0.5로 엄청 높게 유지돼서 다른 사람이 진행한 노드를 찾아서 전처리 과정도 비교하고 다 해봤었다. 원래는 이전 노드에서 사용했던 데이터를 다시 저장해썼지만, 데이터를 깃허브에서 직접 다운받아서 써봤다. 그런데 변화는 없었다. 그리고 전처리 과정에서 apply를 사용해서 문장 길이를 정제하거나, 결측치를 제거하거나 하는 등 데이터 상의 변화가 있을 때마다 새롭게 변수를 선언하는 과정에서 변수가 섞였나 싶어서 확인을 해보기도 했다. 그런데 다른 사람이 진행한 전처리 결과랑 내가 진행한 전처리 결과랑 비교했을 때 같았고 내 모델은 여전히 epochs를 10 진행해도 loss가 줄어들 기미가 보이지 않았다. 그래도 결국 해결하긴 했는데, model.fit을 하는 과정에서 변수에 할당했던 부분을

2022년 3월 24일
·
0개의 댓글
·

[Aiffel] 아이펠 50일차 개념 정리 및 회고

1. 개념 정리 1) 네이버 영화리뷰 감정 분석 문제에 SentencePiece 적용 데이터 불러오기 데이터에서 결측치 / 중복값 확인 isnull().sum() / duplicated() dropna() / drop_duplicates() 오류 > indices[468,31] = 8423 is not in [0, 8000) > 참고 > - vocab_size를 8000에서 10000으로 늘리니까 정상적으로 작동함. 2. 회고 어제 하던 노드를 이어서 했다. 예전에 썼던 노드를 다시 보고 해서 복습이 되는 거 같았다. 그런데 생각보다 정확도가 높게 나오지 않아서 오늘 한 걸로 마무리 지을 순 없을 거 같고 역시 주말에 보충을 하는 수밖에 없을 거 같다.

2022년 3월 18일
·
0개의 댓글
·
post-thumbnail

[NLP] Tokenizer 제작하기

개요 현재 대부분의 NLP task는 PLM (Pre-trained Language Model)을 통한 전이 학습이 대세로 자리잡았다. 하지만 긴 Pretraining을 수행 전 vocab을 만드는 건 정말 중요하다. 좋은 vocab을 만드는 것이 곧 토크나이징 퀄리티와 직결되고, 이는 모델이 맥락 지식을 잘 학습하여 downstream task에서 좋은 성능을 내는 데에까지 영향을 미치기 때문이다. 모델 학습에 들어가기에 앞서 vocab을 잘 살펴볼 필요가 있다. > PLM PLM (Pre-trained Language Model)은 사전에 학습시킨 언어 모델을 의미한다. PLM은 많은 양의 text data를 이용하여, 일반적인 수준의 언어 이해가 가능하도록 모델을 사전 훈련한다. 훈련한 PLM은 텍스트 분류, 생성, 번역 등과 같은 다양한 NLP task에서 좋은 성능을 내는것이 목적이다. 이렇게 pre-train한 모델을 가져온 뒤 NLP task를 수행함으로

2022년 2월 14일
·
0개의 댓글
·