오늘 할 일: 끝내주게 숨쉬기
article thumbnail
[데이터] 어노테이션 가이드 작성하는 방법

들어가며머신러닝, AI 프로젝트에서는 모델 학습을 위해서 학습 데이터를 구축합니다. 이미 잘 마련된 데이터를 바로 가져다 쓰면 너무나도 편리하겠지만, 그런 해피한 상황은 잘 없는 것 같습니다. 텍스트나 이미지처럼 비정형 데이터는 특히 더 그런 것 같구요.  "Garbage in, garbage out" 머신러닝 필드에서 유명한 격언이죠. 학습 데이터의 품질이 보장되어야 모델의 성능과 신뢰도를 보장할 수 있습니다. 학습 데이터를 잘 만들려면 적절한 가이드라인이 필요합니다. 보통 모델 학습을 위해 몇 만건 씩은 데이터가 필요한데, 한 명이서 그 많은 작업을 할 수 없으니 여러 명이서 작업을 하게 되고요. 여러 명이서 작업하는데 각자의 기준을 갖고 데이터를 만들면.. 데이터 품질이 보장되었다고 하기 어렵습니다..

article thumbnail
[IR] RRF(Reciprocal Rank Fusion) 설명과 파이썬 코드

본 포스트에서는 정보 검색과 랭킹에서 사용되는 알고리즘인 RRF(Reciprocal Rank Fusion)에 대해 알아보겠습니다. 먼저 정의를 살펴본 후, 파이썬에서 구현하며 어떻게 결과가 바뀔 수 있는지 함께 확인하겠습니다. RRF(Reciprocal Rank Fusion) 알고리즘이란? RRF를 우리말로 옮기면 "상호간의 순위 융합" 정도가 되겠습니다. 말그대로, 다양한 검색 결과의 순위를 종합하여(있어보이는 표현으로는 "하이브리드하게"라는 표현이 있음) 검색 순위를 다시 매기는 하이브리드 알고리즘입니다. 다양한 검색 결과를 종합하는 이유는, 한 가지 방법론을 사용해 얻은 검색 결과만으로는 사용자들의 다양한 요구사항을 두루두루 만족시킬 수 없기 때문입니다. 여러 방법론으로 검색 결과를 얻게 되는 경우..

article thumbnail
[IR] BM25 랭킹 알고리즘 / rank_bm25 라이브러리 사용하기

본 포스트에서는 정보 검색(Information Retrieval)에서 사용되는 BM25 알고리즘에 대해 알아보고, 파이썬에서 사용할 수 있도록 구현된 rank_bm25 라이브러리를 통해 알고리즘을 적용해보겠습니다. BM25(Best Match 25) BM25(or Okapi BM25)는 검색하고자 하는 쿼리와 다른 문서들과의 연관성을 평가하는 알고리즘입니다. 키워드 기반의 랭킹 알고리즘으로, 엘라스틱서치는 5.0부터 유사도 알고리즘으로 이 BM25를 디폴트로 적용했다고 합니다. BM25는 TF-IDF 기반으로, TF-IDF를 알고 있다면 크게 어렵지 않게 이해할 수 있습니다! TF-IDF(Term Frequency-Inverse Document Frequency) 먼저 간단하게 TF-IDF에 짚고 가겠..

article thumbnail
[Tool] Excalidraw 사용법: 깔끔하고 멋진 다이어그램 툴 추천

들어가며 IT 업계에 종사하다보면 다이어그램, 시스템 설계도나 워크플로우와 같은 것들을 그릴 일들이 발생합니다. 보편적으로 피피티를 사용하는 편이긴 하지만, 최근 좋은 툴을 알게되어 소개하고자 합니다. 바로 Excalidraw 입니다. 엑스칼리드로우는 다이어그램을 손그림 느낌이 나면서도 깔끔하게 그려주는 툴입니다. 웹으로도 사용이 가능하고, Obsidian(옵시디언)과 같은 노트 애플리케이션 내에서 확장 프로그램으로서 설치하여 사용할 수도 있습니다. 다만 웹으로는 한 개의 캔퍼스만 사용할 수 있고, 한글 폰트가 예쁘게 나오지 않아서 본 포스트에서는 옵시디안을 이용해 사용하는 방법을 소개하겠습니다! 옵시디언 설치 옵시디언 다운로드 홈페이지에서 환경에 맞는 설치 파일을 다운로드 합니다. 이후 첫 화면에서 언..

article thumbnail
[후기] 유데미 소프트웨어 엔지니어링 강의 후기: Software Engineering 101: Plan and Execute Better Software

저는 IT 산업에 종사하고는 있지만 소프트웨어가 어떤 과정을 거쳐 만들어지는지는 잘 모르고 있었습니다. 주로 데이터 분석, 머신러닝 개발 일을 하기 때문에 제품/서비스를 만드는 과정에 전부 관여하기 보다는 데이터로 무언가를 하는 단계에만 관여를 했죠. 물론 그 "데이터로 무언가를 하는 단계" 에서 내부적으로 어떤 과정을 거쳐야 하는지는 잘 알고 있었습니다. 해결해야하는 과제를 정의하고, 데이터를 수집하고, 분석하고, 모델을 학습하고, 테스트하고 배포하는 절차야 늘 해왔기 때문이죠. 혹시나 나중에 직접 제품이나 서비스를 기획하거나 대규모 프로젝트에 참여해야할 수도 있으니, 데이터를 이용하는 단계 이상으로, 제품/서비스 릴리즈를 위해 어떤 정석적인 과정을 거치는지 학습할 필요가 있다고 생각했습니다. 주변의 ..

article thumbnail
[비즈니스] 벤치마크데이: 효율적인 벤치마킹을 수행하는 방법

작년에 한 프로젝트에 참여하면서 타사 사례를 벤치마킹하는 경험을 처음으로 가져봤다. 벤치마킹이라는건 무슨 비즈니스 신문에서나 나오는 단어인 줄 알았는데 ㅎㅎ 직접 실천해보니 더 재미있었고 신선한 경험이었다. 당시에 경험했던 벤치마킹에 대해 공유하고 싶어 글을 남긴다. 벤치마크데이란 우선 벤치마킹이 무엇인지 알아보자. 다른 기업으로부터의 학습을 의미하는 용어로서 남의 아이디어를 빌려오거나 성공한 기업의 경영활동을 모방하는 것이다. 학습이 기업과 기업간의 교류로 확대된 형태를 의미한다. 측정의 기준이 되는 대상을 설정하고 그 대상과 비교 분석을 통해 장점을 따라 배우는 행위를 말한다. 벤치마킹(benchmarking)은 원래 토목 분야에서 강물 등의 높낮이를 측정하기 위해 기준점인 벤치마크(benchmark..

article thumbnail
[비즈니스] 스탠드업 미팅: 프로젝트 진행 상황을 효과적으로 공유하는 방법

작년에 프로젝트를 수행하면서 좋았던 문화를 한 가지를 꼽으라면, 스탠드업 미팅이다. 프로젝트에 들어가기 전에 스탠드업 미팅을 한다는 얘기를 듣고 이 프젝.. 쉽지 않겠다는 짐작을 했던 기억이 난다. 경험해보니 스탠드업 미팅은 프로젝트의 큰 흐름을 따라가는 데 많은 도움을 주었고, 팀원들과 친밀도도 높이는 계기를 제공해주었다. 좋은 경험이어서 이와 관련한 기록을 남기고자 포스트를 작성한다. 스탠드업 미팅(Stand-up Meeting)이란 단어 그대로 일어서서 진행하는 미팅이다. 팀원들이 어떤 일을 했으며, 어떤 일을 할 계획이고, 어떤 문제점이나 요청사항이 있는지 확인하는 자리를 갖는 시간이다. 한명의 발표자가 앞에 나서서 내용을 공유하는 게 아니라, 모든 팀원들이 각자의 진행상황을 공유한다. 일어서서 ..

article thumbnail
[MLOps] 2) ML의 생애주기와 구성요소

지난 MLOps 개념에 이어 이번 포스팅에서는 ML 생애주기를 알아보겠습니다. ML 프로젝트는 모델을 만드는 것만이 전부가 아닙니다. 가장 먼저 문제를 정의하는 과정이 필요하고, 데이터를 정의/수집/준비하는 과정을 진행합니다. 이후 모델을 어떻게 만들 것인지 살펴보게 되고, 모델이 만들어지면 평가를 하고, 이걸 서비스로 만드는 것입니다. 모델이 만들어지면 운영으로 올라갔다고 끝나지 않습니다. 지속적으로 서비스를 모니터링하고, 다시 루프를 돌아 재학습을 하고 재배포를 하는 일련의 과정 전체가 MLOps를 이루는 것이죠. ML 생애주기는 크게 3단계로 구성되어 있습니다. 데이터 준비 실험과 학습 배포와 서빙 각 단계마다 차근차근 구성요소를 알아보겠습니다. 1. 데이터 준비 데이터 준비는 데이터 가져오기, 데..

article thumbnail
[MLOps] 1) MLOps의 개념

머신러닝은 데이터의 숨어잇는 패턴을 감지하여 함수(모델)로 나타내고 미래 사건을 예측하는 알고리즘입니다. 그렇다면 머신러닝 프로젝트는 예측을 잘하는 모델을 만드는 것이 전부일까요? 그렇지 않습니다. 흩어져있는 데이터들을 어떻게 가져올 것이며, 그 중 어떤 데이터들을 가져올 것인지, 어떻게 가공할 것인지, 모델은 어떻게 만들고 평가는 어떤 방식으로 할지, 모델을 만든 뒤에는 서비스로 어떻게 연결할 것인지까지 모두 머신러닝 프로젝트에서 고민해야 되는 문제입니다. MLOps는 머신러닝 모델 자동화 프로세스로, 우리가 만든 모델이 실제 서비스로 이어질 수 있도록 해주는 파이프라인입니다. 본 포스팅에서는 MLOps가 무엇인지, 역할과 중요성에 대해 알아보겠습니다. MLOps(Machine Learning Oper..

article thumbnail
[Flask] Flask 개념과 예제 코드 소개

Flask 소개 Flask는 파이썬에서 사용하는 경량 WSGI(Web Server Gateway Interface)로, 웹 애플리케이션을 구축할 수 있는 라이브러리입니다. Flask를 활용하면 웹 페이지, 블로그 혹은 머신러닝 예측 결과를 제공하는 웹 API를 만들 수 있습니다. 아래 그림에서 보는 바와 같이 머신러닝 모델과 프론트엔드 웹 페이지를 연결해주는 중간 다리로 사용되죠. 장고Django와 함께 파이썬 웹 프레임워크의 양대산맥으로 알려져 있습니다. Django는 이미 잘 짜여진 다양한 기능을 제공하는 반면 Flask는 심플한 대신에 사용자 자유도가 높다고 하네요. (마치 케라스와 파이토치같은..?ㅎ 아님 말고..) 이제 아래 예시에서 iris 데이터를 이용하여 모델을 만든 후, 플라스크가 모델에..

반응형