[Pytorch] 2.x 내용 확인 및 일부 코드로 돌려보기
·
분석 Python/Pytorch
요즘은 예전만큼 모델 개발을 할 일이 없다보니, 크게 업데이트 된 것을 확인하고 싶었는데, 많은 기능이 추가되고, 이것보다 transformers 라이브러리 연습을 하는 게 더 좋을 것 같아 간단히 작성해봅니다.버전 히스토리 (oo.ai) - 250426 기준다음은 PyTorch 2.x 버전대 (2.0 ~ 2.7) 주요 업데이트 내용을 테이블 형태로 정리한 것입니다.버전주요 특징세부 내용2.0TorchDynamo, AOT Autograd, Distributed Tensor Parallelism (Beta)TorchDynamo: 파이썬 바이트코드를 검사하고 안전한 연산을 JIT 컴파일하여 속도 향상AOT Autograd: torch.compile을 사용하여 eager mode 코드를 Autograd 그래프..
FastAPI와 Celery로 구현한 비동기 Whisper 음성 인식 API 코드 개발
·
분석 Python
소개최근 AI 음성 인식 기술의 발전으로 다양한 서비스에서 음성-텍스트 변환 기능이 중요해지고 있습니다. 특히 OpenAI의 Whisper 모델은 뛰어난 인식 정확도와 다국어 지원으로 주목받고 있죠. 하지만 이러한 모델을 실제 서비스에 통합하기 위해서는 안정적이고 확장 가능한 API 시스템이 필요합니다. 이 글에서는 FastAPI, Celery, Redis를 활용하여 비동기적으로 여러 음성 파일을 처리할 수 있는 Whisper 음성 인식 API 시스템을 구축하는 방법을 소개합니다. 사실 이 프로젝트는 제가 최근 마이크로서비스 아키텍처와 비동기 처리 시스템에 대한 깊이 있는 이해를 얻기 위해 시작한 개인 학습 프로젝트입니다. FastAPI의 비동기 처리 기능과 Celery의 분산 작업 처리 능력을 실제로 ..
Poetry) poetry를 사용하여 외부/내부 repository의 의존성을 고려하여 패키지 목록 관리 및 다운로드 하기
·
분석 Python/Packages
패키지 개발을 할 때 잘 안 되는 점 중에서 하나는 다른 환경에서 동일하게 설치할 경우 설치가 잘 안 되는 경우가 있다.항상 패키지를 설치하다보면 내 환경에서는 되지만 다른 사람에게 해당하는 경우를 전달해도, 다른 의존성으로 인해 설치가 안 되는 경우를 자주 경험했다. 그리고 내부 레포지토리가 있고 외부 레포지토리 2개가 있을 경우에도 우선적으로는 내부 레포지토리를 기반으로 의존성이 나오면 좋겠으면 고민했다가 해당 방식으로 하면 괜찮을 것 같아서 공유한다. 괜찮을 것 같다고 한 것은 실제로 테스트를 많이 해보지 않아서 다른 사람들에게는 안될 수 있기 때문이다.개선 사항이 있다면 댓글에 남겨주시면 반영해보겠다! 참고로 필자는 poetry를 많이 사용하지 않아서 다른 디테일한 설정을 잘 몰라서... 알려주시..
Tabular) 좋은 피처 만드는 전처리 방법 정리해보기 (preprocessing)
·
분석 Python/구현 및 자료
정형 데이터를 딥러닝에 사용할 때 임베딩하는 방법에 대해서 정리해보고자 한다. 흔히 아는 머신러닝과 딥러닝의 차이를 이런 식으로 표현한다. (물론 딥러닝은 머신러닝의 부분집합이긴 해서 이렇게 구분하는 게 맞지는 않기는 한 것 같다) 여기서 말하는 머신 러닝은 흔히 이야기하는 tree 계열 알고리즘이나 회귀분석 같은 통계 기반의 방법론들을 생각해 주면 될 것 같다. 정형데이터 AI 모델 개발 방식 말하고자 하는 것은 흔히 딥러닝을 써서 얻을 수 있는 기대효과는 알아서 데이터에 대한 정보를 추출(feature extraction)할 수 있다는 믿음하에 딥러닝 방법론을 많이 사용하게 된다. 정형데이터 AI 모델 개발 방식 트렌드 크게 현재 데이터로 많이 사용하는 것이 tabular, image, text, g..
TimeSeries) [MultiHead Self Attention] multi target 예측
·
분석 Python/Pytorch
새로운 모델 구조 만들어보기 해당 시도는 Multi Head Self Attention을 이용하면, 각 Head 마다 고유한 특징을 잡는 것을 이용하여 예측하는 코드와 분석을 통해서, gradient 실제로 다르게 가는 지를 확인하고자 함. Load Library import numpy as np import torch import matplotlib.pyplot as plt import torch.optim as optim from IPython.display import clear_output 데이터 정의 이번 블로그에서는 타깃 3개를 예측하는 것을 정의해서 예측하고자 함. # 예제 데이터 생성 t = np.linspace(0, 100, 1000) # 0에서 100까지 1000개의 점 y1 = np...
Pytorch) 모델 가중치 로드 시 테스트 (전체 모델에서 서브 모델 가중치만 가져오기)
·
분석 Python/Pytorch
상황 조금 더 일반화된 학습을 하기 위해 멀티 타겟에 대한 일반화된 모델을 만들고, 그 모델에서 부분적인 타겟에 대하서 추출할 때 가중치를 잘 가져오는 지에 대한 테스트를 수행해봄. 기대 효과 공유하는 네트워크(Shared Network)가 일반화되게 잘 학습이 되고, 부분적으로 학습시킬 때 좋은 인풋으로써의 기능을 할 수 있지 않을까 함. 방법 각 타겟에 대해서 Dict 으로 키로 관리하고, 나중에 load 시 strict=False를 하면, 알아서 파라미터가 매칭이 안되도 들어갈 것이다라는 생각으로 시작 엄밀하게 제거하는 작업도 있지만, 제거하지 않아도 자동으로 맵핑되는 지 보고 싶었음 코드 중간에 가중치를 임의로 지정하여 테스트 굳이 forward까지 구현하지 않아도 되므로 패스하고 진행한다. im..
Windows 10) Superset Install Guide (locally)
·
분석 Python/Visualization
라이센스 Apache 2.0 패키지 버전 : 2.1.0 python : 3.8, 3.9, 3.10, 3.11 windows 10에서 superset을 아직 지원하지 않기 때문에 도커를 사용해야 한다. 그래서 이 글에서는 windows 10에서 docker를 이용해서 설치하는 것을 해보려고 한다. 일단 docker desktop on windows를 먼저 설치해 보자 Install Docker Desktop on Windows 이 글의 목적은 superset 설치를 하는 것이기 때문에 docker desktop은 아래 문서를 참조해서 설치해 주시기 바란다. https://docs.docker.com/desktop/install/windows-install/ Install Docker Desktop on W..
Python) AVLTree Search를 통해서 특정 값의 범위 찾기 (ChatGPT와 함께)
·
분석 Python/구현 및 자료
FastAVLTree는 AVL 트리 데이터 구조의 구현을 제공하는 파이썬 라이브러리입니다. AVL 트리는 자체 균형 이진 검색 트리의 일종으로, Georgy Adelson-Velsky와 Evgenii Landis에 의해 1962년 처음 소개되었으며, 이들의 이름을 따서 명명되었습니다. AVL 트리는 모든 노드의 왼쪽과 오른쪽 서브트리의 높이 차가 최대 하나 이하인 이진 검색 트리입니다. 이는 트리가 항상 균형을 유지하므로 트리의 높이가 노드 수에 대해 로그 적이라는 것을 보장합니다. 이 속성은 AVL 트리가 검색, 삽입 및 삭제 작업을 빠르게 수행할 수 있도록 보장하며, 최악의 경우 시간 복잡도는 노드 수에 대해 O(log n)입니다. FastAVLTree는 Python에서 AVL 트리의 빠르고 메모리 ..
git) submodule 다루기
·
분석 Python/구현 및 자료
submodule 추가하기 git submodule 추가하기 git submodule add 확인하기 cat .gitmodules 추가한 내용 반영하기 git commit -m "add submodule" git push # git push origin main # git push origin master 서브모듈을 최신 버전으로 업데이트 submodule 최신으로 업데이트하기 git submodule foreach git pull origin main submodule 안에 submodule이 없는 경우 git submodule update --remote submodule 안에 submodule이 있는 경우 git submodule update --remote --recursive 서브모듈이 있는 g..
python) metaflow 파이썬 스크립트에서 실행해보기
·
분석 Python/구현 및 자료
metaflow를 이용해서 python script를 실행하는 방법에 대해서 공유 subprocess를 실행하고, 대기 상태를 건 다음에 다음 flow를 실행하게 해 봤다. import subprocess import time print("first") p = subprocess.Popen(['python', './metaflow/tutorials/02-statistics/stats.py','run']) while p.poll() is None: print('.', end='', flush=True) time.sleep(1) print('returncode', p.returncode) print("second") p = subprocess.Popen(['python', './metaflow/tutoria..
Python) multiprocessing 코어 수 제한해서 돌리기
·
분석 Python/구현 및 자료
이 글의 목적은 병렬코드를 작성할 때 자기에게 주어진 코어가 제한되어 있는 경우에 대한 팁이 담겨 있는 글이다. 팁을 적기 전에 언제 병렬코드가 필요하고, 또 언제 코어 수를 제한해야 하는 지 생각해 보자. 작업을 하다 보면, loop를 쓰는 경우가 많고, task마다 다르겠지만, 각각의 job은 서로 관련이 없는 경우를 푸는 경우가 있다. 이럴 때 가장 쉽게 생각할 수 있는 것은 병렬로 코드를 짜는 것을 생각한다. 아래 그림처럼 100,000개를 처리할 때 각각의 record끼리 관계가 없다고 하면, 해당 작업을 끝내는 동안 계속 기다려야 한다. 바쁜 우리들은 할 게 많기 때문에 이 시간을 줄이고 싶다는 생각을 하게 되고, 결국 Multi-Processing을 사용하려고 검색을 하게 된다. 아래 그림처..
Python) pyarrow 사용 방법
·
분석 Python/구현 및 자료
2022.11.26 - [분석 Python/구현 및 자료] - Python) pyarrow 다뤄보기 2022.12.21 - [분석 Python/구현 및 자료] - Python) pyarrow 사용 방법 라이브러리 import numpy as np import pyarrow.parquet as pq import pandas as pd from sklearn.datasets import make_classification 데이터 생성 X_pd= pd.DataFrame(X,columns =[ f"feature_{i}" for i in range(X.shape[1])]) X_pd['class'] =y 파티션별로 저장 X_pd.to_parquet( path="./test.parquet", engine='pyarr..

AI 도구

AI 도구 사이드 패널

아래 AI 서비스 중 하나를 선택하여 블로그를 보면서 동시에 사용해보세요.

API 키를 입력하세요API 키를 저장하려면 저장 버튼을 클릭하세요API 키가 저장되었습니다
API 키를 입력하세요API 키를 저장하려면 저장 버튼을 클릭하세요API 키가 저장되었습니다
API 키를 입력하세요API 키를 저장하려면 저장 버튼을 클릭하세요API 키가 저장되었습니다
URL과 모델을 입력하세요설정을 저장하려면 저장 버튼을 클릭하세요설정이 저장되었습니다