전체 글 182

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

파이썬으로 구글 드라이브의 스프레드시트 파일에 데이터 추가하기

구글 공유 드라이브에 정기적으로 업데이트하는 스프리드시트 파일이 있는 경우가 많을 것이다.파이썬으로 작업한 데이터를 이 스프레드시트 파일에 자동으로 업데이트하는 방법을 다룬다. 기본적인 원리는 1. 기존 파일 다운로드2. 새 데이터 추가3. 업데이트된 파일 다시 업로드이다. 1. Google Cloud Console 설정만약 구글 클라이드 콘솔에서 구글 드라이브 API를 설정한 적이 없다면 해야 한다.아래 블로그를 참고하면 된다.Python으로 특정한 파일을 Google Drive 자동 업로드하기 핵심은 credentials.json 파일을 내가 작업하고 있는 파일에 저장하는 것이다. 2. 업데이트할 파일의 file_id 얻기폴더 id와 마찬가지로 url의 뒷부분에서 확인할 수 있다. 단, csv 파일은..

Programming/Python 2024.06.28

Python으로 특정한 파일을 Google Drive 자동 업로드하기

준비 사항Python 3.xpip (Python 패키지 관리자)Google 계정Google Cloud Console 프로젝트1단계: 필요한 라이브러리 설치pip install google-auth-oauthlib google-auth-httplib2 google-api-python-client pandas2단계: Google Cloud Console 설정Google Cloud Console에 접속새 프로젝트를 생성하거나 기존 프로젝트를 선택API 및 서비스 대시보드로 이동하여 "Google Drive API"를 활성화 4. 사용자 인증 정보를 만들고 OAuth 2.0 클라이언트 ID를 다운로드5. 다운로드한 JSON 파일의 이름을 credentials.json으로 변경하고 작업 디렉토리에 저장3단계: P..

Programming/Python 2024.06.28

Colab Notebook을 HTML과 Markdown으로 저장하는 방법

Colab Notebook을 HTML과 Markdown으로 저장하는 방법¶Colab Notebook에서 작업한 내용을 HTML과 Markdown 형식으로 저장하는 방법Colab Notebook을 다양한 형식으로 저장하면 다른 플랫폼에서 공유하거나, 문서로 보관할 때 유용함티스토리나 미디엄 같은 블로그에 바로 포스팅할 수 있고, 컨플루언스 업로드도 가능해 업무적으로 보고, 협업 시 활용할 수 있음  1. Colab Notebook을 HTML로 저장하기¶Colab Notebook을 HTML 형식으로 저장하려면 nbconvert를 사용하면 된다.(nbconvert : Jupyter Notebook을 다양한 형식으로 변환해주는 라이브러리)현재 노트북을 .ipynb 파일로 저장하기:Colab에서 "파일" > "저..

Dev/Google Colab 2024.06.21

Colab Notebook으로 private repo 코드 클론하는 법

Colab Notebook에서 Git 레포를 사용하는 방법을 정리한다.다루는 내용을 구체적으로 정리하면 다음과 같다.일반 레포를 클론받는 방법특정 브랜치를 클론받는 방법프라이빗 레포를 클론받는 방법프라이빗 레포의 특정 브랜치를 클론받는 방법  0. Colab에서 Git 클론 연습을 위한 기본 사항¶Colab에서 Git 레포를 클론하면 클론한 데이터는 기본적으로 Colab 환경의 임시 저장소에 저장된다. 이 임시 저장소는 세션이 종료되면 사라지기 때문에 클론받은 데이터를 유지하려면 내 Google Drive에 저장해야 한다. Google Drive에 마운트한 후 현재 작업 중인 디렉터리를 내 구글 드라이브 내 폴더로 이동하고, 레포를 클론하면 된다.Google Drive에 마운트하지 않고 Git 클론하기의..

Dev/Git 2024.06.20

맥에서 가상환경에 쉽게 진입하는 방법은?

나는 Intel Mac을 사용하고, 평소에 virtualenv를 활용하여 가상환경을 만드는 편이다. python -m virtualenv myvirtualenv 특별히 파이썬 버전을 지정하고 싶은게 아니라면 내가 가상환경 폴더를 생성하고 싶은 디렉터리에 가서 (보통은 내 프로젝트 루트 디렉터리) 위의 명령어를 사용해 가상환경을 만들고, source myvirtualenv/bin/activate 이 명령어를 통해 가상환경을 실행시켜 가상환경에 진입해왔다. 크게 번거로울 일은 없긴 하지만, 가끔 폴더 위치가 헷갈리기도 하고, 어째튼 타자를 쳐야하니, 조금이라도 더 간단한 방법을 이제야 알게되어 한결 편해졌다. /Users/[내 유저이름]/.zshrc 파일을 열어서 alias myvirtualenv='cd [..

OS 2024.01.31

가상환경과 크론탭을 활용하여 파이썬 스크립트 실행시 에러 해결

환경 tested on Python 3.9.12 macOS 13.2.1(22D68) cpu apple M1 10core 현상 AWS RDS에서 정보를 가져오고 일정 조건에 해당되는 영상 파일을 S3 링크에서 다운로드 받고, 영상 파일과 메타 데이터를 처리한 다음, 그 결과를 구글 클라우드 API를 활용하여 특정 구글 드라이브에 업로드하는 파일을 만들었다. 그리고 이 파일을 매일 자동으로 실행하기 위해, 파이프라인 구축 하기 전에 간단하게 로컬에서 크론탭을 사용하여 매일 1회 자동 파일 실행을 설정했으나 파일 실행이 되지 않는 문제 발생 Log 크론으로 실행된 파일의 output은 터미널에 프린팅되지 않기 때문에 로그에 기록할 필요가 있음 (참고) 파일 실행의 결과를 로그 기록하게 설정하는 크론 명령어 *..

OS/Ubuntu 2023.10.05

딥러닝 모델 멀티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

여러 개의 모델을 학습하도록 스케줄링하는 스크립트 파일

스크립트 파일 작성. 변수 받는 거나 반복제어문 작성에 있어서 능숙하지가 않아서 예전에는 무서웠는데 요즘은 chatGPT 친절하게 가르쳐줘서(물론 틀리게 가르쳐줄 때가 많아서 직접 실행해서 확인하고 수정도 해야한다.), 아주 유용하게 사용하고 있다. 한 폴더 안에 있는 파이썬 파일을 순차적으로 실행하도록 하는 스크립트 파일을 짜고, 크론으로 정기적으로 이 스크립트를 돌리도록 설정해둔다. 그리고 하나의 잡이 끝나거나 에러가 나면 slack 메시지가 오도록 까지 설정해 놓으면 더 이상 새벽이나 주말에 트레이닝이 잘 되고 있는지 불안해 하지 않아도 됨.. 짬이 좀 나면 그라파나 통해서 웹으로 모니터링까지 할 수 있게 짜놓으면 외출하거나 침대에 있을 때도 간단하게 문제없이 학습이 되고 있는지 확인할 수 있을 것..

카테고리 없음 2023.06.15

우분투 환경에서 원격에서 원격으로 데이터를 카피 하는 법

요즘 웬만한 경우에는 업무를 노트북으로 하고, 딥러닝 모델을 학습은 GPU와 쿨링 시스템이 필요하다 보니 데이터 직군들은 대부분의 업무를 원격 서버 또는 원격 컴퓨터에서 작업할 것이다. 나 역시 그렇게 작업하고 있고, aws 등의 클라우드 서버 작업할 일도 많기 때문에 아래 그림처럼 원격 컴퓨터1에서 원격 컴퓨터2로 데이터를 옮겨야 하는 일도 빈번하다. GUI없이 터미널에서 데이터를 복사하는 작업을 정리했다. 1. 원격 컴퓨터 2에 ssh로 접속 먼저 데이터를 받을 리모트 컴퓨터에 ssh로 접속한다. (password 가 필요한 경우 아래 명령어를 입력하고 나면 비밀번호 입력하라고 뜨고, 그 때 입력하면 된다) ssh [사용자id]@[remote com 2의 host address] -p [ssh 포트 ..

OS/Ubuntu 2023.05.30

내가 쓰기 위해 정리한 영상 변환 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로 지정 ..

22년 2학기 - 방송통신대 컴퓨터 과학과 3학년 편입 후기

9월 초에 방통대 컴과에 편입했다고 글을 썼었는데 (https://rollingsnowball.tistory.com/299) 언제나 그렇듯 시간은 쏜살같이 지나가 지난 주말에 첫 기말고사를 쳤다. 나도 편입을 결정하면서, 수업 수강신청을 하고, 공부를 하고, 시험 준비를 하면서 때때로 다른 선배님들의 후기를 본 것을 참고하고 도움도 얻었기에 개인 정리 겸 다른 분들께 도움이 되고자 내 경험을 정리해본다. 편입 결정 이유 먼저 나는 문과 출신에 컴퓨터 또는 IT 기술에 대한 베이스가 전혀 없다가 (약간의 경험이 있다면 앱 컨텐츠, 기획 쪽 일을 했다는 것 뿐) 1년 정도 ML AI 수업을 듣고 취업해서 일하게 되면서 컴퓨터 사이언스에 대한 이해가 없는게 아쉬워서 편입을 결정한 케이스이다. 당연히 회사 일을..

Logs 2022.12.21