Deep Learning 22

GPT API의 새로운 기능 Structured Outputs 사용해보기

GPT-4o API의 구조화된 출력 기능 활용 가이드참고 : https://platform.openai.com/docs/guides/structured-outputs/examplesgpt-4o 모델의 새로운 버전인 gpt-4o-2024-08-06 가 공개되었습니다!같은 4o 모델보다 인풋과 아웃풋이 50%, 33% 저렴합니다.출력을 JSON 포맷으로 강제할 수 있는 json mode 기능의 강화 버전인 Structured Outputs 기능또한 추가되었습니다.이전까지 response_format으로 "json-output" 을 설정할 경우 응답의 내용이 JSON 형태로 출력되긴 했지만, 입력 프롬프트에 JSON 형식 예시를 직접 작성해야 했습니다. 이는 입력 토큰 수를 증가시키는 문제가 있었습니다. 또한..

Deep Learning 2024.08.12

GPT-4를 활용하여 여러 장의 이미지를 사용한 few-shot learning 하기

GPT-4 API를 활용한 이미지 분석 가이드소개GPT-4(GPT-4-turbo, GPT-4o) 모델은 인풋으로 텍스트 뿐 아니라 이미지도 사용 가능하다는 특징이 있습니다. 이 가이드는 GPT-4 API를 사용하여 이미지를 분석하고 원하는 정보를 추출하는 방법을 소개합니다. 새롭게 GPT API를 활용해보고자 하는 분들을 위해 작성되었으며, API 설정부터 간단한 이미지 분석 예시, 그리고 몇가지 input-output 쌍을 활용한 few-shot 프롬프팅까지 단계 별로 설명합니다.few-shot prompting 이란?AI 모델에게 작업을 수행하는 방법을 가르치는 효과적인 기술입니다. 모델에게 몇 가지 예시(보통 2-5개)를 제공하여 원하는 출력 형식이나 작업 수행 방식을 보여줍니다.1. 환경 설정먼저..

Deep Learning 2024.08.09

딥러닝 모델 멀티GPU 분산학습하는 법

모델 학습을 위한 train.py를 분산학습 시키는 스크립트 코드 #!/usr/bin/env bash set -x GPUS=$1 NNODES=${NNODES:-1} NODE_RANK=${NODE_RANK:-0} PORT=${PORT:-29500} MASTER_ADDR=${MASTER_ADDR:-"127.0.0.1"} PYTHONPATH="$(dirname $0)/..":$PYTHONPATH \ python -m torch.distributed.run \ --nnodes=$NNODES --node_rank=$NODE_RANK \ --master_addr=$MASTER_ADDR --nproc_per_node=$GPUS \ --master_port=$PORT \ $(dirname "$0")/train.py \..

Deep Learning 2023.06.15

내가 쓰기 위해 정리한 영상 변환 ffmpeg 간단한 shell 명령어

내가 동영상을 활용한 딥러닝 프로젝트를 진행하면서 자주 사용했던 동영상 처리 명령어를 정리해놓았다. mov 파일 mp4 파일로 저장 ffmpeg -i [input.mov] -vcodec h264 -acodec aac [output.mp4] mp4 파일을 mp3파일로 저장 ffmpeg -i input.mp4 -vn -acodec libmp3lame -q:a 4 -ab 128k output.mp3 -i input.mp4 : 입력 mp4 파일 지정 -vn : 비디오 트랙을 비활성화한다. (audio only) -acodec libmp3lame : 오디오 코덱을 mp3로 지정 q:a : quality 수준 (0에서 9까지 있으며 9가 가장 품질이 높은 것) -ab 128k : 비트레이트를 128kbps로 지정 ..

Q. 내 노트북의 웹캠 화면을 핸드폰이나 아이패드로 보려면 어떻게 해야할까?

A. 로컬 컴퓨터에 rstp 서버를 설치하고, ffmpeg, gstreamer 같은 멀티미디어 스트리밍 프레임워크를 활용하여, 전송한다. 1. 내 로컬 컴퓨터에 rstp 서버 설치 및 실행 2. ffmpeg , gstreamer 등을 활용하여 스트리밍 영상 전송하기 3. 포트 포워딩으로 외부 접속 가능하게 포트 열기 4. rstp주소로 접속하여 노트북에서 스트리밍하는 영상 확인

Q. GPU 작업 모니터 편리하게 하는 방법은?

A. NVTOP 을 활용한다. 환경 OS Ubuntu 20.04 LTS shell bash GPU NVIDIA RTX A5000 지난 포스팅에서만 해도 무식하게 nvidia-smi를 계속 들여다 보는 식으로 모니터링을 했는데, 시계열 그래프로 훨씬 편리하게 gpu 모니터링이 가능한 툴이 있었다. 공식 깃허브 https://github.com/Syllo/nvtop GitHub - Syllo/nvtop: GPUs process monitoring for AMD, Intel and NVIDIA GPUs process monitoring for AMD, Intel and NVIDIA - GitHub - Syllo/nvtop: GPUs process monitoring for AMD, Intel and NVIDI..

Deep Learning 2022.11.08

Q. java.lang.OutOfMemoryError: java.lang.OutOfMemoryError: Java heap space 에러 발생 원인과 해결방법은?

환경 Windows 10 Pro python 3.8.12 IDE - vscode 에러 발생 상황 konlpy 0.6.0 버전의 형태소분석기 Kkma로 명사 추출을 진행중. 동일한 코드로 테스트를 위해 10000개 행까지만 슬라이싱해서 진행할 경우는 코드가 잘 돌아가지만, 전체 텍스트를 동일한 코드 실행할 경우 outofmemory 에러 발생 # 3. 명사 추출 def extract_nouns(text, stopwords_path = False): kkma = Kkma() noun = kkma.nouns(text) result = [] if stopwords_path: stopword_list = get_stopwords(stopwords_path) # Stopword 및 한글자 형태소 제거 for n i..

한국어 오픈소스 말뭉치 활용 라이브러리 코포라 Korpora

세상에! 이렇게 유용한 라이브러리가 있었다니! 한국어 오픈소스 말뭉치들의 다운로드와 전처리를 라이브러리로 불러와서 쉽게 사용할 수 있게 해주는 라이브러리 Korpora를 이제야 알게 되었다. 한국어 nlp 테스트를 정말 쉽고 편하게 할 수 있을 것 같다. 앞으로 더 많은 오픈소스 텍스트가 공개되고, Kopora에도 편입되어 연구와 활용에 널리 사용할 수 있게 되길 희망한다. https://ko-nlp.github.io/Korpora/ko-docs/introduction/ 코포라 소개 · Korpora 코포라 소개 Korpora는 오픈소스 말뭉치들의 다운로드와 전처리 기능을 제공하는 파이썬 라이브러리입니다. 복잡한 설명을 피하고 싶으신 분들은 ‘설치 방법'과 ‘빠른 사용법'만 읽으셔도 간편 ko-nlp.g..

이미지 검색 결과를 바탕으로 데이터셋 만들기 (Google Custom Search API, Bing Image Search API)

지금까지는 주로 잘 알려진 벤치마크 데이터셋이나 AI Hub나 kaggle의 데이터셋을 활용하는 과제만 해왔다. 그래서 사실 직접 이미지 데이터를 수집하고 정제하는 경험이 많지 않았...거의 없었다. (물론 이미 수집된 데이터도 과제에 따라서 정제하고 전처리하는 과정을 거치긴 하지만 거친 세상(in the wild ㅋㅋ)에 있는 데이터를 수집해서 추리는 과정에 비하면 훨씬 간단하고 단순한 편이다. 이번에 시간이 좀 생겨서 모델 품질 향상을 위해 다양한 데이터를 활용할 겸, 이미지 데이터셋 만들기 연습,훈련도 할 겸 이미지 검색 결과를 바탕으로 데이터셋을 만드는 연습을 해봤다. 1. Google Custom Search API 활용하기 참고 http://sudahe.blogspot.com/2019/08/s..

자연어 처리 왕초보 가이드

프로그래머스에서 진행한 KDT, 구글 머신러닝 부트캠프 과정에서 주로 vision 관련 AI 위주로 공부했는데, 입사 후 졸지에 자연어 처리를 빠른 시일 내에 마스터하라는(!!) 이야기를 들었다. 물론 강의 커리큘럼에 NLP 내용이 없었던 것은 아니지만, 프로젝트도 비전 관련해서 했기 때문에 '나 바쁜데 지금 필요없어' 라며 대충 대충 넘겼던 것이 화근이 되고 말았다. 진짜 처음부터 차근차근 공부하기 위해 정리한 리스트와 공부 과정 * 현재 공부하고 있는 것* https://wikidocs.net/book/2155 딥 러닝을 이용한 자연어 처리 입문 공부한 내용을 설명할 수 있을 정도로 정리하기 위해 기술 블로그가 아닌 책 형식으로 정리하고 있습니다. 잘 모르는 사람이 봐도 이해될 정도로 글을 쓰는 태도..

w15 과제 2 pix2pix 또는 cycleGAN 예제 코드를 다른 데이터셋을 활용하여 실행해보기

사실 custom YOLO / custom MaskRCNN 만들기 과제가 더 어렵고, 남는 게 많을 것 같았지만, 과제 1에서 수많은 시행착오를 겪는데 너무 많은 시간을 소비해서 상대적으로 가벼운 과제를 선택해 실행하였다. pix2pix와 cycleGAN은 텐서플로우 튜토리얼 코드를 실행하면서 walkthrough 로 코드를 간단히 설명해주는 동영상 강의를 보았는데, 솔직히 line by line 코드를 이해하기는 어렵다는 생각이 들었다. https://www.tensorflow.org/tutorials/generative/pix2pix?hl=ko Pix2Pix | TensorFlow Core 이 노트북은 Conditional Adversarial Networks를 사용한 이미지 간 변환에서 설명한 대로..

W15 과제 1 : 전이학습을 활용한 영상 이미지 multi-class classification 과제

과제는 별 설명이 없었다. https://www.kaggle.com/c/diabetic-retinopathy-detection Diabetic Retinopathy Detection | Kaggle www.kaggle.com 이 데이터를 전이학습하여 좋은 결과를 내라는 것. 안저 영상 데이터이고, label은 0(정상)부터 4(아주 심각한 당뇨성 망막변증) 까지 multi class 였다. 비전 데이터 전이학습을 하는 것이 과제지만, 대부분의 시간을 데이터를 처리하는데 씨름하느라, 전이학습에서 많은 시도를 해보지 못했다. 데이터가 82g이고, 그렇게 큰 덕택에 분할 압축되어 있어서 이걸 다운받아서 풀고, 또 처리할 수 있는 환경을 만드느라 2~3일이 걸렸다. gpu를 활용하지 못하는 로컬에서는 할 수 없..