Blame view

offline_tasks/LATEST_UPDATES.md 3.72 KB
db578127   tangwang   offline tasks: me...
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
  # 最新更新 (2025-10-17)
  
  ## 🎉 本次更新内容
  
  ### 1. ✅ ES向量相似度 + on_sell_days_boost提权
  
  #### 功能
  - 基于Elasticsearch向量计算相似度(名称向量 + 图片向量)
  - 自动应用 `on_sell_days_boost` 提权(0.9~1.1)
  - 无需任何命令行参数,开箱即用
  
  #### 使用
  ```bash
  python scripts/i2i_content_similar.py
  ```
  
  ### 2. ✅ 代码规范:统一使用 logger
  
  #### 变更
  - 移除所有 `print` 语句
  - 统一使用 `logger` 记录日志
  - 更好的日志级别控制
  
  ### 3. ✅ run.sh 内存监控
  
  #### 功能
  - **25GB警告**: 打印警告日志,继续运行
  - **30GB终止**: 强制kill进程,防止OOM
  - **每10秒检查**: 实时监控内存使用
  - **详细日志**: `logs/memory_monitor.log`
  
  #### 使用
  ```bash
  ./run.sh
  ```
  
  ## 📋 快速开始
  
  ### 1. 测试ES连接和向量
  ```bash
  python scripts/test_es_connection.py
  ```
  
  ### 2. 测试内存监控
  ```bash
  ./test_memory_monitor.sh
  ```
  
  ### 3. 运行所有任务(含监控)
  ```bash
  ./run.sh
  ```
  
  ### 4. 查看监控日志
  ```bash
  tail -f logs/memory_monitor.log
  ```
  
  ## 📊 生成的索引
  
  | 索引文件 | Redis Key | 提权 | TTL |
  |---------|-----------|------|-----|
  | `i2i_content_name_YYYYMMDD.txt` | `item:similar:content_name:{id}` | ✅ | 30天 |
  | `i2i_content_pic_YYYYMMDD.txt` | `item:similar:content_pic:{id}` | ✅ | 30天 |
  
  ## 📚 文档
  
  | 文档 | 说明 |
  |------|------|
  | `QUICKSTART_NEW.md` | 5分钟快速开始 |
  | `ES_VECTOR_SIMILARITY.md` | ES向量技术详解 |
  | `RUN_SCRIPT_GUIDE.md` | 运行脚本使用指南 |
  | `MEMORY_MONITORING_UPDATE.md` | 内存监控详细说明 |
  | `FINAL_SUMMARY.md` | 完整更新总结 |
  
  ## 🔍 关键特性
  
  ### ES向量相似度
  ```python
  # 自动应用提权
  base_score = knn_result['_score']
  boost = knn_result['on_sell_days_boost']  # 0.9~1.1
  final_score = base_score * boost
  ```
  
  ### 内存监控
  ```bash
  # 自动监控每个任务
  python3 run_all.py &
  PID=$!
  check_memory $PID &  # 后台监控
  
  # 日志输出
  [2025-10-17 15:20:15] ⚠️  内存警告!当前使用: 26.45GB (>= 25GB)
  [2025-10-17 15:24:45] ❌ 内存超限!当前使用: 31.20GB, 强制终止
  ```
  
  ## ⚠️ 重要说明
  
  ### 向量相似度
  - ✅ 分数已包含 `on_sell_days_boost` 提权
  - ✅ 输出到文件和Redis的都是最终分数
  - ✅ 应用层无需再次应用提权
  
  ### 内存监控
  - ⚠️ 默认阈值:25GB警告,30GB终止
  - ⚠️ 可在 `run.sh` 中修改阈值
  - ⚠️ 监控日志保存在 `logs/memory_monitor.log`
  
  ### run_all.py 简化
  - ❌ 移除了所有 `--only-*`, `--skip-*` 参数
  - ✅ 只保留 `--debug` 参数
  - ✅ 配置集中在 `offline_config.py`
  
  ## 🚀 一键运行
  
  ```bash
  # 完整流程(含内存监控)
  cd /home/tw/recommendation/offline_tasks
  ./run.sh
  
  # 输出:
  # ======================================================================
  # 开始运行离线任务 - 2025-10-17 14:00:00
  # 内存监控: 警告阈值=25GB, 强制终止阈值=30GB
  # ======================================================================
  # 
  # >>> 步骤1: 调试模式运行(小数据量)
  # ✓ 调试模式完成
  # 
  # >>> 步骤2: 生产模式运行(大数据量)
  # ✓ 生产模式完成
  # 
  # >>> 步骤3: 加载到Redis
  # ✓ Redis加载完成
  # 
  # ======================================================================
  # 所有任务完成 - 2025-10-17 16:30:00
  # ======================================================================
  ```
  
  ## 🎯 核心改进
  
  1. **更智能**: ES向量 + 上架天数提权
  2. **更简单**: 无需参数,一键运行
  3. **更安全**: 内存监控保护系统
  4. **更规范**: 统一使用logger
  5. **更完整**: 详细文档和测试工具
  
  ---
  
  **更新日期**: 2025-10-17  
  **版本**: v2.1  
  **状态**: ✅ 已完成,可投入使用