@@ -51,7 +51,7 @@ def _serialize(self) -> dict:
5151
5252class PyMLTrainAndPredictWorkflow (WorkflowProperty ):
5353 """
54- Next generation of ExabyteML. We expect workflows to have a format as follows:
54+ We expect workflows to have a format as follows:
5555
5656 Workflow_Head_Subworkflow - Contains various units which prepare an ML job. For example, we may have the following
5757 units present.
@@ -203,7 +203,7 @@ def is_using_dataset(self):
203203 @property
204204 def workflow_specific_config (self ) -> dict :
205205 """
206- Generates the specific config for the new implementation of ExabyteML . The remainder of the config is
206+ Generates the specific config for the workflow . The remainder of the config is
207207 generated inside of the parent Workflow class.
208208
209209 Returns:
@@ -224,168 +224,3 @@ def workflow_specific_config(self) -> dict:
224224 }
225225
226226 return specific_config
227-
228-
229- class ExabyteMLPredictWorkflow (WorkflowProperty ):
230- """
231- Legacy implementation of Exabyte ML's predict Workflow property class.
232- """
233-
234- def __init__ (self , name , parser , * args , ** kwargs ):
235- super ().__init__ (name , parser , * args , ** kwargs )
236-
237- self .model = self .parser .model
238- self .targets = self .parser .targets
239- self .features = self .parser .features
240- self .scaling_params_per_feature = self .parser .scaling_params_per_feature
241-
242- @property
243- def workflow_specific_config (self ) -> dict :
244- """
245- Generates the specific config for a legacy ExabyteML workflow. The remainder of the config is generated
246- inside of the parent Worfklow class.
247-
248- Returns:
249- dict
250- """
251- specific_config = {
252- "units" : [
253- {
254- "_id" : "LCthJ6E2QabYCZqf4" ,
255- "name" : "ml_predict_subworkflow" ,
256- "type" : "subworkflow" ,
257- "flowchartId" : "subworkflow" ,
258- "head" : True ,
259- }
260- ],
261- "subworkflows" : [
262- {
263- "name" : "ml_predict_subworkflow" ,
264- "isDraft" : True ,
265- "application" : {
266- "version" : "0.2.0" ,
267- "summary" : "Exabyte Machine Learning Engine" ,
268- "name" : "exabyteml" ,
269- "shortName" : "ml" ,
270- "build" : "Default" ,
271- },
272- "units" : [
273- {
274- "status" : "idle" ,
275- "statusTrack" : [],
276- "head" : True ,
277- "flowchartId" : "io" ,
278- "name" : "input" ,
279- "application" : {
280- "version" : "0.2.0" ,
281- "summary" : "Exabyte Machine Learning Engine" ,
282- "name" : "exabyteml" ,
283- "shortName" : "ml" ,
284- "build" : "Default" ,
285- },
286- "results" : [],
287- "next" : "data_transformation_manipulation" ,
288- "source" : "api" ,
289- "postProcessors" : [],
290- "preProcessors" : [],
291- "subtype" : "dataFrame" ,
292- "input" : [
293- {
294- "endpoint" : "dataframe" ,
295- "endpoint_options" : {
296- "headers" : {},
297- "data" : {"features" : self .features , "ids" : [], "targets" : self .targets },
298- "method" : "POST" ,
299- "params" : {},
300- "jobId" : "" ,
301- },
302- }
303- ],
304- "type" : "io" ,
305- "monitors" : [],
306- },
307- {
308- "status" : "idle" ,
309- "statusTrack" : [],
310- "head" : False ,
311- "flowchartId" : "data_transformation_manipulation" ,
312- "name" : "clean data" ,
313- "monitors" : [],
314- "results" : [],
315- "next" : "data_transformation_scale_and_reduce" ,
316- "application" : {
317- "version" : "0.2.0" ,
318- "summary" : "Exabyte Machine Learning Engine" ,
319- "name" : "exabyteml" ,
320- "shortName" : "ml" ,
321- "build" : "Default" ,
322- },
323- "postProcessors" : [],
324- "preProcessors" : [],
325- "operationType" : "manipulation" ,
326- "operation" : "data_transformation" ,
327- "type" : "processing" ,
328- "inputData" : {
329- "cleanMissingData" : True ,
330- "replaceNoneValuesWith" : 0 ,
331- "removeDuplicateRows" : True ,
332- },
333- },
334- {
335- "status" : "idle" ,
336- "statusTrack" : [],
337- "head" : False ,
338- "flowchartId" : "data_transformation_scale_and_reduce" ,
339- "name" : "scale and reduce" ,
340- "monitors" : [],
341- "results" : [],
342- "next" : "score" ,
343- "application" : {
344- "version" : "0.2.0" ,
345- "build" : "Default" ,
346- "name" : "exabyteml" ,
347- "shortName" : "ml" ,
348- "summary" : "Exabyte Machine Learning Engine" ,
349- },
350- "postProcessors" : [],
351- "preProcessors" : [],
352- "operationType" : "scale_and_reduce" ,
353- "operation" : "data_transformation" ,
354- "type" : "processing" ,
355- "inputData" : {
356- "scaler" : "standard_scaler" ,
357- "perFeature" : self .scaling_params_per_feature ,
358- },
359- },
360- {
361- "status" : "idle" ,
362- "statusTrack" : [],
363- "executable" : {"name" : "score" },
364- "flowchartId" : "score" ,
365- "name" : "score" ,
366- "head" : False ,
367- "results" : [{"name" : "predicted_properties" }],
368- "application" : {
369- "version" : "0.2.0" ,
370- "build" : "Default" ,
371- "name" : "exabyteml" ,
372- "shortName" : "ml" ,
373- "summary" : "Exabyte Machine Learning Engine" ,
374- },
375- "postProcessors" : [],
376- "preProcessors" : [],
377- "context" : {},
378- "input" : [],
379- "flavor" : {"name" : "score" },
380- "type" : "execution" ,
381- "monitors" : [{"name" : "standard_output" }],
382- },
383- ],
384- "model" : self .model ,
385- "_id" : "LCthJ6E2QabYCZqf4" ,
386- "properties" : self .targets ,
387- }
388- ],
389- "properties" : self .targets ,
390- }
391- return specific_config
0 commit comments