AI 인공지능9 [CI/CD] CI/CD 기초 개념 CI/CD 란? 소프트웨어 개발 과정을 자동화하여 개발의 효율성과 신속성을 극대화하는 방법론 지속적통합(CI): 개발자들이 코드를 주기적으로 메인 레포지토리에 병합하여(코드 충돌 최소화) 자동으로 빌드 및 테스트하는 과정 지속적배포(CD): CI 과정을 넘어 빌드 및 테스트를 거친 코드 변경사항이 운영환경에 배포하는 과정 CI/CD의 중요성 개발주기를 단축하고, 소프트웨어 품질을 향상시키며, 사용자 만족도 증가 코드의 변경사항을 자동으로, 즉각적으로 현재 운영중인 서비스에 반영할 수 있게 함 잠재적인 문제를 조기에 발견하게 함 CI/CD를 위한 툴 - Github Actions Github actions는 Github 리포지토리의 이벤트에 반응하여 워크플로우를 자동으로 실행 코드 푸시 or 풀 리퀘스트 .. 2024. 4. 9. [Docker] Docker란 무엇이고 왜 쓸까? 도커(docker)란? 도커는 애플리케이션을 컨테이너(container)라는 격리된 환경에서 실행할 수 있도록 해주는 오픈 소스 가상화 기술 가상화 기술은 이전부터 사용했지만(Virtual Machine 등), docker의 장점이 있다. 격리 시켜야 하는 이유? 하나의 물리적 시스템 안에서 여러 애플리케이션을 구동하면, 충돌이 일어나거나 관리 어려움(하나의 애플리케이션의 에러로 다른 시스템까지 영향) 배포 환경을 옮길 때에도 서버에 이전 서버와 같이 모든 환경 세팅을 새로 해야하는 번거러움 존재(도커로 이식성 증가) 도커 vs Virtual Machine(VM, 가상머신) 오른쪽 VM의 경우, 격리시키고자 하는 App을 위해 게스트 OS를 각각 올려 리소스를 할당한다. 그러나, 얼마만큼의 리소스를 할당.. 2024. 4. 2. [Wandb] YOLOv8 & Wandb sweep 함께 사용하기 Wandb란? wandb는 ML/AI 모델 학습 시, 학습 상황을 tracking(추적) 하여 진행이 잘 되고 있는지 확인할 수 있는 툴 또한, 여러 하이퍼파라미터 조합으로 학습을 시도하여 최적의 하이퍼파라미터를 찾아내도록 돕는 툴 학습 결과를 기록하고 관리하여 성능 개선을 돕는 툴 wandb와 yolov8 (ultralytics) 모델 함께 사용하기 import wandb wandb.login() from ultralytics import YOLO import ultralytics from wandb.integration.ultralytics import add_wandb_callback wandb.login() -> wandb 사이트에서 API 확인 -> 입력 wandb.init(project='sa.. 2024. 3. 26. 기계 학습(머신러닝)을 시작하는 방법: 단계별 가이드 기계 학습을 공부하는 20대 학생이라면 이 흥미진진한 분야를 어떻게 시작해야 할지 궁금할 것입니다. 기계 학습은 컴퓨터가 데이터로부터 학습하고 해당 학습을 기반으로 예측 또는 결정을 내리도록 훈련하는 연구 분야로 빠르게 성장하고 있습니다. 다음은 기계 학습을 시작하는 데 도움이 되는 단계별 가이드입니다. 1단계: 기본 사항 배우기 머신 러닝의 기술적 세부 사항을 살펴보기 전에 프로그래밍 및 컴퓨터 과학의 기본 사항을 이해하는 것이 중요합니다. 데이터 구조, 알고리즘 및 Python 또는 R과 같은 프로그래밍 언어와 같은 주제에 대한 탄탄한 기초가 필요합니다. 이러한 기본 사항을 배우기 위해 온라인 과정을 수강하거나 워크숍에 참석할 수 있습니다. 2단계: 기계 학습 프레임워크 선택 컴퓨터 과학에 대한 기초.. 2023. 3. 31. yelp 리뷰 감성 분석 (3) 이 글은 파이토치로 배우는 자연어처리(O'REILLY, 한빛미디어)를 공부한 내용을 바탕으로 작성하였습니다. 훈련 반복 첫번째 for문 : epoch 수 만큼 반복 (전체 데이터셋) 두번째 for문 : batch 수 만큼 반복 train 데이터에 대해 param 학습 후 val 데이터로 검증 accuracy, loss 정보 저장 epoch_bar = tqdm.notebook.tqdm(desc='training routine', total=args.num_epochs, position=0) dataset.set_split('train') train_bar = tqdm.notebook.tqdm(desc='split=train', total=dataset.get_num_batches(args.batch_siz.. 2023. 3. 30. yelp 리뷰 감성 분류 (2) 이 글은 파이토치로 배우는 자연어처리(O'REILLY, 한빛미디어)를 공부한 내용을 바탕으로 작성하였습니다. 퍼셉트론 분류기 완전연결(FC1) 계층 하나를 가진 퍼셉트론 분류기 손실 계산에서 BCEWithLogitsLoss()를 사용하도록 sigmoid를 거치지 않은 채 출력 class ReviewClassifier(nn.Module): """ 간단한 퍼셉트론 기반 분류기 """ def __init__(self, num_features): """ 매개변수: num_features (int): 입력 특성 벡터의 크기 """ super(ReviewClassifier, self).__init__() self.fc1 = nn.Linear(in_features=num_features, out_features=1).. 2023. 3. 30. 이전 1 2 다음