Page MenuHomePhabricator

Merge tone-check pipeline DAGs into a single DAG for simplified orchestration
Closed, ResolvedPublic

Description

We currently have three separate DAGs for the tone check pipeline: tone_check_data_generation_dag, tone_check_copy_hdfs_to_pvc_dag, and tone_check_retrain_dag. In T406302, these DAGs are orchestrated into a single pipeline using the TriggerDagRunOperator. However, this setup requires all three DAGs to be unpaused and active for the pipeline to run, which complicates management and triggering.

To simplify the workflow and improve manageability, the team proposed merging the three DAGs into a single DAG called tone_check_training_dag. This change will allow us to manage the entire pipeline as a single unit, with all tasks and dependencies defined in one place, making scheduling and monitoring more straightforward.

Details

Related Changes in GitLab:
TitleReferenceAuthorSource BranchDest Branch
Merge all tone-check pipeline DAGs into a single DAGrepos/data-engineering/airflow-dags!1749kevinbaziramerge_tone_check_dagsmain
Customize query in GitLab

Related Objects

Event Timeline

I have run the tone_check_training_dag in staging, and the following tasks succeeded: generate_training_data, split_training_data, and copy_hdfs_to_pvc. The train_tone_check task running on CPU failed with an OOM issue shown in the logs below:

1tone-check-training-dag-train-tone-check-vyuozrsz
2 ▶ Log message source details
3[2025-10-14, 09:51:09 UTC] {local_task_job_runner.py:123} ▶ Pre task execution logs
4[2025-10-14, 09:51:09 UTC] {crypto.py:82} WARNING - empty cryptography key - values will not be stored encrypted.
5[2025-10-14, 09:51:09 UTC] {pod.py:1276} INFO - Building pod train-tone-check-xv60x59 with labels: {'dag_id': 'tone_check_training_dag', 'task_id': 'train_tone_check', 'run_id': 'manual__2025-10-14T060736.9821150000-fbf3b9f8e', 'kubernetes_pod_operator': 'True', 'try_number': '1'}
6[2025-10-14, 09:51:09 UTC] {pod.py:573} INFO - Found matching pod train-tone-check-xv60x59 with labels {'airflow_kpo_in_cluster': 'True', 'airflow_version': '2.10.5', 'app': 'airflow', 'component': 'task-pod', 'dag_id': 'tone_check_training_dag', 'kubernetes_pod_operator': 'True', 'release': 'dev-kevinbazira', 'routed_via': 'dev-kevinbazira', 'run_id': 'manual__2025-10-14T060736.9821150000-fbf3b9f8e', 'task_id': 'train_tone_check', 'try_number': '1'}
7[2025-10-14, 09:51:09 UTC] {pod.py:574} INFO - `try_number` of task_instance: 1
8[2025-10-14, 09:51:09 UTC] {pod.py:575} INFO - `try_number` of pod: 1
9[2025-10-14, 09:51:09 UTC] {pod_manager.py:390} INFO - The Pod has an Event: Successfully assigned airflow-dev/train-tone-check-xv60x59 to dse-k8s-worker1009.eqiad.wmnet from None
10[2025-10-14, 09:51:09 UTC] {pod_manager.py:410} ▶ Waiting until 120s to get the POD scheduled...
11[2025-10-14, 09:51:24 UTC] {pod_manager.py:536} INFO - [base] Ensuring output model directory exists
12[2025-10-14, 09:51:24 UTC] {pod_manager.py:536} INFO - [base] + echo 'Ensuring output model directory exists'
13[2025-10-14, 09:51:24 UTC] {pod_manager.py:536} INFO - [base] + mkdir -p /mnt/model-training/tone_check/20251014T060736/output_model
14[2025-10-14, 09:51:24 UTC] {pod_manager.py:536} INFO - [base] Verifying input data exists on PVC
15[2025-10-14, 09:51:24 UTC] {pod_manager.py:536} INFO - [base] + echo 'Verifying input data exists on PVC'
16[2025-10-14, 09:51:24 UTC] {pod_manager.py:536} INFO - [base] + ls -lR /mnt/model-training/tone_check/20251014T060736
17[2025-10-14, 09:51:24 UTC] {pod_manager.py:536} INFO - [base] /mnt/model-training/tone_check/20251014T060736:
18[2025-10-14, 09:51:24 UTC] {pod_manager.py:536} INFO - [base] total 20
19[2025-10-14, 09:51:24 UTC] {pod_manager.py:536} INFO - [base] drwxrwsr-x 2 runuser runuser 4096 Oct 14 09:50 full_model_ready_data.parquet
20[2025-10-14, 09:51:24 UTC] {pod_manager.py:536} INFO - [base] drwxr-sr-x 2 somebody runuser 4096 Oct 14 09:51 output_model
21[2025-10-14, 09:51:24 UTC] {pod_manager.py:536} INFO - [base] drwxrwsr-x 2 runuser runuser 4096 Oct 14 09:50 test_data.parquet
22[2025-10-14, 09:51:24 UTC] {pod_manager.py:536} INFO - [base] drwxrwsr-x 2 runuser runuser 4096 Oct 14 09:50 train_data.parquet
23[2025-10-14, 09:51:24 UTC] {pod_manager.py:536} INFO - [base] drwxrwsr-x 2 runuser runuser 4096 Oct 14 09:50 validation_data.parquet
24[2025-10-14, 09:51:24 UTC] {pod_manager.py:536} INFO - [base] /mnt/model-training/tone_check/20251014T060736/full_model_ready_data.parquet:
25[2025-10-14, 09:51:24 UTC] {pod_manager.py:536} INFO - [base] total 835360
26[2025-10-14, 09:51:24 UTC] {pod_manager.py:536} INFO - [base] -rw-rw---- 1 runuser runuser 0 Oct 14 09:50 _SUCCESS
27[2025-10-14, 09:51:24 UTC] {pod_manager.py:536} INFO - [base] -rw-rw---- 1 runuser runuser 50930491 Oct 14 09:50 part-00000-5838adb4-2e7c-43dc-859a-7e404686a61c-c000.snappy.parquet
28[2025-10-14, 09:51:24 UTC] {pod_manager.py:536} INFO - [base] -rw-rw---- 1 runuser runuser 50389962 Oct 14 09:50 part-00001-5838adb4-2e7c-43dc-859a-7e404686a61c-c000.snappy.parquet
29[2025-10-14, 09:51:24 UTC] {pod_manager.py:536} INFO - [base] -rw-rw---- 1 runuser runuser 52493037 Oct 14 09:50 part-00002-5838adb4-2e7c-43dc-859a-7e404686a61c-c000.snappy.parquet
30[2025-10-14, 09:51:24 UTC] {pod_manager.py:536} INFO - [base] -rw-rw---- 1 runuser runuser 54446932 Oct 14 09:50 part-00003-5838adb4-2e7c-43dc-859a-7e404686a61c-c000.snappy.parquet
31[2025-10-14, 09:51:24 UTC] {pod_manager.py:536} INFO - [base] -rw-rw---- 1 runuser runuser 56800742 Oct 14 09:50 part-00004-5838adb4-2e7c-43dc-859a-7e404686a61c-c000.snappy.parquet
32[2025-10-14, 09:51:24 UTC] {pod_manager.py:536} INFO - [base] -rw-rw---- 1 runuser runuser 58944135 Oct 14 09:50 part-00005-5838adb4-2e7c-43dc-859a-7e404686a61c-c000.snappy.parquet
33[2025-10-14, 09:51:24 UTC] {pod_manager.py:536} INFO - [base] -rw-rw---- 1 runuser runuser 57057906 Oct 14 09:50 part-00006-5838adb4-2e7c-43dc-859a-7e404686a61c-c000.snappy.parquet
34[2025-10-14, 09:51:24 UTC] {pod_manager.py:536} INFO - [base] -rw-rw---- 1 runuser runuser 57271362 Oct 14 09:50 part-00007-5838adb4-2e7c-43dc-859a-7e404686a61c-c000.snappy.parquet
35[2025-10-14, 09:51:24 UTC] {pod_manager.py:536} INFO - [base] -rw-rw---- 1 runuser runuser 56664915 Oct 14 09:50 part-00008-5838adb4-2e7c-43dc-859a-7e404686a61c-c000.snappy.parquet
36[2025-10-14, 09:51:24 UTC] {pod_manager.py:536} INFO - [base] -rw-rw---- 1 runuser runuser 55237851 Oct 14 09:50 part-00009-5838adb4-2e7c-43dc-859a-7e404686a61c-c000.snappy.parquet
37[2025-10-14, 09:51:24 UTC] {pod_manager.py:536} INFO - [base] -rw-rw---- 1 runuser runuser 53890308 Oct 14 09:50 part-00010-5838adb4-2e7c-43dc-859a-7e404686a61c-c000.snappy.parquet
38[2025-10-14, 09:51:24 UTC] {pod_manager.py:536} INFO - [base] -rw-rw---- 1 runuser runuser 52640163 Oct 14 09:50 part-00011-5838adb4-2e7c-43dc-859a-7e404686a61c-c000.snappy.parquet
39[2025-10-14, 09:51:24 UTC] {pod_manager.py:536} INFO - [base] -rw-rw---- 1 runuser runuser 51851038 Oct 14 09:50 part-00012-5838adb4-2e7c-43dc-859a-7e404686a61c-c000.snappy.parquet
40[2025-10-14, 09:51:24 UTC] {pod_manager.py:536} INFO - [base] -rw-rw---- 1 runuser runuser 49537542 Oct 14 09:50 part-00013-5838adb4-2e7c-43dc-859a-7e404686a61c-c000.snappy.parquet
41[2025-10-14, 09:51:24 UTC] {pod_manager.py:536} INFO - [base] -rw-rw---- 1 runuser runuser 48025610 Oct 14 09:50 part-00014-5838adb4-2e7c-43dc-859a-7e404686a61c-c000.snappy.parquet
42[2025-10-14, 09:51:24 UTC] {pod_manager.py:536} INFO - [base] -rw-rw---- 1 runuser runuser 49192284 Oct 14 09:50 part-00015-5838adb4-2e7c-43dc-859a-7e404686a61c-c000.snappy.parquet
43[2025-10-14, 09:51:24 UTC] {pod_manager.py:536} INFO - [base] /mnt/model-training/tone_check/20251014T060736/output_model:
44[2025-10-14, 09:51:24 UTC] {pod_manager.py:536} INFO - [base] total 0
45[2025-10-14, 09:51:24 UTC] {pod_manager.py:536} INFO - [base] /mnt/model-training/tone_check/20251014T060736/test_data.parquet:
46[2025-10-14, 09:51:24 UTC] {pod_manager.py:536} INFO - [base] total 83804
47[2025-10-14, 09:51:24 UTC] {pod_manager.py:536} INFO - [base] -rw-rw---- 1 runuser runuser 0 Oct 14 09:50 _SUCCESS
48[2025-10-14, 09:51:24 UTC] {pod_manager.py:536} INFO - [base] -rw-rw---- 1 runuser runuser 42567160 Oct 14 09:50 part-00000-c4bbe68a-6ac4-4c4a-b1d7-bb94d8dd26f2-c000.snappy.parquet
49[2025-10-14, 09:51:24 UTC] {pod_manager.py:536} INFO - [base] -rw-rw---- 1 runuser runuser 43245337 Oct 14 09:50 part-00001-c4bbe68a-6ac4-4c4a-b1d7-bb94d8dd26f2-c000.snappy.parquet
50[2025-10-14, 09:51:24 UTC] {pod_manager.py:536} INFO - [base] /mnt/model-training/tone_check/20251014T060736/train_data.parquet:
51[2025-10-14, 09:51:24 UTC] {pod_manager.py:536} INFO - [base] total 668588
52[2025-10-14, 09:51:24 UTC] {pod_manager.py:536} INFO - [base] -rw-rw---- 1 runuser runuser 0 Oct 14 09:50 _SUCCESS
53[2025-10-14, 09:51:24 UTC] {pod_manager.py:536} INFO - [base] -rw-rw---- 1 runuser runuser 86594416 Oct 14 09:50 part-00000-7574e267-50dd-4353-93e8-dd8705ce041b-c000.snappy.parquet
54[2025-10-14, 09:51:24 UTC] {pod_manager.py:536} INFO - [base] -rw-rw---- 1 runuser runuser 85139077 Oct 14 09:50 part-00001-7574e267-50dd-4353-93e8-dd8705ce041b-c000.snappy.parquet
55[2025-10-14, 09:51:24 UTC] {pod_manager.py:536} INFO - [base] -rw-rw---- 1 runuser runuser 85994779 Oct 14 09:50 part-00002-7574e267-50dd-4353-93e8-dd8705ce041b-c000.snappy.parquet
56[2025-10-14, 09:51:24 UTC] {pod_manager.py:536} INFO - [base] -rw-rw---- 1 runuser runuser 84652071 Oct 14 09:50 part-00003-7574e267-50dd-4353-93e8-dd8705ce041b-c000.snappy.parquet
57[2025-10-14, 09:51:24 UTC] {pod_manager.py:536} INFO - [base] -rw-rw---- 1 runuser runuser 86368470 Oct 14 09:50 part-00004-7574e267-50dd-4353-93e8-dd8705ce041b-c000.snappy.parquet
58[2025-10-14, 09:51:24 UTC] {pod_manager.py:536} INFO - [base] -rw-rw---- 1 runuser runuser 85018120 Oct 14 09:50 part-00005-7574e267-50dd-4353-93e8-dd8705ce041b-c000.snappy.parquet
59[2025-10-14, 09:51:24 UTC] {pod_manager.py:536} INFO - [base] -rw-rw---- 1 runuser runuser 85316168 Oct 14 09:50 part-00006-7574e267-50dd-4353-93e8-dd8705ce041b-c000.snappy.parquet
60[2025-10-14, 09:51:24 UTC] {pod_manager.py:536} INFO - [base] -rw-rw---- 1 runuser runuser 85531993 Oct 14 09:50 part-00007-7574e267-50dd-4353-93e8-dd8705ce041b-c000.snappy.parquet
61[2025-10-14, 09:51:24 UTC] {pod_manager.py:536} INFO - [base] /mnt/model-training/tone_check/20251014T060736/validation_data.parquet:
62[2025-10-14, 09:51:24 UTC] {pod_manager.py:536} INFO - [base] total 83148
63[2025-10-14, 09:51:24 UTC] {pod_manager.py:536} INFO - [base] -rw-rw---- 1 runuser runuser 0 Oct 14 09:50 _SUCCESS
64[2025-10-14, 09:51:24 UTC] {pod_manager.py:536} INFO - [base] -rw-rw---- 1 runuser runuser 42156457 Oct 14 09:50 part-00000-9884768c-398a-47eb-9889-2d043f37edc1-c000.snappy.parquet
65[2025-10-14, 09:51:24 UTC] {pod_manager.py:536} INFO - [base] -rw-rw---- 1 runuser runuser 42979476 Oct 14 09:50 part-00001-9884768c-398a-47eb-9889-2d043f37edc1-c000.snappy.parquet
66[2025-10-14, 09:51:24 UTC] {pod_manager.py:536} INFO - [base] + echo 'Starting model training'
67[2025-10-14, 09:51:24 UTC] {pod_manager.py:536} INFO - [base] Starting model training
68[2025-10-14, 09:51:25 UTC] {pod_manager.py:536} INFO - [base] + python3 training/tone_check/retrain/retrain.py --train-data-path '/mnt/model-training/tone_check/20251014T060736/train_data.parquet/*.parquet' --validation-data-path '/mnt/model-training/tone_check/20251014T060736/validation_data.parquet/*.parquet' --output-model-path /mnt/model-training/tone_check/20251014T060736/output_model --base-model-path /mnt/model-training/training/tone_check/base_model
69[2025-10-14, 09:51:25 UTC] {pod_manager.py:536} INFO - [base] INFO:root:Tone-Check Retraining
70[2025-10-14, 09:51:25 UTC] {pod_manager.py:536} INFO - [base] INFO:root:DEVICE: cpu
71[2025-10-14, 09:51:25 UTC] {pod_manager.py:536} INFO - [base] INFO:root:Parsed arguments: {'train_data_path': '/mnt/model-training/tone_check/20251014T060736/train_data.parquet/*.parquet', 'validation_data_path': '/mnt/model-training/tone_check/20251014T060736/validation_data.parquet/*.parquet', 'output_model_path': '/mnt/model-training/tone_check/20251014T060736/output_model', 'base_model_path': '/mnt/model-training/training/tone_check/base_model', 'num_label': 2, 'max_len': 512, 'learning_rate': 2e-06, 'weight_decay': 0.01, 'batch_size': 16, 'num_epoch': 5, 'metric_for_best_model': 'eval_loss', 'eval_strategy': 'epoch', 'save_strategy': 'epoch'}
72[2025-10-14, 09:51:25 UTC] {pod_manager.py:536} INFO - [base] INFO:root:Loading training data from: /mnt/model-training/tone_check/20251014T060736/train_data.parquet/*.parquet
73[2025-10-14, 09:51:54 UTC] {pod_manager.py:536} INFO - [base] INFO:root:Loading validation data from: /mnt/model-training/tone_check/20251014T060736/validation_data.parquet/*.parquet
74[2025-10-14, 09:52:18 UTC] {pod_manager.py:536} INFO - [base]
75Generating train split: 0 examples [00:00, ? examples/s]
76Generating train split: 21206 examples [00:00, 41569.39 examples/s]
77Generating train split: 42412 examples [00:01, 42316.46 examples/s]
78Generating train split: 63618 examples [00:01, 42860.46 examples/s]
79Generating train split: 84823 examples [00:01, 43479.90 examples/s]
80Generating train split: 106027 examples [00:02, 43158.92 examples/s]
81Generating train split: 127230 examples [00:02, 43407.28 examples/s]
82Generating train split: 148438 examples [00:03, 43406.46 examples/s]
83Generating train split: 169645 examples [00:03, 42951.37 examples/s]
84Generating train split: 169645 examples [00:03, 43010.25 examples/s]
85[2025-10-14, 09:52:18 UTC] {pod_manager.py:536} INFO - [base]
86Generating validation split: 0 examples [00:00, ? examples/s]
87Generating validation split: 10589 examples [00:00, 42558.20 examples/s]
88Generating validation split: 21174 examples [00:00, 41008.84 examples/s]
89Generating validation split: 21174 examples [00:00, 41146.82 examples/s]
90[2025-10-14, 09:52:18 UTC] {pod_manager.py:536} INFO - [base] INFO:root:Sample from training set:
91[2025-10-14, 09:52:18 UTC] {pod_manager.py:536} INFO - [base] {'input': 'en[SEP]Keyence[SEP]() is a company which produces sensors, barcode readers, vision systems and measuring equipment.\n\n\n\nKeyence Corporation is a global company with a network of 16 international organizations that specializes in factory automation. Founded in Japan in 1974, Keyence Corporation now earns over 2 billion dollars in yearly sales and employs nearly 3000 employees worldwide. \n\n \n\n\nKeyence is a direct sales company; every Keyence salesperson enrolls in a 6 month training program to learn the products and practice solution-based sales. Salespeople do not manage distributors. Instead, they go directly to customers with a demonstration case specifically built to solve applications on-the-spot.\n\nKeyence\'s sensors, vision systems, and high definition microscopes are part of the manufacturing and research processes in a variety of industries, including the electronic, semiconductor, automotive, food and packaging, biotechnology, and pharmaceutical industries. Keyence\'s customers include companies ranging from the largest Fortune 500 manufacturers to niche suppliers whose goal is to improve the quality and efficiency of their automated manufacturing.\n\n\t\nKeyence was named one of BusinessWeeks “1000 Best Valued Companies.” \nKeyence Japan is consistently listed in the Nihon Keizai Shimbun\'s yearly ranking of the "Top Ten Most Excellent Companies in Japan." Keyence is known as one of the best "pay" companies in Japan. The average annual wage for all full-time employees (average age: 31.9 years old) in FY2006 was JPY13,860,000 (US$117,348 as of March 2007).\nA 350-million-year-old ammonite fossil is displayed at the entrance of the Japanese headquarters; other fossils of long-dead creatures align the corridors and meeting rooms. Relics are supposed to convey a tacit message to employees: keep aiming high or you\'ll become a fossil.\nTakemitsu Takizaki founded Keyence Corporation in 1974 under the original name of "Lead Electric." \nTakizaki is listed as the 428th richest person in the world in 2008 by Forbes with a net worth of US$2.7 billion.\nKeyence is fabless (fabrication-less): Although Keyence is a manufacturer; it specializes solely in product planning and development and does not manufacture the final products. Keyence products are manufactured at qualified contract manufacturing companies.\nStephen Way, Senior Vice-President and Global Portfolio Manager at AGF Funds Inc.: "Keyence has a proven ability to deliver innovative products that customers want and this is driving strong pricing and profitability." \n The Financial Times: “Keyence means little to most people; to engineers, however, they mean a great deal.”\n\n\n\nKeyence manufactures a broad range of products, from photoelectric and proximity sensors to measuring instruments for inspection lines to high precision microscopy devices used in research institutes. These products are used by more than 80,000 customers globally. \n\nProducts are shipped from Keyence\'s stocking network centers in Japan, U.S. (Chicago), the U.K., Germany, France, Thailand, Malaysia, Singapore and South Korea or from 148 agents in 31 countries on the same day of receipt of an order. All products in the catalog are normally in stock.\n\n \n\nKeyence\'s customers in a variety of industries and manufacturing environments use their sensor products to detect the presence or absence of an entire part or just a particular feature of that part. Measurement products are used to determine the size or magnitude of a particular part or feature with great accuracy. As more and more factories seek to remain competitive by automating their processes, the market for the sensors and measurement products is huge and growing. New product releases consistently account for 30% of Keyence\'s annual sales.\nFiber Optic Sensors (FS Series)\nPhotoelectric Sensors (PX Series)\nLaser Displacement Sensor (LK Series)\nSafety Light Curtain (SL Series)\n\n \n\nVision system products are camera systems used on production lines to differentiate and measure multiple product features. Keyence\'s customers use their camera systems to perform quality control inspections that are too complicated for ordinary sensors. Their laser marking instruments use a high intensity laser to permanently and accurately mark shapes or characters onto surfaces such as metals or plastics at high speeds.\n\nMachine Vision (CV Series)\nLaser Marker (ML Series)\nLaser Marker (MD Series)\n\n\n\nMicroscopes are the only products offered by Keyence America for use away from a production line. While many of the customers for their microscopes are manufacturers, these microscopes are more typically used for research and development or failure analysis applications. Keyence\'s digital microscopes are capable of displaying a 3D image of the target. The image can also be manipulated or used to make a measurement of the target feature being viewed. Their color laser scanning microscope offers high accuracy with the use of a violet laser. This laser microscope approaches the accuracy and resolution of an SEM microscope at a lower cost and without destroying the target.\n\nDigital Microscope (VHX Series)\nLaser Microscope (VK Series)\n\n\n\n\n\n Keyence Global Home \n Keyence Corporation \n\n\n\n\n\n\n\nde:Keyence\nfr:Keyence\nja:キーエンス', 'label': 1}
92[2025-10-14, 09:52:18 UTC] {pod_manager.py:536} INFO - [base] INFO:root:tokenizer loaded
93[2025-10-14, 09:52:18 UTC] {pod_manager.py:536} INFO - [base] DatasetDict({
94[2025-10-14, 09:52:18 UTC] {pod_manager.py:536} INFO - [base] train: Dataset({
95[2025-10-14, 09:52:18 UTC] {pod_manager.py:536} INFO - [base] features: ['input', 'label'],
96[2025-10-14, 09:52:18 UTC] {pod_manager.py:536} INFO - [base] num_rows: 169645
97[2025-10-14, 09:52:18 UTC] {pod_manager.py:536} INFO - [base] })
98[2025-10-14, 09:52:18 UTC] {pod_manager.py:536} INFO - [base] test: Dataset({
99[2025-10-14, 09:52:18 UTC] {pod_manager.py:536} INFO - [base] features: ['input', 'label'],
100[2025-10-14, 09:52:18 UTC] {pod_manager.py:536} INFO - [base] num_rows: 21174
101[2025-10-14, 09:52:18 UTC] {pod_manager.py:536} INFO - [base] })
102[2025-10-14, 09:54:36 UTC] {pod_manager.py:536} INFO - [base] })
103[2025-10-14, 09:54:52 UTC] {pod_manager.py:536} INFO - [base]
104Map: 0%| | 0/169645 [00:00<?, ? examples/s]
105Map: 1%| | 1000/169645 [00:00<02:28, 1137.16 examples/s]
106Map: 1%| | 2000/169645 [00:01<02:20, 1189.68 examples/s]
107Map: 2%|▏ | 3000/169645 [00:02<02:17, 1215.79 examples/s]
108Map: 2%|▏ | 4000/169645 [00:03<02:19, 1188.13 examples/s]
109Map: 3%|▎ | 5000/169645 [00:04<02:16, 1209.34 examples/s]
110Map: 4%|▎ | 6000/169645 [00:04<02:14, 1220.19 examples/s]
111Map: 4%|▍ | 7000/169645 [00:05<02:11, 1233.40 examples/s]
112Map: 5%|▍ | 8000/169645 [00:06<02:09, 1251.11 examples/s]
113Map: 5%|▌ | 9000/169645 [00:07<02:07, 1264.74 examples/s]
114Map: 6%|▌ | 10000/169645 [00:08<02:02, 1298.53 examples/s]
115Map: 6%|▋ | 11000/169645 [00:08<02:04, 1279.02 examples/s]
116Map: 7%|▋ | 12000/169645 [00:09<02:04, 1266.48 examples/s]
117Map: 8%|▊ | 13000/169645 [00:10<02:03, 1270.39 examples/s]
118Map: 8%|▊ | 14000/169645 [00:11<02:03, 1261.36 examples/s]
119Map: 9%|▉ | 15000/169645 [00:12<02:02, 1263.15 examples/s]
120Map: 9%|▉ | 16000/169645 [00:12<02:07, 1200.56 examples/s]
121Map: 10%|█ | 17000/169645 [00:13<02:04, 1226.06 examples/s]
122Map: 11%|█ | 18000/169645 [00:14<02:03, 1232.75 examples/s]
123Map: 11%|█ | 19000/169645 [00:15<02:00, 1247.81 examples/s]
124Map: 12%|█▏ | 20000/169645 [00:16<01:57, 1270.54 examples/s]
125Map: 12%|█▏ | 21000/169645 [00:16<01:56, 1279.02 examples/s]
126Map: 13%|█▎ | 22000/169645 [00:17<01:55, 1276.82 examples/s]
127Map: 14%|█▎ | 23000/169645 [00:18<01:54, 1285.25 examples/s]
128Map: 14%|█▍ | 24000/169645 [00:19<01:52, 1291.70 examples/s]
129Map: 15%|█▍ | 25000/169645 [00:19<01:52, 1288.87 examples/s]
130Map: 15%|█▌ | 26000/169645 [00:20<01:50, 1295.17 examples/s]
131Map: 16%|█▌ | 27000/169645 [00:21<01:49, 1304.32 examples/s]
132Map: 17%|█▋ | 28000/169645 [00:22<01:49, 1291.09 examples/s]
133Map: 17%|█▋ | 29000/169645 [00:23<01:48, 1291.36 examples/s]
134Map: 18%|█▊ | 30000/169645 [00:23<01:46, 1306.17 examples/s]
135Map: 18%|█▊ | 31000/169645 [00:24<01:54, 1215.06 examples/s]
136Map: 19%|█▉ | 32000/169645 [00:25<01:50, 1249.11 examples/s]
137Map: 19%|█▉ | 33000/169645 [00:26<01:48, 1263.19 examples/s]
138Map: 20%|██ | 34000/169645 [00:26<01:44, 1292.33 examples/s]
139Map: 21%|██ | 35000/169645 [00:27<01:45, 1273.61 examples/s]
140Map: 21%|██ | 36000/169645 [00:28<01:47, 1245.50 examples/s]
141Map: 22%|██▏ | 37000/169645 [00:29<01:45, 1260.46 examples/s]
142Map: 22%|██▏ | 38000/169645 [00:30<01:42, 1284.19 examples/s]
143Map: 23%|██▎ | 39000/169645 [00:30<01:42, 1275.37 examples/s]
144Map: 24%|██▎ | 40000/169645 [00:31<01:42, 1270.58 examples/s]
145Map: 24%|██▍ | 41000/169645 [00:32<01:41, 1267.59 examples/s]
146Map: 25%|██▍ | 42000/169645 [00:33<01:42, 1239.91 examples/s]
147Map: 25%|██▌ | 43000/169645 [00:34<01:41, 1242.92 examples/s]
148Map: 26%|██▌ | 44000/169645 [00:34<01:41, 1238.00 examples/s]
149Map: 27%|██▋ | 45000/169645 [00:35<01:45, 1179.25 examples/s]
150Map: 27%|██▋ | 46000/169645 [00:36<01:44, 1178.52 examples/s]
151Map: 28%|██▊ | 47000/169645 [00:37<01:42, 1201.78 examples/s]
152Map: 28%|██▊ | 48000/169645 [00:38<01:38, 1231.08 examples/s]
153Map: 29%|██▉ | 49000/169645 [00:39<01:37, 1240.77 examples/s]
154Map: 29%|██▉ | 50000/169645 [00:39<01:37, 1230.93 examples/s]
155Map: 30%|███ | 51000/169645 [00:40<01:35, 1248.00 examples/s]
156Map: 31%|███ | 52000/169645 [00:41<01:33, 1261.46 examples/s]
157Map: 31%|███ | 53000/169645 [00:42<01:34, 1234.24 examples/s]
158Map: 32%|███▏ | 54000/169645 [00:43<01:34, 1228.30 examples/s]
159Map: 32%|███▏ | 55000/169645 [00:43<01:31, 1256.69 examples/s]
160Map: 33%|███▎ | 56000/169645 [00:44<01:31, 1247.19 examples/s]
161Map: 34%|███▎ | 57000/169645 [00:45<01:28, 1268.76 examples/s]
162Map: 34%|███▍ | 58000/169645 [00:46<01:27, 1276.75 examples/s]
163Map: 35%|███▍ | 59000/169645 [00:47<01:26, 1279.22 examples/s]
164Map: 35%|███▌ | 60000/169645 [00:47<01:26, 1268.28 examples/s]
165Map: 36%|███▌ | 61000/169645 [00:48<01:27, 1236.79 examples/s]
166Map: 37%|███▋ | 62000/169645 [00:49<01:30, 1190.58 examples/s]
167Map: 37%|███▋ | 63000/169645 [00:50<01:28, 1209.54 examples/s]
168Map: 38%|███▊ | 64000/169645 [00:51<01:26, 1223.68 examples/s]
169Map: 38%|███▊ | 65000/169645 [00:51<01:23, 1250.12 examples/s]
170Map: 39%|███▉ | 66000/169645 [00:52<01:21, 1264.36 examples/s]
171Map: 39%|███▉ | 67000/169645 [00:53<01:21, 1263.43 examples/s]
172Map: 40%|████ | 68000/169645 [00:54<01:21, 1242.42 examples/s]
173Map: 41%|████ | 69000/169645 [00:55<01:19, 1259.22 examples/s]
174Map: 41%|████▏ | 70000/169645 [00:55<01:19, 1248.72 examples/s]
175Map: 42%|████▏ | 71000/169645 [00:56<01:19, 1235.15 examples/s]
176Map: 42%|████▏ | 72000/169645 [00:57<01:19, 1224.75 examples/s]
177Map: 43%|████▎ | 73000/169645 [00:58<01:17, 1247.08 examples/s]
178Map: 44%|████▎ | 74000/169645 [00:59<01:16, 1245.45 examples/s]
179Map: 44%|████▍ | 75000/169645 [00:59<01:14, 1265.96 examples/s]
180Map: 45%|████▍ | 76000/169645 [01:00<01:15, 1246.89 examples/s]
181Map: 45%|████▌ | 77000/169645 [01:01<01:17, 1197.93 examples/s]
182Map: 46%|████▌ | 78000/169645 [01:02<01:14, 1223.32 examples/s]
183Map: 47%|████▋ | 79000/169645 [01:03<01:13, 1239.78 examples/s]
184Map: 47%|████▋ | 80000/169645 [01:04<01:11, 1248.55 examples/s]
185Map: 48%|████▊ | 81000/169645 [01:04<01:11, 1246.16 examples/s]
186Map: 48%|████▊ | 82000/169645 [01:05<01:09, 1267.19 examples/s]
187Map: 49%|████▉ | 83000/169645 [01:06<01:08, 1271.19 examples/s]
188Map: 50%|████▉ | 84000/169645 [01:07<01:07, 1266.06 examples/s]
189Map: 50%|█████ | 85000/169645 [01:07<01:07, 1262.92 examples/s]
190Map: 51%|█████ | 86000/169645 [01:08<01:08, 1217.95 examples/s]
191Map: 51%|█████▏ | 87000/169645 [01:09<01:07, 1228.93 examples/s]
192Map: 52%|█████▏ | 88000/169645 [01:10<01:05, 1239.52 examples/s]
193Map: 52%|█████▏ | 89000/169645 [01:11<01:06, 1211.15 examples/s]
194Map: 53%|█████▎ | 90000/169645 [01:12<01:05, 1210.74 examples/s]
195Map: 54%|█████▎ | 91000/169645 [01:13<01:08, 1149.50 examples/s]
196Map: 54%|█████▍ | 92000/169645 [01:13<01:05, 1186.26 examples/s]
197Map: 55%|█████▍ | 93000/169645 [01:14<01:03, 1214.81 examples/s]
198Map: 55%|█████▌ | 94000/169645 [01:15<01:01, 1222.91 examples/s]
199Map: 56%|█████▌ | 95000/169645 [01:16<01:01, 1222.11 examples/s]
200Map: 57%|█████▋ | 96000/169645 [01:17<01:01, 1202.70 examples/s]
201Map: 57%|█████▋ | 97000/169645 [01:17<01:00, 1209.69 examples/s]
202Map: 58%|█████▊ | 98000/169645 [01:18<00:57, 1238.49 examples/s]
203Map: 58%|█████▊ | 99000/169645 [01:19<00:56, 1245.87 examples/s]
204Map: 59%|█████▉ | 100000/169645 [01:20<00:55, 1246.14 examples/s]
205Map: 60%|█████▉ | 101000/169645 [01:21<00:54, 1262.22 examples/s]
206Map: 60%|██████ | 102000/169645 [01:21<00:55, 1225.76 examples/s]
207Map: 61%|██████ | 103000/169645 [01:22<00:54, 1232.80 examples/s]
208Map: 61%|██████▏ | 104000/169645 [01:23<00:53, 1234.04 examples/s]
209Map: 62%|██████▏ | 105000/169645 [01:24<00:52, 1226.97 examples/s]
210Map: 62%|██████▏ | 106000/169645 [01:25<00:52, 1214.53 examples/s]
211Map: 63%|██████▎ | 107000/169645 [01:26<00:50, 1252.81 examples/s]
212Map: 64%|██████▎ | 108000/169645 [01:26<00:51, 1199.56 examples/s]
213Map: 64%|██████▍ | 109000/169645 [01:27<00:50, 1212.32 examples/s]
214Map: 65%|██████▍ | 110000/169645 [01:28<00:47, 1247.53 examples/s]
215Map: 65%|██████▌ | 111000/169645 [01:29<00:46, 1255.89 examples/s]
216Map: 66%|██████▌ | 112000/169645 [01:30<00:46, 1247.88 examples/s]
217Map: 67%|██████▋ | 113000/169645 [01:30<00:45, 1234.20 examples/s]
218Map: 67%|██████▋ | 114000/169645 [01:31<00:45, 1213.99 examples/s]
219Map: 68%|██████▊ | 115000/169645 [01:32<00:45, 1200.68 examples/s]
220Map: 68%|██████▊ | 116000/169645 [01:33<00:44, 1210.90 examples/s]
221Map: 69%|██████▉ | 117000/169645 [01:34<00:42, 1226.14 examples/s]
222Map: 70%|██████▉ | 118000/169645 [01:34<00:41, 1240.46 examples/s]
223Map: 70%|███████ | 119000/169645 [01:35<00:39, 1268.46 examples/s]
224Map: 71%|███████ | 120000/169645 [01:36<00:39, 1250.77 examples/s]
225Map: 71%|███████▏ | 121000/169645 [01:37<00:39, 1241.34 examples/s]
226Map: 72%|███████▏ | 122000/169645 [01:38<00:37, 1263.06 examples/s]
227Map: 73%|███████▎ | 123000/169645 [01:39<00:38, 1208.68 examples/s]
228Map: 73%|███████▎ | 124000/169645 [01:39<00:37, 1218.68 examples/s]
229Map: 74%|███████▎ | 125000/169645 [01:40<00:36, 1231.99 examples/s]
230Map: 74%|███████▍ | 126000/169645 [01:41<00:35, 1235.24 examples/s]
231Map: 75%|███████▍ | 127000/169645 [01:42<00:34, 1227.59 examples/s]
232Map: 75%|███████▌ | 128000/169645 [01:43<00:33, 1243.08 examples/s]
233Map: 76%|███████▌ | 129000/169645 [01:43<00:32, 1233.23 examples/s]
234Map: 77%|███████▋ | 130000/169645 [01:44<00:32, 1218.79 examples/s]
235Map: 77%|███████▋ | 131000/169645 [01:45<00:31, 1230.11 examples/s]
236Map: 78%|███████▊ | 132000/169645 [01:46<00:29, 1263.88 examples/s]
237Map: 78%|███████▊ | 133000/169645 [01:47<00:29, 1258.67 examples/s]
238Map: 79%|███████▉ | 134000/169645 [01:47<00:28, 1260.31 examples/s]
239Map: 80%|███████▉ | 135000/169645 [01:48<00:27, 1242.55 examples/s]
240Map: 80%|████████ | 136000/169645 [01:49<00:27, 1235.13 examples/s]
241Map: 81%|████████ | 137000/169645 [01:50<00:27, 1190.21 examples/s]
242Map: 81%|████████▏ | 138000/169645 [01:51<00:26, 1217.04 examples/s]
243Map: 82%|████████▏ | 139000/169645 [01:52<00:25, 1212.46 examples/s]
244Map: 83%|████████▎ | 140000/169645 [01:52<00:23, 1235.38 examples/s]
245Map: 83%|████████▎ | 141000/169645 [01:53<00:23, 1217.09 examples/s]
246Map: 84%|████████▎ | 142000/169645 [01:54<00:22, 1233.74 examples/s]
247Map: 84%|████████▍ | 143000/169645 [01:55<00:21, 1237.94 examples/s]
248Map: 85%|████████▍ | 144000/169645 [01:56<00:20, 1241.20 examples/s]
249Map: 85%|████████▌ | 145000/169645 [01:56<00:19, 1260.91 examples/s]
250Map: 86%|████████▌ | 146000/169645 [01:57<00:18, 1262.86 examples/s]
251Map: 87%|████████▋ | 147000/169645 [01:58<00:17, 1258.55 examples/s]
252Map: 87%|████████▋ | 148000/169645 [01:59<00:17, 1251.42 examples/s]
253Map: 88%|████████▊ | 149000/169645 [01:59<00:16, 1275.44 examples/s]
254Map: 88%|████████▊ | 150000/169645 [02:00<00:15, 1286.95 examples/s]
255Map: 89%|████████▉ | 151000/169645 [02:01<00:14, 1278.79 examples/s]
256Map: 90%|████████▉ | 152000/169645 [02:02<00:13, 1289.33 examples/s]
257Map: 90%|█████████ | 153000/169645 [02:03<00:13, 1272.16 examples/s]
258Map: 91%|█████████ | 154000/169645 [02:04<00:12, 1207.48 examples/s]
259Map: 91%|█████████▏| 155000/169645 [02:04<00:11, 1222.62 examples/s]
260Map: 92%|█████████▏| 156000/169645 [02:05<00:11, 1235.19 examples/s]
261Map: 93%|█████████▎| 157000/169645 [02:06<00:10, 1242.47 examples/s]
262Map: 93%|█████████▎| 158000/169645 [02:07<00:09, 1255.36 examples/s]
263Map: 94%|█████████▎| 159000/169645 [02:07<00:08, 1257.31 examples/s]
264Map: 94%|█████████▍| 160000/169645 [02:08<00:07, 1268.96 examples/s]
265Map: 95%|█████████▍| 161000/169645 [02:09<00:07, 1222.56 examples/s]
266Map: 95%|█████████▌| 162000/169645 [02:10<00:06, 1250.96 examples/s]
267Map: 96%|█████████▌| 163000/169645 [02:11<00:05, 1246.01 examples/s]
268Map: 97%|█████████▋| 164000/169645 [02:11<00:04, 1250.22 examples/s]
269Map: 97%|█████████▋| 165000/169645 [02:12<00:03, 1235.72 examples/s]
270Map: 98%|█████████▊| 166000/169645 [02:13<00:02, 1240.55 examples/s]
271Map: 98%|█████████▊| 167000/169645 [02:14<00:02, 1223.81 examples/s]
272Map: 99%|█████████▉| 168000/169645 [02:15<00:01, 1245.17 examples/s]
273Map: 100%|█████████▉| 169000/169645 [02:16<00:00, 1189.64 examples/s]
274Map: 100%|██████████| 169645/169645 [02:16<00:00, 1172.97 examples/s]
275Map: 100%|██████████| 169645/169645 [02:17<00:00, 1237.48 examples/s]
276[2025-10-14, 09:54:53 UTC] {pod_manager.py:536} INFO - [base]
277Map: 0%| | 0/21174 [00:00<?, ? examples/s]
278Map: 5%|▍ | 1000/21174 [00:00<00:14, 1368.84 examples/s]
279Map: 9%|▉ | 2000/21174 [00:01<00:14, 1310.66 examples/s]
280Map: 14%|█▍ | 3000/21174 [00:02<00:14, 1277.57 examples/s]
281Map: 19%|█▉ | 4000/21174 [00:03<00:13, 1280.76 examples/s]
282Map: 24%|██▎ | 5000/21174 [00:03<00:12, 1295.41 examples/s]
283Map: 28%|██▊ | 6000/21174 [00:04<00:11, 1305.85 examples/s]
284Map: 33%|███▎ | 7000/21174 [00:05<00:10, 1300.82 examples/s]
285Map: 38%|███▊ | 8000/21174 [00:06<00:10, 1273.82 examples/s]
286Map: 43%|████▎ | 9000/21174 [00:06<00:09, 1272.23 examples/s]
287Map: 47%|████▋ | 10000/21174 [00:07<00:08, 1277.08 examples/s]
288Map: 52%|█████▏ | 11000/21174 [00:08<00:07, 1273.96 examples/s]
289Map: 57%|█████▋ | 12000/21174 [00:09<00:07, 1305.35 examples/s]
290Map: 61%|██████▏ | 13000/21174 [00:10<00:06, 1265.38 examples/s]
291Map: 66%|██████▌ | 14000/21174 [00:10<00:05, 1246.74 examples/s]
292Map: 71%|███████ | 15000/21174 [00:11<00:05, 1233.06 examples/s]
293Map: 76%|███████▌ | 16000/21174 [00:12<00:04, 1198.81 examples/s]
294Map: 80%|████████ | 17000/21174 [00:13<00:03, 1199.40 examples/s]
295Map: 85%|████████▌ | 18000/21174 [00:14<00:02, 1204.49 examples/s]
296Map: 90%|████████▉ | 19000/21174 [00:15<00:01, 1225.83 examples/s]
297Map: 94%|█████████▍| 20000/21174 [00:15<00:00, 1231.65 examples/s]
298Map: 99%|█████████▉| 21000/21174 [00:16<00:00, 1251.47 examples/s]
299Map: 100%|██████████| 21174/21174 [00:16<00:00, 1255.31 examples/s]
300Map: 100%|██████████| 21174/21174 [00:16<00:00, 1252.57 examples/s]
301[2025-10-14, 09:54:53 UTC] {pod_manager.py:536} INFO - [base] INFO:root:model is loaded
302[2025-10-14, 09:55:16 UTC] {pod_manager.py:536} INFO - [base] INFO:root:Start training
303[2025-10-14, 09:55:17 UTC] {pod_manager.py:555} INFO - [base]
304 0%| | 0/53015 [00:00<?, ?it/s]bash: line 9: 9 Killed python3 training/tone_check/retrain/retrain.py --train-data-path "/mnt/model-training/tone_check/20251014T060736/train_data.parquet/*.parquet" --validation-data-path "/mnt/model-training/tone_check/20251014T060736/validation_data.parquet/*.parquet" --output-model-path "/mnt/model-training/tone_check/20251014T060736/output_model" --base-model-path "/mnt/model-training/training/tone_check/base_model"
305[2025-10-14, 09:55:17 UTC] {pod_manager.py:714} INFO - Pod train-tone-check-xv60x59 has phase Running
306[2025-10-14, 09:55:19 UTC] {pod_manager.py:714} INFO - Pod train-tone-check-xv60x59 has phase Running
307[2025-10-14, 09:55:21 UTC] {pod.py:1122} INFO - Deleting pod: train-tone-check-xv60x59
308[2025-10-14, 09:55:21 UTC] {taskinstance.py:3313} ERROR - Task failed with exception
309Traceback (most recent call last):
310 File "/tmp/pyenv/versions/3.10.15/lib/python3.10/site-packages/airflow/models/taskinstance.py", line 768, in _execute_task
311 result = _execute_callable(context=context, **execute_callable_kwargs)
312 File "/tmp/pyenv/versions/3.10.15/lib/python3.10/site-packages/airflow/models/taskinstance.py", line 734, in _execute_callable
313 return ExecutionCallableRunner(
314 File "/tmp/pyenv/versions/3.10.15/lib/python3.10/site-packages/airflow/utils/operator_helpers.py", line 252, in run
315 return self.func(*args, **kwargs)
316 File "/tmp/pyenv/versions/3.10.15/lib/python3.10/site-packages/airflow/models/baseoperator.py", line 424, in wrapper
317 return func(self, *args, **kwargs)
318 File "/tmp/pyenv/versions/3.10.15/lib/python3.10/site-packages/airflow/providers/cncf/kubernetes/operators/pod.py", line 640, in execute
319 return self.execute_sync(context)
320 File "/tmp/pyenv/versions/3.10.15/lib/python3.10/site-packages/airflow/providers/cncf/kubernetes/operators/pod.py", line 721, in execute_sync
321 self.cleanup(
322 File "/tmp/pyenv/versions/3.10.15/lib/python3.10/site-packages/airflow/providers/cncf/kubernetes/operators/pod.py", line 1053, in cleanup
323 raise AirflowException(
324airflow.exceptions.AirflowException: Pod train-tone-check-xv60x59 returned a failure.
325remote_pod: {'api_version': 'v1',
326 'kind': 'Pod',
327 'metadata': {'annotations': {'cni.projectcalico.org/containerID': 'e9dfd10428317ca7fe7a76778b5a48135364b4576cf402d5c43054bde7fbbc05',
328 'cni.projectcalico.org/podIP': '',
329 'cni.projectcalico.org/podIPs': '',
330 'container.seccomp.security.alpha.kubernetes.io/base': 'runtime/default'},
331 'creation_timestamp': datetime.datetime(2025, 10, 14, 9, 51, 9, tzinfo=tzlocal()),
332 'deletion_grace_period_seconds': None,
333 'deletion_timestamp': None,
334 'finalizers': None,
335 'generate_name': None,
336 'generation': None,
337 'labels': {'airflow_kpo_in_cluster': 'True',
338 'airflow_version': '2.10.5',
339 'app': 'airflow',
340 'component': 'task-pod',
341 'dag_id': 'tone_check_training_dag',
342 'kubernetes_pod_operator': 'True',
343 'release': 'dev-kevinbazira',
344 'routed_via': 'dev-kevinbazira',
345 'run_id': 'manual__2025-10-14T060736.9821150000-fbf3b9f8e',
346 'task_id': 'train_tone_check',
347 'try_number': '1'},
348 'managed_fields': [{'api_version': 'v1',
349 'fields_type': 'FieldsV1',
350 'fields_v1': {'f:metadata': {'f:labels': {'.': {},
351 'f:airflow_kpo_in_cluster': {},
352 'f:airflow_version': {},
353 'f:app': {},
354 'f:component': {},
355 'f:dag_id': {},
356 'f:kubernetes_pod_operator': {},
357 'f:release': {},
358 'f:routed_via': {},
359 'f:run_id': {},
360 'f:task_id': {},
361 'f:try_number': {}}},
362 'f:spec': {'f:affinity': {'.': {},
363 'f:nodeAffinity': {'.': {},
364 'f:requiredDuringSchedulingIgnoredDuringExecution': {}}},
365 'f:containers': {'k:{"name":"base"}': {'.': {},
366 'f:args': {},
367 'f:command': {},
368 'f:env': {'.': {},
369 'k:{"name":"AWS_REQUEST_CHECKSUM_CALCULATION"}': {'.': {},
370 'f:name': {},
371 'f:value': {}},
372 'k:{"name":"AWS_RESPONSE_CHECKSUM_VALIDATION"}': {'.': {},
373 'f:name': {},
374 'f:value': {}},
375 'k:{"name":"REQUESTS_CA_BUNDLE"}': {'.': {},
376 'f:name': {},
377 'f:value': {}}},
378 'f:image': {},
379 'f:imagePullPolicy': {},
380 'f:name': {},
381 'f:resources': {'.': {},
382 'f:limits': {'.': {},
383 'f:cpu': {},
384 'f:memory': {}},
385 'f:requests': {'.': {},
386 'f:cpu': {},
387 'f:memory': {}}},
388 'f:securityContext': {'.': {},
389 'f:allowPrivilegeEscalation': {},
390 'f:capabilities': {'.': {},
391 'f:drop': {}},
392 'f:runAsNonRoot': {},
393 'f:seccompProfile': {'.': {},
394 'f:type': {}}},
395 'f:terminationMessagePath': {},
396 'f:terminationMessagePolicy': {},
397 'f:volumeMounts': {'.': {},
398 'k:{"mountPath":"/mnt/model-training"}': {'.': {},
399 'f:mountPath': {},
400 'f:name': {}}}}},
401 'f:dnsPolicy': {},
402 'f:enableServiceLinks': {},
403 'f:priorityClassName': {},
404 'f:restartPolicy': {},
405 'f:schedulerName': {},
406 'f:securityContext': {'.': {},
407 'f:fsGroup': {}},
408 'f:terminationGracePeriodSeconds': {},
409 'f:volumes': {'.': {},
410 'k:{"name":"airflow-ml-model-training-volume"}': {'.': {},
411 'f:name': {},
412 'f:persistentVolumeClaim': {'.': {},
413 'f:claimName': {}}}}}},
414 'manager': 'OpenAPI-Generator',
415 'operation': 'Update',
416 'subresource': None,
417 'time': datetime.datetime(2025, 10, 14, 9, 51, 9, tzinfo=tzlocal())},
418 {'api_version': 'v1',
419 'fields_type': 'FieldsV1',
420 'fields_v1': {'f:metadata': {'f:annotations': {'f:cni.projectcalico.org/containerID': {},
421 'f:cni.projectcalico.org/podIP': {},
422 'f:cni.projectcalico.org/podIPs': {}}}},
423 'manager': 'Go-http-client',
424 'operation': 'Update',
425 'subresource': 'status',
426 'time': datetime.datetime(2025, 10, 14, 9, 51, 18, tzinfo=tzlocal())},
427 {'api_version': 'v1',
428 'fields_type': 'FieldsV1',
429 'fields_v1': {'f:status': {'f:conditions': {'k:{"type":"ContainersReady"}': {'.': {},
430 'f:lastProbeTime': {},
431 'f:lastTransitionTime': {},
432 'f:reason': {},
433 'f:status': {},
434 'f:type': {}},
435 'k:{"type":"Initialized"}': {'.': {},
436 'f:lastProbeTime': {},
437 'f:lastTransitionTime': {},
438 'f:status': {},
439 'f:type': {}},
440 'k:{"type":"Ready"}': {'.': {},
441 'f:lastProbeTime': {},
442 'f:lastTransitionTime': {},
443 'f:reason': {},
444 'f:status': {},
445 'f:type': {}}},
446 'f:containerStatuses': {},
447 'f:hostIP': {},
448 'f:phase': {},
449 'f:podIP': {},
450 'f:podIPs': {'.': {},
451 'k:{"ip":"10.67.27.174"}': {'.': {},
452 'f:ip': {}},
453 'k:{"ip":"2620:0:861:302:57bd:c9a8:2745:49ac"}': {'.': {},
454 'f:ip': {}}},
455 'f:startTime': {}}},
456 'manager': 'kubelet',
457 'operation': 'Update',
458 'subresource': 'status',
459 'time': datetime.datetime(2025, 10, 14, 9, 55, 17, tzinfo=tzlocal())}],
460 'name': 'train-tone-check-xv60x59',
461 'namespace': 'airflow-dev',
462 'owner_references': None,
463 'resource_version': '829662183',
464 'self_link': None,
465 'uid': 'bf72c0f3-0455-42b5-a088-8174d34397ca'},
466 'spec': {'active_deadline_seconds': None,
467 'affinity': {'node_affinity': {'preferred_during_scheduling_ignored_during_execution': None,
468 'required_during_scheduling_ignored_during_execution': {'node_selector_terms': [{'match_expressions': [{'key': 'kubernetes.io/hostname',
469 'operator': 'NotIn',
470 'values': ['dse-k8s-worker1001.eqiad.wmnet']}],
471 'match_fields': None}]}},
472 'pod_affinity': None,
473 'pod_anti_affinity': None},
474 'automount_service_account_token': None,
475 'containers': [{'args': ['\n'
476 'set -e\n'
477 'set -x\n'
478 'echo "Ensuring output model directory '
479 'exists"\n'
480 'mkdir -p '
481 '/mnt/model-training/tone_check/20251014T060736/output_model\n'
482 'echo "Verifying input data exists on PVC"\n'
483 'ls -lR '
484 '/mnt/model-training/tone_check/20251014T060736\n'
485 'echo "Starting model training"\n'
486 'python3 '
487 'training/tone_check/retrain/retrain.py '
488 '--train-data-path '
489 '"/mnt/model-training/tone_check/20251014T060736/train_data.parquet/*.parquet" '
490 '--validation-data-path '
491 '"/mnt/model-training/tone_check/20251014T060736/validation_data.parquet/*.parquet" '
492 '--output-model-path '
493 '"/mnt/model-training/tone_check/20251014T060736/output_model" '
494 '--base-model-path '
495 '"/mnt/model-training/training/tone_check/base_model"\n'
496 'echo "Verifying model output"\n'
497 'ls -l '
498 '/mnt/model-training/tone_check/20251014T060736/output_model'],
499 'command': ['bash', '-c'],
500 'env': [{'name': 'REQUESTS_CA_BUNDLE',
501 'value': '/etc/ssl/certs/ca-certificates.crt',
502 'value_from': None},
503 {'name': 'AWS_REQUEST_CHECKSUM_CALCULATION',
504 'value': 'WHEN_REQUIRED',
505 'value_from': None},
506 {'name': 'AWS_RESPONSE_CHECKSUM_VALIDATION',
507 'value': 'WHEN_REQUIRED',
508 'value_from': None}],
509 'env_from': None,
510 'image': 'docker-registry.discovery.wmnet/repos/machine-learning/ml-pipelines:job-633556',
511 'image_pull_policy': 'IfNotPresent',
512 'lifecycle': None,
513 'liveness_probe': None,
514 'name': 'base',
515 'ports': None,
516 'readiness_probe': None,
517 'resize_policy': None,
518 'resources': {'claims': None,
519 'limits': {'cpu': '4', 'memory': '8Gi'},
520 'requests': {'cpu': '2',
521 'memory': '4Gi'}},
522 'restart_policy': None,
523 'security_context': {'allow_privilege_escalation': False,
524 'app_armor_profile': None,
525 'capabilities': {'add': None,
526 'drop': ['ALL']},
527 'privileged': None,
528 'proc_mount': None,
529 'read_only_root_filesystem': None,
530 'run_as_group': None,
531 'run_as_non_root': True,
532 'run_as_user': None,
533 'se_linux_options': None,
534 'seccomp_profile': {'localhost_profile': None,
535 'type': 'RuntimeDefault'},
536 'windows_options': None},
537 'startup_probe': None,
538 'stdin': None,
539 'stdin_once': None,
540 'termination_message_path': '/dev/termination-log',
541 'termination_message_policy': 'File',
542 'tty': None,
543 'volume_devices': None,
544 'volume_mounts': [{'mount_path': '/mnt/model-training',
545 'mount_propagation': None,
546 'name': 'airflow-ml-model-training-volume',
547 'read_only': None,
548 'recursive_read_only': None,
549 'sub_path': None,
550 'sub_path_expr': None},
551 {'mount_path': '/var/run/secrets/kubernetes.io/serviceaccount',
552 'mount_propagation': None,
553 'name': 'kube-api-access-hs5h6',
554 'read_only': True,
555 'recursive_read_only': None,
556 'sub_path': None,
557 'sub_path_expr': None}],
558 'working_dir': None}],
559 'dns_config': None,
560 'dns_policy': 'ClusterFirst',
561 'enable_service_links': True,
562 'ephemeral_containers': None,
563 'host_aliases': None,
564 'host_ipc': None,
565 'host_network': None,
566 'host_pid': None,
567 'host_users': None,
568 'hostname': None,
569 'image_pull_secrets': None,
570 'init_containers': None,
571 'node_name': 'dse-k8s-worker1009.eqiad.wmnet',
572 'node_selector': None,
573 'os': None,
574 'overhead': None,
575 'preemption_policy': 'PreemptLowerPriority',
576 'priority': -100,
577 'priority_class_name': 'low-priority-pod',
578 'readiness_gates': None,
579 'resource_claims': None,
580 'resources': None,
581 'restart_policy': 'Never',
582 'runtime_class_name': None,
583 'scheduler_name': 'default-scheduler',
584 'scheduling_gates': None,
585 'security_context': {'app_armor_profile': None,
586 'fs_group': 900,
587 'fs_group_change_policy': None,
588 'run_as_group': None,
589 'run_as_non_root': None,
590 'run_as_user': None,
591 'se_linux_change_policy': None,
592 'se_linux_options': None,
593 'seccomp_profile': None,
594 'supplemental_groups': None,
595 'supplemental_groups_policy': None,
596 'sysctls': None,
597 'windows_options': None},
598 'service_account': 'default',
599 'service_account_name': 'default',
600 'set_hostname_as_fqdn': None,
601 'share_process_namespace': None,
602 'subdomain': None,
603 'termination_grace_period_seconds': 30,
604 'tolerations': [{'effect': 'NoExecute',
605 'key': 'node.kubernetes.io/not-ready',
606 'operator': 'Exists',
607 'toleration_seconds': 300,
608 'value': None},
609 {'effect': 'NoExecute',
610 'key': 'node.kubernetes.io/unreachable',
611 'operator': 'Exists',
612 'toleration_seconds': 300,
613 'value': None}],
614 'topology_spread_constraints': None,
615 'volumes': [{'aws_elastic_block_store': None,
616 'azure_disk': None,
617 'azure_file': None,
618 'cephfs': None,
619 'cinder': None,
620 'config_map': None,
621 'csi': None,
622 'downward_api': None,
623 'empty_dir': None,
624 'ephemeral': None,
625 'fc': None,
626 'flex_volume': None,
627 'flocker': None,
628 'gce_persistent_disk': None,
629 'git_repo': None,
630 'glusterfs': None,
631 'host_path': None,
632 'image': None,
633 'iscsi': None,
634 'name': 'airflow-ml-model-training-volume',
635 'nfs': None,
636 'persistent_volume_claim': {'claim_name': 'airflow-ml-model-training',
637 'read_only': None},
638 'photon_persistent_disk': None,
639 'portworx_volume': None,
640 'projected': None,
641 'quobyte': None,
642 'rbd': None,
643 'scale_io': None,
644 'secret': None,
645 'storageos': None,
646 'vsphere_volume': None},
647 {'aws_elastic_block_store': None,
648 'azure_disk': None,
649 'azure_file': None,
650 'cephfs': None,
651 'cinder': None,
652 'config_map': None,
653 'csi': None,
654 'downward_api': None,
655 'empty_dir': None,
656 'ephemeral': None,
657 'fc': None,
658 'flex_volume': None,
659 'flocker': None,
660 'gce_persistent_disk': None,
661 'git_repo': None,
662 'glusterfs': None,
663 'host_path': None,
664 'image': None,
665 'iscsi': None,
666 'name': 'kube-api-access-hs5h6',
667 'nfs': None,
668 'persistent_volume_claim': None,
669 'photon_persistent_disk': None,
670 'portworx_volume': None,
671 'projected': {'default_mode': 420,
672 'sources': [{'cluster_trust_bundle': None,
673 'config_map': None,
674 'downward_api': None,
675 'secret': None,
676 'service_account_token': {'audience': None,
677 'expiration_seconds': 3607,
678 'path': 'token'}},
679 {'cluster_trust_bundle': None,
680 'config_map': {'items': [{'key': 'ca.crt',
681 'mode': None,
682 'path': 'ca.crt'}],
683 'name': 'kube-root-ca.crt',
684 'optional': None},
685 'downward_api': None,
686 'secret': None,
687 'service_account_token': None},
688 {'cluster_trust_bundle': None,
689 'config_map': None,
690 'downward_api': {'items': [{'field_ref': {'api_version': 'v1',
691 'field_path': 'metadata.namespace'},
692 'mode': None,
693 'path': 'namespace',
694 'resource_field_ref': None}]},
695 'secret': None,
696 'service_account_token': None}]},
697 'quobyte': None,
698 'rbd': None,
699 'scale_io': None,
700 'secret': None,
701 'storageos': None,
702 'vsphere_volume': None}]},
703 'status': {'conditions': [{'last_probe_time': None,
704 'last_transition_time': datetime.datetime(2025, 10, 14, 9, 51, 9, tzinfo=tzlocal()),
705 'message': None,
706 'reason': None,
707 'status': 'True',
708 'type': 'Initialized'},
709 {'last_probe_time': None,
710 'last_transition_time': datetime.datetime(2025, 10, 14, 9, 55, 17, tzinfo=tzlocal()),
711 'message': None,
712 'reason': 'PodFailed',
713 'status': 'False',
714 'type': 'Ready'},
715 {'last_probe_time': None,
716 'last_transition_time': datetime.datetime(2025, 10, 14, 9, 55, 17, tzinfo=tzlocal()),
717 'message': None,
718 'reason': 'PodFailed',
719 'status': 'False',
720 'type': 'ContainersReady'},
721 {'last_probe_time': None,
722 'last_transition_time': datetime.datetime(2025, 10, 14, 9, 51, 9, tzinfo=tzlocal()),
723 'message': None,
724 'reason': None,
725 'status': 'True',
726 'type': 'PodScheduled'}],
727 'container_statuses': [{'allocated_resources': None,
728 'allocated_resources_status': None,
729 'container_id': 'containerd://8ea8e64f754ba8f01555fb4356718a5eff1a8d60890a675bb9161764e2575672',
730 'image': 'docker-registry.discovery.wmnet/repos/machine-learning/ml-pipelines:job-633556',
731 'image_id': 'docker-registry.discovery.wmnet/repos/machine-learning/ml-pipelines@sha256:5038bf766451c291a541c7f35ccf9fe9924f44a861589fdb70b6717791532637',
732 'last_state': {'running': None,
733 'terminated': None,
734 'waiting': None},
735 'name': 'base',
736 'ready': False,
737 'resources': None,
738 'restart_count': 0,
739 'started': False,
740 'state': {'running': None,
741 'terminated': {'container_id': 'containerd://8ea8e64f754ba8f01555fb4356718a5eff1a8d60890a675bb9161764e2575672',
742 'exit_code': 137,
743 'finished_at': datetime.datetime(2025, 10, 14, 9, 55, 16, tzinfo=tzlocal()),
744 'message': None,
745 'reason': 'OOMKilled',
746 'signal': None,
747 'started_at': datetime.datetime(2025, 10, 14, 9, 51, 18, tzinfo=tzlocal())},
748 'waiting': None},
749 'user': None,
750 'volume_mounts': None}],
751 'ephemeral_container_statuses': None,
752 'host_i_ps': None,
753 'host_ip': '10.64.0.149',
754 'init_container_statuses': None,
755 'message': None,
756 'nominated_node_name': None,
757 'phase': 'Failed',
758 'pod_i_ps': [{'ip': '10.67.27.174'},
759 {'ip': '2620:0:861:302:57bd:c9a8:2745:49ac'}],
760 'pod_ip': '10.67.27.174',
761 'qos_class': 'Burstable',
762 'reason': None,
763 'resize': None,
764 'resource_claim_statuses': None,
765 'start_time': datetime.datetime(2025, 10, 14, 9, 51, 9, tzinfo=tzlocal())}}
766[2025-10-14, 09:55:21 UTC] {taskinstance.py:1226} INFO - Marking task as UP_FOR_RETRY. dag_id=tone_check_training_dag, task_id=train_tone_check, run_id=manual__2025-10-14T06:07:36.982115+00:00, execution_date=20251014T060736, start_date=20251014T095109, end_date=20251014T095521
767[2025-10-14, 09:55:21 UTC] {taskinstance.py:341} ▶ Post task execution logs

To fix the OOM issue reported in T407212#11271755, I increased container_resources.limits.memory from 8Gi to 16Gi in the train_tone_check task. However, the task running on CPU still failed with the error below:

HTTP response body: {"kind":"Status","apiVersion":"v1","metadata":{},"status":"Failure","message":"pods \"train-tone-check-e7hk664\" is forbidden: [maximum memory usage per Container is 8Gi, but limit is 16Gi, maximum memory usage per Pod is 10Gi, but limit is 17179869184]","reason":"Forbidden","details":{"name":"train-tone-check-e7hk664","kind":"pods"},"code":403}

Full logs can be found here. This indicates that we requested 16Gi for the container, but the cluster only allows up to 8Gi per container and 10Gi per pod.

Following T407212#11275074, I ran the tone-check training job locally with model-ready training data to determine memory usage. Both 8Gi and 16Gi were not enough, as the job required over 18Gi. With a 20Gi memory limit, the job ran on CPU without OOM issues, although it took a very long time to complete.

Since our goal is to run model training on GPU and the fix in T406958 is pending verification, we tested the GPU node selector in T373806#11275873 and confirmed successful GPU access. I then ran the tone-check model training task with the amd.com/gpu.vram=64G node selector, and the job completed in 8hrs on an MI210 GPU with 64G VRAM in staging, as shown in the logs below:

1tone-check-training-dag-train-tone-check-qtcn65fz
2 ▶ Log message source details
3[2025-10-15, 11:50:02 UTC] {local_task_job_runner.py:123} ▶ Pre task execution logs
4[2025-10-15, 11:50:02 UTC] {crypto.py:82} WARNING - empty cryptography key - values will not be stored encrypted.
5[2025-10-15, 11:50:03 UTC] {pod.py:1276} INFO - Building pod train-tone-check-3hza1v4 with labels: {'dag_id': 'tone_check_training_dag', 'task_id': 'train_tone_check', 'run_id': 'manual__2025-10-15T114951.9834900000-42577f91d', 'kubernetes_pod_operator': 'True', 'try_number': '1'}
6[2025-10-15, 11:50:03 UTC] {pod.py:573} INFO - Found matching pod train-tone-check-3hza1v4 with labels {'airflow_kpo_in_cluster': 'True', 'airflow_version': '2.10.5', 'app': 'airflow', 'component': 'task-pod', 'dag_id': 'tone_check_training_dag', 'kubernetes_pod_operator': 'True', 'release': 'dev-kevinbazira', 'routed_via': 'dev-kevinbazira', 'run_id': 'manual__2025-10-15T114951.9834900000-42577f91d', 'task_id': 'train_tone_check', 'try_number': '1'}
7[2025-10-15, 11:50:03 UTC] {pod.py:574} INFO - `try_number` of task_instance: 1
8[2025-10-15, 11:50:03 UTC] {pod.py:575} INFO - `try_number` of pod: 1
9[2025-10-15, 11:50:03 UTC] {pod_manager.py:390} INFO - The Pod has an Event: Successfully assigned airflow-dev/train-tone-check-3hza1v4 to dse-k8s-worker1009.eqiad.wmnet from None
10[2025-10-15, 11:50:03 UTC] {pod_manager.py:390} INFO - The Pod has an Event: Multi-Attach error for volume "pvc-8a6a2920-8d7e-4616-8ab6-a6a70b26d116" Volume is already used by pod(s) copy-hdfs-to-pvc-li9a0bk from None
11[2025-10-15, 11:50:03 UTC] {pod_manager.py:410} ▶ Waiting until 120s to get the POD scheduled...
12[2025-10-15, 11:50:33 UTC] {pod_manager.py:536} INFO - [base] + echo 'Ensuring output model directory exists'
13[2025-10-15, 11:50:33 UTC] {pod_manager.py:536} INFO - [base] + mkdir -p /mnt/model-training/tone_check/20251014T132011/output_model
14[2025-10-15, 11:50:33 UTC] {pod_manager.py:536} INFO - [base] Ensuring output model directory exists
15[2025-10-15, 11:50:33 UTC] {pod_manager.py:536} INFO - [base] Verifying input data exists on PVC
16[2025-10-15, 11:50:33 UTC] {pod_manager.py:536} INFO - [base] + echo 'Verifying input data exists on PVC'
17[2025-10-15, 11:50:33 UTC] {pod_manager.py:536} INFO - [base] + ls -lR /mnt/model-training/tone_check/20251014T132011
18[2025-10-15, 11:50:33 UTC] {pod_manager.py:536} INFO - [base] /mnt/model-training/tone_check/20251014T132011:
19[2025-10-15, 11:50:33 UTC] {pod_manager.py:536} INFO - [base] total 20
20[2025-10-15, 11:50:33 UTC] {pod_manager.py:536} INFO - [base] drwxrwsr-x 3 runuser runuser 4096 Oct 14 18:57 full_model_ready_data.parquet
21[2025-10-15, 11:50:33 UTC] {pod_manager.py:536} INFO - [base] drwxrwsr-x 2 somebody runuser 4096 Oct 14 18:49 output_model
22[2025-10-15, 11:50:33 UTC] {pod_manager.py:536} INFO - [base] drwxrwsr-x 2 runuser runuser 4096 Oct 14 18:57 test_data.parquet
23[2025-10-15, 11:50:33 UTC] {pod_manager.py:536} INFO - [base] drwxrwsr-x 2 runuser runuser 4096 Oct 14 18:57 train_data.parquet
24[2025-10-15, 11:50:33 UTC] {pod_manager.py:536} INFO - [base] drwxrwsr-x 2 runuser runuser 4096 Oct 14 18:57 validation_data.parquet
25[2025-10-15, 11:50:33 UTC] {pod_manager.py:536} INFO - [base] /mnt/model-training/tone_check/20251014T132011/full_model_ready_data.parquet:
26[2025-10-15, 11:50:33 UTC] {pod_manager.py:536} INFO - [base] total 835408
27[2025-10-15, 11:50:33 UTC] {pod_manager.py:536} INFO - [base] -rw-rw---- 1 runuser runuser 0 Oct 14 17:09 _SUCCESS
28[2025-10-15, 11:50:33 UTC] {pod_manager.py:536} INFO - [base] drwxrwsr-x 3 runuser runuser 4096 Oct 14 18:57 _temporary
29[2025-10-15, 11:50:33 UTC] {pod_manager.py:536} INFO - [base] -rw-rw---- 1 runuser runuser 50938126 Oct 14 17:09 part-00000-fcc7398d-d2d3-4e0e-a250-18cf64e02bfc-c000.snappy.parquet
30[2025-10-15, 11:50:33 UTC] {pod_manager.py:536} INFO - [base] -rw-rw---- 1 runuser runuser 50372681 Oct 14 17:09 part-00001-fcc7398d-d2d3-4e0e-a250-18cf64e02bfc-c000.snappy.parquet
31[2025-10-15, 11:50:33 UTC] {pod_manager.py:536} INFO - [base] -rw-rw---- 1 runuser runuser 52502424 Oct 14 17:09 part-00002-fcc7398d-d2d3-4e0e-a250-18cf64e02bfc-c000.snappy.parquet
32[2025-10-15, 11:50:33 UTC] {pod_manager.py:536} INFO - [base] -rw-rw---- 1 runuser runuser 54435289 Oct 14 17:09 part-00003-fcc7398d-d2d3-4e0e-a250-18cf64e02bfc-c000.snappy.parquet
33[2025-10-15, 11:50:33 UTC] {pod_manager.py:536} INFO - [base] -rw-rw---- 1 runuser runuser 56813494 Oct 14 17:09 part-00004-fcc7398d-d2d3-4e0e-a250-18cf64e02bfc-c000.snappy.parquet
34[2025-10-15, 11:50:33 UTC] {pod_manager.py:536} INFO - [base] -rw-rw---- 1 runuser runuser 58929226 Oct 14 17:09 part-00005-fcc7398d-d2d3-4e0e-a250-18cf64e02bfc-c000.snappy.parquet
35[2025-10-15, 11:50:33 UTC] {pod_manager.py:536} INFO - [base] -rw-rw---- 1 runuser runuser 57053768 Oct 14 17:09 part-00006-fcc7398d-d2d3-4e0e-a250-18cf64e02bfc-c000.snappy.parquet
36[2025-10-15, 11:50:33 UTC] {pod_manager.py:536} INFO - [base] -rw-rw---- 1 runuser runuser 57278238 Oct 14 17:09 part-00007-fcc7398d-d2d3-4e0e-a250-18cf64e02bfc-c000.snappy.parquet
37[2025-10-15, 11:50:33 UTC] {pod_manager.py:536} INFO - [base] -rw-rw---- 1 runuser runuser 56666166 Oct 14 17:09 part-00008-fcc7398d-d2d3-4e0e-a250-18cf64e02bfc-c000.snappy.parquet
38[2025-10-15, 11:50:33 UTC] {pod_manager.py:536} INFO - [base] -rw-rw---- 1 runuser runuser 55233934 Oct 14 17:09 part-00009-fcc7398d-d2d3-4e0e-a250-18cf64e02bfc-c000.snappy.parquet
39[2025-10-15, 11:50:33 UTC] {pod_manager.py:536} INFO - [base] -rw-rw---- 1 runuser runuser 53877850 Oct 14 17:09 part-00010-fcc7398d-d2d3-4e0e-a250-18cf64e02bfc-c000.snappy.parquet
40[2025-10-15, 11:50:33 UTC] {pod_manager.py:536} INFO - [base] -rw-rw---- 1 runuser runuser 52661596 Oct 14 17:09 part-00011-fcc7398d-d2d3-4e0e-a250-18cf64e02bfc-c000.snappy.parquet
41[2025-10-15, 11:50:33 UTC] {pod_manager.py:536} INFO - [base] -rw-rw---- 1 runuser runuser 51884340 Oct 14 17:09 part-00012-fcc7398d-d2d3-4e0e-a250-18cf64e02bfc-c000.snappy.parquet
42[2025-10-15, 11:50:33 UTC] {pod_manager.py:536} INFO - [base] -rw-rw---- 1 runuser runuser 49561915 Oct 14 17:09 part-00013-fcc7398d-d2d3-4e0e-a250-18cf64e02bfc-c000.snappy.parquet
43[2025-10-15, 11:50:33 UTC] {pod_manager.py:536} INFO - [base] -rw-rw---- 1 runuser runuser 48022968 Oct 14 17:09 part-00014-fcc7398d-d2d3-4e0e-a250-18cf64e02bfc-c000.snappy.parquet
44[2025-10-15, 11:50:33 UTC] {pod_manager.py:536} INFO - [base] -rw-rw---- 1 runuser runuser 49185749 Oct 14 17:09 part-00015-fcc7398d-d2d3-4e0e-a250-18cf64e02bfc-c000.snappy.parquet
45[2025-10-15, 11:50:33 UTC] {pod_manager.py:536} INFO - [base] /mnt/model-training/tone_check/20251014T132011/full_model_ready_data.parquet/_temporary:
46[2025-10-15, 11:50:33 UTC] {pod_manager.py:536} INFO - [base] total 4
47[2025-10-15, 11:50:33 UTC] {pod_manager.py:536} INFO - [base] drwxrwsr-x 2 runuser runuser 4096 Oct 14 18:57 0
48[2025-10-15, 11:50:33 UTC] {pod_manager.py:536} INFO - [base] /mnt/model-training/tone_check/20251014T132011/full_model_ready_data.parquet/_temporary/0:
49[2025-10-15, 11:50:33 UTC] {pod_manager.py:536} INFO - [base] total 0
50[2025-10-15, 11:50:33 UTC] {pod_manager.py:536} INFO - [base] /mnt/model-training/tone_check/20251014T132011/output_model:
51[2025-10-15, 11:50:33 UTC] {pod_manager.py:536} INFO - [base] total 0
52[2025-10-15, 11:50:33 UTC] {pod_manager.py:536} INFO - [base] /mnt/model-training/tone_check/20251014T132011/test_data.parquet:
53[2025-10-15, 11:50:33 UTC] {pod_manager.py:536} INFO - [base] total 167016
54[2025-10-15, 11:50:33 UTC] {pod_manager.py:536} INFO - [base] -rw-rw---- 1 runuser runuser 0 Oct 14 17:09 _SUCCESS
55[2025-10-15, 11:50:33 UTC] {pod_manager.py:536} INFO - [base] -rw-rw---- 1 runuser runuser 42565435 Oct 14 18:57 part-00000-761772ab-e106-404e-aea7-eddf752d07e6-c000.snappy.parquet
56[2025-10-15, 11:50:33 UTC] {pod_manager.py:536} INFO - [base] -rw-rw---- 1 runuser runuser 41834946 Oct 14 17:09 part-00000-dc205253-32a7-42fa-b7cf-41f7f3663825-c000.snappy.parquet
57[2025-10-15, 11:50:33 UTC] {pod_manager.py:536} INFO - [base] -rw-rw---- 1 runuser runuser 43256364 Oct 14 18:57 part-00001-761772ab-e106-404e-aea7-eddf752d07e6-c000.snappy.parquet
58[2025-10-15, 11:50:33 UTC] {pod_manager.py:536} INFO - [base] -rw-rw---- 1 runuser runuser 43353307 Oct 14 17:09 part-00001-dc205253-32a7-42fa-b7cf-41f7f3663825-c000.snappy.parquet
59[2025-10-15, 11:50:33 UTC] {pod_manager.py:536} INFO - [base] /mnt/model-training/tone_check/20251014T132011/train_data.parquet:
60[2025-10-15, 11:50:33 UTC] {pod_manager.py:536} INFO - [base] total 1337180
61[2025-10-15, 11:50:33 UTC] {pod_manager.py:536} INFO - [base] -rw-rw---- 1 runuser runuser 0 Oct 14 17:09 _SUCCESS
62[2025-10-15, 11:50:33 UTC] {pod_manager.py:536} INFO - [base] -rw-rw---- 1 runuser runuser 86591932 Oct 14 17:09 part-00000-a08415d4-0c9a-45d0-954e-9a1fe3b1e470-c000.snappy.parquet
63[2025-10-15, 11:50:33 UTC] {pod_manager.py:536} INFO - [base] -rw-rw---- 1 runuser runuser 86591932 Oct 14 18:57 part-00000-ea04216a-a0f5-45cc-91a1-809ab3c0a5ea-c000.snappy.parquet
64[2025-10-15, 11:50:33 UTC] {pod_manager.py:536} INFO - [base] -rw-rw---- 1 runuser runuser 85147007 Oct 14 17:09 part-00001-a08415d4-0c9a-45d0-954e-9a1fe3b1e470-c000.snappy.parquet
65[2025-10-15, 11:50:33 UTC] {pod_manager.py:536} INFO - [base] -rw-rw---- 1 runuser runuser 85147007 Oct 14 18:57 part-00001-ea04216a-a0f5-45cc-91a1-809ab3c0a5ea-c000.snappy.parquet
66[2025-10-15, 11:50:33 UTC] {pod_manager.py:536} INFO - [base] + echo 'Starting model training'
67[2025-10-15, 11:50:33 UTC] {pod_manager.py:536} INFO - [base] -rw-rw---- 1 runuser runuser 85999159 Oct 14 17:09 part-00002-a08415d4-0c9a-45d0-954e-9a1fe3b1e470-c000.snappy.parquet
68[2025-10-15, 11:50:33 UTC] {pod_manager.py:536} INFO - [base] -rw-rw---- 1 runuser runuser 85999159 Oct 14 18:57 part-00002-ea04216a-a0f5-45cc-91a1-809ab3c0a5ea-c000.snappy.parquet
69[2025-10-15, 11:50:33 UTC] {pod_manager.py:536} INFO - [base] -rw-rw---- 1 runuser runuser 84644812 Oct 14 17:09 part-00003-a08415d4-0c9a-45d0-954e-9a1fe3b1e470-c000.snappy.parquet
70[2025-10-15, 11:50:33 UTC] {pod_manager.py:536} INFO - [base] -rw-rw---- 1 runuser runuser 84644812 Oct 14 18:57 part-00003-ea04216a-a0f5-45cc-91a1-809ab3c0a5ea-c000.snappy.parquet
71[2025-10-15, 11:50:33 UTC] {pod_manager.py:536} INFO - [base] -rw-rw---- 1 runuser runuser 86384645 Oct 14 17:09 part-00004-a08415d4-0c9a-45d0-954e-9a1fe3b1e470-c000.snappy.parquet
72[2025-10-15, 11:50:33 UTC] {pod_manager.py:536} INFO - [base] -rw-rw---- 1 runuser runuser 86384645 Oct 14 18:57 part-00004-ea04216a-a0f5-45cc-91a1-809ab3c0a5ea-c000.snappy.parquet
73[2025-10-15, 11:50:33 UTC] {pod_manager.py:536} INFO - [base] -rw-rw---- 1 runuser runuser 85009715 Oct 14 17:09 part-00005-a08415d4-0c9a-45d0-954e-9a1fe3b1e470-c000.snappy.parquet
74[2025-10-15, 11:50:33 UTC] {pod_manager.py:536} INFO - [base] + python3 training/tone_check/retrain/retrain.py --train-data-path '/mnt/model-training/tone_check/20251014T132011/train_data.parquet/*.parquet' --validation-data-path '/mnt/model-training/tone_check/20251014T132011/validation_data.parquet/*.parquet' --output-model-path /mnt/model-training/tone_check/20251014T132011/output_model --base-model-path /mnt/model-training/training/tone_check/base_model
75[2025-10-15, 11:50:33 UTC] {pod_manager.py:536} INFO - [base] -rw-rw---- 1 runuser runuser 85009715 Oct 14 18:57 part-00005-ea04216a-a0f5-45cc-91a1-809ab3c0a5ea-c000.snappy.parquet
76[2025-10-15, 11:50:33 UTC] {pod_manager.py:536} INFO - [base] -rw-rw---- 1 runuser runuser 85304353 Oct 14 17:09 part-00006-a08415d4-0c9a-45d0-954e-9a1fe3b1e470-c000.snappy.parquet
77[2025-10-15, 11:50:33 UTC] {pod_manager.py:536} INFO - [base] -rw-rw---- 1 runuser runuser 85304353 Oct 14 18:57 part-00006-ea04216a-a0f5-45cc-91a1-809ab3c0a5ea-c000.snappy.parquet
78[2025-10-15, 11:50:33 UTC] {pod_manager.py:536} INFO - [base] -rw-rw---- 1 runuser runuser 85520890 Oct 14 17:09 part-00007-a08415d4-0c9a-45d0-954e-9a1fe3b1e470-c000.snappy.parquet
79[2025-10-15, 11:50:33 UTC] {pod_manager.py:536} INFO - [base] -rw-rw---- 1 runuser runuser 85520890 Oct 14 18:57 part-00007-ea04216a-a0f5-45cc-91a1-809ab3c0a5ea-c000.snappy.parquet
80[2025-10-15, 11:50:33 UTC] {pod_manager.py:536} INFO - [base] /mnt/model-training/tone_check/20251014T132011/validation_data.parquet:
81[2025-10-15, 11:50:33 UTC] {pod_manager.py:536} INFO - [base] total 166340
82[2025-10-15, 11:50:33 UTC] {pod_manager.py:536} INFO - [base] -rw-rw---- 1 runuser runuser 0 Oct 14 17:09 _SUCCESS
83[2025-10-15, 11:50:33 UTC] {pod_manager.py:536} INFO - [base] -rw-rw---- 1 runuser runuser 42167278 Oct 14 17:09 part-00000-7729f9de-389f-4e58-9b26-27ba05afa013-c000.snappy.parquet
84[2025-10-15, 11:50:33 UTC] {pod_manager.py:536} INFO - [base] -rw-rw---- 1 runuser runuser 42180859 Oct 14 18:57 part-00000-929d12f6-2fed-432e-8560-b64c8dc49755-c000.snappy.parquet
85[2025-10-15, 11:50:33 UTC] {pod_manager.py:536} INFO - [base] -rw-rw---- 1 runuser runuser 42991515 Oct 14 17:09 part-00001-7729f9de-389f-4e58-9b26-27ba05afa013-c000.snappy.parquet
86[2025-10-15, 11:50:33 UTC] {pod_manager.py:536} INFO - [base] -rw-rw---- 1 runuser runuser 42985784 Oct 14 18:57 part-00001-929d12f6-2fed-432e-8560-b64c8dc49755-c000.snappy.parquet
87[2025-10-15, 11:50:33 UTC] {pod_manager.py:536} INFO - [base] Starting model training
88[2025-10-15, 11:50:33 UTC] {pod_manager.py:536} INFO - [base] INFO:root:Tone-Check Retraining
89[2025-10-15, 11:50:33 UTC] {pod_manager.py:536} INFO - [base] INFO:root:DEVICE: cuda:0
90[2025-10-15, 11:50:33 UTC] {pod_manager.py:536} INFO - [base] INFO:root:Parsed arguments: {'train_data_path': '/mnt/model-training/tone_check/20251014T132011/train_data.parquet/*.parquet', 'validation_data_path': '/mnt/model-training/tone_check/20251014T132011/validation_data.parquet/*.parquet', 'output_model_path': '/mnt/model-training/tone_check/20251014T132011/output_model', 'base_model_path': '/mnt/model-training/training/tone_check/base_model', 'num_label': 2, 'max_len': 512, 'learning_rate': 2e-06, 'weight_decay': 0.01, 'batch_size': 16, 'num_epoch': 5, 'metric_for_best_model': 'eval_loss', 'eval_strategy': 'epoch', 'save_strategy': 'epoch'}
91[2025-10-15, 11:50:33 UTC] {pod_manager.py:536} INFO - [base] INFO:root:Loading training data from: /mnt/model-training/tone_check/20251014T132011/train_data.parquet/*.parquet
92[2025-10-15, 11:50:57 UTC] {pod_manager.py:536} INFO - [base] INFO:root:Loading validation data from: /mnt/model-training/tone_check/20251014T132011/validation_data.parquet/*.parquet
93[2025-10-15, 11:51:05 UTC] {pod_manager.py:536} INFO - [base]
94Downloading data: 0%| | 0/16 [00:00<?, ?files/s]
95Downloading data: 100%|██████████| 16/16 [00:00<00:00, 19668.48files/s]
96[2025-10-15, 11:51:31 UTC] {pod_manager.py:536} INFO - [base]
97Generating train split: 0 examples [00:00, ? examples/s]
98Generating train split: 21206 examples [00:00, 40275.88 examples/s]
99Generating train split: 42412 examples [00:01, 42497.71 examples/s]
100Generating train split: 63618 examples [00:01, 42826.60 examples/s]
101Generating train split: 84824 examples [00:01, 43547.52 examples/s]
102Generating train split: 106030 examples [00:02, 44181.17 examples/s]
103Generating train split: 127236 examples [00:02, 43408.41 examples/s]
104Generating train split: 148441 examples [00:03, 43933.59 examples/s]
105Generating train split: 169646 examples [00:03, 44515.09 examples/s]
106Generating train split: 190850 examples [00:04, 44394.86 examples/s]
107Generating train split: 212054 examples [00:04, 44108.40 examples/s]
108Generating train split: 233257 examples [00:05, 44475.04 examples/s]
109Generating train split: 254460 examples [00:06, 37757.61 examples/s]
110Generating train split: 275668 examples [00:06, 39870.73 examples/s]
111Generating train split: 296876 examples [00:07, 41371.68 examples/s]
112Generating train split: 318083 examples [00:07, 42699.13 examples/s]
113Generating train split: 339290 examples [00:07, 43443.14 examples/s]
114Generating train split: 339290 examples [00:07, 42786.69 examples/s]
115[2025-10-15, 11:51:31 UTC] {pod_manager.py:536} INFO - [base]
116Generating validation split: 0 examples [00:00, ? examples/s]
117Generating validation split: 10589 examples [00:00, 42320.08 examples/s]
118Generating validation split: 21178 examples [00:00, 43928.84 examples/s]
119Generating validation split: 31763 examples [00:00, 44021.16 examples/s]
120Generating validation split: 42348 examples [00:00, 43164.24 examples/s]
121Generating validation split: 42348 examples [00:00, 43281.86 examples/s]
122[2025-10-15, 11:51:31 UTC] {pod_manager.py:536} INFO - [base] INFO:root:Sample from training set:
123[2025-10-15, 11:51:31 UTC] {pod_manager.py:536} INFO - [base] {'input': 'en[SEP]SableVM[SEP]SableVM is a clean room implementation of Java bytecode interpreter implementing the Java virtual machine specification, second edition.\n\nSableVM Project was started from the ground up to build a robust, extremely portable, efficient, and fully specifications-compliant (JVM spec, Java Native Interface, Invocation interface, Debug interface, etc.) Java Virtual Machine that would be easy to maintain and to extend.\n\nThe core engine is an interpreter which uses state-of-the-art techniques to deliver performance that can approach that of a "naive" just-in-time "JIT" compiler, while retaining the software engineering advantages of interpreters: portability, maintainability and simplicity.\n\nThis simplicity makes SableVM\'s source code very accessible and easy to understand for new users/programmers.\n\nSableVM is Free Software — it is licensed under the less restrictive GNU Lesser General Public License (LGPL). It also makes use of GNU Classpath (copyrighted by the Free Software Foundation FSF) which is licensed under the GNU General Public License with linking exception.\n\nSableVM is the first Open Source virtual machine for Java to include the support for JVMDI (Java Virtual Machine Debugging Interface) and JDWP (Java Debug Wire Protocol). These standard Java debugging interfaces are used for example by Eclipse to provide a rich and user-friendly Java development environment.\n\nSableVM, initiated by the Sable Research Group, is now being maintained by a team of loosely associated programmers. Besides their mailing lists, developers often communicate through an IRC channel on irc.sablevm.org (current detour: please use IRC server ) #sablevm.\n\n\n\n Java Intermediate Language\n List of Java virtual machines\n Free Java implementations\n\n\n SableVM.org\n SableVM Development sub-site\n Information on debugging with SableVM and Eclipse\n\n\n\n\n\n\nfr:SableVM\npl:SableVM', 'label': 1}
124[2025-10-15, 11:51:31 UTC] {pod_manager.py:536} INFO - [base] INFO:root:tokenizer loaded
125[2025-10-15, 11:51:31 UTC] {pod_manager.py:536} INFO - [base] DatasetDict({
126[2025-10-15, 11:51:31 UTC] {pod_manager.py:536} INFO - [base] train: Dataset({
127[2025-10-15, 11:51:31 UTC] {pod_manager.py:536} INFO - [base] features: ['input', 'label'],
128[2025-10-15, 11:51:31 UTC] {pod_manager.py:536} INFO - [base] num_rows: 339290
129[2025-10-15, 11:51:31 UTC] {pod_manager.py:536} INFO - [base] })
130[2025-10-15, 11:51:31 UTC] {pod_manager.py:536} INFO - [base] test: Dataset({
131[2025-10-15, 11:51:31 UTC] {pod_manager.py:536} INFO - [base] features: ['input', 'label'],
132[2025-10-15, 11:51:31 UTC] {pod_manager.py:536} INFO - [base] num_rows: 42348
133[2025-10-15, 11:51:31 UTC] {pod_manager.py:536} INFO - [base] })
134[2025-10-15, 11:56:02 UTC] {pod_manager.py:536} INFO - [base] })
135[2025-10-15, 11:56:36 UTC] {pod_manager.py:536} INFO - [base]
136Map: 0%| | 0/339290 [00:00<?, ? examples/s]
137Map: 0%| | 1000/339290 [00:00<05:12, 1083.37 examples/s]
138Map: 1%| | 2000/339290 [00:01<04:39, 1208.33 examples/s]
139Map: 1%| | 3000/339290 [00:02<04:35, 1221.26 examples/s]
140Map: 1%| | 4000/339290 [00:03<04:28, 1247.41 examples/s]
141Map: 1%|| 5000/339290 [00:04<04:22, 1273.07 examples/s]
142Map: 2%|| 6000/339290 [00:04<04:21, 1276.77 examples/s]
143
144... # redacted to reduce file size
145
146Map: 100%|█████████▉| 339000/339290 [04:30<00:00, 1241.94 examples/s]
147Map: 100%|██████████| 339290/339290 [04:31<00:00, 1222.78 examples/s]
148Map: 100%|██████████| 339290/339290 [04:31<00:00, 1250.01 examples/s]
149[2025-10-15, 11:56:39 UTC] {pod_manager.py:536} INFO - [base]
150Map: 0%| | 0/42348 [00:00<?, ? examples/s]
151Map: 2%|| 1000/42348 [00:00<00:29, 1381.64 examples/s]
152Map: 5%|| 2000/42348 [00:01<00:31, 1279.02 examples/s]
153
154... # redacted to reduce file size
155
156Map: 100%|██████████| 42348/42348 [00:33<00:00, 1241.91 examples/s]
157Map: 100%|██████████| 42348/42348 [00:33<00:00, 1255.75 examples/s]
158[2025-10-15, 11:56:39 UTC] {pod_manager.py:536} INFO - [base] INFO:root:model is loaded
159[2025-10-15, 11:56:43 UTC] {pod_manager.py:536} INFO - [base] INFO:root:Start training
160[2025-10-15, 11:56:43 UTC] {pod_manager.py:536} INFO - [base]
161 0%| | 0/106030 [00:00<?, ?it/s]/opt/lib/venv/lib/python3.11/site-packages/transformers/models/bert/modeling_bert.py:440: UserWarning: 1Torch was not compiled with memory efficient attention. (Triggered internally at ../aten/src/ATen/native/transformers/hip/sdp_utils.cpp:505.)
162[2025-10-15, 12:01:44 UTC] {pod_manager.py:555} INFO - [base] attn_output = torch.nn.functional.scaled_dot_product_attention(
163[2025-10-15, 13:33:40 UTC] {pod_manager.py:536} INFO - [base] {'loss': 0.6423, 'grad_norm': 6.070916175842285, 'learning_rate': 1.990587569555786e-06, 'epoch': 0.02}
164[2025-10-15, 13:33:40 UTC] {pod_manager.py:536} INFO - [base] {'loss': 0.6411, 'grad_norm': 5.905396938323975, 'learning_rate': 1.9811562765255115e-06, 'epoch': 0.05}
165[2025-10-15, 13:33:40 UTC] {pod_manager.py:536} INFO - [base] {'loss': 0.6395, 'grad_norm': 2.7221639156341553, 'learning_rate': 1.971724983495237e-06, 'epoch': 0.07}
166[2025-10-15, 13:33:40 UTC] {pod_manager.py:536} INFO - [base] {'loss': 0.6429, 'grad_norm': 5.348031997680664, 'learning_rate': 1.9622936904649627e-06, 'epoch': 0.09}
167[2025-10-15, 13:33:40 UTC] {pod_manager.py:536} INFO - [base] {'loss': 0.642, 'grad_norm': 5.321819305419922, 'learning_rate': 1.9528623974346882e-06, 'epoch': 0.12}
168[2025-10-15, 13:33:40 UTC] {pod_manager.py:536} INFO - [base] {'loss': 0.6392, 'grad_norm': 2.793792963027954, 'learning_rate': 1.943431104404414e-06, 'epoch': 0.14}
169[2025-10-15, 13:33:40 UTC] {pod_manager.py:536} INFO - [base] {'loss': 0.6419, 'grad_norm': 2.597247362136841, 'learning_rate': 1.9339998113741394e-06, 'epoch': 0.17}
170[2025-10-15, 13:33:40 UTC] {pod_manager.py:536} INFO - [base] {'loss': 0.6397, 'grad_norm': 3.55240535736084, 'learning_rate': 1.924568518343865e-06, 'epoch': 0.19}
171[2025-10-15, 13:33:40 UTC] {pod_manager.py:536} INFO - [base] {'loss': 0.6399, 'grad_norm': 2.341933250427246, 'learning_rate': 1.9151372253135906e-06, 'epoch': 0.21}
172[2025-10-15, 13:33:40 UTC] {pod_manager.py:536} INFO - [base] {'loss': 0.6398, 'grad_norm': 3.592921257019043, 'learning_rate': 1.905705932283316e-06, 'epoch': 0.24}
173[2025-10-15, 13:33:40 UTC] {pod_manager.py:536} INFO - [base] {'loss': 0.6373, 'grad_norm': 7.9143781661987305, 'learning_rate': 1.8962746392530415e-06, 'epoch': 0.26}
174[2025-10-15, 13:33:40 UTC] {pod_manager.py:536} INFO - [base] {'loss': 0.634, 'grad_norm': 4.7261834144592285, 'learning_rate': 1.8868433462227671e-06, 'epoch': 0.28}
175[2025-10-15, 13:33:40 UTC] {pod_manager.py:536} INFO - [base] {'loss': 0.6358, 'grad_norm': 2.875452995300293, 'learning_rate': 1.8774120531924927e-06, 'epoch': 0.31}
176[2025-10-15, 13:33:40 UTC] {pod_manager.py:536} INFO - [base] {'loss': 0.6401, 'grad_norm': 3.2663803100585938, 'learning_rate': 1.8679807601622183e-06, 'epoch': 0.33}
177[2025-10-15, 13:33:40 UTC] {pod_manager.py:536} INFO - [base] {'loss': 0.6361, 'grad_norm': 4.932499885559082, 'learning_rate': 1.8585494671319436e-06, 'epoch': 0.35}
178[2025-10-15, 13:33:40 UTC] {pod_manager.py:536} INFO - [base] {'loss': 0.6331, 'grad_norm': 5.004035949707031, 'learning_rate': 1.8491181741016692e-06, 'epoch': 0.38}
179[2025-10-15, 13:33:40 UTC] {pod_manager.py:536} INFO - [base] {'loss': 0.6412, 'grad_norm': 5.649186134338379, 'learning_rate': 1.8396868810713948e-06, 'epoch': 0.4}
180[2025-10-15, 13:33:40 UTC] {pod_manager.py:536} INFO - [base] {'loss': 0.6323, 'grad_norm': 4.0000433921813965, 'learning_rate': 1.8302555880411204e-06, 'epoch': 0.42}
181[2025-10-15, 13:33:40 UTC] {pod_manager.py:536} INFO - [base] {'loss': 0.6414, 'grad_norm': 3.3792359828948975, 'learning_rate': 1.820824295010846e-06, 'epoch': 0.45}
182[2025-10-15, 13:33:40 UTC] {pod_manager.py:536} INFO - [base] {'loss': 0.6394, 'grad_norm': 4.803319931030273, 'learning_rate': 1.8113930019805713e-06, 'epoch': 0.47}
183[2025-10-15, 13:33:40 UTC] {pod_manager.py:536} INFO - [base] {'loss': 0.6328, 'grad_norm': 3.722587823867798, 'learning_rate': 1.801961708950297e-06, 'epoch': 0.5}
184[2025-10-15, 13:33:40 UTC] {pod_manager.py:536} INFO - [base] {'loss': 0.6369, 'grad_norm': 4.020694732666016, 'learning_rate': 1.7925304159200225e-06, 'epoch': 0.52}
185[2025-10-15, 13:33:40 UTC] {pod_manager.py:536} INFO - [base] {'loss': 0.6337, 'grad_norm': 5.880030632019043, 'learning_rate': 1.783099122889748e-06, 'epoch': 0.54}
186[2025-10-15, 13:33:40 UTC] {pod_manager.py:536} INFO - [base] {'loss': 0.6314, 'grad_norm': 3.058603048324585, 'learning_rate': 1.7736678298594737e-06, 'epoch': 0.57}
187[2025-10-15, 13:33:40 UTC] {pod_manager.py:536} INFO - [base] {'loss': 0.6398, 'grad_norm': 4.470096111297607, 'learning_rate': 1.764236536829199e-06, 'epoch': 0.59}
188[2025-10-15, 13:33:40 UTC] {pod_manager.py:536} INFO - [base] {'loss': 0.6321, 'grad_norm': 4.005373954772949, 'learning_rate': 1.7548052437989246e-06, 'epoch': 0.61}
189[2025-10-15, 13:33:40 UTC] {pod_manager.py:536} INFO - [base] {'loss': 0.6267, 'grad_norm': 7.339422702789307, 'learning_rate': 1.7453739507686502e-06, 'epoch': 0.64}
190[2025-10-15, 13:33:40 UTC] {pod_manager.py:536} INFO - [base] {'loss': 0.6279, 'grad_norm': 6.25842809677124, 'learning_rate': 1.7359426577383758e-06, 'epoch': 0.66}
191[2025-10-15, 13:33:40 UTC] {pod_manager.py:536} INFO - [base] {'loss': 0.6353, 'grad_norm': 3.3102757930755615, 'learning_rate': 1.7265113647081014e-06, 'epoch': 0.68}
192[2025-10-15, 13:33:40 UTC] {pod_manager.py:536} INFO - [base] {'loss': 0.6349, 'grad_norm': 3.934011459350586, 'learning_rate': 1.717080071677827e-06, 'epoch': 0.71}
193[2025-10-15, 13:33:40 UTC] {pod_manager.py:536} INFO - [base] {'loss': 0.6386, 'grad_norm': 3.353762626647949, 'learning_rate': 1.7076487786475523e-06, 'epoch': 0.73}
194[2025-10-15, 13:33:40 UTC] {pod_manager.py:536} INFO - [base] {'loss': 0.628, 'grad_norm': 5.1332316398620605, 'learning_rate': 1.698217485617278e-06, 'epoch': 0.75}
195[2025-10-15, 13:33:40 UTC] {pod_manager.py:536} INFO - [base] {'loss': 0.6302, 'grad_norm': 3.007160186767578, 'learning_rate': 1.6887861925870035e-06, 'epoch': 0.78}
196[2025-10-15, 13:33:40 UTC] {pod_manager.py:536} INFO - [base] {'loss': 0.6245, 'grad_norm': 3.9952235221862793, 'learning_rate': 1.679354899556729e-06, 'epoch': 0.8}
197[2025-10-15, 13:33:40 UTC] {pod_manager.py:536} INFO - [base] {'loss': 0.637, 'grad_norm': 4.245060920715332, 'learning_rate': 1.6699236065264549e-06, 'epoch': 0.83}
198[2025-10-15, 13:33:40 UTC] {pod_manager.py:536} INFO - [base] {'loss': 0.6304, 'grad_norm': 5.188295364379883, 'learning_rate': 1.6604923134961805e-06, 'epoch': 0.85}
199[2025-10-15, 13:33:40 UTC] {pod_manager.py:536} INFO - [base] {'loss': 0.6375, 'grad_norm': 6.211109638214111, 'learning_rate': 1.6510610204659058e-06, 'epoch': 0.87}
200[2025-10-15, 13:33:40 UTC] {pod_manager.py:536} INFO - [base] {'loss': 0.6364, 'grad_norm': 8.628661155700684, 'learning_rate': 1.6416297274356314e-06, 'epoch': 0.9}
201[2025-10-15, 13:33:40 UTC] {pod_manager.py:536} INFO - [base] {'loss': 0.6329, 'grad_norm': 4.3004679679870605, 'learning_rate': 1.632198434405357e-06, 'epoch': 0.92}
202[2025-10-15, 13:33:40 UTC] {pod_manager.py:536} INFO - [base] {'loss': 0.6319, 'grad_norm': 3.8821022510528564, 'learning_rate': 1.6227671413750826e-06, 'epoch': 0.94}
203[2025-10-15, 13:33:40 UTC] {pod_manager.py:536} INFO - [base] {'loss': 0.6354, 'grad_norm': 3.969634771347046, 'learning_rate': 1.6133358483448082e-06, 'epoch': 0.97}
204[2025-10-15, 13:33:40 UTC] {pod_manager.py:536} INFO - [base] {'loss': 0.6315, 'grad_norm': 7.608715534210205, 'learning_rate': 1.6039045553145335e-06, 'epoch': 0.99}
205[2025-10-15, 13:33:40 UTC] {pod_manager.py:536} INFO - [base]
206 0%| | 1/106030 [00:05<147:24:26, 5.00s/it]
207 0%| | 2/106030 [00:05<65:38:57, 2.23s/it]
208 0%| | 3/106030 [00:05<39:52:34, 1.35s/it]
209
210... # redacted to reduce file size
211
212100%|█████████▉| 2645/2647 [03:57<00:00, 11.14it/s]
213[2025-10-15, 13:37:37 UTC] {pod_manager.py:536} INFO - [base]
214100%|██████████| 2647/2647 [03:57<00:00, 11.74it/s]
215[2025-10-15, 13:37:37 UTC] {pod_manager.py:536} INFO - [base]
216
217
218 20%|██ | 21206/106030 [1:40:58<5:51:45, 4.02it/s]
219[2025-10-15, 13:37:37 UTC] {pod_manager.py:536} INFO - [base]
220100%|██████████| 2647/2647 [03:57<00:00, 11.74it/s]
221[2025-10-15, 13:37:37 UTC] {pod_manager.py:536} INFO - [base]
222 /opt/lib/venv/lib/python3.11/site-packages/transformers/configuration_utils.py:393: UserWarning: Some non-default generation parameters are set in the model config. These should go into either a) `model.generation_config` (as opposed to `model.config`); OR b) a GenerationConfig file (https://huggingface.co/docs/transformers/generation_strategies#save-a-custom-decoding-strategy-with-your-model).This warning will become an exception in the future.
223[2025-10-15, 13:37:37 UTC] {pod_manager.py:536} INFO - [base] Non-default generation parameters: {'max_length': 512}
224[2025-10-15, 13:42:37 UTC] {pod_manager.py:555} INFO - [base] warnings.warn(
225[2025-10-15, 15:14:31 UTC] {pod_manager.py:536} INFO - [base] {'eval_loss': 0.6354748606681824, 'eval_acc': 0.62982903560971, 'eval_roc_auc': 0.6988634618301884, 'eval_threshold': 0.2593165934085846, 'eval_pr_auc': 0.6841685476552022, 'eval_recall': 0.5217596526007741, 'eval_precision': 0.6659838534763225, 'eval_f1': 0.5851153927588397, 'eval_tn': 15618, 'eval_fp': 5544, 'eval_fn': 10132, 'eval_tp': 11054, 'eval_runtime': 237.6069, 'eval_samples_per_second': 178.227, 'eval_steps_per_second': 11.14, 'epoch': 1.0}
226[2025-10-15, 15:14:31 UTC] {pod_manager.py:536} INFO - [base] {'loss': 0.6247, 'grad_norm': 6.67779016494751, 'learning_rate': 1.5944732622842591e-06, 'epoch': 1.01}
227[2025-10-15, 15:14:31 UTC] {pod_manager.py:536} INFO - [base] {'loss': 0.628, 'grad_norm': 6.8413214683532715, 'learning_rate': 1.5850419692539847e-06, 'epoch': 1.04}
228[2025-10-15, 15:14:31 UTC] {pod_manager.py:536} INFO - [base] {'loss': 0.62, 'grad_norm': 6.276639938354492, 'learning_rate': 1.5756106762237103e-06, 'epoch': 1.06}
229[2025-10-15, 15:14:31 UTC] {pod_manager.py:536} INFO - [base] {'loss': 0.6239, 'grad_norm': 4.70819616317749, 'learning_rate': 1.5661793831934359e-06, 'epoch': 1.08}
230[2025-10-15, 15:14:31 UTC] {pod_manager.py:536} INFO - [base] {'loss': 0.6221, 'grad_norm': 3.458310127258301, 'learning_rate': 1.5567480901631614e-06, 'epoch': 1.11}
231[2025-10-15, 15:14:31 UTC] {pod_manager.py:536} INFO - [base] {'loss': 0.6173, 'grad_norm': 4.4326701164245605, 'learning_rate': 1.5473167971328868e-06, 'epoch': 1.13}
232[2025-10-15, 15:14:31 UTC] {pod_manager.py:536} INFO - [base] {'loss': 0.6171, 'grad_norm': 4.487548351287842, 'learning_rate': 1.5378855041026124e-06, 'epoch': 1.16}
233[2025-10-15, 15:14:31 UTC] {pod_manager.py:536} INFO - [base] {'loss': 0.6186, 'grad_norm': 4.018914699554443, 'learning_rate': 1.528454211072338e-06, 'epoch': 1.18}
234[2025-10-15, 15:14:31 UTC] {pod_manager.py:536} INFO - [base] {'loss': 0.6223, 'grad_norm': 7.04609489440918, 'learning_rate': 1.5190229180420636e-06, 'epoch': 1.2}
235[2025-10-15, 15:14:31 UTC] {pod_manager.py:536} INFO - [base] {'loss': 0.6187, 'grad_norm': 9.664411544799805, 'learning_rate': 1.5095916250117891e-06, 'epoch': 1.23}
236[2025-10-15, 15:14:31 UTC] {pod_manager.py:536} INFO - [base] {'loss': 0.624, 'grad_norm': 4.543412208557129, 'learning_rate': 1.5001603319815145e-06, 'epoch': 1.25}
237[2025-10-15, 15:14:31 UTC] {pod_manager.py:536} INFO - [base] {'loss': 0.6148, 'grad_norm': 7.545193195343018, 'learning_rate': 1.49072903895124e-06, 'epoch': 1.27}
238[2025-10-15, 15:14:31 UTC] {pod_manager.py:536} INFO - [base]
239 20%|██ | 21207/106030 [1:41:02<1713:46:03, 72.73s/it]
240 20%|██ | 21208/106030 [1:41:03<1201:32:50, 51.00s/it]
241 20%|██ | 21209/106030 [1:41:03<843:00:08, 35.78s/it]
242 20%|██ | 21210/106030 [1:41:03<592:01:08, 25.13s/it]
243
244... # redacted to reduce file size
245
246 40%|███▉ | 42407/106030 [3:17:50<4:50:50, 3.65it/s]
247 40%|███▉ | 42408/106030 [3:17:50<4:51:00, 3.64it/s]
248 40%|███▉ | 42409/106030 [3:17:50<4:50:40, 3.65it/s]
249 40%|███▉ | 42410/106030 [3:17:51<4:51:14, 3.64it/s]
250 40%|███▉ | 42411/106030 [3:17:51<4:54:52, 3.60it/s]
251 40%|████ | 42412/106030 [3:17:51<4:22:55, 4.03it/s]
252[2025-10-15, 15:14:31 UTC] {pod_manager.py:536} INFO - [base] {'loss': 0.6165, 'grad_norm': 3.394272804260254, 'learning_rate': 1.4812977459209657e-06, 'epoch': 1.3}
253[2025-10-15, 15:14:31 UTC] {pod_manager.py:536} INFO - [base] {'loss': 0.6213, 'grad_norm': 4.94447660446167, 'learning_rate': 1.4718664528906913e-06, 'epoch': 1.32}
254[2025-10-15, 15:14:31 UTC] {pod_manager.py:536} INFO - [base] {'loss': 0.6169, 'grad_norm': 4.831089019775391, 'learning_rate': 1.4624351598604168e-06, 'epoch': 1.34}
255[2025-10-15, 15:14:31 UTC] {pod_manager.py:536} INFO - [base] {'loss': 0.6249, 'grad_norm': 4.162430763244629, 'learning_rate': 1.4530038668301422e-06, 'epoch': 1.37}
256[2025-10-15, 15:14:31 UTC] {pod_manager.py:536} INFO - [base] {'loss': 0.6201, 'grad_norm': 4.617546558380127, 'learning_rate': 1.4435725737998678e-06, 'epoch': 1.39}
257[2025-10-15, 15:14:31 UTC] {pod_manager.py:536} INFO - [base] {'loss': 0.6234, 'grad_norm': 5.7522125244140625, 'learning_rate': 1.4341412807695934e-06, 'epoch': 1.41}
258[2025-10-15, 15:14:31 UTC] {pod_manager.py:536} INFO - [base] {'loss': 0.6187, 'grad_norm': 4.133045673370361, 'learning_rate': 1.424709987739319e-06, 'epoch': 1.44}
259[2025-10-15, 15:14:31 UTC] {pod_manager.py:536} INFO - [base] {'loss': 0.6178, 'grad_norm': 6.870006561279297, 'learning_rate': 1.4152786947090445e-06, 'epoch': 1.46}
260[2025-10-15, 15:14:31 UTC] {pod_manager.py:536} INFO - [base] {'loss': 0.6228, 'grad_norm': 5.523893356323242, 'learning_rate': 1.4058474016787701e-06, 'epoch': 1.49}
261[2025-10-15, 15:14:31 UTC] {pod_manager.py:536} INFO - [base] {'loss': 0.6227, 'grad_norm': 3.986300468444824, 'learning_rate': 1.3964161086484955e-06, 'epoch': 1.51}
262[2025-10-15, 15:14:31 UTC] {pod_manager.py:536} INFO - [base] {'loss': 0.6172, 'grad_norm': 4.057941913604736, 'learning_rate': 1.386984815618221e-06, 'epoch': 1.53}
263[2025-10-15, 15:14:31 UTC] {pod_manager.py:536} INFO - [base] {'loss': 0.6261, 'grad_norm': 5.595047473907471, 'learning_rate': 1.3775535225879467e-06, 'epoch': 1.56}
264[2025-10-15, 15:14:31 UTC] {pod_manager.py:536} INFO - [base] {'loss': 0.6234, 'grad_norm': 5.963719844818115, 'learning_rate': 1.3681222295576722e-06, 'epoch': 1.58}
265[2025-10-15, 15:14:31 UTC] {pod_manager.py:536} INFO - [base] {'loss': 0.625, 'grad_norm': 4.311999320983887, 'learning_rate': 1.3586909365273978e-06, 'epoch': 1.6}
266[2025-10-15, 15:14:31 UTC] {pod_manager.py:536} INFO - [base] {'loss': 0.6222, 'grad_norm': 5.690207004547119, 'learning_rate': 1.3492596434971232e-06, 'epoch': 1.63}
267[2025-10-15, 15:14:31 UTC] {pod_manager.py:536} INFO - [base] {'loss': 0.6139, 'grad_norm': 6.163779258728027, 'learning_rate': 1.3398283504668488e-06, 'epoch': 1.65}
268[2025-10-15, 15:14:31 UTC] {pod_manager.py:536} INFO - [base] {'loss': 0.6277, 'grad_norm': 3.9470481872558594, 'learning_rate': 1.3303970574365746e-06, 'epoch': 1.67}
269[2025-10-15, 15:14:31 UTC] {pod_manager.py:536} INFO - [base] {'loss': 0.62, 'grad_norm': 5.366945743560791, 'learning_rate': 1.3209657644063001e-06, 'epoch': 1.7}
270[2025-10-15, 15:14:31 UTC] {pod_manager.py:536} INFO - [base] {'loss': 0.6149, 'grad_norm': 5.859382152557373, 'learning_rate': 1.3115344713760257e-06, 'epoch': 1.72}
271[2025-10-15, 15:14:31 UTC] {pod_manager.py:536} INFO - [base] {'loss': 0.6222, 'grad_norm': 8.461797714233398, 'learning_rate': 1.3021031783457513e-06, 'epoch': 1.74}
272[2025-10-15, 15:14:31 UTC] {pod_manager.py:536} INFO - [base] {'loss': 0.6264, 'grad_norm': 4.8710408210754395, 'learning_rate': 1.2926718853154767e-06, 'epoch': 1.77}
273[2025-10-15, 15:14:31 UTC] {pod_manager.py:536} INFO - [base] {'loss': 0.621, 'grad_norm': 6.1376848220825195, 'learning_rate': 1.2832405922852023e-06, 'epoch': 1.79}
274[2025-10-15, 15:14:31 UTC] {pod_manager.py:536} INFO - [base] {'loss': 0.6174, 'grad_norm': 5.885626316070557, 'learning_rate': 1.2738092992549278e-06, 'epoch': 1.82}
275[2025-10-15, 15:14:31 UTC] {pod_manager.py:536} INFO - [base] {'loss': 0.6154, 'grad_norm': 6.553479194641113, 'learning_rate': 1.2643780062246534e-06, 'epoch': 1.84}
276[2025-10-15, 15:14:31 UTC] {pod_manager.py:536} INFO - [base] {'loss': 0.6148, 'grad_norm': 6.12976598739624, 'learning_rate': 1.254946713194379e-06, 'epoch': 1.86}
277[2025-10-15, 15:14:31 UTC] {pod_manager.py:536} INFO - [base] {'loss': 0.6188, 'grad_norm': 4.8374176025390625, 'learning_rate': 1.2455154201641046e-06, 'epoch': 1.89}
278[2025-10-15, 15:14:31 UTC] {pod_manager.py:536} INFO - [base] {'loss': 0.6208, 'grad_norm': 5.298094272613525, 'learning_rate': 1.23608412713383e-06, 'epoch': 1.91}
279[2025-10-15, 15:14:31 UTC] {pod_manager.py:536} INFO - [base] {'loss': 0.6173, 'grad_norm': 4.874111175537109, 'learning_rate': 1.2266528341035555e-06, 'epoch': 1.93}
280[2025-10-15, 15:14:31 UTC] {pod_manager.py:536} INFO - [base] {'loss': 0.617, 'grad_norm': 6.878325939178467, 'learning_rate': 1.2172215410732811e-06, 'epoch': 1.96}
281[2025-10-15, 15:14:31 UTC] {pod_manager.py:536} INFO - [base] {'loss': 0.6263, 'grad_norm': 5.995079040527344, 'learning_rate': 1.2077902480430067e-06, 'epoch': 1.98}
282[2025-10-15, 15:14:31 UTC] {pod_manager.py:536} INFO - [base]
283 0%| | 0/2647 [00:00<?, ?it/s]
284[2025-10-15, 15:14:31 UTC] {pod_manager.py:536} INFO - [base]
285 0%| | 3/2647 [00:00<02:37, 16.76it/s]
286[2025-10-15, 15:14:31 UTC] {pod_manager.py:536} INFO - [base]
287 0%| | 5/2647 [00:00<03:16, 13.46it/s]
288
289... # redacted to reduce file size
290
291[2025-10-15, 15:18:28 UTC] {pod_manager.py:536} INFO - [base]
292100%|██████████| 2647/2647 [03:57<00:00, 11.77it/s]
293[2025-10-15, 15:18:28 UTC] {pod_manager.py:536} INFO - [base]
294
295
296 40%|████ | 42412/106030 [3:21:49<4:22:55, 4.03it/s]
297[2025-10-15, 15:18:28 UTC] {pod_manager.py:536} INFO - [base]
298100%|██████████| 2647/2647 [03:57<00:00, 11.77it/s]
299[2025-10-15, 15:18:28 UTC] {pod_manager.py:536} INFO - [base]
300 /opt/lib/venv/lib/python3.11/site-packages/transformers/configuration_utils.py:393: UserWarning: Some non-default generation parameters are set in the model config. These should go into either a) `model.generation_config` (as opposed to `model.config`); OR b) a GenerationConfig file (https://huggingface.co/docs/transformers/generation_strategies#save-a-custom-decoding-strategy-with-your-model).This warning will become an exception in the future.
301[2025-10-15, 15:18:28 UTC] {pod_manager.py:536} INFO - [base] Non-default generation parameters: {'max_length': 512}
302[2025-10-15, 15:23:28 UTC] {pod_manager.py:555} INFO - [base] warnings.warn(
303[2025-10-15, 16:55:18 UTC] {pod_manager.py:536} INFO - [base] {'eval_loss': 0.6152693629264832, 'eval_acc': 0.6525928024936243, 'eval_roc_auc': 0.7185036739190411, 'eval_threshold': 0.2353184074163437, 'eval_pr_auc': 0.7014412899479799, 'eval_recall': 0.7019730010384216, 'eval_precision': 0.6391061452513966, 'eval_f1': 0.6690660428288645, 'eval_tn': 12764, 'eval_fp': 8398, 'eval_fn': 6314, 'eval_tp': 14872, 'eval_runtime': 237.5183, 'eval_samples_per_second': 178.294, 'eval_steps_per_second': 11.144, 'epoch': 2.0}
304[2025-10-15, 16:55:18 UTC] {pod_manager.py:536} INFO - [base] {'loss': 0.6156, 'grad_norm': 4.658479690551758, 'learning_rate': 1.1983589550127323e-06, 'epoch': 2.0}
305[2025-10-15, 16:55:18 UTC] {pod_manager.py:536} INFO - [base] {'loss': 0.6075, 'grad_norm': 8.66067886352539, 'learning_rate': 1.1889276619824577e-06, 'epoch': 2.03}
306[2025-10-15, 16:55:18 UTC] {pod_manager.py:536} INFO - [base] {'loss': 0.6114, 'grad_norm': 7.777311325073242, 'learning_rate': 1.1794963689521832e-06, 'epoch': 2.05}
307[2025-10-15, 16:55:18 UTC] {pod_manager.py:536} INFO - [base] {'loss': 0.601, 'grad_norm': 6.3430681228637695, 'learning_rate': 1.1700650759219088e-06, 'epoch': 2.07}
308[2025-10-15, 16:55:18 UTC] {pod_manager.py:536} INFO - [base] {'loss': 0.6051, 'grad_norm': 7.416591167449951, 'learning_rate': 1.1606337828916344e-06, 'epoch': 2.1}
309[2025-10-15, 16:55:18 UTC] {pod_manager.py:536} INFO - [base] {'loss': 0.6101, 'grad_norm': 5.376911163330078, 'learning_rate': 1.15120248986136e-06, 'epoch': 2.12}
310[2025-10-15, 16:55:18 UTC] {pod_manager.py:536} INFO - [base] {'loss': 0.6063, 'grad_norm': 13.368337631225586, 'learning_rate': 1.1417711968310854e-06, 'epoch': 2.15}
311[2025-10-15, 16:55:18 UTC] {pod_manager.py:536} INFO - [base] {'loss': 0.6082, 'grad_norm': 4.172024726867676, 'learning_rate': 1.132339903800811e-06, 'epoch': 2.17}
312[2025-10-15, 16:55:18 UTC] {pod_manager.py:536} INFO - [base] {'loss': 0.6057, 'grad_norm': 6.794936656951904, 'learning_rate': 1.1229086107705365e-06, 'epoch': 2.19}
313[2025-10-15, 16:55:18 UTC] {pod_manager.py:536} INFO - [base] {'loss': 0.6128, 'grad_norm': 6.298652172088623, 'learning_rate': 1.1134773177402621e-06, 'epoch': 2.22}
314[2025-10-15, 16:55:18 UTC] {pod_manager.py:536} INFO - [base] {'loss': 0.6039, 'grad_norm': 5.803653717041016, 'learning_rate': 1.1040460247099877e-06, 'epoch': 2.24}
315[2025-10-15, 16:55:18 UTC] {pod_manager.py:536} INFO - [base] {'loss': 0.6036, 'grad_norm': 6.951972007751465, 'learning_rate': 1.0946147316797133e-06, 'epoch': 2.26}
316[2025-10-15, 16:55:18 UTC] {pod_manager.py:536} INFO - [base] {'loss': 0.6113, 'grad_norm': 12.717081069946289, 'learning_rate': 1.0851834386494386e-06, 'epoch': 2.29}
317[2025-10-15, 16:55:18 UTC] {pod_manager.py:536} INFO - [base] {'loss': 0.6087, 'grad_norm': 6.122921466827393, 'learning_rate': 1.0757521456191642e-06, 'epoch': 2.31}
318[2025-10-15, 16:55:18 UTC] {pod_manager.py:536} INFO - [base] {'loss': 0.61, 'grad_norm': 6.528174877166748, 'learning_rate': 1.0663208525888898e-06, 'epoch': 2.33}
319[2025-10-15, 16:55:18 UTC] {pod_manager.py:536} INFO - [base] {'loss': 0.6078, 'grad_norm': 6.244519233703613, 'learning_rate': 1.0568895595586154e-06, 'epoch': 2.36}
320[2025-10-15, 16:55:18 UTC] {pod_manager.py:536} INFO - [base] {'loss': 0.6078, 'grad_norm': 8.059078216552734, 'learning_rate': 1.047458266528341e-06, 'epoch': 2.38}
321[2025-10-15, 16:55:18 UTC] {pod_manager.py:536} INFO - [base] {'loss': 0.6014, 'grad_norm': 12.191542625427246, 'learning_rate': 1.0380269734980663e-06, 'epoch': 2.4}
322[2025-10-15, 16:55:18 UTC] {pod_manager.py:536} INFO - [base] {'loss': 0.6038, 'grad_norm': 9.043557167053223, 'learning_rate': 1.028595680467792e-06, 'epoch': 2.43}
323[2025-10-15, 16:55:18 UTC] {pod_manager.py:536} INFO - [base] {'loss': 0.6119, 'grad_norm': 6.343240261077881, 'learning_rate': 1.0191643874375175e-06, 'epoch': 2.45}
324[2025-10-15, 16:55:18 UTC] {pod_manager.py:536} INFO - [base] {'loss': 0.602, 'grad_norm': 9.4161958694458, 'learning_rate': 1.009733094407243e-06, 'epoch': 2.48}
325[2025-10-15, 16:55:18 UTC] {pod_manager.py:536} INFO - [base] {'loss': 0.6081, 'grad_norm': 6.449761867523193, 'learning_rate': 1.0003018013769689e-06, 'epoch': 2.5}
326[2025-10-15, 16:55:18 UTC] {pod_manager.py:536} INFO - [base] {'loss': 0.6111, 'grad_norm': 4.22745418548584, 'learning_rate': 9.908705083466943e-07, 'epoch': 2.52}
327[2025-10-15, 16:55:18 UTC] {pod_manager.py:536} INFO - [base] {'loss': 0.6089, 'grad_norm': 10.421077728271484, 'learning_rate': 9.814392153164198e-07, 'epoch': 2.55}
328[2025-10-15, 16:55:18 UTC] {pod_manager.py:536} INFO - [base]
329 40%|████ | 42413/106030 [3:21:53<1286:07:40, 72.78s/it]
330
331 ... # redacted to reduce file size
332
333 60%|█████▉ | 63616/106030 [4:58:38<3:13:47, 3.65it/s]
334 60%|█████▉ | 63617/106030 [4:58:38<3:16:01, 3.61it/s]
335 60%|██████ | 63618/106030 [4:58:38<2:55:20, 4.03it/s]
336[2025-10-15, 16:55:18 UTC] {pod_manager.py:536} INFO - [base] {'loss': 0.6056, 'grad_norm': 8.23884105682373, 'learning_rate': 9.720079222861454e-07, 'epoch': 2.57}
337[2025-10-15, 16:55:18 UTC] {pod_manager.py:536} INFO - [base] {'loss': 0.6072, 'grad_norm': 6.572593688964844, 'learning_rate': 9.62576629255871e-07, 'epoch': 2.59}
338[2025-10-15, 16:55:18 UTC] {pod_manager.py:536} INFO - [base] {'loss': 0.6131, 'grad_norm': 7.750418663024902, 'learning_rate': 9.531453362255965e-07, 'epoch': 2.62}
339[2025-10-15, 16:55:18 UTC] {pod_manager.py:536} INFO - [base] {'loss': 0.6076, 'grad_norm': 5.861970901489258, 'learning_rate': 9.43714043195322e-07, 'epoch': 2.64}
340[2025-10-15, 16:55:18 UTC] {pod_manager.py:536} INFO - [base] {'loss': 0.5973, 'grad_norm': 5.373157024383545, 'learning_rate': 9.342827501650475e-07, 'epoch': 2.66}
341[2025-10-15, 16:55:18 UTC] {pod_manager.py:536} INFO - [base] {'loss': 0.6047, 'grad_norm': 6.135097026824951, 'learning_rate': 9.248514571347731e-07, 'epoch': 2.69}
342[2025-10-15, 16:55:18 UTC] {pod_manager.py:536} INFO - [base] {'loss': 0.6097, 'grad_norm': 7.496209144592285, 'learning_rate': 9.154201641044987e-07, 'epoch': 2.71}
343[2025-10-15, 16:55:18 UTC] {pod_manager.py:536} INFO - [base] {'loss': 0.6077, 'grad_norm': 10.200074195861816, 'learning_rate': 9.059888710742243e-07, 'epoch': 2.74}
344[2025-10-15, 16:55:18 UTC] {pod_manager.py:536} INFO - [base] {'loss': 0.6068, 'grad_norm': 7.341528415679932, 'learning_rate': 8.965575780439499e-07, 'epoch': 2.76}
345[2025-10-15, 16:55:18 UTC] {pod_manager.py:536} INFO - [base] {'loss': 0.6052, 'grad_norm': 6.31362771987915, 'learning_rate': 8.871262850136753e-07, 'epoch': 2.78}
346[2025-10-15, 16:55:18 UTC] {pod_manager.py:536} INFO - [base] {'loss': 0.6065, 'grad_norm': 8.422157287597656, 'learning_rate': 8.776949919834009e-07, 'epoch': 2.81}
347[2025-10-15, 16:55:18 UTC] {pod_manager.py:536} INFO - [base] {'loss': 0.6081, 'grad_norm': 8.253030776977539, 'learning_rate': 8.682636989531264e-07, 'epoch': 2.83}
348[2025-10-15, 16:55:18 UTC] {pod_manager.py:536} INFO - [base] {'loss': 0.6072, 'grad_norm': 8.086298942565918, 'learning_rate': 8.58832405922852e-07, 'epoch': 2.85}
349[2025-10-15, 16:55:18 UTC] {pod_manager.py:536} INFO - [base] {'loss': 0.6044, 'grad_norm': 7.065197944641113, 'learning_rate': 8.494011128925776e-07, 'epoch': 2.88}
350[2025-10-15, 16:55:18 UTC] {pod_manager.py:536} INFO - [base] {'loss': 0.6133, 'grad_norm': 7.786883354187012, 'learning_rate': 8.39969819862303e-07, 'epoch': 2.9}
351[2025-10-15, 16:55:18 UTC] {pod_manager.py:536} INFO - [base] {'loss': 0.6096, 'grad_norm': 5.353122711181641, 'learning_rate': 8.305385268320286e-07, 'epoch': 2.92}
352[2025-10-15, 16:55:18 UTC] {pod_manager.py:536} INFO - [base] {'loss': 0.6042, 'grad_norm': 6.470364570617676, 'learning_rate': 8.211072338017542e-07, 'epoch': 2.95}
353[2025-10-15, 16:55:18 UTC] {pod_manager.py:536} INFO - [base] {'loss': 0.6044, 'grad_norm': 11.000511169433594, 'learning_rate': 8.116759407714797e-07, 'epoch': 2.97}
354[2025-10-15, 16:55:18 UTC] {pod_manager.py:536} INFO - [base] {'loss': 0.6095, 'grad_norm': 11.833686828613281, 'learning_rate': 8.022446477412053e-07, 'epoch': 2.99}
355[2025-10-15, 16:55:18 UTC] {pod_manager.py:536} INFO - [base]
356 0%| | 0/2647 [00:00<?, ?it/s]
357[2025-10-15, 16:55:18 UTC] {pod_manager.py:536} INFO - [base]
358 0%| | 3/2647 [00:00<02:37, 16.76it/s]
359[2025-10-15, 16:55:19 UTC] {pod_manager.py:536} INFO - [base]
360 0%| | 5/2647 [00:00<03:16, 13.46it/s]
361
362... # redacted to reduce file size
363
364[2025-10-15, 16:59:15 UTC] {pod_manager.py:536} INFO - [base]
365100%|██████████| 2647/2647 [03:57<00:00, 11.76it/s]
366[2025-10-15, 16:59:15 UTC] {pod_manager.py:536} INFO - [base]
367
368
369 60%|██████ | 63618/106030 [5:02:36<2:55:20, 4.03it/s]
370[2025-10-15, 16:59:15 UTC] {pod_manager.py:536} INFO - [base]
371100%|██████████| 2647/2647 [03:57<00:00, 11.76it/s]
372[2025-10-15, 16:59:15 UTC] {pod_manager.py:536} INFO - [base]
373 /opt/lib/venv/lib/python3.11/site-packages/transformers/configuration_utils.py:393: UserWarning: Some non-default generation parameters are set in the model config. These should go into either a) `model.generation_config` (as opposed to `model.config`); OR b) a GenerationConfig file (https://huggingface.co/docs/transformers/generation_strategies#save-a-custom-decoding-strategy-with-your-model).This warning will become an exception in the future.
374[2025-10-15, 16:59:15 UTC] {pod_manager.py:536} INFO - [base] Non-default generation parameters: {'max_length': 512}
375[2025-10-15, 17:04:15 UTC] {pod_manager.py:555} INFO - [base] warnings.warn(
376[2025-10-15, 18:36:07 UTC] {pod_manager.py:536} INFO - [base] {'eval_loss': 0.6122112274169922, 'eval_acc': 0.6591574572589024, 'eval_roc_auc': 0.7307889059947281, 'eval_threshold': 0.22145114839076996, 'eval_pr_auc': 0.7134721389442993, 'eval_recall': 0.6448598130841121, 'eval_precision': 0.6641065525957612, 'eval_f1': 0.6543416830307965, 'eval_tn': 14252, 'eval_fp': 6910, 'eval_fn': 7524, 'eval_tp': 13662, 'eval_runtime': 237.3995, 'eval_samples_per_second': 178.383, 'eval_steps_per_second': 11.15, 'epoch': 3.0}
377[2025-10-15, 18:36:07 UTC] {pod_manager.py:536} INFO - [base] {'loss': 0.5982, 'grad_norm': 9.961583137512207, 'learning_rate': 7.928133547109309e-07, 'epoch': 3.02}
378[2025-10-15, 18:36:07 UTC] {pod_manager.py:536} INFO - [base] {'loss': 0.5906, 'grad_norm': 9.949471473693848, 'learning_rate': 7.833820616806563e-07, 'epoch': 3.04}
379[2025-10-15, 18:36:07 UTC] {pod_manager.py:536} INFO - [base] {'loss': 0.5948, 'grad_norm': 8.97813606262207, 'learning_rate': 7.739507686503819e-07, 'epoch': 3.07}
380[2025-10-15, 18:36:07 UTC] {pod_manager.py:536} INFO - [base] {'loss': 0.6019, 'grad_norm': 14.657052040100098, 'learning_rate': 7.645194756201074e-07, 'epoch': 3.09}
381[2025-10-15, 18:36:07 UTC] {pod_manager.py:536} INFO - [base] {'loss': 0.5962, 'grad_norm': 9.140484809875488, 'learning_rate': 7.55088182589833e-07, 'epoch': 3.11}
382[2025-10-15, 18:36:07 UTC] {pod_manager.py:536} INFO - [base] {'loss': 0.5953, 'grad_norm': 15.748790740966797, 'learning_rate': 7.456568895595587e-07, 'epoch': 3.14}
383[2025-10-15, 18:36:07 UTC] {pod_manager.py:536} INFO - [base] {'loss': 0.5982, 'grad_norm': 7.403034210205078, 'learning_rate': 7.362255965292841e-07, 'epoch': 3.16}
384[2025-10-15, 18:36:07 UTC] {pod_manager.py:536} INFO - [base] {'loss': 0.596, 'grad_norm': 6.12062406539917, 'learning_rate': 7.267943034990097e-07, 'epoch': 3.18}
385[2025-10-15, 18:36:07 UTC] {pod_manager.py:536} INFO - [base] {'loss': 0.593, 'grad_norm': 11.654833793640137, 'learning_rate': 7.173630104687353e-07, 'epoch': 3.21}
386[2025-10-15, 18:36:07 UTC] {pod_manager.py:536} INFO - [base] {'loss': 0.5929, 'grad_norm': 11.676082611083984, 'learning_rate': 7.079317174384608e-07, 'epoch': 3.23}
387[2025-10-15, 18:36:07 UTC] {pod_manager.py:536} INFO - [base] {'loss': 0.5922, 'grad_norm': 11.270044326782227, 'learning_rate': 6.985004244081864e-07, 'epoch': 3.25}
388[2025-10-15, 18:36:07 UTC] {pod_manager.py:536} INFO - [base] {'loss': 0.5947, 'grad_norm': 10.029565811157227, 'learning_rate': 6.890691313779119e-07, 'epoch': 3.28}
389[2025-10-15, 18:36:07 UTC] {pod_manager.py:536} INFO - [base] {'loss': 0.6017, 'grad_norm': 6.203061580657959, 'learning_rate': 6.796378383476374e-07, 'epoch': 3.3}
390[2025-10-15, 18:36:07 UTC] {pod_manager.py:536} INFO - [base] {'loss': 0.5928, 'grad_norm': 9.454727172851562, 'learning_rate': 6.70206545317363e-07, 'epoch': 3.32}
391[2025-10-15, 18:36:07 UTC] {pod_manager.py:536} INFO - [base] {'loss': 0.6059, 'grad_norm': 10.883103370666504, 'learning_rate': 6.607752522870885e-07, 'epoch': 3.35}
392[2025-10-15, 18:36:07 UTC] {pod_manager.py:536} INFO - [base] {'loss': 0.5976, 'grad_norm': 11.775595664978027, 'learning_rate': 6.513439592568141e-07, 'epoch': 3.37}
393[2025-10-15, 18:36:07 UTC] {pod_manager.py:536} INFO - [base] {'loss': 0.5947, 'grad_norm': 11.977025985717773, 'learning_rate': 6.419126662265396e-07, 'epoch': 3.4}
394[2025-10-15, 18:36:07 UTC] {pod_manager.py:536} INFO - [base] {'loss': 0.6025, 'grad_norm': 11.639219284057617, 'learning_rate': 6.324813731962651e-07, 'epoch': 3.42}
395[2025-10-15, 18:36:07 UTC] {pod_manager.py:536} INFO - [base] {'loss': 0.5937, 'grad_norm': 18.144941329956055, 'learning_rate': 6.230500801659907e-07, 'epoch': 3.44}
396[2025-10-15, 18:36:07 UTC] {pod_manager.py:536} INFO - [base] {'loss': 0.5925, 'grad_norm': 15.53461742401123, 'learning_rate': 6.136187871357163e-07, 'epoch': 3.47}
397[2025-10-15, 18:36:07 UTC] {pod_manager.py:536} INFO - [base] {'loss': 0.5918, 'grad_norm': 8.629237174987793, 'learning_rate': 6.041874941054418e-07, 'epoch': 3.49}
398[2025-10-15, 18:36:07 UTC] {pod_manager.py:536} INFO - [base] {'loss': 0.5933, 'grad_norm': 10.7471342086792, 'learning_rate': 5.947562010751673e-07, 'epoch': 3.51}
399[2025-10-15, 18:36:07 UTC] {pod_manager.py:536} INFO - [base] {'loss': 0.5913, 'grad_norm': 8.971384048461914, 'learning_rate': 5.853249080448929e-07, 'epoch': 3.54}
400[2025-10-15, 18:36:07 UTC] {pod_manager.py:536} INFO - [base]
401 60%|██████ | 63619/106030 [5:02:39<852:56:21, 72.40s/it]
402 60%|██████ | 63620/106030 [5:02:39<597:59:59, 50.76s/it]
403
404... # redacted to reduce file size
405
406 80%|███████▉ | 84821/106030 [6:39:27<1:36:28, 3.66it/s]
407 80%|███████▉ | 84822/106030 [6:39:27<1:36:35, 3.66it/s]
408 80%|███████▉ | 84823/106030 [6:39:27<1:37:31, 3.62it/s]
409 80%|████████ | 84824/106030 [6:39:27<1:27:04, 4.06it/s]
410[2025-10-15, 18:36:07 UTC] {pod_manager.py:536} INFO - [base] {'loss': 0.5963, 'grad_norm': 13.28220272064209, 'learning_rate': 5.758936150146185e-07, 'epoch': 3.56}
411[2025-10-15, 18:36:07 UTC] {pod_manager.py:536} INFO - [base] {'loss': 0.5921, 'grad_norm': 9.557356834411621, 'learning_rate': 5.664623219843441e-07, 'epoch': 3.58}
412[2025-10-15, 18:36:07 UTC] {pod_manager.py:536} INFO - [base] {'loss': 0.5977, 'grad_norm': 11.338300704956055, 'learning_rate': 5.570310289540696e-07, 'epoch': 3.61}
413[2025-10-15, 18:36:07 UTC] {pod_manager.py:536} INFO - [base] {'loss': 0.5925, 'grad_norm': 8.866342544555664, 'learning_rate': 5.475997359237951e-07, 'epoch': 3.63}
414[2025-10-15, 18:36:07 UTC] {pod_manager.py:536} INFO - [base] {'loss': 0.5975, 'grad_norm': 8.839162826538086, 'learning_rate': 5.381684428935207e-07, 'epoch': 3.65}
415[2025-10-15, 18:36:07 UTC] {pod_manager.py:536} INFO - [base] {'loss': 0.586, 'grad_norm': 10.046289443969727, 'learning_rate': 5.287371498632462e-07, 'epoch': 3.68}
416[2025-10-15, 18:36:07 UTC] {pod_manager.py:536} INFO - [base] {'loss': 0.6022, 'grad_norm': 9.611151695251465, 'learning_rate': 5.193058568329718e-07, 'epoch': 3.7}
417[2025-10-15, 18:36:07 UTC] {pod_manager.py:536} INFO - [base] {'loss': 0.5848, 'grad_norm': 12.636774063110352, 'learning_rate': 5.098745638026974e-07, 'epoch': 3.73}
418[2025-10-15, 18:36:07 UTC] {pod_manager.py:536} INFO - [base] {'loss': 0.5875, 'grad_norm': 12.934643745422363, 'learning_rate': 5.004432707724228e-07, 'epoch': 3.75}
419[2025-10-15, 18:36:07 UTC] {pod_manager.py:536} INFO - [base] {'loss': 0.5947, 'grad_norm': 5.338672161102295, 'learning_rate': 4.910119777421484e-07, 'epoch': 3.77}
420[2025-10-15, 18:36:07 UTC] {pod_manager.py:536} INFO - [base] {'loss': 0.5906, 'grad_norm': 8.955092430114746, 'learning_rate': 4.81580684711874e-07, 'epoch': 3.8}
421[2025-10-15, 18:36:07 UTC] {pod_manager.py:536} INFO - [base] {'loss': 0.5886, 'grad_norm': 10.987375259399414, 'learning_rate': 4.721493916815995e-07, 'epoch': 3.82}
422[2025-10-15, 18:36:07 UTC] {pod_manager.py:536} INFO - [base] {'loss': 0.5897, 'grad_norm': 10.073204040527344, 'learning_rate': 4.6271809865132507e-07, 'epoch': 3.84}
423[2025-10-15, 18:36:07 UTC] {pod_manager.py:536} INFO - [base] {'loss': 0.5839, 'grad_norm': 8.8020601272583, 'learning_rate': 4.5328680562105065e-07, 'epoch': 3.87}
424[2025-10-15, 18:36:07 UTC] {pod_manager.py:536} INFO - [base] {'loss': 0.5984, 'grad_norm': 9.166159629821777, 'learning_rate': 4.438555125907762e-07, 'epoch': 3.89}
425[2025-10-15, 18:36:07 UTC] {pod_manager.py:536} INFO - [base] {'loss': 0.5895, 'grad_norm': 10.280080795288086, 'learning_rate': 4.344242195605017e-07, 'epoch': 3.91}
426[2025-10-15, 18:36:07 UTC] {pod_manager.py:536} INFO - [base] {'loss': 0.5969, 'grad_norm': 10.09818172454834, 'learning_rate': 4.249929265302273e-07, 'epoch': 3.94}
427[2025-10-15, 18:36:07 UTC] {pod_manager.py:536} INFO - [base] {'loss': 0.5907, 'grad_norm': 10.585753440856934, 'learning_rate': 4.155616334999528e-07, 'epoch': 3.96}
428[2025-10-15, 18:36:07 UTC] {pod_manager.py:536} INFO - [base] {'loss': 0.5954, 'grad_norm': 10.57239818572998, 'learning_rate': 4.0613034046967835e-07, 'epoch': 3.98}
429[2025-10-15, 18:36:07 UTC] {pod_manager.py:536} INFO - [base]
430 0%| | 0/2647 [00:00<?, ?it/s]
431[2025-10-15, 18:36:07 UTC] {pod_manager.py:536} INFO - [base]
432 0%| | 3/2647 [00:00<02:37, 16.77it/s]
433[2025-10-15, 18:36:08 UTC] {pod_manager.py:536} INFO - [base]
434
435... # redacted to reduce file size
436
437100%|█████████▉| 2645/2647 [03:57<00:00, 11.15it/s]
438[2025-10-15, 18:40:04 UTC] {pod_manager.py:536} INFO - [base]
439100%|██████████| 2647/2647 [03:57<00:00, 11.75it/s]
440[2025-10-15, 18:40:04 UTC] {pod_manager.py:536} INFO - [base]
441
442
443 80%|████████ | 84824/106030 [6:43:25<1:27:04, 4.06it/s]
444[2025-10-15, 18:40:04 UTC] {pod_manager.py:536} INFO - [base]
445100%|██████████| 2647/2647 [03:57<00:00, 11.75it/s]
446[2025-10-15, 18:40:04 UTC] {pod_manager.py:536} INFO - [base]
447 /opt/lib/venv/lib/python3.11/site-packages/transformers/configuration_utils.py:393: UserWarning: Some non-default generation parameters are set in the model config. These should go into either a) `model.generation_config` (as opposed to `model.config`); OR b) a GenerationConfig file (https://huggingface.co/docs/transformers/generation_strategies#save-a-custom-decoding-strategy-with-your-model).This warning will become an exception in the future.
448[2025-10-15, 18:40:04 UTC] {pod_manager.py:536} INFO - [base] Non-default generation parameters: {'max_length': 512}
449[2025-10-15, 18:45:04 UTC] {pod_manager.py:555} INFO - [base] warnings.warn(
450[2025-10-15, 20:16:59 UTC] {pod_manager.py:536} INFO - [base] {'eval_loss': 0.6242849230766296, 'eval_acc': 0.6646358741853217, 'eval_roc_auc': 0.739682920836187, 'eval_threshold': 0.16031260788440704, 'eval_pr_auc': 0.7230522591192909, 'eval_recall': 0.6046445766071934, 'eval_precision': 0.6873792659368964, 'eval_f1': 0.6433629651951183, 'eval_tn': 15336, 'eval_fp': 5826, 'eval_fn': 8376, 'eval_tp': 12810, 'eval_runtime': 237.5379, 'eval_samples_per_second': 178.279, 'eval_steps_per_second': 11.143, 'epoch': 4.0}
451[2025-10-15, 20:16:59 UTC] {pod_manager.py:536} INFO - [base] {'loss': 0.5862, 'grad_norm': 10.31966495513916, 'learning_rate': 3.9669904743940394e-07, 'epoch': 4.01}
452[2025-10-15, 20:16:59 UTC] {pod_manager.py:536} INFO - [base] {'loss': 0.5876, 'grad_norm': 9.954105377197266, 'learning_rate': 3.8726775440912947e-07, 'epoch': 4.03}
453[2025-10-15, 20:16:59 UTC] {pod_manager.py:536} INFO - [base] {'loss': 0.5853, 'grad_norm': 11.327775001525879, 'learning_rate': 3.77836461378855e-07, 'epoch': 4.06}
454[2025-10-15, 20:16:59 UTC] {pod_manager.py:536} INFO - [base] {'loss': 0.5768, 'grad_norm': 15.95678424835205, 'learning_rate': 3.684051683485806e-07, 'epoch': 4.08}
455[2025-10-15, 20:16:59 UTC] {pod_manager.py:536} INFO - [base] {'loss': 0.5816, 'grad_norm': 9.267847061157227, 'learning_rate': 3.5897387531830616e-07, 'epoch': 4.1}
456[2025-10-15, 20:16:59 UTC] {pod_manager.py:536} INFO - [base] {'loss': 0.5942, 'grad_norm': 8.724708557128906, 'learning_rate': 3.495425822880317e-07, 'epoch': 4.13}
457[2025-10-15, 20:16:59 UTC] {pod_manager.py:536} INFO - [base] {'loss': 0.5843, 'grad_norm': 12.276448249816895, 'learning_rate': 3.401112892577572e-07, 'epoch': 4.15}
458[2025-10-15, 20:16:59 UTC] {pod_manager.py:536} INFO - [base] {'loss': 0.5819, 'grad_norm': 8.8232421875, 'learning_rate': 3.3067999622748275e-07, 'epoch': 4.17}
459[2025-10-15, 20:16:59 UTC] {pod_manager.py:536} INFO - [base] {'loss': 0.5775, 'grad_norm': 8.16382884979248, 'learning_rate': 3.2124870319720833e-07, 'epoch': 4.2}
460[2025-10-15, 20:16:59 UTC] {pod_manager.py:536} INFO - [base] {'loss': 0.588, 'grad_norm': 8.643755912780762, 'learning_rate': 3.1181741016693386e-07, 'epoch': 4.22}
461[2025-10-15, 20:16:59 UTC] {pod_manager.py:536} INFO - [base] {'loss': 0.5903, 'grad_norm': 15.633455276489258, 'learning_rate': 3.023861171366594e-07, 'epoch': 4.24}
462[2025-10-15, 20:16:59 UTC] {pod_manager.py:536} INFO - [base] {'loss': 0.5769, 'grad_norm': 8.425887107849121, 'learning_rate': 2.9295482410638497e-07, 'epoch': 4.27}
463[2025-10-15, 20:16:59 UTC] {pod_manager.py:536} INFO - [base] {'loss': 0.5898, 'grad_norm': 12.093057632446289, 'learning_rate': 2.8352353107611055e-07, 'epoch': 4.29}
464[2025-10-15, 20:16:59 UTC] {pod_manager.py:536} INFO - [base] {'loss': 0.5803, 'grad_norm': 12.724865913391113, 'learning_rate': 2.740922380458361e-07, 'epoch': 4.31}
465[2025-10-15, 20:16:59 UTC] {pod_manager.py:536} INFO - [base] {'loss': 0.5825, 'grad_norm': 12.20032787322998, 'learning_rate': 2.646609450155616e-07, 'epoch': 4.34}
466[2025-10-15, 20:16:59 UTC] {pod_manager.py:536} INFO - [base] {'loss': 0.5879, 'grad_norm': 8.106501579284668, 'learning_rate': 2.552296519852872e-07, 'epoch': 4.36}
467[2025-10-15, 20:16:59 UTC] {pod_manager.py:536} INFO - [base] {'loss': 0.5902, 'grad_norm': 10.572678565979004, 'learning_rate': 2.457983589550127e-07, 'epoch': 4.39}
468[2025-10-15, 20:16:59 UTC] {pod_manager.py:536} INFO - [base] {'loss': 0.5733, 'grad_norm': 14.09354305267334, 'learning_rate': 2.3636706592473825e-07, 'epoch': 4.41}
469[2025-10-15, 20:16:59 UTC] {pod_manager.py:536} INFO - [base] {'loss': 0.5852, 'grad_norm': 8.571189880371094, 'learning_rate': 2.2693577289446384e-07, 'epoch': 4.43}
470[2025-10-15, 20:16:59 UTC] {pod_manager.py:536} INFO - [base] {'loss': 0.5927, 'grad_norm': 15.74024486541748, 'learning_rate': 2.1750447986418937e-07, 'epoch': 4.46}
471[2025-10-15, 20:16:59 UTC] {pod_manager.py:536} INFO - [base] {'loss': 0.5809, 'grad_norm': 12.860337257385254, 'learning_rate': 2.0807318683391492e-07, 'epoch': 4.48}
472[2025-10-15, 20:16:59 UTC] {pod_manager.py:536} INFO - [base] {'loss': 0.5852, 'grad_norm': 11.590572357177734, 'learning_rate': 1.9864189380364048e-07, 'epoch': 4.5}
473[2025-10-15, 20:16:59 UTC] {pod_manager.py:536} INFO - [base] {'loss': 0.5903, 'grad_norm': 10.657594680786133, 'learning_rate': 1.89210600773366e-07, 'epoch': 4.53}
474[2025-10-15, 20:16:59 UTC] {pod_manager.py:536} INFO - [base] {'loss': 0.5832, 'grad_norm': 9.207070350646973, 'learning_rate': 1.797793077430916e-07, 'epoch': 4.55}
475[2025-10-15, 20:16:59 UTC] {pod_manager.py:536} INFO - [base] {'loss': 0.5839, 'grad_norm': 13.826576232910156, 'learning_rate': 1.7034801471281712e-07, 'epoch': 4.57}
476[2025-10-15, 20:16:59 UTC] {pod_manager.py:536} INFO - [base] {'loss': 0.5866, 'grad_norm': 8.177014350891113, 'learning_rate': 1.6091672168254267e-07, 'epoch': 4.6}
477[2025-10-15, 20:16:59 UTC] {pod_manager.py:536} INFO - [base] {'loss': 0.5901, 'grad_norm': 9.633734703063965, 'learning_rate': 1.514854286522682e-07, 'epoch': 4.62}
478[2025-10-15, 20:16:59 UTC] {pod_manager.py:536} INFO - [base] {'loss': 0.5883, 'grad_norm': 9.639876365661621, 'learning_rate': 1.4205413562199379e-07, 'epoch': 4.64}
479[2025-10-15, 20:16:59 UTC] {pod_manager.py:536} INFO - [base] {'loss': 0.584, 'grad_norm': 11.449455261230469, 'learning_rate': 1.3262284259171932e-07, 'epoch': 4.67}
480[2025-10-15, 20:16:59 UTC] {pod_manager.py:536} INFO - [base] {'loss': 0.5895, 'grad_norm': 16.6196346282959, 'learning_rate': 1.2319154956144487e-07, 'epoch': 4.69}
481[2025-10-15, 20:16:59 UTC] {pod_manager.py:536} INFO - [base] {'loss': 0.5772, 'grad_norm': 12.085779190063477, 'learning_rate': 1.1376025653117041e-07, 'epoch': 4.72}
482[2025-10-15, 20:16:59 UTC] {pod_manager.py:536} INFO - [base] {'loss': 0.5886, 'grad_norm': 12.379100799560547, 'learning_rate': 1.0432896350089597e-07, 'epoch': 4.74}
483[2025-10-15, 20:16:59 UTC] {pod_manager.py:536} INFO - [base] {'loss': 0.5812, 'grad_norm': 8.141921043395996, 'learning_rate': 9.489767047062151e-08, 'epoch': 4.76}
484[2025-10-15, 20:16:59 UTC] {pod_manager.py:536} INFO - [base] {'loss': 0.5822, 'grad_norm': 16.661956787109375, 'learning_rate': 8.546637744034707e-08, 'epoch': 4.79}
485[2025-10-15, 20:16:59 UTC] {pod_manager.py:536} INFO - [base] {'loss': 0.5767, 'grad_norm': 11.374320983886719, 'learning_rate': 7.603508441007261e-08, 'epoch': 4.81}
486[2025-10-15, 20:16:59 UTC] {pod_manager.py:536} INFO - [base] {'loss': 0.5815, 'grad_norm': 12.380130767822266, 'learning_rate': 6.660379137979817e-08, 'epoch': 4.83}
487[2025-10-15, 20:16:59 UTC] {pod_manager.py:536} INFO - [base] {'loss': 0.5807, 'grad_norm': 10.36098861694336, 'learning_rate': 5.7172498349523716e-08, 'epoch': 4.86}
488[2025-10-15, 20:16:59 UTC] {pod_manager.py:536} INFO - [base]
489 80%|████████ | 84825/106030 [6:43:28<425:46:24, 72.28s/it]
490 80%|████████ | 84826/106030 [6:43:28<298:31:22, 50.68s/it]
491 80%|████████ | 84827/106030 [6:43:28<209:26:11, 35.56s/it]
492
493 ... # redacted to reduce file size
494
495100%|█████████▉| 106028/106030 [8:20:19<00:00, 3.65it/s]
496100%|█████████▉| 106029/106030 [8:20:19<00:00, 3.61it/s]
497100%|██████████| 106030/106030 [8:20:19<00:00, 4.04it/s]
498[2025-10-15, 20:16:59 UTC] {pod_manager.py:536} INFO - [base] {'loss': 0.5826, 'grad_norm': 10.269092559814453, 'learning_rate': 4.7741205319249265e-08, 'epoch': 4.88}
499[2025-10-15, 20:16:59 UTC] {pod_manager.py:536} INFO - [base] {'loss': 0.5771, 'grad_norm': 15.992034912109375, 'learning_rate': 3.8309912288974814e-08, 'epoch': 4.9}
500[2025-10-15, 20:16:59 UTC] {pod_manager.py:536} INFO - [base] {'loss': 0.5828, 'grad_norm': 8.186553955078125, 'learning_rate': 2.8878619258700367e-08, 'epoch': 4.93}
501[2025-10-15, 20:16:59 UTC] {pod_manager.py:536} INFO - [base] {'loss': 0.5859, 'grad_norm': 14.481457710266113, 'learning_rate': 1.9447326228425916e-08, 'epoch': 4.95}
502[2025-10-15, 20:16:59 UTC] {pod_manager.py:536} INFO - [base] {'loss': 0.579, 'grad_norm': 12.209388732910156, 'learning_rate': 1.0016033198151466e-08, 'epoch': 4.98}
503[2025-10-15, 20:16:59 UTC] {pod_manager.py:536} INFO - [base] {'loss': 0.593, 'grad_norm': 13.551119804382324, 'learning_rate': 5.84740167877016e-10, 'epoch': 5.0}
504[2025-10-15, 20:16:59 UTC] {pod_manager.py:536} INFO - [base]
505 0%| | 0/2647 [00:00<?, ?it/s]
506[2025-10-15, 20:16:59 UTC] {pod_manager.py:536} INFO - [base]
507 0%| | 3/2647 [00:00<02:37, 16.77it/s]
508[2025-10-15, 20:16:59 UTC] {pod_manager.py:536} INFO - [base]
509 0%| | 5/2647 [00:00<03:16, 13.46it/s]
510
511... # redacted to reduce file size
512
513[2025-10-15, 20:20:56 UTC] {pod_manager.py:536} INFO - [base]
514100%|█████████▉| 2643/2647 [03:57<00:00, 11.16it/s]
515[2025-10-15, 20:20:56 UTC] {pod_manager.py:536} INFO - [base]
516100%|█████████▉| 2645/2647 [03:57<00:00, 11.17it/s]
517[2025-10-15, 20:20:56 UTC] {pod_manager.py:536} INFO - [base]
518100%|██████████| 2647/2647 [03:57<00:00, 11.76it/s]
519[2025-10-15, 20:20:56 UTC] {pod_manager.py:536} INFO - [base]
520
521
522100%|██████████| 106030/106030 [8:24:17<00:00, 4.04it/s]
523[2025-10-15, 20:20:56 UTC] {pod_manager.py:536} INFO - [base]
524100%|██████████| 2647/2647 [03:57<00:00, 11.76it/s]
525[2025-10-15, 20:20:56 UTC] {pod_manager.py:536} INFO - [base]
526 /opt/lib/venv/lib/python3.11/site-packages/transformers/configuration_utils.py:393: UserWarning: Some non-default generation parameters are set in the model config. These should go into either a) `model.generation_config` (as opposed to `model.config`); OR b) a GenerationConfig file (https://huggingface.co/docs/transformers/generation_strategies#save-a-custom-decoding-strategy-with-your-model).This warning will become an exception in the future.
527[2025-10-15, 20:20:56 UTC] {pod_manager.py:536} INFO - [base] Non-default generation parameters: {'max_length': 512}
528[2025-10-15, 20:21:02 UTC] {pod_manager.py:536} INFO - [base] warnings.warn(
529[2025-10-15, 20:21:02 UTC] {pod_manager.py:536} INFO - [base]
530
531100%|██████████| 106030/106030 [8:24:23<00:00, 4.04it/s]
532100%|██████████| 106030/106030 [8:24:23<00:00, 3.50it/s]
533[2025-10-15, 20:21:02 UTC] {pod_manager.py:536} INFO - [base] INFO:root:Training took: 30263.56 secs
534[2025-10-15, 20:21:02 UTC] {pod_manager.py:536} INFO - [base] {'eval_loss': 0.614181637763977, 'eval_acc': 0.6701615188438651, 'eval_roc_auc': 0.74482172531334, 'eval_threshold': 0.1850414276123047, 'eval_pr_auc': 0.7278211083542575, 'eval_recall': 0.6506183328613235, 'eval_precision': 0.6773464373464373, 'eval_f1': 0.6637134052388289, 'eval_tn': 14596, 'eval_fp': 6566, 'eval_fn': 7402, 'eval_tp': 13784, 'eval_runtime': 237.4646, 'eval_samples_per_second': 178.334, 'eval_steps_per_second': 11.147, 'epoch': 5.0}
535[2025-10-15, 20:21:04 UTC] {pod_manager.py:536} INFO - [base] {'train_runtime': 30263.0484, 'train_samples_per_second': 56.057, 'train_steps_per_second': 3.504, 'train_loss': 0.6083187774252377, 'epoch': 5.0}
536[2025-10-15, 20:21:04 UTC] {pod_manager.py:536} INFO - [base] Verifying model output
537[2025-10-15, 20:21:04 UTC] {pod_manager.py:536} INFO - [base] + echo 'Verifying model output'
538[2025-10-15, 20:21:04 UTC] {pod_manager.py:536} INFO - [base] + ls -l /mnt/model-training/tone_check/20251014T132011/output_model
539[2025-10-15, 20:21:04 UTC] {pod_manager.py:536} INFO - [base] total 4
540[2025-10-15, 20:21:05 UTC] {pod_manager.py:555} INFO - [base] drwxr-sr-x 2 somebody runuser 4096 Oct 15 16:59 checkpoint-63618
541[2025-10-15, 20:21:05 UTC] {pod_manager.py:714} INFO - Pod train-tone-check-3hza1v4 has phase Running
542[2025-10-15, 20:21:07 UTC] {pod.py:1122} INFO - Deleting pod: train-tone-check-3hza1v4
543[2025-10-15, 20:21:07 UTC] {taskinstance.py:341} ▶ Post task execution logs

With the configurations described in T407212#11280133, the tone_check_training_dag ran end-to-end in production just like it did in staging:

Tone-Check model training DAG succeeded in airflow-ml (Screenshot from 2025-10-20 07-36-31).png (1,846×1,119 px, 366 KB)