목록전체 글 (291)
개발자로 후회없는 삶 살기
서론 레벨 2, 3 프로젝트를 병행하며 한 주를 회고합니다. 본론 - 팀원들과 원활한 협업을 위한 프로젝트 셋팅(Jira) 레벨 3 프로젝트 일정 관리를 위해 Jira를 팀에 제안했습니다. 하지만, 사용 경험이 부족했기에 팀원들에게 제 경험을 전달하기 위한 세미나를 진행했습니다. -> 자아 성찰 ✅ 요즘 부스트캠프 팀원들에게 상당히 많은 정보 공유를 하고 있는 것 같습니다. 촉박한 커리큘럼 내에서 시간을 할애하면서까지 세미나를 하고 자료를 만들고 있습니다. 과거의 저는 지식 공유를 블로그 혹은 구두로 하는 것이 전부였습니다. 팀원들에게 도움이 되는 것을 즐기고 있는 것을 새삼 깨달으며, 더 성숙한 개발자로 전진하고 있는 것 같아 기분이 좋습니다. - 데이터 제작 대회의 목적 -> 데이터 제작 대회? ✅ ..
서론RDB에 저장하던 RefreshToken의 Network I/O를 개선하기 위해 In-Memory Redis를 도입합니다. 또한, RefreshToken을 도입하여 AccessToken이 탈취 되더라도 인증하는 기능을 추가합니다. 아래 글에서 이어지는 내용입니다. -> 깃허브https://github.com/SangBeom-Hahn/Capstone_Develop/commit/670912b9588debce0f81d223f0a6bf85e5955928 feat: 2단계 인증 구현 · SangBeom-Hahn/Capstone_Develop@670912b*feat: AuthService 기능 구현 *feat: LoginInterceptor 기능 구현 *feat: RefreshTokenSaveResponseDt..
서론 레벨 2 프로젝트가 끝이 나고 동시에 부캠의 50%가 지났습니다. 절반까지 열심히 달려오느라 수고했다고 팀원들과 격려하고 있습니다. 본론 - GPU Pool로 알게 된 로컬, 서버, 원격, 배포의 개념 로컬 : 작업을 하는 공간으로 새로운 기능을 만들거나 버그를 잡을 때 실제 코드를 작성하는 곳 깃허브 원격 : 로컬에서 작업한 내용을 배포하는 곳으로 서버와 로컬의 연결 다리 서버 : 원격의 내용을 반영하여 실제 서비스를 운영하는 곳 배포의 개념은 로컬에서 기능이 다 완료됐으니 운영하자! 였습니다. 웹 어플리케이션에서는 이러한 것을 물리 서버와 WAS가 자동으로 너무 잘해줘서 자연스럽게 이해가 됐었는 데 컴퓨터 2대와 깃허브만 받은 채로 직접 위 구조를 만들어 본 것은 처음입니다. 이번에 아주 값진 ..
서론딥러닝 모델의 학습/추론 프로세스에는 많은 단계가 포함됩니다. 각 실험의 반복이 빠를수록 제한된 시간과 리소스로 더 효율적인 성능 최적화를 할 수 있습니다. 아래 과정으로 성능 최적화 기법을 적용해 보겠습니다. 본론- 모델 설정backbone : vit-base_path16_224input size : [224, 224]epoch : 1무거운 모델이 성능 면에서 비교하기 쉬울 것 같아서 VIT로 선택했습니다. 1 에폭만 돌려서 학습 속도의 차이를 확인해 보겠습니다. - 기본 Baseline 코드기법을 적용하지 않은 학습 결과입니다. 1 에폭이 동작한 시간과 사용한 메모리 양을 나타내었습니다. - With AMP-> AMP란?모델의 파라미터를 32-bit가 아닌 16-bit로 표현하여 배치 사이즈를 늘..
서론레벨 2 프로젝트가 마무리되고 있는 가운데, 본격적인 레벨 3 프로젝트 도입을 위해 프로젝트 진행 방식을 정립하고, 주제를 구체화합니다. 본론- 기획 이슈(실제 vs 퀄리티)nerf 모델 결과를 보면 본인의 공간을 모델링할 수 있는 장점이 있지만, 퀄리티를 높이기 어렵다는 기술적 한계가 존재합니다. 반면, 도면을 제공하고 3D화 하거나, 미리 준비된 공간을 제공하는 버전은 퀄리티는 좋으나 실제 본인의 방이 아니라는 트레이드오프가 있습니다. 기술적 한계시간타당성 분석처음 기획했을 때는 실제를 고수하기로 했지만, 위 같은 이유로 보다 구체적인 주제를 잡기로 했습니다. -> 주제 구체화의 포인트서비스 핵심 가치서비스 타겟층기술적 한계기존에 있는 서비스를 구현할 경우 구현에 의미가 있지만, 차별화가 부족할 ..
서론사설망에서 서버 간 통신으로 GPU 풀을 이용하는 과정을 기록합니다. 본론-> 깃허브https://github.com/boostcampaitech6/level2-objectdetection-cv-05/pull/20 feat: gpu pool 기능 구현 by SangBeom-Hahn · Pull Request #20 · boostcampaitech6/level2-objectdetection-cv-05Overview live 커스텀 코드에 적용할 수 있는 gpu pool 시스템을 구현했습니다. Change log logger/ support/ utils/ consumer.py publisher.py To Reviewer support/ 에 publisher의 메세지 큐를 제어할 커넥션 연결 컴포넌트와gi..
서론 객체 탐지 대회 도중 사용한 mmdetection 라이브러리 활용 경험을 회고합니다. 본론 - mmdetection의 편리한 학습 파이프라인 강의에서는 mmdetection을 코드 조각으로 조합해서 원하는 모델을 만들 수 있다고 하였습니다. 당시에는 매우 추상적이라서 '유용한 기술이겠다'라고 생각만 하고 넘어갔는데 실제로 만들어 보니 굉장한 기술력을 가질 수 있다는 것을 체감했습니다. configs/faster_rcnn 수정 _base_/models 수정 datasets 수정 _base_/datasets/coco_detection 수정 위 4가지를 테스크에 맞게 수정하면 원하는 모델을 만들 수 있을 뿐만 아니라, 학습, 테스트 파이프라인 자체를 커스터마이즈 할 수 있습니다. 앞으로 주기적으로 업데이..
서론 MMdetection을 이용해서 convnext 백본 cascade rcnn 모델 학습 파이프라인을 제작하는 과정을 공유합니다. 본론 - mmdetection/configs에 config 파일 만들기 python tools/train.py \ ${CONFIG_FILE} \ [optional arguments] 학습을 할 때 config 파일을 인자로 주기 때문에 config 파일을 커스터마이징하면 원하는 동작을 수행할 수 있습니다. faster_rcnn r50의 config 파일입니다. faster_rcnn은 위 4개의 파일로 학습을 진행하며 각 파일을 수정하면 됩니다. 주의사항 🚨 faster_rcnn r101 같은 경우는 r50의 config를 베이스로 재정의할 수 있습니다. 재정의를 할 경우 ..