코딩스뮤:)

윈도우 Alt/Ctrl, 한영키/Capslock 으로 변경하는 방법
개인pc는 아이맥과 맥북을 사용하는데 연구실에서는 윈도우를 사용해 키들이 엄청나게 헷갈리기 시작했습니다. 다른 키는 제쳐두더라도 가장 많이 사용하는 한영전환(윈도우: 한영키 -> 맥북: Caps Lock키)과 윈도우와 맥북에서 반대로 사용되는 키인 Ctrl -> Alt는 통일시킬 필요를 강하게 느껴 맥북 기준으로 윈도우에서 설정하고자 합니다. 다음의 순서를 따르면 빠르게 설정을 바꿀 수 있습니다. step1. 레지스트리 편집기를 킵니다. step2. 아래의 경로로 들어갑니다. path: HKEY_LOCAL_MACHINE/SYSTEM/CurrentControlSet/Control/Keyboard Layout/ 추후 커스터마이징을 또 할 것 같다면 경로가 굉장히 길어 Keyboard Layout을 [상단의 ..

Few-shot Learning, 퓨샷 러닝
Few-shot Learning이란? 훈련 데이터(train data)의 수가 매우 제한적인 상황에서 모델을 개발하려는 기술 혹은 알고리즘을 의미합니다. 즉, 상대적으로 적은 훈련 데이터에서도 새로운 입력 값으로 주어지는 데이터(unseen data)를 잘 인식하고 분류하고자 하는 것입니다. 매우 많은 데이터로 모델을 구축하는 전통적인 인공지능 트랜드와는 달리, 매우 적은 데이터에서도 모델을 잘 구축하는 것이 핵심이라고 할 수 있습니다. 등장 배경 학습 데이터가 적은 상황에서는 딥러닝 모델의 구축 자체에 어려움이 있었고, 몇 장의 사진만을 보고 직관적으로 분류할 수 있는 사람과는 달리 인공지능 모델은 적게는 수천 개, 많게는 몇 십만 개에 달하는 사진이 필요했습니다. 이에 인공지능 개발자들은 소량의 데이..

Prompt-Based Learning, 프롬프트 기반 학습
해당 강의노트는 Vilhelm Gustavsson님의 [Prompt-based Learning: A paradigm shift in NLP]를 참고하여 작성됐습니다. Prompt-Based Learning이란? 모델에 들어가는 입력 데이터(input data)를 사람이 읽을 수 있는 설명(human readable instructions)으로 잘 작성된 텍스트와 연결하여 수정하게 되는데 이 때 만들어지는 텍스트를 프롬프트(prompt)라고 합니다. 프롬프트는 task-specific하게 훈련되지 않아도 사전학습 언어모델(PLM, Pre-trained Lanugage model)이 새로운 테스크(e.g. 질의응답, 기계번역 등)에 대해서 잘 수행되도록 합니다. 즉, 단지 자연어로 모델이 어떤 일을 수행해야..

앙상블(Ensemble) 기법
Intro. 앙상블(Ensemble) 기법이란 여러 개의 분류기를 생성하고 그 예측을 결합함으로써 보다 정확한 예측을 도출하는 기법을 말합니다. 이는 강력한 하나의 모델을 사용하는 대신, 보다 약한 모델 여러 개를 조합하여 더 정확한 예측에 도움을 주는 방식입니다. 앙상블 기법은 일반적으로 보팅(Voting), 배깅(Bagging), 부스팅(Boosting) 세 가지 유형으로 나눌 수 있습니다. 보팅(Voting) 보팅이라는 표현에서 알 수 있듯이, 서로 다른 알고리즘을 가진 분류기 중 투표를 통해 최종 예측 결과를 결정하는 방식입니다. 알고리즘에는 흔히 알고 있는 결정 트리(Decision tree)나 KNN(K-Nearest Neighbor), 로지스틱(Logistic) 같은 걸 의미합니다. 보팅은 ..

Pytorch에서 Multi GPU를 사용하는 방법(nn.DataParallel)
해당 게시글은 자연어처리 리뷰 모임인 집현전 팀의 고현웅님의 [Large-scal LM에 대한 얕고 넓은 지식들(part1)] 부분의 Data Parallelism 강의 영상을 기반으로 작성되었습니다. Intro. 딥러닝은 기본적으로 매트릭스 연산 기반이기 때문에 모델 학습 시 GPU 연산이 필수적입니다. 하지만 딥러닝 모델의 사이즈가 너무 크고 데이터 양도 많다면, GPU 하나로는 연산이 힘든 경우가 생깁니다. 이 경우 배치 사이즈가 클 경우 자주 나타나는 CUDA OUT OF MEMORY 에러가 뜨게 됩니다. 만약 여러 개의 GPU를 가지고 있다면, 우리는 여러 개의 GPU를 이용해 병렬 처리를 하여 이를 해결할 수 있습니다. Pytorch에서 이러한 기능을 편리하게 사용할 수 있는 모듈을 제공합니다..

딥러닝 모델에서의 분산학습(Distributed Training)
해당 게시글은 자연어처리 리뷰 모임인 집현전 팀의 고현웅님의 [Large-scal LM에 대한 얕고 넓은 지식들(part1)] 부분의 Parallelism: Theory and Practice 강의 영상을 기반으로 작성되었습니다. Intro. 딥러닝 모델에서는 학습 시 대용량의 모델 크기와 학습 데이터 때문에 여러 GPU에 나누어 연산하는 분산학습(Distributed Training)이 이루어져야 GPU를 최대한 활용하여 효율적으로 학습할 수 있습니다. 이러한 딥러닝 분산학습에는 학습 데이터를 여러 GPU에 나누어 학습하는 데이터 병렬화(Data Parallelism)와 모델을 여러 GPU에 나누는 모델 병렬화(Model Parallelism)와 입력 미니배치를 여러 GPU에 나누어 실행하는 파이프라인..
![[Sequential Logic Circuit] 카운터(Counter)](https://img1.daumcdn.net/thumb/R750x0/?scode=mtistory2&fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FbIZkKp%2FbtrEF7U3oJf%2F811z2ZgBZa3IPu3jaIQEL0%2Fimg.png)
[Sequential Logic Circuit] 카운터(Counter)
해당 강의노트는 S. Brown and Z. Vranesic, McGraw-Hill의 [Fundamentals of Digital Logic with VHDL Design, 3rd Edition] 책과 ktword의 을 기반으로 작성되었습니다 Counter - Counter - Asynchronous Counter - Synchronous Counter - Other types of counters Counter 카운터(Counter)란? 2개 이상의 플립플롭으로 구성되며, 매 입력 펄스(Pulse) 마다, 미리 정해진 순서대로 상태가 주기적으로 변하는 레지스터임. 카운터의 용도 계수, 타이버, 주파수 계수기 등 발생 횟수를 세거나 동작 순서를 제어(순서제어)하기 위한 타이밍 신호 생성에 적합. 클럭 펄..
![[Sequential Logic Circuit] 레지스터(Register)](https://img1.daumcdn.net/thumb/R750x0/?scode=mtistory2&fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FTmgVX%2FbtrEH5nu8vv%2Fh1kSk39ymhs6SiCmrE1yy0%2Fimg.jpg)
[Sequential Logic Circuit] 레지스터(Register)
해당 강의노트는 S. Brown and Z. Vranesic, McGraw-Hill의 [Fundamentals of Digital Logic with VHDL Design, 3rd Edition] 책과 ktword의 을 기반으로 작성되었습니다 Register - Register - Shift Register Register 레지스터(Register)란? 일련의 플립플롭(Flip-Flop)들이 클럭(Clk)을 공유토록 만들어진 n비트 저장 장치임. n개의 플립플롭을 갖는 레지스터인 경우, 2n개의 서로 다른 상태들이 존재하고, n비트 정보의 저장이 가능하다. 레지스터의 역할 논리회로를 구성하는 범용소자로서 레지스터는 일련의 비트 저장 및 이동 소자 역할을 수행한다. 1개의 클럭 입력을 공유하는 다수의..