분류 전체보기

    [디자인 패턴] 데코레이터 패턴

    [디자인 패턴] 데코레이터 패턴

    상속의 문제 A회사의 알림 메세지 기능이 존재한다. 알림 메세지 기능은 특정 이벤트가 발생한 경우 수신자에게 메세지로 알림을 전송하는 역할을 한다. 근데 갑자기 협력사에서도 알람을 달라고 한다. B협력사는 슬랙으로, C협력사는 카카오톡으로, D협력사는 슬랙과 메세지지로.... 이 상황에서 우리는 다음과 같은 구성을 쉽게 생각할 수 있다. 위와 같은 구조의 문제점을 생각해보자. 메세지의 종류가 10가지 종류가 있다면 어떻게 해야할까? 전체 구현해야하는 클래스의 갯수는 10! -1 이다. 생각만 해도 끔찍하다. 그리고 더 끔찍한거는 메세지의 전송방식이 바뀌는 상황이다. 그러면 일일이 해당 방식이 구현된 곳을 찾아 코드를 변경해야한다. 이 시점에서 우리는 아래의 디자인 원칙을 다시 살펴볼 필요가 있다. 디자인..

    [디자인 패턴] 옵저버 패턴

    [디자인 패턴] 옵저버 패턴

    정의 한 객체가 상태가 바뀌면 그 객체에 의존하는 다른 객체에 연락이 가고 자동으로 내용이 갱신되는 방식으로 일대다 의존성을 정의하는 패턴 주체는 상태가 바뀌는 객체이고 옵저버는 이러한 주체의 상태를 관찰하는 객체이다. 주체가 상태가 갱신이 되었을 때 옵저버가 수동적으로 주체한테 정보를 받게 되면 푸시방식, 옵저버가 필요할 때 주체의 상태를 가져오게 되면 풀 방식으로 불린다. 장점 느슨한 결합 : 두 객체가 상호작용을 할 때 서로에 대해서 강하게 결합이 되지 않게 되면 객체의 변화가 다른 객체로 전파되지 않는다. 옵저버 패턴을 사용하면 주제 객체와 옵저버 객체들은 상호작용을 하긴 하지만 서로 강하게 결합되지 않아 동적인 구독 관리 : 옵저버는 구독하고 있는 객체의 목록을 관리하기 때문에 옵저버가 추가되거..

    [LLM] SELF-RAG: Learning to Retrieve, Generate and Critique through Self-reflect

    [LLM] SELF-RAG: Learning to Retrieve, Generate and Critique through Self-reflect

    ConceptLM을 이용해서 On-demand Retrieval을 할 수 있다.Reflection Token을 통해 generation의 quality와 attribution을 증진시킨다.ProblemExpense of runtime efficiencyRobustness to irrelevant contextLack of attributionHow to Solve Reflection Token이라는 Special Token을 사용해서 Retrieval이 필요한지 판단할 수 있게 하자.Retrieval Passage와 Generated Sentence에 대해서 Reflects를 하자.Reflection TokenRetrieve : 현재 문장을 보고 Retrieve과정이 필요한지 안한지에 대한 토큰이다.Is..

    [LLM] Seven Failure Points When Engineering a Retrieval AugmentedGeneration System

    [LLM] Seven Failure Points When Engineering a Retrieval AugmentedGeneration System

    RAG의 Failuer Points에 대해서 정리한 논문이 있어서 참고 겸 공부 겸 정리하고자 한다. https://arxiv.org/abs/2401.05856 Seven Failure Points When Engineering a Retrieval Augmented Generation System Software engineers are increasingly adding semantic search capabilities to applications using a strategy known as Retrieval Augmented Generation (RAG). A RAG system involves finding documents that semantically match a query and th..

    [LLM] Paged Attention

    [LLM] Paged Attention

    Background 1. Query, Key, Value Encoder에서의 의미 분석하고자 하는 단어(Query)를 그 외의 다른 단어들에 대한 문맥상의 의미(내용, 위치 정보등)를 나타내는 임베딩 값(Key)과 비교하면서 우리의 Query가 문장 내 다른 단어들의 Key값 얼마나 유사한지를 평가합니다. 그렇게 생성된 유사도 점수는 문장에서 각 단어들의 의미(Value)에 대한 가중치로 적용이 됩니다. 그렇게 유사도 점수를 Value에 적용하여 구해낸 값이 Attention Score입니다. 이는 우리가 분석하고자 하는 단어가 문맥상의 의미를 고려해서 어떤 의미인지 계산해내는 방법입니다. 이를 Encoder에서는 모든 단어들에 대해서 구하게 됨으로써 입력 시퀀스 내의 각 단어가 다른 단어와 어떻게 관..

    [LLM] Flash Attention

    [LLM] Flash Attention

    BackGround - GPU Kernel GPU의 커널은 GPU에서 실행되는 프로그램 또는 함수를 의미한다. 이들은 CUDA나 OpenCL과 같은 특수한 라이브러리등을 사용해서 병렬 처리와 GPU연산에 특화되게끔 프로그래밍 된다. - GPU의 메모리 구조와 기존의 Attention 연산 방식 GPU의 메모리 구조는 다음과 같다. GPU의 대부분 연산은 SRAM의 값에서 이뤄지고 CPU 연산의 DRAM의 역할을 GPU HBM이 한다고 생각할 수 있다. CPU RAM은 GPU입장에서는 다른 I/O작업이 필요하기 때문에 CPU의 SSD와 유사하다고 볼 수 있다. 기존 Attention 알고리즘에서 Query, Key, Value값들이 어떻게 메모리에서 load와 store가 되는지 알아보면 다음과 같은 순서..

    [독후감] 물고기는 존재하지 않는다.

    [독후감] 물고기는 존재하지 않는다.

    https://m.yes24.com/Goods/Detail/105526047 물고기는 존재하지 않는다 - 예스24 ‘방송계의 퓰리처상’ 피버디상 수상자 룰루 밀러의사랑과 혼돈, 과학적 집착에 관한 경이롭고도 충격적인 데뷔작!‘방송계의 퓰리처상’으로 불리는 피버디상(Peabody Awards)을 수상한 과학 전 m.yes24.com 책의 전개는 삶의 무의미함에 대해서 부정하고 의미를 발견 하기 위해 유명한 분류학자인 데이비드 스타 조던의 삶에 대해서 조사하면서 저자가 자연의 질서에 대해서 깨닫는 과정에 대해서 서술하고 있다. 데이비드 스타 조던은 스탠퍼드 초대 총장이다. 그는 누구보다 많은 양의 물고기 표본을 수집하였고 그들을 분류했다. 그러한 과정에서 스탠퍼드 대학의 초대 총장으로 역임하였고 힘든 순간을..

    [독후감]이와타씨에게 묻다

    [독후감]이와타씨에게 묻다

    https://m.yes24.com/Goods/Detail/101891742 이와타씨에게 묻다 - 예스24 위기의 닌텐도를 세계적인 기업으로 성장시킨전설적인 CEO의 이야기!“나는 영원한 게이머입니다”닌텐도 전설의 CEO, 이와타 사토루의 명언 모음집! [슈퍼 마리오] [젤다의 전설] [동물의 숲] 등 m.yes24.com 이와타 사토로(1959~2015)씨는 전 닌텐도 사장이다. 그는 닌텐도 ds, wii등의 전설적인 제품을 내놓은 사장으로 많은 게이머들의 존경의 대상이다. 단순히 그의 아이템이 성공해서 그를 존경한다기보다 그의 철학(행복을 늘리고 싶다)라는 부분이 많은 게이머들의 마음을 움직였다고 생각한다. 그는 대학교 시절 당시에 비쌌던 컴퓨터를 사용하기 위해 컴퓨터 매장에 가서 사람들과 게임을 만..