본문 바로가기

AI51

[논문리뷰] Fine-grained Post-training for Improving Retrieval-based Dialogue Systems. NAACL 2021 Fine-grained Post-training for Improving Retrieval-based Dialogue Systems [저자] Janghoon Han(Department of Computer Science and Engineering- Sogang University, LG AI Research), Taesuk Hong, Byoungjae Kim, Youngjoong Ko, and Jungyun Seo [게재] NAACL, 2021 June [pdf] [인용수] 26회인용 [요약] 대화 응답 선택 (Conversational Response Selection) 태스크의 대표 3가지 데이터셋(Ubuntu, Duoban, E-commerce)에서 아래 2가지를 적용한 'fine-grained .. 2023. 1. 18.
[Pytorch][Error] ’BertTokenizerFast' object has no attribute '_in_target_context_manager' Pytorch에서 Transformer 라이브러리를 사용하는데 여러 가상환경에서 테스트를 해보다가 이전에는 없었던 아래 에러가 발생하는것을 확인 ’BertTokenizerFast' object has no attribute '_in_target_context_manager' 찾아보니, transformers 라이브러리 4.22.x 와 4.21.x 버전에서 같은 에러가 발생한다고함 더 낮은 버전으로 다운그레이드하여 해결 pip install --force-reinstall transformers==4.20.1 https://github.com/MaartenGr/BERTopic/issues/718#issuecomment-1248934705 'BertTokenizerFast' object has no attr.. 2022. 12. 12.
[Pytorch][BERT] 버트 소스코드 이해_⑫ BertSelfOutput [Pytorch][BERT] 버트 소스코드 이해 목차 BERT 📑 BERT Config 📑 BERT Tokenizer 📑 BERT Model 📑 BERT Input 📑 BERT Output 📑 BERT Embedding 📑 BERT Pooler 📑 BERT Enocder 📑 BERT Layer 📑 BERT SelfAttention 📑 BERT SelfOtput 👀 BertSelfOutput 2022. 10. 28.
[Pytorch][BERT] 버트 소스코드 이해_⑪ BertSelfAttention [Pytorch][BERT] 버트 소스코드 이해 목차 BERT 📑 BERT Config 📑 BERT Tokenizer 📑 BERT Model 📑 BERT Input 📑 BERT Output 📑 BERT Embedding 📑 BERT Pooler 📑 BERT Enocder 📑 BERT Layer 📑 BERT SelfAttention 👀 📑 BERT SelfOtput BertSelfAttention 1. Attetion Process 1) key, query, value 생성 : 전체 hiddens_size를 실제로 attention 연산을 적용할 크기로 축소한다 2) attention score 구한다 3) context vector 구한다 (=output) ✔ num_attention_heads : (i.. 2022. 10. 28.
[Pytorch][BERT] 버트 소스코드 이해_⑩ BERT Layer [Pytorch][BERT] 버트 소스코드 이해 목차 BERT 📑 BERT Config 📑 BERT Tokenizer 📑 BERT Model 📑 BERT Input 📑 BERT Output 📑 BERT Embedding 📑 BERT Pooler 📑 BERT Enocder 📑 BERT Layer 👀 📑 BERT SelfAttention 📑 BERT SelfOtput BertLayer 1. BertLayer의 init() ✔ transformers.apply_chunking_to_forward : 연산 효율화를 위해 chunk를 나누어서 계산한다. : This function chunks the input_tensors into smaller input tensor parts of size chunk_siz.. 2022. 10. 28.
[Pytorch][BERT] 버트 소스코드 이해_⑨ BERT model 출력값 [Pytorch][BERT] 버트 소스코드 이해 목차 BERT 📑 BERT Config 📑 BERT Tokenizer 📑 BERT Model 📑 BERT Input 📑 BERT Output 👀 📑 BERT Embedding 📑 BERT Pooler 📑 BERT Enocder 📑 BERT Layer 📑 BERT SelfAttention 📑 BERT SelfOtput BaseModel 출력값 class BertModel(BertPreTrainedModel): def forward(...): ........ return BaseModelOutputWithPoolingAndCrossAttentions( last_hidden_state = **sequence_output**, pooler_output = **po.. 2022. 10. 28.
[Pytorch][BERT] 버트 소스코드 이해_⑧ BERT model 입력값 [Pytorch][BERT] 버트 소스코드 이해 목차 BERT 📑 BERT Config 📑 BERT Tokenizer 📑 BERT Model 📑 BERT Input 👀 📑 BERT Output 📑 BERT Embedding 📑 BERT Pooler 📑 BERT Enocder 📑 BERT Layer 📑 BERT SelfAttention 📑 BERT SelfOtput BertModel 입력값 - BERT 모델을 생성한 후, forward 함수에서 필요한 입력값 class BertModel(BertPreTrainedModel): def forward( self, input_ids, attention_mask, token_type_ids, position_ids, head_mask, inputs_embeds, .. 2022. 10. 28.
[Pytorch][BERT] 버트 소스코드 이해_⑦ Bert Pooler [Pytorch][BERT] 버트 소스코드 이해 목차 BERT 📑 BERT Config 📑 BERT Tokenizer 📑 BERT Model 📑 BERT Input 📑 BERT Output 📑 BERT Embedding 📑 BERT Pooler 👀 📑 BERT Enocder 📑 BERT Layer 📑 BERT SelfAttention 📑 BERT SelfOtput BertPooler : 마지막 hidden_state의 첫번째 토큰인 [CLS] 토큰의 embedding을 반환 We "pool" the model by simply taking the hidden state corresponding to the first token. The pooling layer at the end of the BERT m.. 2022. 10. 28.
[Pytorch][BERT] 버트 소스코드 이해_⑥ BertEncoder [Pytorch][BERT] 버트 소스코드 이해 목차 BERT 📑 BERT Config 📑 BERT Tokenizer 📑 BERT Model 📑 BERT Input 📑 BERT Output 📑 BERT Embedding 📑 BERT Pooler 📑 BERT Enocder 👀 📑 BERT Layer 📑 BERT SelfAttention 📑 BERT SelfOtput BertEncoder init 함수를 보니 많은 BertLayer 로 이루어져있다 ⇒ BertEncoder → BertLayer → BertAttention→ BertSelfAttention class BertEncoder(nn.Module): def __init__(self, config): super().__init__() self.conf.. 2022. 9. 30.
[Pytorch][BERT] 버트 소스코드 이해_⑤ BertEmbedding [Pytorch][BERT] 버트 소스코드 이해 목차 BERT 📑 BERT Config 📑 BERT Tokenizer 📑 BERT Model 📑 BERT Input 📑 BERT Output 📑 BERT Embedding 👀 📑 BERT Pooler 📑 BERT Enocder 📑 BERT Layer 📑 BERT SelfAttention 📑 BERT SelfOtput 1. BertEmbedding 이란? : BertEocder에 들어갈 임베딩 생성 = WordPiece Embedding + Position Embedding + Segment Embedding Embedding 설명 default WordPiece Embedding (=word_embeddings) 실질적인 입력이 되는 워드 임베딩 단어 집합.. 2022. 7. 6.
[Pytorch][BERT] 버트 소스코드 이해_④ BertModel [Pytorch][BERT] 버트 소스코드 이해 목차 BERT 📑 BERT Config 📑 BERT Tokenizer 📑 BERT Model 👀 📑 BERT Input 📑 BERT Output 📑 BERT Embedding 📑 BERT Pooler 📑 BERT Enocder 📑 BERT Layer 📑 BERT SelfAttention 📑 BERT SelfOtput BertModel 🎅 BertModel을 통해 데이터가 어떻게 움직일까? [Step1] BertEmbedding 인코더에 전달할 텍스트 임베딩 생성 [Step2] BertEncdoer 텍스트 임베딩을 인코더를 통해 정보 압축 [Step3] BertPooler 최종 임베딩 값 반환 🎅 각 단계에서 무슨 일이? 1. BertEmbedding 202.. 2022. 7. 5.
[Pytorch][BERT] 버트 소스코드 이해_③ BertTokenizer [Pytorch][BERT] 버트 소스코드 이해 목차 BERT 📑 BERT Config 📑 BERT Tokenizer 👀 📑 BERT Model 📑 BERT Input 📑 BERT Output 📑 BERT Embedding 📑 BERT Pooler 📑 BERT Enocder 📑 BERT Layer 📑 BERT SelfAttention 📑 BERT SelfOtput BertTokenizer 1. BertTokenizer의 이해 Tokenizer 정의: 주어진 코퍼스(corpus)에서 토큰(token)이라 불리는 단위로 나누는 작업 BertTokenizer는 무엇이 특별한가? WordPiece Tokenizer(BPE의 변형 알고리즘) 적용 BPE(Byte Pair Encoding): OOV(Out-Of-V.. 2022. 7. 5.
[Pytorch][BERT] 버트 소스코드 이해_② BertConfig [Pytorch][BERT] 버트 소스코드 이해 목차 BERT 📑 BERT Config 👀 📑 BERT Tokenizer 📑 BERT Model 📑 BERT Input 📑 BERT Output 📑 BERT Embedding 📑 BERT Pooler 📑 BERT Enocder 📑 BERT Layer 📑 BERT SelfAttention 📑 BERT SelfOtput BertConfig configuration_bert.py class BertConfig(PretrainedConfig): def __init__( self, vocab_size=30522, hidden_size=768, num_hidden_layers=12, num_attention_heads=12, intermediate_size=3072,.. 2022. 7. 5.
[Pytorch][BERT] 버트 소스코드 이해 [Pytorch][BERT] 버트 소스코드 이해 목차 BERT 👀 📑 BERT Config 📑 BERT Tokenizer 📑 BERT Model 📑 BERT Input 📑 BERT Output 📑 BERT Embedding 📑 BERT Pooler 📑 BERT Enocder 📑 BERT Layer 📑 BERT SelfAttention 📑 BERT SelfOtput ✅ 기본적인 Bert 모델의 사용은 아래 코드와 같다 : Tokenizer로 BertModel의 입력값을 만든 후, 넣어서 출력값 생성 from transformers import BertTokenizer, BertModel import torch tokenizer = BertTokenizer.from_pretrained("bert-base-u.. 2022. 7. 5.
[음성 기초] Vocoder (보코더) 1. 보코더의 정의 1) 위키백과 https://ko.wikipedia.org/wiki/%EB%B3%B4%EC%BD%94%EB%8D%94 보코더(영어 : vocoder)는 《보이스》(voice)와 《코더》(coder)의 합성어로, 전자 악기와 이펙터의 일종이다. 신시사이저의 종류로 분류되기도 한다. 본래의 의미는 통신을 위한 음성 압축 기술로, 휴대폰 등 다양한 기기에 사용되고 있다. 음성 파형을 직접 보내는 것이 아니라 매개 변수가 보내고, 수신 측에서는 그 매개 변수에서 원본 음성을 합성한다. 음악용 보코더는 이 기술을 응용한 것이다. - 원래 보코더는 음성 통신에서 음성 압축 기술로 태어난 것으로, 미국의 벨 연구소의 호머 더들리 (Homer Dudley)가 1928년에 기본적인 아이디어를 발안했다.. 2022. 3. 2.