전체 글
ssh로 원격 서버 접속
원격 서버 연결 0. 리눅스 서버에 ssh로 원격 접속 ssh [계정이름]@[서버 고정 IP] -p [포트 번호] # 포트번호가 22번 기본값인 경우, -p로 포트번호 지정 안해줘도 된다. # OR ssh -p [포트 번호] [계정이름]@[서버 고정 IP] 이후 서버 비밀번호를 입력하면 접속이 가능하다. 비밀번호 없이 접속하기 위해 아래와 같이 따라해보자. 1. ssh-key 생성하기 터미널창에서 홈 디렉토리로 이동한다. ( cd ~) ssh-keygen ssh-keygen : 로컬에 .ssh 디렉토리를 생성하고 여기에 ssh key 생성 (id_rsa.pub) id_rsa : 개인키 id_rsa.pub : 공개키 2. 직접 로컬 컴퓨터의 공개키(id_rsa.pub) 리눅스 서버에 옮기기 scp -P 2..
gRPC란?
gRPC 클라이언트와 서버는 Google 내부의 서버에서 사용자 자신의 데스크톱에 이르기까지 다양한 환경에서 서로 실행하고 대화할 수 있으며 gRPC에서 지원되는 모든 언어로 작성할 수 있다. 예를 들어, Go, Python 또는 Ruby의 클라이언트를 사용하여 Java에서 gRPC 서버를 쉽게 만들 수 있다. 또한 최신 Google API에는 gRPC 버전의 인터페이스가 있어 Google 기능을 애플리케이션에 쉽게 구축할 수 있다. 프로토콜 버퍼 사용 기본적으로, gRPC는 구조화된 데이터를 직렬화하기 위해 구글의 성숙한 오픈 소스 메커니즘인 프로토콜 버퍼를 사용한다. 다음은 작동 방식에 대한 간단한 소개이다. 프로토콜 버퍼를 사용할 때 첫 번째 단계는 프로토콜 파일에서 직렬화할 데이터의 구조를 정의하..
vscode select interpreter - 가상 환경에서 사용할 python 버전 설정
가상환경 설정 - venv : 기존에 갖춰진 python 환경으로 가상 환경이 설정된다. [x] - conda : 가상 환경을 만들 때, python 버전을 함께 만들어줄 수 있다. 왜 select interpreter로 사용되는 python 버전을 지정해줘야할까? 개발 환경마다 사용되는 python 버전이 굉장히 다양하다. 또한 로컬에 설치된 여러 버전의 python이 존재하고, 가상환경 상에 설치된 python 버전도 여럿 존재한다. 그래서 모델을 돌릴 때(?), select interpreter로 어떤 python을 사용할지 지정을 해줘야 이후 python 버전이 달라서 생길 수 있는 문제들을 방지할 수 있다. VScode에서 Select Interpreter 설정하기 그럼, 이는 어떻게 해야할까?..
Week2-1. Pytorch tutorial (1) - Tensor
* 원티드 프리온보딩 AI/ML 코스에서 학습한 것을 정리한 내용입니다. Pytorch tutorial(1) pytorch 사용 이유 더보기 딥러닝 분야에서 파이토치를 많이 사용하는데, 그 이유는 아래와 같다. 간단한 모델 학습 그래프를 쌓고, 실행하고, 역전파를 통해 학습하는 과정들이 파이토치에서는 매우 간편하다. 간편한 병렬 학습 방법 DistributedDataPararell의 사용 tensor 구조의 데이터를 다룬다. np.ndarray처럼 n차원의 array이지만, 추가적으로 tensor 그래프와 미분값을 가지고 있다는 차이점이 있다. 신경망 층을 쌓으면, 그 신경망 층 안에 있는 값들이 모두 tensor 형태로 저장되어 있고, backward()라는 메소드를 수행함으로써 모든 그래프에 대한 미..
[논문 리뷰] Attention is All You Need
Attention is All You Need Transformer 구조를 처음 소개한 논문이다. 향후에 BERT, GPT등 Transformer 구조를 활용한 새로운 SOTA 모델들이 나오기 때문에 기본이 되는 Transformer에 대한 이해가 필요하다. Abstract * 초록색 표시 - 과거 모델 관련 정보 (e.g. 과거 모델의 한계) * 노란색 표시 - 논문에서 소개하는 모델 관련 정보 (e.g. 과거 모델의 어떤 한계를 어떻게 극복했는가) 기존에 우세한 시퀀스 변환 모델들은 복잡한 recurrent 또는 인코더와 디코더를 포함한 Convolution neural network를 활용했었다. 이 모델들은 또한 인코더와 디코더를 Attention 매커니즘을 통해 연결했다고 한다. 이와 다르게 T..
Week1-4. NLP의 Transfer Learning의 학습 방식
Transfer Learning 리뷰 데이터를 긍정과 부정으로 이진 분류하는 긍부정 판별 모델을 만들어야 한다고 가정해보자. 그런데 이 때 모델 학습에 쓸 수 있는 수집된 데이터가 1,000개 미만이라면 어떻게 해야할까? 적은 양의 데이터로는 당연히 성능 좋은 모델을 만들 수 없다. 이렇게 데이터가 적을 때 고려해야할 사항이 바로 Pre-trained 모델(사전 학습 모델)을 활용하는 Transfer Learning(전이 학습)이다. 많은 데이터로 미리 학습된 모델을 사전 학습 모델이라 한다. 구글이나 페이스북과 같은 대기업에서 엄청난 양의 데이터를 학습한 사전 학습 모델들을(ex. BERT) 오픈 소스로 공개하고 있다. 또한 이렇게 공개된 사전 학습 모델을 기반으로 더 개선된 사전 학습 모델들이 나오고..
Week1-3. NLG와 extractive summarization task
NLG (Natural Language Generation) 언어를 생성하는 NLP Task. 그렇다면, 언어를 '생성'한다는 것은 무슨 의미인가? 💡 주어진 정보(Text, Video, Image..)를 기반으로 정보 축약, 보강, 재구성 생성(Generation)의 세가지 방향성과 NLG Tasks 축약 많은 데이터 중에서 핵심만 뽑아내는 일 ex) Summarization( Abstractive(생성 요약), Extractive(추출 요약)) → 뉴스 핵심 요약 보강 부족한 정보를 추가하는 일 ex) Question generation (지문을 기반으로 지문에서 답을 찾을 수 있는 질문을 만드는 일) ex) Distractor generation (지문을 기반으로 오지선다형에서 오답을 생성해내는 일..
Week1-2. NLU와 Semantic Textual Similarity
NLU (Natural Language Understanding) NLU의 목표 NLU의 목표는 자연어를 이해해 특정 task를 풀 수 있는 모델을 만드는 것이다. NLU 모델은 방대한 데이터에서 우리가 보고 싶은 정보만 뽑아주고 정리하는 역할을 수행함으로써 정보 처리 자동화에 기여하고, 시간이 많이 소요되는 반복적인 업무를 대신 수행할 것이다. 언어를 이해하는 기준 NLU 모델은 자연어를 이해한다고 하는데, 과연 이해의 기준이 무엇일까? 여기엔 두가지 기준이 존재한다. Syntactic 문법적으로 옳은 문장인지 구분할 수 있는가? Semantic 문장의 의미를 아는가? 의미를 다루는 대표적인 NLU의 sub task 감정 분석(긍정/부정), 문장간 유사도, 의도 파악, 질문에 대답, 추론 등 💡 즉, ..