본문 바로가기

전체 글

(41)
[데이터시각화] 시계열 그래프 위에 결측정보 text로 겹치지 않게 표시하기 시계열 데이터를 다루다가 데이터가 지속적으로 수집되지 않고 중간 중간 결측이 발생하고 있음이 발견되었다. 결측이 발생하게 되면 모델 학습과 운영에 있어서 크리티컬한 문제기 때문에 결측을 채우는 것이 맞는지, 결측을 어떻게 채워야 하는지, 모든 값에 대해서 채우는 것이 맞는지 고민이 필요하다. 결측에 대해서 단순히 전체 데이터의 결측 개수나 비율을 계산하여 판단할 수도 있겠지만, 시계열 데이터에서는 데이터의 연속성이 중요하기 때문에 데이터의 결측이 연속적으로 얼마나 지속되었는지 살펴 볼 필요가 있다. 그래서 결측에 대해 직관적으로 살펴보기 위해 시계열 그래프를 그려 살펴보고자 했고, 결측이 얼마나 지속되었는지에 따라 결측 보간방법을 다르게 하기 위해 특정 시간 이상 결측이 지속되는 경우는 따로 표시했다. ..
[LLM] Fine-tuning시 early stopping 적용하기 1. Early Stopping 사용 배경 LLM 모델을 fine-tuning 하는 과정에서 loss가 줄어들다가 다시 증가해서 2 epoch가 모두 돌아갔을 때 오히려 성능이 떨어지고 있었다. 이럴 때, 기존 딥러닝 모델 학습 시 early stopping을 콜백 함수를 넣어 지정한 early_stopping_patience 가 지나면 학습을 멈추게 했었는데 사전학습된 모델을 불러와 fine-tuning할 때도 해당 기능을 쓸 수 있는지 궁금했다. LLM 모델을 fine-tuning할 때 쉽게 사용하는 클래스가 허깅페이스의 SFTTrainer와 Trainer 클래스인데 Trainer 클래스에서는 EarlyStoppingCallback 함수를 지원하지만 SFTTrainer에서는 지원하지 않는다. 2. T..
[SQL] 프로그래머스 고득점 KIT GROUP BY 문제 정답 즐겨찾기가 가장 많은 식당 정보 출력하기 SELECT B.FOOD_TYPE, B.REST_ID, B.REST_NAME, B.FAVORITES FROM ( SELECT FOOD_TYPE, MAX(FAVORITES) AS MAX_FAVORITE FROM REST_INFO GROUP BY FOOD_TYPE ) A INNER JOIN REST_INFO B ON A.FOOD_TYPE = B.FOOD_TYPE AND A.MAX_FAVORITE = B.FAVORITES ORDER BY FOOD_TYPE DESC; 조건에 맞는 사용자와 총 거래금액 조회하기 SELECT B.USER_ID, B.NICKNAME, A.PRICE_SUM FROM ( SELECT WRITER_ID, SUM(PRICE) AS PRICE_SUM ..