전체 글 53

Spring Boot이란?

1. Spring Boot 이란? Production 레벨의 stand-alone application을 "run" 명령어 만을 이용하여 만들 수 있게 해준다. 2. Spring Boot의 특징 - stand-alone spinrg application을 만들어준다. - War 파일없이 Embedded Tomcat, jetty와 Undertow를 바로 사용할 수 있게 해준다. - build configuration을 쉽게 하기 위하여 "starter" dependency들을 제공한다. - Spring과 3rd party 라이브러리들을 쉽게 어디서나 사용할 수 있게 해준다. - metrics나 health check 등 producion-ready를 체크할 수 있는 기능을 제공한다. ( https://do..

Spring 이란?

1. Spring이란 자바 프로그래밍을 더 빠르고 쉽게 해주는 것이다. Speed, Simplicity와 Productivity에 중점을 두는 세계 최대의 Java Framework이다. “We use a lot of the tools that come with the Spring framework and reap the benefits of having a lot of the out of the box solutions, and not having to worry about writing a ton of additional code—so that really saves us some time and energy.” - SEAN GRAHAM, APPLICATION TRANSFORMATION LEAD, D..

API 게이트웨이와 Spring Cloud Zuul Filter

1. API Gateway API Gateway란 마이크로서비스 아키텍처(Microservice Architecture, MSA)에서 여러 클라이언트 요청을 적절한 서비스로 프록시하거나 라우팅하기 위한 서비스이다. MSA 개념이 대중화된 지금 API Gateway의 중요성도 더 커지고 있다. MSA에서는 도메인별로 하나 이상의 서비스와 그에 따른 서버가 존재하기 때문에 이 서비스를 사용하는 클라이언트 입장에서는 다수의 end point가 생기게 되며, 관리하기가 힘들다. 그래서 MSA 환경에서 서비스에 대한 도메인을 하나로 통합할 수 있는 API Gateway가 필요하다. API Gateway는 일반적으로 아래 역할을 수행한다. 트래픽 관리, CORS 지원, 권한 부여 및 액세스 제어, 제한, 모니터링 ..

Kubernetes Pod와 API 통신 - Ambassador

파드 내에서 API가 통신해야할 일이 있다. 이 때, 인증 등 복잡한 절차를 거쳐야 하는 경우가 많은데, 쉽게 사용할 수 있는 방법인 Ambassador가 있다. local에서 사용할 수 있는 kubectl proxy 명령어를 이용하여 localhost:8001로 kubernetes와 통신해본 적이 있을 것이다. 이를 응용한 방법이다. main container외에 kubectl proxy를 사용하는 것이다. kubectl-proxy.sh #!/bin/sh API_SERVER="https://$KUBERNETES_SERVICE_HOST:$KUBERNETES_SERVICE_PORT" CA_CRT="/var/run/secrets/kubernetes.io/serviceaccount/ca.crt" TOKEN="..

Elasticsearch (엘라스틱서치)의 Indexing 파일 - Segment

1. Segment 세그먼트는 Elastic Search(이하 ES)가 Lucene 라이브러리를 사용하여 생성하는 인덱싱 데이터의 단위로 복수 개의 파일로 구성 각 세그먼트들은 완전히 독립되어진 문서들의 집합이며 Inverted Index 구조로 생성된 실제 인덱싱 데이터로 구성되어짐 한번 생성된 세그먼트 파일은 수정이 불가능 (Immutability) 2. Segment File Path 아래 File Path에 인덱스 세그먼트 파일들이 위치 {data_path}/data/nodes/{node_num}/indices/{index_uuid}/{shard_num}/index/ Name Type Description {data_path} String (Dir Path) ES의 data를 저장하는 path {..

Universal Transformer (2018)

1. Universal Transformer Transformer 모델(https://jw92.tistory.com/31)은 계산을 일반화하기 어렵기 때문에 문장 단순 복사 등 기본적인 추론에서도 틀리는 경우가 있음 Weight를 공유해 Transformer를 일반화한 모델 Transition Function에는 CNN 혹은 FFNN 사용 2. Adaptive universal transformer 각 Symbol에 필요한 계산량을 조절하는 ACT (Adaptive Computation Time)을 Universal Transformer에 적용한 것 Weight를 공유하기 때문에 Symbol마다 layer 개수가 다른게 가능해짐

AI 2022.09.04

LLM - Transformer (2017)

1. 개요 LSTM(+ Seq2Seq)의 경우 많은 개선점이 있었음에도 long-term dependency에 취약하다는 단점 어텐션을 RNN의 보정을 위한 용도가 아닌 어텐션만으로 인코더와 디코더를 만듦 RNN을 사용하지 않기 때문에 입력을 순차적으로 받지 않고 한 번에 사용 2. 입력 - 포지셔널 인코딩 RNN이 자연어 처리에서 유용했던 이유는 단어의 위치에 따라 단어를 순차적으로 입력받아서 처리하기 때문 트랜스포머는 단어의 위치 정보를 얻기 위해서 각 단어의 임베딩 벡터에 위치 정보들을 더하여 모델의 입력으로 사용 짝수 인덱스에는 사인 함수, 홀수 인덱스에는 코사인 함수를 적용하여 위치 정보 저장 3. 인코딩 3-1. Multi-Head Attention 하나의 word를 아래와 같은 구조로 계산 ..

AI 2022.09.04

Attention Mechanism (Dot-Product Attention) (2015)

1. 전체 구조 기존 Seq2Seq는 시점 t에서 출력 단어를 예측하기 위해서 디코더의 셀은 두 개의 입력값이 필요 여기에 하나의 값을 더해서 예측 a. 시점 t-1의 Hidden state b. 시점 t-1에 나온 출력 c. 어텐션 값(Attention Value) 2. Attention Score (, je는 같은 과정을 거쳐 현재 suis에 대해 진행한다고 가정) 어텐션 스코어란 현재 디코더의 시점 t에서 단어를 예측하기 위해, 인코더의 모든 Hidden state 각각이 디코더의 현 시점의 state와 얼마나 유사한지를 판단하는 스코어값 모든 Input hidden state에 대하여 아래와 같이 내적하여 값을 구함 3. Attention Distribution using Softmax Softm..

AI 2022.09.04
반응형