Skip to content

Commit be5ed0b

Browse files
authored
Refined the PDF layout for chapter 3 (ml_workflow.qmd). (#1749)
1 parent 6353d3f commit be5ed0b

1 file changed

Lines changed: 5 additions & 5 deletions

File tree

book/quarto/contents/vol1/ml_workflow/ml_workflow.qmd

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -1024,7 +1024,7 @@ class BandwidthCompute:
10241024

10251025
**Math**:
10261026

1027-
1. **Daily data**: `{python} BandwidthCompute.bw_patients_str` patients$\times$ `{python} BandwidthCompute.bw_photos_str` photos$\times$ `{python} BandwidthCompute.bw_mb_per_photo_str` MB/photo = **`{python} BandwidthCompute.bw_daily_gb_str` GB/day**.
1027+
1. **Daily data**: `{python} BandwidthCompute.bw_patients_str` patients $\times$ `{python} BandwidthCompute.bw_photos_str` photos $\times$ `{python} BandwidthCompute.bw_mb_per_photo_str` MB/photo = **`{python} BandwidthCompute.bw_daily_gb_str` GB/day**.
10281028
2. **Upload time**: `{python} BandwidthCompute.bw_daily_mb_str` MB/(`{python} BandwidthCompute.bw_upload_mbps_str`/8 MB/s) = `{python} BandwidthCompute.bw_upload_sec_str` seconds ≈ **`{python} BandwidthCompute.bw_upload_hours_str` hours**.
10291029
3. **The constraint**: If the clinic operates for `{python} BandwidthCompute.bw_clinic_hours_str` hours, uploading this data would require **`{python} BandwidthCompute.bw_bandwidth_pct_str` percent** of the clinic's total operating time, effectively saturating the connection and blocking all other operations.
10301030

@@ -1132,7 +1132,7 @@ Data collection decisions directly constrain model development: bandwidth limits
11321132
},
11331133
Txt/.style={font=\usefont{T1}{phv}{m}{n}\footnotesize,text=black!90
11341134
},
1135-
LineA/.style={black!30,line width=1.0pt,{-{Triangle[width=1.0*5pt,length=9pt]}},shorten <=2pt,shorten >=2pt},
1135+
LineA/.style={black!30,line width=1.5pt,{-{Triangle[width=1.0*5pt,length=9pt]}},shorten <=2pt,shorten >=2pt},
11361136
}
11371137
11381138
%funnel
@@ -1792,14 +1792,14 @@ class DeploymentEconomics:
17921792

17931793
- Model runs on centralized GPU servers
17941794
- Inference cost: ~USD `{python} DeploymentEconomics.cloud_cost_per_image_str` per image (cloud GPU time + API overhead)
1795-
- Annual cost: `{python} DeploymentEconomics.n_clinics_str` clinics$\times$ `{python} DeploymentEconomics.patients_per_day_str` patients/day$\times$ `{python} DeploymentEconomics.billable_images_per_patient_str` billable image/patient$\times$ `{python} DeploymentEconomics.days_per_year_str` days$\times$ USD `{python} DeploymentEconomics.cloud_cost_per_image_str` = **USD `{python} DeploymentEconomics.cloud_annual_str`/year**
1795+
- Annual cost: `{python} DeploymentEconomics.n_clinics_str` clinics $\times$ `{python} DeploymentEconomics.patients_per_day_str` patients/day $\times$ `{python} DeploymentEconomics.billable_images_per_patient_str` billable image/patient $\times$ `{python} DeploymentEconomics.days_per_year_str` days $\times$ USD `{python} DeploymentEconomics.cloud_cost_per_image_str` = **USD `{python} DeploymentEconomics.cloud_annual_str`/year**
17961796
- Plus: Network costs for uploading `{python} DeploymentEconomics.image_size_mb_str` MB images = ~USD `{python} DeploymentEconomics.cloud_network_str`/year
17971797
- **Total: ~USD `{python} DeploymentEconomics.cloud_total_str`/year** operational cost
1798-
- Risk: `{python} DeploymentEconomics.cloud_latency_risk_str` ms+ latency breaks clinical workflow; connectivity outages halt screening
1798+
- Risk: `{python} DeploymentEconomics.cloud_latency_risk_str` ms + latency breaks clinical workflow; connectivity outages halt screening
17991799

18001800
**Option B: Edge Deployment (NVIDIA Jetson)**\index{Edge Deployment!bandwidth constraints}\index{Edge Deployment!economics}
18011801

1802-
- One-time hardware: `{python} DeploymentEconomics.n_clinics_str`$\times$ USD `{python} DeploymentEconomics.edge_cost_per_unit_str` = **USD `{python} DeploymentEconomics.edge_capex_str`** capital expense
1802+
- One-time hardware: `{python} DeploymentEconomics.n_clinics_str` $\times$ USD `{python} DeploymentEconomics.edge_cost_per_unit_str` = **USD `{python} DeploymentEconomics.edge_capex_str`** capital expense
18031803
- Inference cost: ~USD `{python} DeploymentEconomics.edge_inference_cost_str` per image (electricity only)
18041804
- Annual cost: ~USD `{python} DeploymentEconomics.edge_maintenance_str` maintenance + ~USD `{python} DeploymentEconomics.edge_inference_annual_str` inference electricity = ~USD `{python} DeploymentEconomics.edge_opex_year_str`/year
18051805
- **Total: USD `{python} DeploymentEconomics.edge_capex_str` upfront + ~USD `{python} DeploymentEconomics.edge_opex_year_str`/year**

0 commit comments

Comments
 (0)