본문 바로가기

전체 글54

[파이토치] 0. 에러 아카이브 파이토치를 다루다보면 다양한 에러에 마주치게 되는데 사실 구글링해도 안나오는 에러들도 있고 나중에 다시 구글링하기에도 시간이 아까워서 이 포스트에 계속 쌓아두려고 한다. 1. device-side assert triggerd CUDA kernel errors 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_.. 2024. 1. 2.
[파이토치] 6. TensorBoard와 WandB 서론 스타트업에서는 다양한 가설과 이를 증명할 수 있는 기능을 만들어 실험을 진행하고 분석한 결과를 바탕으로 기능을 개선하는 형태로 제품을 만들어갑니다. 이 때의 실험에 대한 결과 분석이 매우 중요해서 다양한 로그와 지표들을 설정하고 실험 과정에서 이를 트래킹합니다. 딥러닝 모델을 만드는 것 역시도 제품을 개선하는 것과 유사하게 수많은 이터레이션과 그 이터레이션에서 레슨을 얻는 것이 필요한 작업입니다. 어떤 것들을 실험 과정에서 기록해야할까요? 1. Loss & Accuracy가 에폭마다 잘 떨어지는가? 2. weight, bias가 Descent Vanishing으로 학습이 안되지는 않는가? 3. 우리가 해결하려는 문제의 차원들을 모델이 임베딩을 통해서 적절하게 구분하였는가? 4. 실험 중간중간 결과물.. 2024. 1. 2.
[파이토치] 5. Lightning pytorch 오늘은 앞서 배운 것을 기반으로 좀 더 간결한 형태(추상화된)로 모델을 학습시킬 수 있는 Lightning이라는 라이브러리를 소개하려고 한다. 간단한 라이트닝 AI 소개 세계에서 가장 직관적이고 사용하기 쉬우며 가장 빠른 AI 작업 플랫폼을 제공함으로써 "과학은 여러분이 엔지니어링은 저희가"라는 핵심정신을 가지고 있는 회사인데 제공하는 제품 중에는 AI Studio라고 해서 AI 모델 개발에 필요한 여러 도구들을 하나의 일관된 환경으로 통합하는 프로그램을 제공하고 있고, 파이토치에서 우리가 일일히 컨트롤해줘야하는 부분들을 추상화시켜서 최소한의 필요한 코드만 작성해서 훈련을 시킬 수 있도록 하는 lightning pytorch도 제공하고 있다. 장점 1. 코드의 추상화 및 하드웨어 호출 자동화 기존 파이토.. 2024. 1. 1.
[허깅페이스] Diffusers Tutorial - 모델 사용하기 오늘은 허깅페이스를 소개하고 사용하는 법에 대해 잘 정리되어 있는 튜토리얼을 정리해보려고 합니다. 기업 스토리 & 서비스 소개 허깅페이스는 딥러닝 개발자들의 깃헙이라고 이해했는데 해당 기업에 대해 간단하게 소개해보고 넘어가보려 한다. 출처는 Contrary Research의 HuggingFace analysis 글을 토대로 작성했다. 라이브러리 사용의 글이니 정말 간단하게만 작성했다. 기업 스토리 1. 처음에는 10대 청소년과 상호작용할 수 있는 챗봇 서비스로 시작했음. 2. 챗봇 서비스를 구현하다보니 그 기반인 NLP 모델을 오픈소스화하기 시작했고 이게 개발자 커뮤니티에서 순식간에 인기를 얻었음. 3. 챗봇 서비스를 포기하고 대규모 NLP 모델을 수집해서 오픈 소스로 제공하기 시작한게 오늘의 허깅페이.. 2023. 12. 30.
[파이토치] 4. 여러 모듈 사용 3번 과정까지의 글은 신경망 구조 자체가 간단한 모델이라고 볼 수 있다. 하지만 실제 논문들의 코드를 보다보면, 생각보다 복잡한 형태로 구현되는 경우가 있다. 이를 효율적으로 구성하기 위해 클래스를 여러개 만드는 방법을 소개한다. 또한, 사실 신경망 구조 자체는 연구자가 한땀한땀 설정하는 것이기 때문에 한번에 하나의 모델이 아니라 여러 개의 모델을 돌려놓기도 하는데 이에 대해서도 코드로 살펴보려고 한다. 1. 신경망 구조 모듈화하기 구글에서 만든 이미지 분류 모델 중 하나인 GoogLeNET이 있는데 구글넷에는 위의 그림처럼 Inception module이 여러개 붙어있는 구조이다. 하지만 class GoogLeNET의 __init__ 에 다 넣기보다는 Inception module을 별도 클래스로 지정.. 2023. 12. 29.
[파이토치] 3. 학습 model.eval() # 모델을 평가 모드로 설정 valid_loss = 0.0 valid_accuracy = 0 with torch.no_grad(): # model의 업데이트 막기 전체 개요 지난 시간에 모델에 대해서 공부했다면 오늘은 모델에 학습시킬 데이터를 처리하는 부분에 대해서 정리해보았습니다. 1. 모델 : 우리가 어떤 신경망 구조로 만들지에 대해서 설계하는 방식으로 이건 설계, 창작의 영역이라고 보면 될것 같다.DNN으로 보면, 각 layer 내부 뉴런의 갯수, CNN에서는 Kernel의 갯수 등을 여기서 설정한다. 2. 데이터 : 크게 데이터 전처리와 데이터 로더 작업으로 나눌 수 있으며, 전처리는 우리가 학습시키려는 데이터를 모델에 들어갈 수 있게 텐서를 조절하거나 데이터를 클리닝하는 .. 2023. 12. 29.