반응형

분류 전체보기 505

[논문 요약] Improving language models by retrieving from trillions of tokens

NLP RETRO Paper Review 2022년 구글 딥마인드에서 공개된 RETRO 논문의 핵심 내용들을 요약해보도록 하겠습니다. 논문의 제목은 "Improving language models by retrieving from trillions of tokens"입니다. 실험 배경 기존의 GPT-3 등의 대규모 언어 모델(LLM)들은 지속적으로 파라미터의 수와 데이터셋의 크기를 증가시키는 방향으로 성능 향상을 도모해왔습니다. 그러나 외부의 Knowledge base(KB)의 도움을 받게된다면 비교적 적은 수의 파라미터로도 언어 모델의 성능을 크게 향상시킬 수 있다는 발상을 했었으며, RETRO에서는 7B 정도의 파라미터로도 100B 이상의 LLM에 맞먹는 성능을 기록했었습니다. 위 Figure 1의 ..

[논문 요약] Leveraging Passage Retrieval with Generative Models for Open Domain Question Answering

Fusion-in-Decoder Paper Review 이번 글에서는 Open Domain QA 분야에서 강력한 성능을 보이는 Reader 구조인 Fusion-in-Decoder(FiD) 모델에 대한 논문의 내용을 요약해보도록 하겠습니다. 논문의 제목은 Leveraging Passage Retrieval with Generative Models for Open Domain Question Answering이며, EACL 2021 학회에 등재된 페이퍼입니다. 실험 배경 수 많은 문단 중 질문과 관련된 문단을 먼저 탐색하고, 여기서 답변을 찾아야 하는 Open Domain QA(ODQA) 분야에서 문단 탐색(Retrieval)-찾은 문단에서 답변 탐색(Reader) 의 2단계 구조로 이루어진 모델 들이 강력..

파이썬 로또 번호 추출, 당첨 등수 구하기 및 구매 시뮬레이션 구현 예제

Python 로또 프로그램 구현 실습 파이썬으로 로또(Lotto) 복권의 당첨 번호를 추출하고 주어진 상황의 등수를 구해보며 여러 번 구매하는 시뮬레이션의 결과를 출력하는 과정들을 구현하여 간단한 로또 프로그램을 만들어보는 예시를 다루어 보겠습니다. 로또 당첨 번호 추출 1~45 번호 중 중복 없이 7개를 뽑아 6개는 당첨 번호, 1개는 보너스 번호로 사용하게 됩니다. 이는 넘파이 모듈의 np.random.choice 함수를 활용하면 쉽게 번호를 뽑을 수 있습니다. import numpy as np numbers = np.random.choice(np.arange(1, 46), 7, replace = False) # 1~45 중 7개 추출 win_numbers = numbers[:-1] # 당첨 번호 6..

[C언어/C++] n제곱, n제곱근 구하기 방법 : pow() 함수

C언어, C++의 pow 함수 사용법 예제 C언어와 C++에서 n제곱, n제곱근 형태를 나타낼 수 있는 pow 함수의 사용 방법에 대하여 정리해보도록 하겠습니다. 참고로, pow 함수를 사용하기 위해서는 C언어에서는 , C++에서는 헤더 파일을 포함시켜 주어야 합니다. n제곱 표현 pow(밑, 지수) 형태로 n제곱의 값을 반환받을 수 있습니다. 여기서 결과는 기본적으로 double 자료형으로 반환됨에 유의해주세요. #include #include int main() { printf("%.2f\n", pow(2, 3)); // 2의 3제곱 -> 8.00 printf("%.4f\n", pow(0.5, 4)); // 0.5의 4제곱 -> 0.0625 printf("%.2f\n", pow(-1, 5)); // ..

C & C++ 2022.07.06

도커(Docker) 이미지 검색, 다운로드, 조회 및 실행 명령어 정리

도커에서 기본적인 Images 다루기 방법 정리 Docker에서 이미지를 다루는 기초적인 방법들인 검색/다운/확인/실행 명령어들에 대하여 간단하게 요약하여 정리해보도록 하겠습니다. 먼저, 도커 사용 준비를 위하여 리눅스 환경의 경우에는 터미널 실행을 해주시고, 윈도우 환경에서 사용하는 경우는 도커 설치 시 깔아두었던 우분투 앱에 접속해줍시다. 도커 이미지 검색 원하는 이름의 Images를 레퍼지토리 내에서 탐색하는 명령어는 아래와 같습니다. $ docker search 이름 예를 들어, docker search nginx로 nginx가 포함된 이름을 검색한 결과는 다음과 같았습니다. 해당되는 이미지들의 이름, 설명, 인기도, 공식 여부, 자동 여부에 대한 정보가 출력되었습니다. 도커 이미지 다운로드 원하..

Infra/Docker 2022.07.05

파이참(Pycharm) 디버깅 모드 사용 방법 정리(변수 값, 오류 체크)

파이참 디버거 사용법 Pycharm에서 프로그래밍 중 디버깅 모드(디버거)를 사용하는 방법에 대하여 변수의 값과 오류를 확인하는 예시를 중심으로 간단하게 정리해보도록 하겠습니다. 기본 사용법 : 원하는 코드 위치에서 변수 값 확인 먼저, 파이참 디버거로 특정 코드 줄에서의 변수 값을 체크하는 방법을 살펴보겠습니다. 예시로 아래와 같은 간단한 코드로 구성된 main.py 파일이 있다고 가정해 보겠습니다. 변수 값을 알기를 원하는 코드 위치의 줄 번호 부분(붉은색 동그라미 부분)을 클릭하게 되면, 아래와 같이 동그라미 표시가 등장하게 됩니다. 이후, 오른쪽 위에서 벌레 모양의 아이콘을 클릭해주시거나, 혹은 메뉴바에서 Run 메뉴 > Debug 항목을 눌러주시면 디버거 실행이 완료됩니다. 디버깅 모드 실행 뒤..

Python/Utils 2022.07.05

리눅스 다른 서버 vncserver 포트 원격으로 열기 명령어

Linux vncserver 활용 원격으로 다른 서버의 포트 오픈 방법 리눅스에서 vncserver 명령어로 다른 서버의 포트를 개방하는 방법을 정리해 보겠습니다. 상황 가정 : 유저 id가 abc이고 주소가 address인 서버의 1000번 포트를 열려는 상황 (1000번 포트를 열게되면 실제로는 5900을 더한 6900번 포트로 사용하게 됩니다.) Step 1. ssh 접속 우선, ssh 아이디@주소 형태의 명령어를 터미널에 입력합니다. $ ssh abc@address Are you sure you want to continue connecting (yes/no/[fingerprint])? 라는 메시지가 출력되면 yes를 입력한 뒤, 해당 id의 계정 비밀번호를 입력해줍니다. Step 2. vncse..

Linux 2022.07.04

도커(Docker) 설치 방법 정리(윈도우 10, 11 기준)

Windows 10/11 기준 Docker Install 과정 윈도우 10 혹은 11 운영체제에서 도커를 설치하는 과정을 정리해보겠습니다. Step 1. 도커 설치 페이지 접속 및 다운로드 시작 아래 링크의 Docker 공식 홈페이지를 접속한 뒤, Get Started 버튼을 클릭해줍니다. Home - Docker Learn how Atomist will help Docker meet the challenge of securing secure software supply chains for development teams. www.docker.com 이후, 등장하는 창에서 Docker Desktop 버전, 윈도우 전용을 클릭하여 다운로드를 시작합니다. Step 2. Install 과정 진행 등장한 설치 ..

Infra/Docker 2022.07.04

트랜스포머 모델 텍스트 생성(Text Generation) 원리 설명, 코드 구현

Transformer text generation 원리, 코드 구현 예제 트랜스포머 구조의 모델에서 텍스트를 생성하는 원리를 간단히 정리해보고, 허깅페이스에서 지원하는 Transformers 모듈을 활용하여 텍스트를 생성하는 코드를 구현하는 과정에 대하여 다루어보도록 하겠습니다. 트랜스포머 모델 텍스트 생성 원리(인코더-디코더 기반) Transformer 구조 모델에서 텍스트를 생성하는 원리를 간단하게 먼저 정리해보겠습니다. Encoder-Decoder 기반 구조로 이루어져있는 트랜스포머 기반 모델의 특징을 활용하여 인코더에서 input text를 임베딩한 결과와 이전 단계까지에서 생성된 output token을 디코더에서 받아들여 예측된 토큰 확률 분포에서 가장 확률이 높은 토큰 or 확률에 따른 샘플..

Python/NLP Code 2022.07.03

파이썬 미분 구현 예제(미분계수, 도함수)

Python 미분계수, 도함수 계산하기 파이썬에서 주어진 함수의 특정 점에서 미분계수를 정의를 통해서 구해보고 sympy 모듈을 활용하여 도함수를 직접 얻어내는 방법에 관하여도 다루어 보겠습니다. 미분계수 구하기 우선 예시로, 아래와 같은 간단한 함수 f(x)를 가정해 보겠습니다. $$ f(x) = e^x + 5x^2 - 6x - 5 $$ 함수 f(x)에 대한 x = a에서의 미분계수는 아래와 같이 정의가 됩니다. $$ f'(a) = \lim_{h \to 0} \frac{f(a + h) - f(a)}{h}$$ 위의 정의를 통하여 미분계수를 계산하는 과정을 파이썬으로 구현하면 다음과 같습니다. import numpy as np def f(x): # 함수 선언 return np.exp(x) + 5 * x *..

Python/Utils 2022.06.30
반응형