AI 63

conda 가상환경에서 pip 분리하기

프로젝트를 진행할 때 패키지의 버전을 독립적으로 관리하기 위해 conda 가상환경을 생성해 본 적이 있을 것이다. 새로운 가상환경을 통해 환경을 분리하면 local에서 전역으로 설치된 패키지들은 이 가상환경 내부에서 사용할 수 없어야 한다고 생각할 것이다. (적어도 나는 그렇게 생각했다...) 그러나, 새롭게 생성한 가상환경에서 pip list 명령어를 통해 설치된 패키지를 확인해 보면 local에서 pip로 설치한 패키지를 모두 확인할 수 있다. > conda create -n myenv > conda activate myenv > pip list # 전역에 설치된 패키지가 모두 표시된다. 그로 인해, 현재 가상환경에서 패키지를 설치하지 않아도 전역에 설치된 패키지가 자동으로 실행된다. 또한, cond..

AI/Trouble Shooting 2023.05.22

HuggingFace Hub에 모델 업로드

문장 내 개체간 관계 추출 모델을 만들면서 TAPT(Task Adaptive Pretraining)를 적용시킨 모델을 팀원들에게 공유하고자 Hugging Face Hub에 모델을 업로드했다. 이번에 얻은 경험을 통해 Git을 활용하여 Hugging Face Hub에 모델을 업로드하는 방법을 포스팅해보려고 한다. 사전 준비 1. 패키지 설치 pip install transformers huggingface에서 제공하는 API를 활용할 수 있는 라이브러리인 transformers 패키지를 설치한다. sudo apt-get install git-lfs # Linux OS인 경우 brew install git-lfs # Mac OS인 경우 모델의 크기가 상당히 크기 때문에 대용량 파일을 git repo에 올릴 ..

AI/기타 2023.05.18

argparse, omegaconf로 실험 환경 구성하기

ML 프로젝트에서 다양한 실험을 진행하다 보면 다양한 하이퍼 파라미터들과 여러 설정값을 수정해야 하는 일이 자주 발생한다. 그럴 때마다 코드를 직접 수정하게 되면 수정해야 할 부분을 찾아야 하는 일도 번거롭고, 제대로 값을 수정하지 못하고 실험이 진행되는 일이 빈번하다. 따라서 이번 포스팅에서는 configuration을 적절하게 관리하는 방법에 대해서 알아보자. argparse argparse를 이용하면 CLI에서 argument의 값을 입력받을 수 있다. CLI에서 입력받은 argument 값을 사용하기 위해서는 코드를 다음과 같이 구성해야 한다. parser 객체 생성 입력받을 argument 선언 argument 파싱 아래는 예시 코드이다. import argparse def get_args():..

AI/기타 2023.05.12

[PyTorch 에러 해결] Bert 모델 token embedding layer 차원 오류

실행 환경 OS : Linux PyTorch : 2.0.0 version 첫번째 에러 RuntimeError: CUDA error: device-side assert triggered CUDA kernel errors might be asynchronously reported at some other API call, so the stacktrace below might be incorrect. For debugging consider passing CUDA_LAUNCH_BLOCKING=1. Compile with TORCH_USE_CUDA_DSA to enable device-side assertions. 에러 메시지에서 확인할 수 있듯이, stacktrace의 내용만으로는 어디에서 에러가 발생했는지 ..

AI/Trouble Shooting 2023.05.11

[논문 리뷰] Effective Approaches to Attention-based Neural Machine Translation

논문이 다루는 Task Task: Neural Machine Translation Input: English 또는 German 문장 (batch_size, max_len) Output: German 또는 English 문장 (batch_size, max_len) 기존 연구 한계 Hard Alignment를 이용한 NMT 모델링 Hard Alignment에 대한 labeling이 별도로 필요했다. Alignment를 예측 하는 모델, target를 생성하는 모델을 별도로 학습시켜야 했다. Sequence to Sequence learning with neural networks (Sutskever et al. 2014) Encoder와 Decoder 간에 병목 현상이 발생한다. 제안 방법론 Global A..

AI/논문 리뷰 2023.05.05

ChatGPT Prompt Engineering for Developers 정리 [3]

스탠퍼드 대학교의 Andrew Ng 교수님이 강의하신 ChatGPT Prompt Engineering for Developers 강의를 듣고 정리한 글입니다. 단순히 강의 내용을 번역한것이 아니라 내용을 이해한 뒤 정리하였고, 제 개인적인 생각은 +) 표시 뒤에 덧붙였습니다. 해당 글은 ChatGPT Prompt Engineering for Developers의 마지막 강의인 Conclusion까지 듣고 정리한 글입니다. 훌륭한 강의이므로 아래 링크에서 직접 들어보시는 것을 추천드립니다. ChatGPT Prompt Engineering for Developers What you’ll learn in this course In ChatGPT Prompt Engineering for Developers, y..

ChatGPT Prompt Engineering for Developers 정리 [2]

스탠퍼드 대학교의 Andrew Ng 교수님이 강의하신 ChatGPT Prompt Engineering for Developers 강의를 듣고 정리한 글입니다. 단순히 강의 내용을 번역한것이 아니라 내용을 이해한 뒤 정리하였고, 제 개인적인 생각은 +) 표시 뒤에 덧붙였습니다. 해당 글은 Iterative, Summarizing, Inferring까지의 내용을 담고 있으며, 이후 내용은 추후에 포스팅할 예정입니다. 훌륭한 강의이므로 아래 링크에서 직접 들어보시는 것을 추천드립니다. ChatGPT Prompt Engineering for Developers What you’ll learn in this course In ChatGPT Prompt Engineering for Developers, you wi..

ChatGPT Prompt Engineering for Developers 정리 [1]

스탠퍼드 대학교의 Andrew Ng 교수님이 강의하신 ChatGPT Prompt Engineering for Developers 강의를 듣고 정리한 글입니다. 단순히 강의 내용을 번역한것이 아니라 내용을 이해한 뒤 정리하였고, 제 개인적인 생각은 +) 표시 뒤에 덧붙였습니다. 해당 글은 Introduction과 Guidelines까지의 내용을 담고 있으며, 이후 내용은 추후에 포스팅할 예정입니다. 훌륭한 강의이므로 아래 링크에서 직접 들어보시는 것을 추천드립니다. ChatGPT Prompt Engineering for Developers What you’ll learn in this course In ChatGPT Prompt Engineering for Developers, you will learn ..

Latex 명령어 정리

기본 명령어 a, b, c와 같은 문자, 1, 2, 3과 같은 숫자, +, -, *, /와 같은 기호, ()와 같은 소괄호는 문자 그대로 사용한다. {}, []와 같은 중괄호나 대괄호는 그룹화나 배열 작성에 사용한다. 수식 명령어 \frac{a}{b}: $\frac{a}{b}$ (분수) \sqrt{x}: $\sqrt{x}$ (제곱근) \sqrt[n]{x}: $\sqrt[n]{x}$ (n 제곱근) \sum_{i=1}^{n} a_i: $\sum_{i=1}^{n} a_i$ (시그마 합) \prod_{i=1}^{n} a_i: $\prod_{i=1}^{n} a_i$ (파이 곱) \int_{a}^{b} f(x)dx: $\int_{a}^{b} f(x)dx$ (적분) \iint_{D} f(x,y)dxdy: $\iint..

AI/AI Math 2023.04.24

Huggingface의 Transformer 라이브러리에서 pre-trained된 모델 활용하기

Transfer Learning은 많은 양의 데이터로 사전 훈련된 모델을 가져와 새로운 태스크를 학습시키는 기술이다. Hugging Face의 Transformers 라이브러리는 다양한 사전 훈련된 모델을 제공하며, 이러한 모델을 fine tuning하여 새로운 태스크를 수행할 수 있다. 이번 포스팅에서는 Hugging Face의 Transformers 라이브러리를 사용하여 Transfer Learning을 수행하는 방법에 대해 알아보자. 1. Downstream Task에 알맞게 pre-trained된 모델 수정 from_pretrained() 메서드를 사용하여 사전 훈련된 모델과 토크나이저를 불러올 수 있다. Downstream Task를 수행하기 위해서는 pre-trained 모델의 출력 차원을 조..

AI/기타 2023.04.21