A computer-implemented method comprising: receiving a request to generate an execution plan for executing a machine learning, ML, model, the execution plan using at least one edge device (101-105), at an edge of a network connection, and a non-edge device in the form of web services hardware, the request to include at least one objective for the execution of the ML model (111-115, 213); receiving edge device information; receiving or accessing information about the ML model and non-edge device capabilities; evaluating execution of the ML model (111-115, 213) on the hardware of the non-edge device and on the at least one edge device (101-105) by executing the ML model on the hardware of the non-edge device and executing or simulating the execution of the ML model on the hardware of the at least one edge device and comparing execution characteristics of the executing the ML model on the hardware of the non-edge device and the at least one edge device to generate comparative execution information for each step in the ML model; generating , by a model location engine executing on the non-edge device, a plan of execution for the usage of the ML model using the comparative execution information about the at least one objective of the request and network latency information; providing the plan of execution to the at least one edge device and a host of the non-edge device and optionally to a user; and executing at least one portion of the ML model on the host of the non-edge device in conjunction with the at least one edge device, wherein the host of the non-edge device shares execution with the at least one edge device to execute the ML model in accordance with the execution plan. receiving a request to generate an execution plan for executing a machine learning, ML, model, the execution plan using at least one edge device (101-105), at an edge of a network connection, and a non-edge device in the form of web services hardware, the request to include at least one objective for the execution of the ML model (111-115, 213); receiving edge device information; receiving or accessing information about the ML model and non-edge device capabilities; evaluating execution of the ML model (111-115, 213) on the hardware of the non-edge device and on the at least one edge device (101-105) by executing the ML model on the hardware of the non-edge device and executing or simulating the execution of the ML model on the hardware of the at least one edge device and comparing execution characteristics of the executing the ML model on the hardware of the non-edge device and the at least one edge device to generate comparative execution information for each step in the ML model; generating , by a model location engine executing on the non-edge device, a plan of execution for the usage of the ML model using the comparative execution information about the at least one objective of the request and network latency information; providing the plan of execution to the at least one edge device and a host of the non-edge device and optionally to a user; and executing at least one portion of the ML model on the host of the non-edge device in conjunction with the at least one edge device, wherein the host of the non-edge device shares execution with the at least one edge device to execute the ML model in accordance with the execution plan. <EOS>