AI 36

Particle & Kalman 필터로 사람의 위치 파악하기 | Bayesian Filtering for Location Estimation

프랑스로 교환학생을 가서 AI 석사 수업들을 들었다. 주로 2학년 수업들이라서 이해하기 쉽지 않았는데 그 중 하나가 Knowledge Representation & Reasoning 이었다. 수업 마지막에 모로코에서 온 친구와 함께 발표를 진행했는데 그 주제가 Bayesian Filtering for Location Estimation이다. Bayesian Filtering for Location Estimation Context Pervasice Computing Ubiqutious computin이라고도 부른다. 여러 요소들과 효과적으로 소통하고 수행하는 것이며 네트워크로 연결되어 어디서든 접근 가능하다 Any device, Any time, Any place in Any data format acr..

AI/ML 2024.01.12

효율적인 Hyperparameter Tuning | Ray

Hyperparameter Tuning 효율적으로 하기 Intro. 가장 기본적인 방법으로 grid vs random 있다. 최근에는 베이지안 기반 기법들이 주도하고 있다. Grid Layout learning rate 0.1, 0.01, 0.001 → ... batchsize 32, 64, 128 → ... 조합들을 적용해가며 가장 좋은 하이퍼파라미터를 찾는다. Random Layout 말 그대로 랜덤으로 적용해본다. Ray 특징 multi-node multi processing 지원하는 모듈이다. ML/DL의 병렬 처리를 위해 개발된 모듈이다. 기본적으로 현재의 분산병렬 ML/DL 모듈의 표준 Hyperparameter Search를 위한 다양한 모듈을 제공한다. Code data_dir = os.p..

AI 2024.01.12

Multi-GPU, Parallel | 용어와 개념 간단한 코드[PyTorch] 와 함께 한방에 정리

이번에는 multi gpu를 사용하면서 나올 용어들과 개념들을 정리해보았다. multi gpu하면 꼭 같이 나오는 parallel을 data와 model로 나누어 정리하였다. 코드 Multi-GPU 원래 옛날에는 GPU를 어떻게 하면 적게 쓸까를 고민했지만 최근에는 성능에 초점을 두면서 엄청난 양의 GPU를 쓰고 있다. 용어 정리 Single : 1개 사용 vs Multi : 2개 이상 사용 GPU vs Node : Node는 1대의 컴퓨터를 말한다. Single Node Single GPU : 1대의 컴퓨터에서 1개의 GPU 사용 Single Node Multi GPU : 1대의 컴퓨터에서 여러 개의 GPU 사용 Multi Node Multi GPU : 서버실에서 여러 개의 GPU 사용 Model pa..

AI 2024.01.12

PyTorch Monitoring tools | 학습과정 쉽게 그래프로 살펴보기

오늘은 PyTorch에서 쉽게 그래프 등 시각화하여 살펴볼 수 있는 방법들을 소개하려고 한다. 원래 matplotlib 밖에 모르던 때는 귀찮아서 잘 안그렸지만, 확실히 시각화해서 보는게 학습과정 이해에 필요한 것 같다. 아래의 도구들은 귀찮다라는 말을 달고 사는 내가 쓸 정도니까 대부분의 사람들은 좋아하지 않을까...?라는 생각이 든다.☺️ Monitoring tools 학습과정을 트래킹 하기 위한 도구들이다. Tensorboard Tensorflow의 프로젝트로 만들어진 시각화 도구이다. 학습 그래프, metric, 학습 결과의 시각화를 지원한다. Tensorboard 지원 도구 scalar : metric 등 상수 값의 연속(epoch 단위)을 표시한다. graph : 모델의 computationa..

AI 2024.01.12

PyTorch | Model save, checkpoints, freezing

모델 불러오기 학습 시키다가 갑자기 데이터가 모두 날아가는 경험 한 번씩은 있을 것이다... 이렇게 날아가지 않도록 중간중간 저장시켜주기 위해서 사용하는 함수가 save()이다. Model.save() 학습의 결과를 저장하기 위한 함수 모델 형태와 파라미터를 저장한다. 모델 학습 중간 과정의 저장을 통해 최선의 결과모델을 선택할 수 있다. 만들어진 모델을 외부 연구자와 공유하여 학습 재연경 향상시켜준다. 이 save함수를 사용하여 아래와 같은 코드를 쓸 수 있다. state_dict : 모델의 파라미터를 표시 load_state_dict : 같은 모델의 형태에서 파라미터만 load save(model.state_dict(),~) → 모델의 파라미터를 저장 save(model,~) → 모델의 archite..

AI 2024.01.12

PyTorch | nn.Module, Parameter, Backward

AutoGrad & Optimizer 오늘은 PyTorch에서 AutoGrad와 Optimizer를 위해서 사용되는 객체과 함수들을 소개할 예정이다. nn.Module 딥러닝을 구성하는 Layer의 base class이다. Input, Output, Forward, Backward 정의한다. 학습이 되는 Parameter로 정의가 된다. 그러면 이제 weight를 정의를 해야하는데 이는 nn.Parameter로 정의된다. nn.Parameter Tensor 객체의 상속 객체이다. nn.Module 내에 attribute 가 될 때는 required_grad=True로 지정되어 학습의 대상이 되는 Tensor이다. 직접 설정하는 일은 잘 없다. 이 객체를 사용하지 않고 Tensor를 사용하면 자동미분이 되..

AI 2024.01.12

PyTorch Basic

PyToch Basic 우선 파이토치에서는 Tensor의 구조를 사용한다. 그리고 numpy 기능들을 거의 다 지원한다. Tensor numpy의 ndarray와 비슷하다. import torch t_array = torch.FloatTensor(n_array) 이외의 Data to Tensor, ndarray to tensor방법 등이 있다. GPU 사용 ~.device를 하면 cpu인지 gpu 사용중인지 알 수 있다. if torch.cuda.is_available(): data_cuda = data.to('cuda') data_cuda.device 위의 코드로 gpu사용 가능하면 gpu로 바꾸도 아니라면 cpu를 그대로 출력한다. Tensor Handling view reshape과 비슷하고 ten..

AI 2024.01.12

PyTorch vs Tensorflow | PyTorch✋

파이토치와 Tensorflow차이 팀플하다 보면 파이토치를 쓸지 텐서플로우를 쓸지 정하는데, 나는 파이토치를 주장하는 편이다. 사실 그 이유는 최근에 자주 사용하는 게 파이토치여서 그렇긴 한데😂 그러면 꼭 둘이 뭐가 다르냐는 질문을 받는다. 그럴 때 답변하기 위한 포스팅이라고 할 수 있다.😎 DCG(Dynamic Computational Graph) Backward에서 자동미분할때 실행시점에서 그래프를 정의하는 방법이다. Define and run 말 그래도 정의하고 실행하는 것이다. 그래프를 먼저 정의 → 실행시점에 데이터를 feed한다. TF, Pytorch Pytorch는 Define by run(DCG)를 사용하여 실행하면서 그래프를 생성하고 Tensorflow는 Define and run으로 실..

AI 2024.01.12

논문 속 RE Task 관련 데이터셋 이해하기 | TAC Relation Extraction Dataset | KLUE

RE 데이터셋을 구축하기 위해 RE 관련 논문 2개를 데이터셋 구축 위주로 보았다. TAC Relation Extraction Dataset Position-aware Attention Supervised Data Improve Slot filling 논문 안에 있는 내용이다. Slot filling 과제는 Subject 엔티티와 Object 엔티티의 relation tag를 채우는 것을 말한다. 이 논문의 경우는 새로운 데이터셋인 TACRED를 생성하였다. 이전에 TAC KBP로 Knowledge base를 확장하기 위한 데이터셋이나 SemEval-2010등이 있었는데 양이 적거나 task에 적합하지 않아서 새로 만들었다고 한다. TAC KBP 챌린지를 통해서 데이터를 가져왔으며 2009-2015년까지..

AI/NLP 2023.12.25