본문 바로가기
728x90
SMALL

Python23

MLOps 기술들 설명 (데이터, 모델, 서빙 등) 1. 데이터 - 데이터 수집 파이프라인 (Data Ingestion Pipeline): Sqoop: Apache Hadoop과 관계형 데이터베이스 사이에서 대량의 데이터를 효율적으로 전송하는 도구. Flume: 대량의 로그 데이터를 효율적으로 수집, 집계 및 이동하는 분산형, 안정적이고 사용 가능한 서비스. Kafka: 이벤트 스트리밍을 위한 분산 플랫폼으로, 실시간 데이터 파이프라인 및 스트리밍 애플리케이션을 구축하는 데 사용됨. Flink: 대용량 데이터 처리 및 분석을 위한 오픈 소스 스트림 처리 프레임워크. Spark Streaming: 배치 처리 엔진인 Spark의 확장으로, 스트림 처리를 지원함. Airflow: 워크플로우를 프로그래밍 방식으로 작성, 예약 및 모니터링하는 플랫폼. - 데이터 .. 2023. 12. 29.
Machine Learning(기계학습)의 전반적인 개요 Machine Learning (기계학습) 컴퓨터 스스로 대용량 데이터에서 지식이나 패턴을 찾아 학습하고 예측을 수행하는 것 컴퓨터가 학습할 수 있게 하는 알고리즘과 기술을 개발하는 분야 train 데이터를 머신러닝을 적용해서 학습시키고, 이 학습 결과로 모형이 생성됨 구분 유형 알고리즘 지도 학습 (supervised learning) 분류(classification) - K-최근법 이웃 (K-Nearest Nighbor, KNN) - 서포트 벡터 머신 (Support Vector Machine, SVM) - 결정 트리 (decision tree) - 로지스틱 회귀 (logistic regression) 회귀(regression) - 선형 회귀 (linear regression) 비지도 학습 (unsu.. 2023. 10. 21.
동일 API 호출에 대한 처리 방법(feat. asyncio) 1. 글을 쓰게 된 계기 동일 API를 호출하는 경우들이 굉장히 많다. 현재 상황은 다음과 같다. API요청이 들어왔을 때 해당 API에서 동작되는 함수들이 실행되고 최종적으로는 해당 결과가 db에 저장되도록 되어있다. 여기서 불필요한 API호출를 방지하기 위해 1. db에 있는 경우 함수가 작동되지 않도록 했다. 2. 함수가 작동되고 있는 경우 (기존과 동일한 요청에서 대해서) 함수가 작동되지 않도록 했다. 내가 글을 작성하는 내용은 2번의 상황을 해결하는 것이다. 2. 해결 방법 간단하게 asyncio.Lock()을 사용하면 해결할 수 있다. emailUid_locks = {} # emailUid = "test1234" if emailUid in emailUid_locks: logging.info(f.. 2023. 9. 5.
Python asyncio를 활용한 비동기 프로그래밍 1. 글을 쓰게 된 이유 서비스 프로그램을 만들면서 asynico를 사용해서 코딩을 해야하는데 생각보다 비동기를 사용하면 굉장히 좋은 서비스를 만들 수 있고 속도 문제도 해결할 수 있다는 사실을 알게되었다. 2. 파이썬에서 비동기 프로그래밍 - 자바스크립트와 같이 애초에 비동기 방식으로 동작하도록 설계된 언어는 익숙한 개념이다 - 파이썬과 같이 동기 방식으로 동작하는 언어에서는 생소하지만 - 파이썬 3.4에서 asyncio 모듈이 표준 라이브러리로 추가되면서 - 파이썬 3.5에서 async / await 키워드가 문법으로 채택이 되면서 - 파이썬도 외부 라이브러리 없이 프로그래밍이 가능해졌다. 3. 핵심 문법 - def(동기 방식) / async def(비동기 방식) 아래와 같은 비동기 방식으로 만들어진.. 2023. 8. 25.
Ray를 활용한 Python 병렬 처리 하기 (feat. gpt api) 1. 글을 작성하게 된 계기 - GPT API를 호출하는 경우가 많다. - GPT API를 호출할 때 순차적으로 하면 너무 오래 걸린다. - API 호출을 병렬로 처리해서 처리해 보자. 2. Ray 이해하기 2-1. Ray 구성 이해하기 1. Task - 호출하는 곳과 다른 프로레스에서 실행되는 함수 또는 클래스 - @ray.remote 라는 데코레이터로 감싸면 그 함수는 task가 된다. - Remote Function이라 부르며, 호출자와는 비동기적으로 실행 - remote()를 사용해서 호출 가능, ObjectRef 라는 값을 반환한다. 이때, ray.get(ObjectRef)를 하면 Task를 실행하고 값을 반환받을 수 있음. 2. Object - Task를 통해 반환되거나 ray.put()을 통.. 2023. 8. 22.
DataFrame에서 줄 바꿈, 띄어쓰기 중복 제거 1. 글을 쓰게 된 계기 python DataFrame에서 실제 데이터셋을 수집하다 보면 띄어쓰기 또는 줄 바꿈이 여러 번 반복되는 경우를 쉽게 찾아볼 수 있다. 그럴 때 DataFrame에서 replace를 이용해서 쉽게 한 줄로 띄어쓰기 한 번으로 변환하는 코드를 설명하고자 한다. 2. 사용 방법 df['컬럼이름'].str.replace('\s+', ' ') 다음과 같이 사용하면 해당 컬럼이름에 해당하는 값들을 string 값으로 변경하고 줄 바꿈, 띄어쓰기를 띄어쓰기 1번으로 모두 줄일 수 있다. 예시코드는 다음과 같다. test_data = ['test\n\n\n\ntest111', '22test\n\n\n test'] for i in test_data: print(i) df = pd.DataFr.. 2023. 2. 10.
728x90
LIST