Skip to content

feat(huggingface): keep the row on an empty petal measurement - #8057

Open
kz930 wants to merge 2 commits into
apache:mainfrom
kz930:fix/8056-huggingface-iris-empty-cell
Open

feat(huggingface): keep the row on an empty petal measurement#8057
kz930 wants to merge 2 commits into
apache:mainfrom
kz930:fix/8056-huggingface-iris-empty-cell

Conversation

@kz930

@kz930 kz930 commented Aug 27, 2026

Copy link
Copy Markdown
Contributor

What changes were proposed in this PR?

The operator puts the two petal values straight into a numpy array and standardizes them, so an empty cell reaches the subtraction as a None and ends the run with unsupported operand type(s) for -: 'NoneType' and 'float', naming neither the column nor a way out. Nothing in the configuration can exclude the row.

It now answers the empty cell the way the three other operators in the group already do: keep the row, leave the prediction columns empty. Those three read a text column, which is why #7569 did not reach this one, and it was left as the only operator in the Hugging Face group that ends the run on a value the model was never given.

Any related issues, documentation, discussions?

Closes #8056. The same answer the three text operators were given in #7569.

How was this PR tested?

HuggingFaceIrisLogisticRegressionOpDescSpec pins the guard in the generated code; removing it turns that test red. WorkflowOperator/test passes: 2391 tests.

Was this PR authored or co-authored using generative AI tooling?

Generated-by: Claude Code (Claude Opus 5)

The operator puts the two values straight into a numpy array and standardizes
them, so an empty cell reaches the subtraction as a None and ends the run with
`unsupported operand type(s) for -: 'NoneType' and 'float'`, naming neither
the column nor a way out. Nothing in the configuration can exclude the row.

It now answers the empty cell the way the three other operators in the group
already do: keep the row, leave the prediction columns empty. Those three read
a text column, which is why the change that taught them did not reach this
one, and it was left as the only operator in the group that ends the run.

Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
@github-actions

Copy link
Copy Markdown
Contributor

Automated Reviewer Suggestions

Based on the git blame history of the changed files, we recommend the following reviewers:

  • Contributors with relevant context: @carloea2, @aglinxinyuan
    You can notify them by mentioning @carloea2, @aglinxinyuan in a comment.

@codecov-commenter

codecov-commenter commented Aug 27, 2026

Copy link
Copy Markdown

Codecov Report

✅ All modified and coverable lines are covered by tests.
✅ Project coverage is 93.42%. Comparing base (604f109) to head (569b089).

Additional details and impacted files
@@             Coverage Diff              @@
##               main    #8057      +/-   ##
============================================
- Coverage     93.52%   93.42%   -0.10%     
+ Complexity     4727     4725       -2     
============================================
  Files          1195     1181      -14     
  Lines         48492    47703     -789     
  Branches       5379     5282      -97     
============================================
- Hits          45352    44568     -784     
- Misses         1693     1698       +5     
+ Partials       1447     1437      -10     
Flag Coverage Δ *Carryforward flag
access-control-service 81.00% <ø> (ø)
agent-service 99.32% <ø> (ø) Carriedforward from 646e460
amber 89.58% <100.00%> (-0.02%) ⬇️
computing-unit-managing-service 73.67% <ø> (ø)
config-service 86.86% <ø> (ø)
file-service 87.91% <ø> (ø)
frontend 95.91% <ø> (+0.05%) ⬆️ Carriedforward from 646e460
notebook-migration-service 79.31% <ø> (ø)
pyamber 97.78% <ø> (-0.76%) ⬇️ Carriedforward from 646e460
workflow-compiling-service 77.19% <ø> (ø)

*This pull request uses carry forward flags. Click here to find out more.

☔ View full report in Codecov by Harness.
📢 Have feedback on the report? Share it here.

🚀 New features to boost your workflow:
  • 📦 JS Bundle Analysis: Save yourself from yourself by tracking and limiting bundle sizes in JS merges.

@github-actions

github-actions Bot commented Aug 27, 2026

Copy link
Copy Markdown
Contributor

⚠️ Benchmark changes need a look

🟢 4 better · 🔴 1 worse · ⚪ 10 noise (<±5%) · 0 without baseline

Compared against main 604f109 benchmarked on this same runner, so the delta is largely free of cross-runner hardware noise. The "7d avg" column still reflects the gh-pages dashboard. Treat <±5% as noise unless repeated.

Dashboard · Run

config throughput MB/s latency max Δ latest / 7d
🟢 bs=10 sw=10 sl=64 658 0.401 14,464/19,510/19,510 us 🟢 -16.3% / 🔴 +37.2%
🔴 bs=100 sw=10 sl=64 1,236 0.755 79,773/91,480/91,480 us 🟢 -23.5% / 🟢 -10.6%
bs=1000 sw=10 sl=64 1,552 0.947 632,895/706,766/706,766 us ⚪ within ±5% / 🟢 +30.7%
Baseline details

Latest main 604f109 from same runner

config metric PR latest main 7d avg Δ latest Δ 7d
bs=10 sw=10 sl=64 throughput 658 tuples/sec 648 tuples/sec 894.27 tuples/sec +1.5% -26.4%
bs=10 sw=10 sl=64 MB/s 0.401 MB/s 0.395 MB/s 0.546 MB/s +1.5% -26.5%
bs=10 sw=10 sl=64 p50 14,464 us 14,252 us 11,164 us +1.5% +29.6%
bs=10 sw=10 sl=64 p95 19,510 us 23,322 us 14,219 us -16.3% +37.2%
bs=10 sw=10 sl=64 p99 19,510 us 23,322 us 16,863 us -16.3% +15.7%
bs=100 sw=10 sl=64 throughput 1,236 tuples/sec 1,240 tuples/sec 1,158 tuples/sec -0.3% +6.7%
bs=100 sw=10 sl=64 MB/s 0.755 MB/s 0.757 MB/s 0.707 MB/s -0.3% +6.8%
bs=100 sw=10 sl=64 p50 79,773 us 75,600 us 88,711 us +5.5% -10.1%
bs=100 sw=10 sl=64 p95 91,480 us 119,575 us 95,062 us -23.5% -3.8%
bs=100 sw=10 sl=64 p99 91,480 us 119,575 us 102,275 us -23.5% -10.6%
bs=1000 sw=10 sl=64 throughput 1,552 tuples/sec 1,543 tuples/sec 1,188 tuples/sec +0.6% +30.7%
bs=1000 sw=10 sl=64 MB/s 0.947 MB/s 0.941 MB/s 0.725 MB/s +0.6% +30.6%
bs=1000 sw=10 sl=64 p50 632,895 us 640,601 us 874,204 us -1.2% -27.6%
bs=1000 sw=10 sl=64 p95 706,766 us 722,448 us 916,845 us -2.2% -22.9%
bs=1000 sw=10 sl=64 p99 706,766 us 722,448 us 947,186 us -2.2% -25.4%
Raw CSV
config_idx,batch_size,schema_width,string_len,num_batches,total_ms,total_tuples,total_bytes,tuples_per_sec,mb_per_sec,lat_p50_us,lat_p95_us,lat_p99_us
0,10,10,64,20,304.04,200,128000,658,0.401,14463.91,19510.49,19510.49
1,100,10,64,20,1617.79,2000,1280000,1236,0.755,79772.86,91480.15,91480.15
2,1000,10,64,20,12883.91,20000,12800000,1552,0.947,632894.88,706766.47,706766.47

@kz930

kz930 commented Aug 27, 2026

Copy link
Copy Markdown
Contributor Author

/request-review @carloea2 @aglinxinyuan

@carloea2 carloea2 left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Looks good. A missing measurement now keeps the row and leaves both prediction fields empty.

@kz930

kz930 commented Aug 28, 2026

Copy link
Copy Markdown
Contributor Author

@aglinxinyuan May you take a look at this PR please?

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Projects

None yet

Development

Successfully merging this pull request may close these issues.

Hugging Face Iris Logistic Regression ends the run on an empty cell

3 participants