Python(215)
-
N8n) 웹 크롤링 기반 자동 분석 및 결과 전송 워크플로우
n8n이란? n8n은 오픈 소스 자동화 툴로, 다양한 서비스와 API를 연결하여 업무 프로세스를 자동화할 수 있습니다. 사용자는 n8n을 통해 여러 작업을 시각적으로 연결하여 복잡한 워크플로우를 쉽게 만들 수 있으며, 이를 통해 효율적으로 반복적인 작업을 자동화할 수 있습니다. 이 워크플로우는 웹사이트에서 데이터를 크롤링하고, 크롤링된 텍스트를 전처리한 후 GPT를 활용해 자연어 처리 및 요약을 수행하는 과정으로 시작됩니다. 이후, 파이썬을 사용해 텍스트를 분석하여 추가적인 인사이트를 도출하고, 최종 결과를 지메일을 통해 자동으로 전달합니다. 이 과정을 통해 크롤링부터 분석, 결과 전송까지의 전 과정을 자동화함으로써 사용자의 시간과 노력을 절감하는 데 중점을 두고 있습니다.주요 단계:웹사이트 크롤링: 필..
2024.10.19 -
LLM) LLAVA 13b로 caption(설명) 또는 table 텍스트 데이터 생성해보기
llava라는 모델이 나와서 이미지 데이터만으로 테이블을 만들거나 caption을 생성한다는 것이 매력적인 것 같아 실험을 해봅니다. 자원이 없다 보니 개인 노트북에서 cpu로 돌리면서 결과를 하나하나 얻다 보니, 매우 오래 기다렸지만, 나름 유의미한 것 같아 공유드립니다. 아시다시피 한국 사람이다보니, 영어의 결과보다는 한국어로 결과를 얻고 싶었고, llava는 아무래도 영어를 주력 언어로 학습하다 보니, 학습을 시켜 아하나?라는 생각이 들었습니다. 하지만 그렇게 자원도 학습할 데이터도 없다 보니, 현재는 불가능하다 생각이 들었습니다. 그리고 번역기 성능이 좋다면, 오픈된 도메인 환경에서는 크게 문제 되지 않을 수도 있다는 생각이 들어서 deep_translator를 사용하여 번역하여 한국어로 결과를 ..
2024.07.30 -
LangGraph) LangGraph에 대한 개념과 간단한 예시 만들어보기
LangGraph 가 나온 이유LLM을 통해서 FLOW를 만들다 보면, 이전 LLM 결과에 대해서 다음 작업으로 넘길 때, LLM이 생성되는 결과에 의해 실패하는 경험들을 다들 해보셨을 것입니다.개인적으로 분기 처리나 후처리 로직을 담는데, Output Parser에서 제어하려 했지만, 이러면 전반적인 구조나 결과를 보기가 쉽지 않았습니다. LangGraph는 LangChain 생태계 내에서 이러한 문제를 직접 해결하기 위해 설계된 강력한 라이브러리입니다. 이 라이브러리는 여러 LLM 에이전트(또는 체인)를 구조화된 방식으로 정의, 조정 및 실행할 수 있는 프레임워크를 제공합니다. LangGraph란 무엇인가요?LangGraph는 LLM을 사용하여 상태를 유지하고 여러 에이전트를 포함한 애플리케이션을 쉽..
2024.06.29 -
[LangChain] Prompt Template 사용 방법 정리
langchain에서 사용하는 prompt에 대해서 정리해보고자 합니다. 이런 식으로 굉장히 다양한 promptTemplate가 있기 때문에 정리하고자 한다. 모든 것을 커버할 수는 없지만 최대한 자주 사용할 것 같은 것들을 기준으로 정리해보고자 한다. 버전 0.1.1 버전을 기준으로 정리해서, 추후에 이 template은 의미가 없어질 수 있지만 큰 개념으로 이해하면 좋을 것 같다. 프롬프트 함수 정리 아래에는 langchain에서 사용하는 prompt를 정리한 내역을 보면 다음과 같다. 전체 from langchain.prompts import ( PromptTemplate, PipelinePromptTemplate, MessagesPlaceholder, ChatPromptTemplate, Human..
2024.01.20 -
DVC 설명 및 필수 활용 방법 정리
소개 모든 머신 러닝(ML) 개발자들은 ML 프로젝트의 성공에 있어서 데이터가 얼마나 중요한지 잘 알고 있습니다. 아주 조금의 데이터 변경도 결과에 극적인 변화를 가져올 수 있습니다. 그래서 데이터에 발생하는 모든 변화를 추적하는 것이 매우 중요합니다. 우리가 이야기하는 것은 'data versioning'라고 불립니다. data versioning란 무엇인가? data versioning(버전 관리)는 프로젝트의 다양한 시점에서 스냅샷을 유지하는 행위입니다. 이 방법은 수십 년 동안 소프트웨어 공학에서 흔히 알려져 있으며, 현대 소프트웨어 개발 과정에서 매우 중요해졌습니다. 버전 관리를 하는 것은 프로젝트 소유자에게 두 가지 주요 이점을 제공합니다: 가시성: 작업의 버전을 유지함으로써 소유자는 시간이 ..
2023.12.08 -
TimeSeries) TSMixer 논문 및 구현 살펴보기
2023.07.05 - [ML(머신러닝)/Time Series] - Transformer 기반 Time Series Forecast 논문 알아보기 2023.07.06 - [ML(머신러닝)/Time Series] - TimeSeries Forecast) Transformer보다 좋다는 LSTF-Linear 알아보기 2023.07.12 - [ML(머신러닝)/Time Series] - TimeSeries) PatchTST 논문과 코드 살펴보기 2023.10.13 - [분류 전체보기] - TimeSeries) TSMixer 논문 및 구현 살펴보기 해당 논문은 구글 클라우드 AI Research 팀에서 작성을 한 것이라, 믿고 보는 논문이라 생각하고 논문을 읽어보고자 한다. 현재 기준(2023.10.07) 기준으..
2023.10.13 -
TimeSeries) Transformer보다 좋다는 LSTF-Linear 알아보기
2023.07.05 - [ML(머신러닝)/Time Series] - Transformer 기반 Time Series Forecast 논문 알아보기 2023.07.06 - [ML(머신러닝)/Time Series] - TimeSeries Forecast) Transformer보다 좋다는 LSTF-Linear 알아보기 2023.07.12 - [ML(머신러닝)/Time Series] - TimeSeries) PatchTST 논문과 코드 살펴보기 2023.10.13 - [분류 전체보기] - TimeSeries) TSMixer 논문 및 구현 살펴보기 Are Transformers Effective for Time Series Forecasting? long-term time series forecasting (LT..
2023.07.06 -
Linux,Mac) Python Script 돌릴 때 core 수 제한하는 방법
taskset은 Linux 운영체제에서 실행 중인 프로세스의 CPU 코어 할당을 제어하는 명령어입니다. CPU 코어 할당을 제어함으로써 프로세스의 성능을 최적화할 수 있습니다. taskset 명령어는 프로세스를 실행할 때, 실행할 CPU 코어를 선택하도록 합니다. 이를 통해 멀티코어 CPU 시스템에서 여러 프로세스가 병렬로 실행될 때, 각각의 프로세스가 서로 다른 코어를 사용하도록 할 수 있습니다. 이는 CPU의 활용도를 높이고, 성능을 향상시키는 데 도움이 됩니다. taskset 명령어는 간단하게 사용할 수 있습니다. 명령어 뒤에 실행할 프로세스의 PID를 입력하고, 원하는 CPU 코어 번호를 지정하면 됩니다. 예를 들어, "taskset -c 0,1 ./myprocess" 명령어는 "myprocess..
2023.03.31 -
Python) AVLTree Search를 통해서 특정 값의 범위 찾기 (ChatGPT와 함께)
FastAVLTree는 AVL 트리 데이터 구조의 구현을 제공하는 파이썬 라이브러리입니다. AVL 트리는 자체 균형 이진 검색 트리의 일종으로, Georgy Adelson-Velsky와 Evgenii Landis에 의해 1962년 처음 소개되었으며, 이들의 이름을 따서 명명되었습니다. AVL 트리는 모든 노드의 왼쪽과 오른쪽 서브트리의 높이 차가 최대 하나 이하인 이진 검색 트리입니다. 이는 트리가 항상 균형을 유지하므로 트리의 높이가 노드 수에 대해 로그 적이라는 것을 보장합니다. 이 속성은 AVL 트리가 검색, 삽입 및 삭제 작업을 빠르게 수행할 수 있도록 보장하며, 최악의 경우 시간 복잡도는 노드 수에 대해 O(log n)입니다. FastAVLTree는 Python에서 AVL 트리의 빠르고 메모리 ..
2023.03.22 -
Python) 생존 분석 이해해보기 (KMF, LOG RANK TEST, CoxPH, AFT)
현재 다루고자 하는 데이터의 성격이 중도절단된 형태의 데이터이고, 생존 분석의 성격을 가지고 있는 것 같아, 내용들에 대해서 정리해보려고 한다. 생존 분석(Survival Analysis)은 관심 있는 사건이 발생할 때까지 예상되는 기간을 조사하는 데, 널리 사용되는 통계적 방법입니다. 의학 환자의 생존 시간 분석 공학 신뢰성 분석 고장 시간 분석 경제 지속 시간 분석 HR 직원의 참여, 유지 및 만족도를 이해하고 통찰력을 제공 성취자의 직원 참여 및 유지 보고서에 따르면 2021년에 새로운 일자리를 찾을 계획인 근로자의 52%와 31개국 3만 명 이상의 근로자가 참여한 최근 설문조사에 따르면 직원의 40%가 직장을 그만둘 생각을 하고 있는 것으로 나타났다고 합니다.. Forbes는 이러한 추세를 "Tu..
2023.02.21 -
python) metaflow 파이썬 스크립트에서 실행해보기
metaflow를 이용해서 python script를 실행하는 방법에 대해서 공유 subprocess를 실행하고, 대기 상태를 건 다음에 다음 flow를 실행하게 해 봤다. import subprocess import time print("first") p = subprocess.Popen(['python', './metaflow/tutorials/02-statistics/stats.py','run']) while p.poll() is None: print('.', end='', flush=True) time.sleep(1) print('returncode', p.returncode) print("second") p = subprocess.Popen(['python', './metaflow/tutoria..
2023.02.10 -
Python) AutoML 라이브러리 정리
자동 라이브러리 패키지 목록들 정리해보기 2023년 2월 8일 기준 PyCaret H2O AutoML TPOT Auto-sklearn FLAML EvalML AutoKeras Auto-ViML AutoGluon MLBox 참고 https://moez-62905.medium.com/top-automl-python-libraries-in-2022-2d306cf7acf0 Top AutoML Python libraries in 2022 A List of Python AutoML libraries moez-62905.medium.com https://www.analyticsinsight.net/top-10-automl-libraries-for-implementing-in-your-machine-learning-p..
2023.02.08