feat: enhance model training and deployment scripts with time-weighted sampling
- Updated `train_model.py` and `train_mlx_model.py` to include a time weight decay parameter for improved sample weighting during training. - Modified dataset generation to incorporate sample weights based on time decay, enhancing model performance. - Adjusted deployment scripts to support new backend options and improved error handling for model file transfers. - Added new entries to the training log for better tracking of model performance metrics over time. - Included ONNX model export functionality in the MLX filter for compatibility with Linux servers.
This commit is contained in:
@@ -1,10 +1,10 @@
|
||||
#!/usr/bin/env bash
|
||||
# 맥미니에서 전체 학습 파이프라인을 실행하고 LXC로 배포한다.
|
||||
# 사용법: bash scripts/train_and_deploy.sh [LXC_HOST] [LXC_MODELS_PATH]
|
||||
# 사용법: bash scripts/train_and_deploy.sh [mlx|lgbm]
|
||||
#
|
||||
# 예시:
|
||||
# bash scripts/train_and_deploy.sh
|
||||
# bash scripts/train_and_deploy.sh root@10.1.10.24 /root/cointrader/models
|
||||
# bash scripts/train_and_deploy.sh # LightGBM (기본값)
|
||||
# bash scripts/train_and_deploy.sh mlx # MLX GPU 학습
|
||||
|
||||
set -euo pipefail
|
||||
|
||||
@@ -19,37 +19,35 @@ else
|
||||
echo "경고: 가상환경을 찾을 수 없습니다 ($VENV_PATH). 시스템 Python을 사용합니다." >&2
|
||||
fi
|
||||
|
||||
LXC_HOST="${1:-root@10.1.10.24}"
|
||||
LXC_MODELS_PATH="${2:-/root/cointrader/models}"
|
||||
BACKEND="${1:-lgbm}"
|
||||
|
||||
cd "$PROJECT_ROOT"
|
||||
|
||||
echo "=== [1/3] 데이터 수집 (XRP + BTC + ETH 3심볼) ==="
|
||||
echo "=== [1/3] 데이터 수집 (XRP + BTC + ETH 3심볼, 1년치) ==="
|
||||
python scripts/fetch_history.py \
|
||||
--symbols XRPUSDT BTCUSDT ETHUSDT \
|
||||
--interval 1m \
|
||||
--days 90 \
|
||||
--days 365 \
|
||||
--output data/xrpusdt_1m.parquet
|
||||
# 결과: data/combined_1m.parquet (타임스탬프 기준 병합)
|
||||
|
||||
echo ""
|
||||
echo "=== [2/3] 모델 학습 (21개 피처: XRP 13 + BTC/ETH 상관관계 8) ==="
|
||||
# TRAIN_BACKEND=mlx 로 설정하면 Apple Silicon GPU(Metal)를 사용한다 (기본: lgbm)
|
||||
BACKEND="${TRAIN_BACKEND:-lgbm}"
|
||||
DECAY="${TIME_WEIGHT_DECAY:-2.0}"
|
||||
if [ "$BACKEND" = "mlx" ]; then
|
||||
echo " 백엔드: MLX (Apple Silicon GPU)"
|
||||
python scripts/train_mlx_model.py --data data/combined_1m.parquet
|
||||
echo " 백엔드: MLX (Apple Silicon GPU), decay=${DECAY}"
|
||||
python scripts/train_mlx_model.py --data data/combined_1m.parquet --decay "$DECAY"
|
||||
else
|
||||
echo " 백엔드: LightGBM (CPU)"
|
||||
python scripts/train_model.py --data data/combined_1m.parquet
|
||||
echo " 백엔드: LightGBM (CPU), decay=${DECAY}"
|
||||
python scripts/train_model.py --data data/combined_1m.parquet --decay "$DECAY"
|
||||
fi
|
||||
|
||||
echo ""
|
||||
echo "=== [3/3] LXC 배포 ==="
|
||||
bash scripts/deploy_model.sh "$LXC_HOST" "$LXC_MODELS_PATH"
|
||||
bash scripts/deploy_model.sh "$BACKEND"
|
||||
|
||||
echo ""
|
||||
echo "=== 전체 파이프라인 완료 ==="
|
||||
echo ""
|
||||
echo "봇 재시작이 필요하면:"
|
||||
echo " ssh ${LXC_HOST} 'cd /root/cointrader && docker compose restart cointrader'"
|
||||
echo " ssh root@10.1.10.24 'cd /root/cointrader && docker compose restart cointrader'"
|
||||
|
||||
Reference in New Issue
Block a user