Oneulog

· NLP/TIL
Backgroundtmux는 하나의 터미널 세션 안에서 여러 개의 터미널 창을 생성하고 Background로 관리할 수 있게 해 주는 도구이다. 즉, 터미널 멀티플렉서의 역할을 수행한다. 그렇기 때문에 서버 작업이나 개발 환경에서 특히 유용하게 사용된다. 주요 기능으로는 여러 세션 관리, 창과 패널, 세션 유지, 네트워크 장애 복구 등이 있다고 한다.  실제로 tmux를 사용하면서 가장 좋았던 점은 "Background에서 작업을 유지하는 데 편하다"이다. 실제로 nohup 사용 당시 실행 중인 프로그램을 내릴 때 직접 PID를 찾아서 내렸던 기억이 있다.(이 부분은 nohup에 대한 이해도 부족의 이슈도 있다.) 하지만 tmux에서는 직접 생성한 이름의 세션에 들어가서 작업을 확인 혹은 추가 진행할 수..
· NLP/TIL
Background여러 데모들을 동시에 만들게 되면서 LLM을 각 데모 별로 서버에 올리기에는 메모리 제한이 생길 수 밖에 없는 현상이 발생했다. 제작 중인 데모들은 실제 계약 및 사업 진행으로 이루어진 것들이 아니기에 LLM Base 모델로 Prompting 혹은 물리적인 작업들을 진행하는 게 전부였기 때문에 HuggingFace에 올라와 있는 Base 모델만 활용하고 있었다. 그렇기 때문에 LLM Serving Framework 중 하나인 SGLang을 활용해서 LLM API Server를 만들고 각 데모에서 텍스트를 입력받을 시 LLM API Server를 호출해서 답변을 얻는 방식으로 진행하고자 했다. 물론 이 과정은 진행 중인 데모에 특정 LLM 모델을 사용한다는 점을 전제로 한다. 또 SGLa..
0. Abstract자연어 이해는 텍스트 수반, 질문 답변, 의미적 유사성 평가와 문서 분류와 같은 매우 다양한 task로 구성된다. 대규모의 라벨링되지 않은 텍스트 코퍼스는 풍부하지만, 특정 task를 학습하기 위한 라벨링된 데이터가 부족해, 차별적으로 학습된 모델이 적절한 성능을 발휘하기가 어렵다. 본 논문은 라벨이 없는 다양한 텍스트 코퍼스에 대해 언어 모델을 생성적으로 학습한 다음 각 특정 작업에 대해 차별적으로 fine-tuning하면 이러한 작업에서 큰 이득을 얻을 수 있음을 입증한다. 이전 접근 방식과 달리 fine-tuning 중에 task-aware input transformations을 사용해 모델 아키텍처를 최소한으로 변경하면서 효과적인 transfer를 달성한다. 자연어 이해에 대..
0. Abstract본 논문은 sequence-to-sequence 모델을 사전학습하기 위한 denoising autoencoder인 BART를 소개한다. BART는 임의의 noising 함수를 사용해 텍스트를 손상시키고 모델이 원본 텍스트를 재구성하도록 학습되었다. BART는 표준 Transformer 기반 신경망 기계 번역 아키텍처를 사용하는데, 이는 간단함에도 불구하고 BERT(양방향 인코더 사용), GPT(좌우 디코더 사용) 및 기타 여러 최신 사전 학습 방식을 일반화한 것으로 볼 수 있다. 본 논문에서는 원래 문장의 순서를 무작위로 섞고 텍스트 범위를 단일 마스크 토큰으로 대체하는 새로운 infilling scheme를 사용해 여러 noise 처리 방법을 평가하여 최상의 성능을 찾았다. BART..
0. Abstract주요 시퀀스 변환 모델은 인코더와 디코더를 포함하는 RNN 또는 CNN을 기반으로 한다. 최고 성능의 모델은 또한 어텐션 메커니즘을 통해 인코더와 디코더를 연결한다. 본 논문에서는 recurrence와 convolution을 완전히 없애고 attention 메커니즘에만 기반한 새로운 간단한 네트워크 아키텍처인 Transformer를 제안한다. 1. Introdution특히 RNN과 gated RNN은 언어 모델링 및 기계 번역과 같은 시퀀스 모델링 및 변환 문제에 대한 최첨단 접근 방식으로 확고히 자리 잡았다.  Recurrent model은 일반적으로 입력 및 출력 시퀀스의 symbol 위치를 따라 계산을 고려한다. 계산 시간의 step에 따라 위치를 정렬하면, 이전의 hidden ..
아래의 내용은 파이토치 패키지의 전반적인 구성을 보여준다. 1. torch 메인 네임스페이스이다. 텐서 등의 다양한 수학 함수가 포함되어져 있으며, Numpy와 유사한 구조를 가진다. 2. torch.autograd 자동 미분을 위한 함수들이 포함되어져 있다. 자동 미분의 on/off를 제어하는 콘텍스트 매니저(enable_grad/no_grad)나 자체 미분 가능 함수를 정의할 때 사용하는 기반 클래스인 'Function' 등이 포함되어져 있다. 3. torch.nn 신경망을 구축하기 위한 다양한 데이터 구조나 레이어 등이 정의되어져 있다. 4. torch.optim 확률적 경사 하강법(Stochastic Gradient Descent, SGD)를 중심으로 한 파라미터 최적화 알고리즘이 구현되어 있다...
0. AbstractNeural machine translation은 번역 성능을 극대화하기 위해 공동으로 조정될 수 있는 단일 신경망 구축을 목표로 한다. Neural machine translation을 위해 최근 제안된 모델은 보통 encoder-decoders 제품군에 속하며 decoder가 번역을 생성하는 고정 길이 벡터로 source sentence를 인코딩한다. 본 논문에서는 고정 길이 벡터의 사용이 기본적인 encoder-decoders 모델의 성능을 향상시키는데 병목 현상이 발생한다고 추측하고, 이러한 부분을 명시적으로 하드 세그먼트로 구성할 필요없이 모델이 target 단어 예측과 관련된 소스 문장의 일부를 자동으로 검색할 수 있도록 하여 이를 확장할 것을 제안한다. 새로운 접근 방식을..
이전 글인 CBOW 모델 구현에 이어 Skip-gram 모델 구현을 진행한다. 전반적인 구현 과정더미 데이터를 생성한다.해당 데이터를 띄어쓰기를 기준으로 쪼개 단어로 이루어진 시퀀스 리스트를 생성한다.해당 시퀀스에 있는 단어들을 중복을 제거해 단어 : 인덱스 값을 가지는 딕셔너리를 생성한다.시퀀스 리스트와 딕셔너리를 활용해 Skip-gram 모델 학습을 위한 데이터셋을 생성한다.모델 학습을 위한 DataLoader를 생성한다.Skip-gram 모델을 정의한다.Skip-gram 모델과 loss, optimizer를 선언하고 학습을 진행한다.단어 간 유사도를 확인한다. 0. 라이브러리 설정해당 과정에서 사용할 패키지들을 불러온다.import torchfrom torch.utils.data import Te..
NLP Developer
'NLP' 카테고리의 글 목록