프로그래밍
-
[CV Project] 육안으로 분간하기도 힘든 문서 딥러닝으로 분류하기프로그래밍/Project 2024. 11. 12. 01:39
개요 모든 기업에서 다양한 형태의 문서를 만들어서 사용해 왔고, 지금도 수많은 문서들이 새로 만들어지고 있다.그렇게 쌓인 문서들은 보관하기에는 많은 공간을 필요로 하기에, 많은 기업들이 쌓인 문서들을 데이터화해서 저장 및 보관하고 있다.그런 문서의 데이터화 작업에서 핵심이 될 수 있는 기술이 문서의 타입을 분류하는 것이라고 생각한다. 당장 개인이 가지고 있는 문서만 해도, 보험이나 휴대전화, 인터넷 가입, 월세 임대 등의 계약서부터 병원에 갔을 때 받게되는 진단서나 처방전, 물품 구매 시 받는 영수증까지 그 외에도 수많은 문서들이 있다.그렇기에 처음 이 주제를 봤을 때 기업에서 뿐만 아니라 개인의 생활에서도 유용하게 활용할 수 있지 않을까 생각했다. EDA우선적으로 데이터를 확인해본 결과, 주어진 데이터..
-
ML Ops 음악 추천 시스템 프로젝트 회고프로그래밍/Project 2024. 10. 16. 12:13
프로젝트 개요 이번 프로젝트는 MLFlow와 Airflow를 활용한 ML Ops를 메인으로 진행됐다. 우리 팀은 ML Ops를 적용할 서비스로 음악 추천 시스템을 선정했다. 주제 선정 이유 기존에도 관심이 있던 추천 시스템 분야였고, 서비스를 만들기 위해서는 데이터가 있어야 하는데 음악 추천 시스템을 할 경우, 스포티파이 API에서 제공되는 Audio Features를 이용하면 데이터를 수집하기에도 비교적 용이하고, 곡 추천 시에도 비교적 명확한 기준을 가지고 추천하는게 가능하겠다는 생각이 들어 주제로 선정했다. 담당한 역할 이번 프로젝트는 ML "Ops"가 메인이었기 때문에 ML 부분에만 모든 사람이 달려들기보다는 전체적으로 시스템을 만드는데 집중하는게 좋을 것 같았고, 그래서 나는 FastAPI와 S..
-
아파트 실거래가 예측 경진대회 회고프로그래밍/Project 2024. 9. 23. 23:31
경진대회 개요 Upstage AI Lab 4기의 첫 경진대회인 House Price Prediction 경진대회는 주어진 데이터를 활용해 서울의 아파트 실거래가를 효과적으로 예측하는 모델을 개발하는 대회이다. 대회에서 제공된 데이터셋을 기반으로 모델을 학습하고, 서울시 각 지역의 아파트 매매 실거래가를 예측하는 데에 선형 회귀, 결정 트리, 랜덤 포레스트, 딥 러닝과 같은 다양한 Regression 알고리즘을 사용할 수 있다. 이 대회의 목표는 정확하고 일반화된 모델을 개발해 아파트 시장의 동향을 미리 예측하는 것이다. 모델의 성능을 평가하는 지표로는 예측된 값과 신제 값 간의 평균 편차를 측정하는 RMSE(Root Mean Squared Error)를 사용한다. 즉, 회귀 모델이 실제 거래 가격의 차이..
-
머신러닝, 딥러닝 기본 개념프로그래밍/Machine Learning 2024. 9. 1. 22:10
인공지능 (Artificial Intelligence)인간의 학습능력, 추론능력, 지각능력을 인공적으로 구현하는 것으로, 인간을 포함한 동물이 갖고 있는 지능(Natural Intelligence)과는 다른 개념지능을 갖고 있는 기능을 갖춘 컴퓨터 시스템 = 인간의 지능을 기계 등을 인공적으로 시연(구현)한 것 기술적 특이점 (Technological Singularity) 인공지능이 발전해 인간의 도움 없이도 스스로 발전을 계속할 수 있게 되고, 결국 인류 전체를 합친 것보다 뛰어난 지능을 갖게되는 가상의 시점 튜링테스트 (Turing Test) 기계가 인간과 동등한 지적 능력을 가졌는지 확인하기 위해 고안된 테스트=> 명확한 기준 없이 질문자의 주관적인 판단에 의존하는 시험이므로 크게 의미 없음 ..
-
LangChain을 활용한 LLM 애플리케이션 개발 프로젝트 회고프로그래밍/Project 2024. 9. 1. 01:14
부트캠프 기간 중에 진행되는 첫 팀 프로젝트가 끝났고, 프로젝트에 대해서 정리해보려고 한다. 프로젝트 주제 우리 팀은 "항공편 정보 특화 QA Engine" 이라는 주제로 진행하기로 했다. 여러가지 주제가 나왔지만 외부에서 비교적 정확한 정보를 가져올 수 있으면서, QA Engine 특성 상 좀 더 명확한 답을 낼 수 있는 주제로 선정하는 것이 LLM을 통해 구현하기에 더 적합하다고 생각하기도 했고, 최근 해외 여행을 가는 경우가 많지만 ChatGPT, Gemini 등과 같은 서비스에서는 실시간 정보가 중요한 항공편과 같은 질문이 불가능했기에 메리트가 있다고 판단했다. 구현하고자 했던 기능 QA Engine에서 사용할 핵심 정보인 항공편 정보를 가져오는 기능불러온 항공편 정보를 RDB에 저장하는 기능LL..
-
운영체제 (2)프로그래밍/CS 2024. 8. 31. 21:20
> 운영체제가 제공하는 동기화의 의미실행 순서 제어 : 프로세스를 올바른 순서로 실행상호 배제 : 동시에 접근해서는 안 되는 자원에 하나만 접근 공유 자원 : 공도의 자원 (파일, 전역 변수, 입출력장치 등)임계 구역 : 동시에 접근하면 문제가 발생할 수 있는 공유 자원에 접근하는 코드블록 레이스 컨디션 (race condition) : 임계 구역을 동시에 실행하여 자원의 일관성이 깨지는 현상 생산자와 소비자 문제 : 동기화가 이루어지지 않았을 때 발생할 수 있는 문제를 보여주는 고전적인 문제producer : 생산을 하는 프로세스(스레드)consumer : 소비를 하는 프로세스(스레드)=> 동기화되지 않은 상태에서 실행되기 때문에 똑같은 코드라도 결과 값이 예상했던 것과는 다르게 나오고 그 값이 계속 ..
-
Github 연결프로그래밍/Git 2024. 8. 12. 23:58
Github 연결$ git remote add origin '깃허브 주소' Github 연결 해제$ git remote rm origin Github 소스 코드 현재 main 브랜치에 다운로드$ git pull origin main main 부분은 설정된 branch 명에 따라 달라질 수 있음fetch 후 merge 하는 것과 같음 Github 소스코드 바로 다운로드$ git clone '깃허브 주소' 작동 프로세스 : init - remote add - pull 순으로 진행 주의! main 브랜치는 직접적으로 보이지만, origin/main 브랜치는 숨김 폴더인 .git 폴더 내부에 있어서 보이지 않음 Github에 소스 코드 업로드$ git push '원격저장소' 'push할 브랜치 명'$ git..
-
Git프로그래밍/Git 2024. 8. 12. 23:39
최초 설정$ git config --global user.name 'name'$ git config --global user.email 'email' git을 사용하기 전에 git 변경 내용 저장 시 같이 저장될 이름과 이메일 설정해야 함 작업 영역 생성(선언)$ git init git 작업할 폴더로 이동 후 명령어 실행 => git 작업 가능해짐 변경 내용 인덱스 영역에 저장$ git add . # '.' : 해당 경로의 모든 변경 사항 add 뒤에 특정 파일 선택해서 저장하는 것도 가능하지만, 한번 저장할 때 모든 변경사항 저장하는 게 좋음 인덱스 영역에 있는 변경 내용 영구적으로 저장$ git commit -m 'commit한 내용' commit 까지 완료해야 저장된 것 현재 작업 영역 상태 확인$..