전체 글(363)
-
Transformer - 어텐션 원리 설명
https://ratsgo.github.io/nlpbook/docs/language_model/tr_self_attention/ Self Attention pratical tips for Natural Language Processing ratsgo.github.io
2023.08.30 -
[HTTP, HTTPS] x-forwarded-for(XFF) header
https://umbum.dev/1221 Client IP 구하기 : X-Forwarded-For와 X-Real-IP Proxy / VPN X-Real-IP는 바로 직전 client의 IP를 나타낸다. ``` proxy_set_header X-Real-IP $remote_addr; 설정에서 $remote_addr이, nginx가 수신한 client IP를 의미한다. User - Nginx - Tomcat 일 때, X-Real-IP는 User IP 가 된다. Us umbum.dev
2023.04.07 -
Spring cloud stream kafka - concurrency
spring.cloud.stream.bindings..consumer.concurrency 옵션과 관련해 설명한다. 아래 상황이 있다고 가정하자. 토픽 이름 : A-topic 파티션 개수 : 4 앱 인스턴스 개수 : 1(concurrency == 2) 보통은 위와 같이 설정을 하게 되면, 당연히 하나의 앱에서 2개는 동시 처리 하겠구나 생각을 하기 마련이지만 실제로는 그렇게 동작하지 않을 수 있다. 아래와 같이 컨슈머 그룹이 구성 되어 있다고 생각해보자 ./kafka-consumer-groups.sh --bootstrap-server localhost:9092 --group a-topic-group --describe GROUP TOPIC PARTITION CURRENT-OFFSET LOG-END-OFF..
2022.07.27 -
딥러닝 - BERT(Bidirectional Encoder Representations from Transformers)
BERT는 트랜스포머를 이용하여 구현되었으며, 위키피디아와 BooksCorpus와 같은 레이블이 없는 텍스트 데이터로 사전 훈련된 언어 모델이다. BERT는 이미 기 학습된 사전 훈련 모델에 레이블이 있는 레이어 층을 하나 쌓아서 훈련해 파이미터를 재조정하여 다른 작업(task)에서도 좋은 성능을 낼 수 있다. 이러한 다른 작업을 위해 레이어를 쌓은 후 훈련하여 파라미터를 재 조정하는 과정을 파인튜닝(fine-tuning)이라고한다. 언어 모델(Language Model, LM) 언어 모델이란 단어들의 시퀀스에 대한 확률 분포다. 간단히 말하면 단어들의 모음이 있을 때 해당 단어의 모임이 어떤 확률로 등장할지를 나태나는 값이라 생각하면 된다. 예를 들면, Word2vec 모델 중 CBOW 모델은 주변 단..
2022.02.17 -
딥러닝 - 트랜스포머(Transformer)
트랜스포머(Transformer)는 구글이 발표한 논문인 "Attention is all you need"에서 나온 모델로 기존의 seq2seq의 구조인 인코더-디코더를 따르지만, 내부적으로 RNN 레이어 없이, 어텐션(Attention)으로만 구현한 모델이다. RNN을 이용한 기존 seq2seq의 한계 기존의 seq2seq 모델은 인코더-디코더 구조로 구성되어있고, 여기서 인코더는 입력 시퀀스를 하나의 벡터 표현으로 압축하고, 디코더는 이 벡터 표현을 통해 출력 시퀀스를 만들어냈다. 하지만 이러한 구조는 인코더가 입력 시퀀스를 하나의 벡터로 압축하는 과정에서 입력 시퀀스의 정보가 일부 손실되는 단점이 있었다. 또한 RNN의 고질적인 기울기 소실 문제까지 더해졌다. 트랜스포머(Transformer)의 주..
2022.02.15 -
딥러닝 - 어텐션 메커니즘(Attention Mechanism)
어텐션 메커니즘 시퀀스-투-시퀀스(seq2seq) 모델 같은 경우는 인코더에서 입력 시퀀스를 컨텍스트 벡터(context vector)라는 하나의 고정된 크기의 벡터 표현으로 문장 시퀀스를 압축하고, 디코더는 해당 컨텍스트 벡터를 이용해 출력 시퀀스를 만들어낸다. 하지만, 이러한 RNN에 기반한 seq2seq 모델에는 아래와 같은 문제점이 있다. 하나의 고정된 크기의 벡터에 문장 시퀀스 정보 모두를 압축하려 하기에 정보 소실이 발생한다. RNN의 고질적인 문제인 기울기 소실(vanishing gradient)문제가 존재한다. 즉, 위와 같은 문제로 기계번역 같은 분야에서 입력된 문장의 길이가 길어지게 되면 번역 성능이 크게 줄어든다. 하지만 어텐션이라는 아이디어로 긴 입력 시퀀스에 대한 품질이 떨어지는 ..
2022.02.15