본문 바로가기

전체

(17)
SELF-ATTENTION DOES NOT NEED O(n2) MEMORY Abstract 일반적으로 self-attention은 시퀀스 길이에 비례하는 제곱수의 메모리를 필요로 한다 하지만 이 논문에서 제안하는 Attention을 대체할 수 있는 알고리즘을 통해서 시퀀스 길이에 따라 고정된 양의 메모리O(1)만 필요로 하고 더 확장하면 로그 함수에 비례하는 메모리(O(logn))만을 필요로 한다. 또한, 이 알고리즘은 메모리 효율적인 방식으로 함수를 미분하는 방법도 제공합니다 Problem Standard Self attention Query 특정 요소에 주목해야 하는 정도를 결정 Key 주목해야 할 요소 Value 요소에 연관된 정보 연산 과정은 Q와 K 사이의 alignment score를 계산하고 그 score를 사용해서 value에 가중치로 사용을 한다. 가중치를 생성..
Chatbot - 검색 기반 모델? 생성 모델? 검색 기반 모델 미리 정해진 응답들의 데이터를 사용해서 input과 문맥에 기반하여 적절한 응답을 경험적인 방법으로 선택합니다. 룰 기반 매칭 만큼 단순하고 고정된 집합에서 응답을 선택합니다 장점과 단점 문법적 오류가 없지만 적절한 응답이 존재하지 않는 경우에는 처리할 수 없습니다. 생성모델 미리 정해둔 응답에 의존하지 않고 전형적으로 기계 번역 기술에 기반을 둡니다. 장점과 단점 문법적 오류가 있을 수 있지만 자연스럽고 사람 같이 문장을 생성합니다. 하지만 데이터 셋의 양이 많이 필요하고 비용과 시간이 많이 소요됩니다. 도전 과제 문맥 병합 인격의 일관성 챗봇 챗봇의 목적은 사람과 대화를 하는 것이 목적인 모델입니다. 보통은 Sequence to Sequence의 구조로 되어 있습니다. Encoder는..
번역의 흐름 규칙 기반 기계 번역(RBMT, Rule-Based Machine Translation) 경우의 수를 직접 정의해주는 방식입니다. 수많은 규칙들은 모두 언어학을 기반으로 합니다. 한계 규칙에 없는 문장이 들어올 경우 번역이 불가능합니다. 유연성이 떨어지며, 무엇보다 모든 규칙을 정의하는 과정이 복잡하고 오랜 시간이 필요합니다. 위의 기계 번역은 한계가 존재하고 더 유연하게 번역해낼 수 있는 방법이 필요했습니다. 그래서 IBM에서 1988년에 통계적 기계 번역을 선보입니다. 통계적 기계 번역 수많은 데이터로부터 통계적 확률을 구해 번역을 진행합니다. 통계적 언어 모델을 기반으로 동작합니다. 조건부 확률 조건부 확률은 아래와 같은 관계를 갖습니다. 4개의 확률이 조건부 확률의 관계를 가진다고 가정했을 때 아..
컴퓨터 언어의 이해와 처리 과정 정리 컴퓨터 언어는 크게 고급언어와 저급언어로 나뉩니다. 고급언어는 일반적으로 개발자가 사용하는, 인간이 이해하기 쉬운 형태의 언어입니다. 반면, 저급언어는 컴퓨터가 직접 이해하고 처리할 수 있는 언어로, 주로 기계어(0과 1로 구성)와 어셈블리어로 구성됩니다. 고급언어와 저급언어 고급언어: 개발자가 사용하는 언어로, 컴퓨터가 직접 이해할 수 없습니다. 이를 컴퓨터가 이해할 수 있는 언어로 변환해야 합니다. 저급언어: 기계어: 0과 1로만 구성된 컴퓨터의 기본 언어입니다. 어셈블리어: 기계어보다 약간 더 이해하기 쉬운 형태로, 명령어로 구성됩니다. 고급언어에서 저급언어로의 변환 컴파일러: 소스 코드 전체를 읽어 한 번에 기계어로 변환합니다. 컴파일 과정에서 오류가 발생하면 변환을 완료할 수 없습니다. 인터프리..
CS 지식 - 데이터에 대하여 컴퓨터와 사람 간의 소통은 컴퓨터의 언어, 즉 이진수를 통해 이루어집니다. 이진수는 0과 1로만 구성된 수 체계로, 컴퓨터가 데이터를 이해하고 처리하는 데 사용됩니다. 이를 이해하기 위해서는 다음과 같은 주요 개념들을 알아야 합니다. 이진수와 데이터 처리 이진수의 기본: 컴퓨터는 모든 데이터를 이진수, 즉 0과 1의 조합으로 처리합니다. 이는 문자, 숫자, 그 외 다양한 데이터 유형을 포함합니다. 인코더와 디코더: 인코더: 고급 언어(사람이 사용하는 언어)로 된 명령어를 컴퓨터가 이해할 수 있는 0과 1로 변환합니다. 디코더: 이진수로 표현된 데이터를 다시 고급 언어로 번역합니다. 데이터의 단위: 기본 단위는 비트(bit)로, 하나의 0 또는 1입니다. 8비트가 모이면 바이트(byte)가 됩니다. 데이터..
컴퓨터의 언어 이해 컴퓨터의 언어 이해 데이터: 정보가 되기 전의 원시적인 자료 상태로, 아직 가공되지 않은 형태입니다. 명령어: 컴퓨터는 0과 1로 이루어진 이진 명령어를 처리합니다. 문자 표현: 0과 1을 사용하여 문자를 나타내는 다양한 방식들이 존재합니다. 숫자 표현: 이진수를 사용하여 숫자를 나타내고 계산합니다. 컴퓨터의 핵심 부품 컴퓨터의 네 가지 주요 부품은 다음과 같습니다: 중앙처리장치 (CPU): 산술 논리 연산 장치 (ALU): 계산을 담당합니다. 레지스터: 메모리에서 가져온 데이터나 명령어를 임시로 저장하는 공간입니다. 제어장치: 필요한 정보나 명령을 전기적 신호로 변환하여 메모리에 전달하고, 연산을 수행하도록 지시합니다. 보조기억 장치: 데이터를 영구적으로 저장하는 장치로, 휘발성 성질을 가지고 있습니다..
Spring & Spring Boot에 대한 이해 스프링(Spring)이란? 스프링은 Java 기반의 엔터프라이즈 애플리케이션 개발을 위한 오픈소스 프레임워크입니다. 이는 특히 IoC(Inversion of Control, 제어의 역전) 및 DI(Dependency Injection, 의존성 주입) 같은 개념을 통해 복잡한 환경에서 개발자가 비즈니스 로직에 더 집중할 수 있도록 설계되었습니다. Java 개발을 쉽게 하는 방법 스프링은 애노테이션 기반 구성과 다양한 스타터 키트를 제공하여, 반복적이고 복잡한 코드 작성을 줄여줍니다. 이를 통해 개발자는 기업이 제공하는 서비스에 필요한 핵심 비지니스 로직에 더 집중할 수 있게 됩니다. 스프링 & 스프링 부트에서의 오픈소스 스프링은 오픈소스 프레임워크로서, 누구나 자유롭게 사용, 수정 및 배포할 수 있습니다...
Scikit-Learn Machine Learning - 머신 러닝을 알아보자 머신러닝 알고리즘 종류 지도 학습 (Supervised Learning) 비지도 학습(Unsupervised Learning) 강화 학습 (Reinforcement Learning) 지도 학습 지도 학습은 사례들을 기반으로 예측을 수행한다. 이미 분류된 학습용 데이터를 가지고 훈련을 하고, 학습용 데이터를 바탕으로 일반화된 모델을 가지고 새로운 사례를 예측한다. Classification binary classification multi-class classification Regression 연속 값 예측 Forecasting 과거 및 현재 데이터를 기반으로 미래 예측 준지도 학습 지도 학습은 데이터 분류 작업에 비용과 시간이 많이 든다. 따라서 미분류 사례와 함께 소량의 분류 데이터를 사용한다. 비지..