acoustic-van-30942
04/17/2023, 6:12 PMmetaflow garbage-collect command (https://github.com/Netflix/metaflow/issues/530)
We do have a use case where a user will want to delete some data. Maybe the user will want to delete a certain feature that cannot be used anymore. Then, we need to figure out what version of the model was using that designated feature and then we subsequently delete that version of the model, and then retrain without that particular feature.
Any advice or stop-gap solution for facilitating this?victorious-lawyer-58417
04/17/2023, 6:23 PMmetaflow.S3(run=self) and store the returned URL in an artifact
• when a deletion request comes in, use the Client API to find all runs using the feature
• retrieve the model URL from the runs
• delete the model object
• tag the run as "tainted", so you know it has been processed (just for bookkeeping)
• mark the feature as disallowed or remove the feature altogether so it won't be used in the futurevictorious-lawyer-58417
04/17/2023, 6:25 PMacoustic-van-30942
04/17/2023, 6:29 PM• mark the feature as disallowed or remove the feature altogether so it won't be used in the futureentail? Are we permanently removing all traces of the data/feature in the artifacts through the client API? Manually in s3?
victorious-lawyer-58417
04/17/2023, 6:35 PMacoustic-van-30942
04/17/2023, 6:37 PMvictorious-lawyer-58417
04/17/2023, 6:49 PMto_pandas() etc.
If this is too draconian, another approach might be to prevent e.g. serialization of Pandas specifically. You should be able to do this by registering a custom serializer using `copyreg` that crashes with a clear warning for Pandas, which you can apply to sensitive workflows.
All these are just safeguards for preventing accidental leakage. If you need hard guarantees, you can set up Metaflow to run in an environment without internet connectivity, so you can fully control data flows in and out.acoustic-van-30942
04/17/2023, 6:54 PMvictorious-lawyer-58417
04/17/2023, 6:54 PMacoustic-van-30942
04/17/2023, 6:55 PM