Machine learning model for generating a configuration for a smart differential update generator

EP4735997A1Pending Publication Date: 2026-05-06RED BEND LTD
View PDF 0 Cites 0 Cited by

Patent Information

Authority / Receiving Office
EP · EP
Patent Type
Applications
Current Assignee / Owner
RED BEND LTD
Filing Date
2023-06-29
Publication Date
2026-05-06

AI Technical Summary

Technical Problem

Current software update methods for end devices, such as ECUs and IoT devices, face inefficiencies due to manual selection of configuration parameters for delta file generation, leading to sub-optimal performance in wireless network transmission, computational resources, and installation times.

Method used

A machine learning model is trained to automatically generate a combination of configuration parameters for creating delta files, optimizing performance parameters like delta size, apply time, and memory usage, which are then used to improve the efficiency of software updates by selecting the optimal combination for wireless network transmission and computational performance.

Benefits of technology

The machine learning model enhances the performance of software updates by reducing bandwidth requirements, transmission time, processing time, and memory usage, thereby improving the efficiency of software updates on end devices.

✦ Generated by Eureka AI based on patent content.

Smart Images

  • Figure IL2023050671_02012025_PF_FP_ABST
    Figure IL2023050671_02012025_PF_FP_ABST
Patent Text Reader

Abstract

There is provided a system for updating a device, comprising: at least one processor executing a code for: obtaining an indication of a source file installed on the device representing a first version of the file, obtaining an indication of a target file for installation on the device representing a second version of the file, feeding the source file and the target file into a machine learning model, obtaining a combination of a plurality of configuration parameters as an outcome of the machine learning model, feeding the source file, the target file, and the combination of the plurality of configuration parameters into an update generator, obtaining a delta file from the update generator, and sending the delta file to the device for local installation and upgrade of the source file to the target file by a differential delta applier.
Need to check novelty before this filing date? Find Prior Art

Description

[0001] MACHINE LEARNING MODEL FOR GENERATING A CONFIGURATION FOR A SMART

[0002] DIFFERENTIAL UPDATE GENERATOR

[0003] BACKGROUND

[0004] The present disclosure, in some embodiments thereof, relates to software updates and, more specifically, but not exclusively, to systems and methods for optimizing updating of software on end devices.

[0005] Many end devices, such as electronic control units (ECUs) of cars, mobile devices, and internet of things (loT) device, repeatedly require installation of new update code, for example, to fix bugs, security breaches, and provide new features. Some devices are automatically updated using over-the-air (OTA) update approaches.

[0006] SUMMARY

[0007] According to a first aspect, a system for updating a device, comprises: at least one processor executing a code for: obtaining an indication of a source file installed on the device representing a first version of the file, obtaining an indication of a target file for installation on the device representing a second version of the file, feeding the source file and the target file into a machine learning model, obtaining a combination of a plurality of configuration parameters as an outcome of the machine learning model, feeding the source file, the target file, and the combination of the plurality of configuration parameters into an update generator, obtaining a delta file from the update generator, and sending the delta file to the device for local installation and upgrade of the source file to the target file by a differential delta applier.

[0008] According to a second aspect, a system for training a machine learning model, comprises: at least one processor executing a code for: creating a multi-record training dataset for a plurality of sample devices, wherein a record of a sample device includes: a source file that was installed on the sample device prior to upgrade, a target file to which the sample device was upgraded to, and a ground truth of a combination of the plurality of configuration parameters used by an update generator for creating the delta file used to upgrade the sample device, and training a machine learning model on the training dataset for generating an outcome of a new combination of the plurality of configuration parameters in response to an input of a new target source file and a new source file.

[0009] According to a third aspect, a method for updating a device, comprises: obtaining an indication of a source file installed on the device representing a first version of the file, obtaining an indication of a target file for installation on the device representing a second version of the file, feeding the source file and the target file into a machine learning model, obtaining a combination of a plurality of configuration parameters as an outcome of the machine learning model, feeding the source file, the target file, and the combination of the plurality of configuration parameters into an update generator, obtaining a delta file from the update generator, and sending the delta file to the device for local installation and upgrade of the source file to the target file by a differential delta applier.

[0010] In a further implementation form of the first, second, and third aspects, at least one performance parameter associated with the delta file generated by the update generator is defined according to the combination of the plurality of configuration parameters, wherein the at least one performance parameter impacts performance of at least one of: a wireless network that transmits the delta file to the device, computational performance of the device installing the delta file, and computational performance of a computing device that runs the update generator.

[0011] In a further implementation form of the first, second, and third aspects, the machine learning model is trained for selecting the combination of the plurality of configuration parameters for obtaining a target of at least one performance parameter for the delta file.

[0012] In a further implementation form of the first, second, and third aspects, the target is not fed into the machine learning model, wherein the target comprises an optimal of the at least one performance parameter.

[0013] In a further implementation form of the first, second, and third aspects, the at least one processor further executes code for feeding the target into the machine learning model.

[0014] In a further implementation form of the first, second, and third aspects, the at least one processor further comprises code for obtaining the target from a graphical user interface (GUI) presented on a display, the GUI configured for enabling a user to select the target of a combination of the at least one performance parameter as a point within a multi-dimensional space, each dimension denoting a respective performance parameter, wherein a range of the point within the multi-dimensional space denotes allowable combinations.

[0015] In a further implementation form of the first, second, and third aspects, the machine learning model is trained for selecting the combination of the plurality of configuration parameters for obtaining a substantially minimal value of the at least one performance parameter of the delta file in comparison to another combination of the plurality of configuration parameters that obtains a higher value of the at least one performance parameter.

[0016] In a further implementation form of the first, second, and third aspects, the at least one performance parameter comprises size of the delta file, wherein a smaller size provides higher performance of the wireless network and / or higher computational performance of the device, in comparison to a larger size.

[0017] In a further implementation form of the first, second, and third aspects, the at least one performance parameter comprises apply time of the delta file, wherein a shorter apply time provides higher performance of the wireless network and / or higher computational performance of the device, in comparison to a longer apply time.

[0018] In a further implementation form of the first, second, and third aspects, the at least one performance parameter comprises time for generating of the delta file, wherein a shorter time for generation of the delta file improves performance of the computing device that runs the update generator in comparison to a longer time for generation.

[0019] In a further implementation form of the first, second, and third aspects, the at least one performance parameter comprises memory storage requirements for generating of the delta file, wherein a smaller memory storage requirement for generation of the delta file improves performance of the computing device that runs the update generator in comparison to a larger memory storage requirement.

[0020] In a further implementation form of the first, second, and third aspects, the delta file is transmitted from the at least one processor to the device using an over the air interface, wherein the at least one performance parameter impacts transmission time over the over the air interface.

[0021] In a further implementation form of the first, second, and third aspects, the combination of the plurality of configuration parameters are selected from a group comprising: chunk size, sector size, whether the delta file is revertible for reverting back to the first version from the second version.

[0022] In a further implementation form of the first, second, and third aspects, at least one of the plurality of configuration parameters are defined as installation parameters associated with the delta file, and wherein sending comprises sending the delta file and the installation parameters to the device for local installation and update by the differential delta applier.

[0023] In a further implementation form of the first, second, and third aspects, the device comprises at least one ECU of a vehicle, wherein the machine learning model generates the plurality of configuration parameters for a plurality of different types of ECUs and / or vehicles.

[0024] In a further implementation form of the first, second, and third aspects, the first version represents an older version of the file currently installed on the device and the second version represents a new version of the file for upgrading the older version of the file on the device. In a further implementation form of the first, second, and third aspects, the at least one processor is implemented as at least one of a computing cloud and a server, and the device is one of a plurality of devices serviced by the at least one processor.

[0025] In a further implementation form of the first, second, and third aspects, the machine learning model is trained on a training dataset of a plurality of records for each sample device of a plurality of sample devices of different types, each record including a source file that was installed on the sample device prior to upgrade, a target file to which the sample device was upgraded to, and the combination of the plurality of configuration parameters used by the update generator for creating the delta file used to upgrade the sample device.

[0026] In a further implementation form of the first, second, and third aspects, the combination of the plurality of configuration parameters are set as ground truth, and wherein the machine learning model is trained on the training dataset using a supervised learning approach.

[0027] In a further implementation form of the first, second, and third aspects, the machine learning model is trained on the training dataset using a non- supervised approach.

[0028] In a further implementation form of the first, second, and third aspects, the record further includes at least one performance parameter that indicates performance of at least one of: a wireless network that transmits the delta file to the device, computational performance of the device that installs the delta file, and computational performance of a computing device that runs the update generator, wherein the machine learning model is trained for obtaining a target of the at least one performance parameter.

[0029] In a further implementation form of the first, second, and third aspects, the at least one processor further execute code for obtaining the at least one performance parameter in response to the local installation and upgrade of the source file to the target file by the differential delta applier of the device, creating a new record that includes that at least one performance parameter, and updating the ML model using the new record.

[0030] In a further implementation form of the first, second, and third aspects, the record further comprises at least one performance parameter that indicates performance of at least one of: a wireless network that transmits the delta file to the device, computational performance of the device that installs the delta file, and computational performance of a computing device that runs the update generator, and wherein the machine learning model is trained for generating the new combination of the plurality of configuration parameters for meeting a target of at least one performance parameter.

[0031] Unless otherwise defined, all technical and / or scientific terms used herein have the same meaning as commonly understood by one of ordinary skill in the art to which the disclosure pertains. Although methods and materials similar or equivalent to those described herein can be used in the practice or testing of embodiments, exemplary methods and / or materials are described below. In case of conflict, the patent specification, including definitions, will control. In addition, the materials, methods, and examples are illustrative only and are not intended to be necessarily limiting.

[0032] BRIEF DESCRIPTION OF THE SEVERAL VIEWS OF THE DRAWINGS

[0033] Some embodiments are herein described, by way of example only, with reference to the accompanying drawings. With specific reference now to the drawings in detail, it is stressed that the particulars shown are by way of example and for purposes of illustrative discussion of embodiments. In this regard, the description taken with the drawings makes apparent to those skilled in the art how embodiments may be practiced.

[0034] In the drawings:

[0035] FIG. 1 is block diagram of components of a system that includes a computing device for training a machine learning model and / or using machine learning model for generating a combination of configuration parameters for generating and / or installing a delta file on an end device, in accordance with some embodiments;

[0036] FIG. 2 is a flowchart of a method of using a machine learning model for generating a combination of configuration parameters for generating and / or installing a delta file on an end device in accordance with some embodiments;

[0037] FIG. 3 is a dataflow diagram of a method of training a machine learning model for generating a combination of configuration parameters for generating and / or installing a delta file on an end device, in accordance with some embodiments; and

[0038] FIG. 4 is a schematic of a multi-dimensional space for selecting a target of a combination of performance parameters, in accordance with some embodiments.

[0039] DETAILED DESCRIPTION

[0040] The present disclosure, in some embodiments thereof, relates to software updates and, more specifically, but not exclusively, to systems and methods for optimizing updating of software on end devices.

[0041] As used herein the term / z7e (which is being updated, and / or which is being used for the updating) may be interchanged with the term code. The term file and / or code refers to any instructions that are being updated, for example, software and / or firmware.

[0042] As used herein, the term end device and device are used interchangeably. An aspect of some embodiments relates to systems, methods, computing devices, and code instructions (stored on a data storage device and executable by one or more processors) for automatically generating a combination of configuration parameters used for creating a delta file for updating an end device. Examples of end devices include ECUs on vehicles, mobile devices, loT devices, drones, and the like. A processor (e.g., executing on a server and / or computing cloud) obtains an indication of a source file installed on the device representing a first version of the file (e.g., older version) and obtains an indication of a target file for installation on the device representing a second version of the file (e.g., newer version). The source file and the target file are fed into a machine learning (ML) model. A combination of configuration parameters are obtained as an outcome of the machine learning model. The source file, the target file, and the combination of the configuration parameters are fed into an update generator. The delta file is obtained from the update generator. The configuration parameters define different adjustable attributes for creating and / or for installing a delta file. The delta file is sent, optionally using an over the air (OTA) interface, to the end device for local installation and upgrade of the source file to the target file by a differential delta applier running on the end device.

[0043] Optionally, one or more performance parameters are associated with the delta file generated by the update generator according to the combination of the configuration parameters obtained from the ML model. The performance parameter(s) may impact performance of and / or may indicate performance of, for example, one or more of: a wireless network that transmits the delta file to the device, computational performance of the device installing the delta file, and computational performance of a computing device that runs the update generator. Examples of performance parameters include: size of the delta file, predicted time to apply the delta file, predicted time to generate the delta file, and RAM consumption for generating the delta file. The ML model may generate the combination of the configuration parameters predicted to obtain a target of the one or more performance parameters. For example, the ML model may generate the combination of the configuration parameters predicted to minimize one or more of the performance parameters.

[0044] At least some implementations of the systems, methods, computing devices, and / or code instructions described herein address the technical problem of selecting a combination of configuration parameters for generating a delta file and / or for applying the delta file for updating a source file to a target file on an end device, for example, an ECU of a vehicle. At least some implementations of the systems, methods, computing devices, and / or code instructions described herein improve the technology of automated software updates, by providing approaches for automated selection of a combination of configuration parameters for generating the delta file and / or for installation of the delta file. At least some implementations of the systems, methods, computing devices, and / or code instructions described herein improve upon prior approaches for selection of the combination of configuration parameters for generating the delta file and / or for applying the delta file, for example, prior approaches involve manual selection.

[0045] At least some implementations of the systems, methods, computing devices, and / or code instructions described herein address the technical problem of improving performance of the wireless network (e.g., OTA interface) used to transmit the delta file, of the computing device that computes the delta file, and / or of the end device that installs the delta file. The following exemplary factors may impact performance of the wireless network and / or of the computing device and / or of the end device: the delta files may be large, there may be large numbers of end devices to update, there may multiple updates over short time intervals, the bandwidth allocated to the OTA may be narrow, processing resources of the end device may be limited, and / or processing resources of the computing device may be unsuitable for handling a large number of update requests over short time intervals. At least some implementations of the systems, methods, computing devices, and / or code instructions described herein improve the technology of automated software updates, by improving performance of the wireless network (e.g., OTA interface) used to transmit the delta file, of the computing device that computes the delta file, and / or of the end device that installs the delta file. Examples of improvements in performance include: reduced bandwidth required by the OTA interface for transmitting the delta file, reduced transmission time over the OTA interface, reduced processing time, reduced utilization of processing resources, and / or reduced utilization of memory.

[0046] To apply a software update to an end device (e.g., ECU, mobile devices, and internet of things (loT) device), a delta file (also referred to as a difference or “diff” file) between the older version of software (referred to herein as a source file), and the newer version of the software (referred to herein as the target file), is generated. This differential update (i.e., the delta file) may be generated at the server side, optionally by the differential update Generator which may reside for example, at the original equipment manufacturer (OEM) backend side, within a computing cloud, and the like. The delta file may be sent, for example, by an over the air (OTA) system, to the relevant end device (e.g., ECU at the vehicle) to update the device from the source version to the target version. In a very naive theoretical approach, a diff process may be simply applied to two versions of files, i.e., and old version and a new version, to generate the delta file as the difference between the new and old version. However in reality, to generate an optimal delta file, a delta generator that generates the delta file has numerous configuration parameters whose input may impact the optimal delta file. The configuration parameters impact performance associated with the delta file, for example, performance of the wireless network (e.g., OTA interface) used to transmit the delta file, performance of the computing device that computes the delta file, and / or performance of the end device that installs the delta file. Improper selection of the configuration parameters may cause unnecessary degradation in performance. Proper selection of the configuration parameters may lead to optimal performance. Using existing, in order to generate a delta file, the entity in charge of generating the differential update (e.g., the OEM or Tier 1) manually set the configuration parameters. In some cases the delta file is generated multiple times, in a trial and error / brute force approach, with different combinations of the configuration parameters, in an attempt to find a set of configuration parameters’ values for the delta generation engine to yield an optimal delta file. Such approaches, such as trial and error and / or manual setting of the configuration parameters may lead to, for example, sub-optimal performance, errors in selection of the configuration parameters, and / or difficulty in selecting the configuration parameters (e.g., labor intensive, long time).

[0047] At least some implementations of the systems, methods, computing devices, and / or code instructions described herein provide a solution to the above mentioned technical problem, and / or improve the above mentioned technology, and / or improve upon the above mentioned prior approach, by training a machine learning model, and / or using the trained machine learning model, for automatically generating the combination of the configuration parameters. The combination of the configuration parameters may be generated by the machine learning model for meeting a target of one or more performance parameters (e.g., of the wireless network (e.g., OTA interface) used to transmit the delta file, of the computing device that computes the delta file, and / or of the end device that installs the delta file). The configuration parameters generated by the ML model may improve performance of the wireless network (e.g., OTA interface) used to transmit the delta file, of the computing device that computes the delta file, and / or of the end device that installs the delta file. The target may be entered by a user (e.g., via a graphical user interface (GUI)) and / or may be previously set and / or implied. The target may be, for example, an optimal combination of the performance parameters and / or to minimize (or maximize) one or more selected performance parameters.

[0048] Before explaining at least one embodiment in detail, it is to be understood that the disclosure is not necessarily limited in its application to the details of construction and the arrangement of the components and / or methods set forth in the following description and / or illustrated in the drawings and / or the Examples. The disclosure is capable of other embodiments or of being practiced or carried out in various ways. The present disclosure may be a system, a method, and / or a computer program product. The computer program product may include a computer readable storage medium (or media) having computer readable program instructions thereon for causing a processor to carry out aspects of the present disclosure.

[0049] The computer readable storage medium can be a tangible device that can retain and store instructions for use by an instruction execution device. The computer readable storage medium may be, for example, but is not limited to, an electronic storage device, a magnetic storage device, an optical storage device, an electromagnetic storage device, a semiconductor storage device, or any suitable combination of the foregoing. A non-exhaustive list of more specific examples of the computer readable storage medium includes the following: a portable computer diskette, a hard disk, a random access memory (RAM), a read-only memory (ROM), an erasable programmable read-only memory (EPROM or Flash memory), a static random access memory (SRAM), a portable compact disc read-only memory (CD-ROM), a digital versatile disk (DVD), a memory stick, a floppy disk, and any suitable combination of the foregoing. A computer readable storage medium, as used herein, is not to be construed as being transitory signals per se, such as radio waves or other freely propagating electromagnetic waves, electromagnetic waves propagating through a waveguide or other transmission media (e.g., light pulses passing through a fiber-optic cable), or electrical signals transmitted through a wire.

[0050] Computer readable program instructions described herein can be downloaded to respective computing / processing devices from a computer readable storage medium or to an external computer or external storage device via a network, for example, the Internet, a local area network, a wide area network and / or a wireless network. The network may comprise copper transmission cables, optical transmission fibers, wireless transmission, routers, firewalls, switches, gateway computers and / or edge servers. A network adapter card or network interface in each computing / processing device receives computer readable program instructions from the network and forwards the computer readable program instructions for storage in a computer readable storage medium within the respective computing / processing device.

[0051] Computer readable program instructions for carrying out operations of the present disclosure may be assembler instructions, instruction-set-architecture (ISA) instructions, machine instructions, machine dependent instructions, microcode, firmware instructions, statesetting data, or either source code or object code written in any combination of one or more programming languages, including an object oriented programming language such as Smalltalk, C++ or the like, and conventional procedural programming languages, such as the "C" programming language or similar programming languages. The computer readable program instructions may execute entirely on the user's computer, partly on the user's computer, as a stand-alone software package, partly on the user's computer and partly on a remote computer or entirely on the remote computer or server. In the latter scenario, the remote computer may be connected to the user's computer through any type of network, including a local area network (LAN) or a wide area network (WAN), or the connection may be made to an external computer (for example, through the Internet using an Internet Service Provider). In some embodiments, electronic circuitry including, for example, programmable logic circuitry, field-programmable gate arrays (FPGA), or programmable logic arrays (PLA) may execute the computer readable program instructions by utilizing state information of the computer readable program instructions to personalize the electronic circuitry, in order to perform aspects of the present disclosure.

[0052] Aspects of the present disclosure are described herein with reference to flowchart illustrations and / or block diagrams of methods, apparatus (systems), and computer program products according to embodiments of the disclosure. It will be understood that each block of the flowchart illustrations and / or block diagrams, and combinations of blocks in the flowchart illustrations and / or block diagrams, can be implemented by computer readable program instructions.

[0053] These computer readable program instructions may be provided to a processor of a general purpose computer, special purpose computer, or other programmable data processing apparatus to produce a machine, such that the instructions, which execute via the processor of the computer or other programmable data processing apparatus, create means for implementing the functions / acts specified in the flowchart and / or block diagram block or blocks. These computer readable program instructions may also be stored in a computer readable storage medium that can direct a computer, a programmable data processing apparatus, and / or other devices to function in a particular manner, such that the computer readable storage medium having instructions stored therein comprises an article of manufacture including instructions which implement aspects of the function / act specified in the flowchart and / or block diagram block or blocks.

[0054] The computer readable program instructions may also be loaded onto a computer, other programmable data processing apparatus, or other device to cause a series of operational steps to be performed on the computer, other programmable apparatus or other device to produce a computer implemented process, such that the instructions which execute on the computer, other programmable apparatus, or other device implement the functions / acts specified in the flowchart and / or block diagram block or blocks. The flowchart and block diagrams in the Figures illustrate the architecture, functionality, and operation of possible implementations of systems, methods, and computer program products according to various embodiments. In this regard, each block in the flowchart or block diagrams may represent a module, segment, or portion of instructions, which comprises one or more executable instructions for implementing the specified logical function(s). In some alternative implementations, the functions noted in the block may occur out of the order noted in the figures. For example, two blocks shown in succession may, in fact, be executed substantially concurrently, or the blocks may sometimes be executed in the reverse order, depending upon the functionality involved. It will also be noted that each block of the block diagrams and / or flowchart illustration, and combinations of blocks in the block diagrams and / or flowchart illustration, can be implemented by special purpose hardware-based systems that perform the specified functions or acts or carry out combinations of special purpose hardware and computer instructions.

[0055] Reference is now made to FIG. 1, which is block diagram of components of a system 100 that includes a computing device 104 for training a machine learning model 120B and / or using machine learning model 120B for generating a combination of configuration parameters for generating and / or installing a delta file on an end device 150, in accordance with some embodiments. Reference is also made to FIG. 2, which is a flowchart of a method of using a machine learning model for generating a combination of configuration parameters for generating and / or installing a delta file on an end device in accordance with some embodiments. Reference is also made to FIG. 3, which is a dataflow diagram of a method of training a machine learning model for generating a combination of configuration parameters for generating and / or installing a delta file on an end device, in accordance with some embodiments. Reference is also made to FIG. 4, which is a schematic of a multi-dimensional space 402 for selecting a target of a combination of performance parameters, in accordance with some embodiments.

[0056] System 100 may implement the features of the method described with reference to FIGs. 2-3, by one or more hardware processors 102 of a computing device 104 executing code instructions (e.g. code 106A) stored in a memory (also referred to as a program store) 106.

[0057] Computing device 104 computes a delta file, optionally for updating multiple different end devices 150, of different manufactures and / or models and / or executing different versions of source file 150A.

[0058] End devices 150 may be implemented as, for example, ECUs of vehicles (e.g., of different manufactures and / or different models), drones, loT devices, mobile devices, robots, and the like. End device(s) 150 may have a differential data applier 150B installed thereon for automatically updating source file 150Ato target file 120A using a delta file computed by update generator 120D running on computing device 104.

[0059] Computing device 104 may be implemented as, for example, a server, a computing cloud, a virtual machine, a virtual server, a client terminal, a mobile device, a desktop computer, a thin client, a Smartphone, a Tablet computer, a laptop computer, a wearable computer, glasses computer, and a watch computer.

[0060] In a centralized architecture, computing device 104 may provide upgrade services to multiple different end devices 150, for example, ECUs of vehicles of different manufacturers, different models, and / or at different geographical locations. In the centralized architecture, computing device 104 may be implemented as, for example, a computing cloud and / or a server. Computing device 104 may generate customized delta files for each one of multiple different end devices 150, according to the respective source file 150A installed on the respective end device 150 and according to the target file 120A that is determined to be suitable.

[0061] In a local architecture, computing device 104 may provide upgrade services to a local end device 105, optionally a dedicated computing device 104 provides upgrade services to a dedicated end device 105. In the local architecture, computing device 104 may be implemented as, for example, an ECU within the vehicle, a processor installed within the end device, a mobile device (e.g., of a user sitting with the vehicle), and the like. Dedicated computing device 104 may generate delta files for the dedicated end devices 150, according to the respective source file 150A installed on the respective end device 150 and according to the target file 120A that is determined to be suitable. Dedicated computing device 104 may obtain target file 120 A from one or more server(s) 118 over a network 110.

[0062] Computing device 104 may communicate with end device(s) 150 using one or more data interfaces 122, for example, a network interface and / or an OTA interface

[0063] Data interfaces 122 may be implemented as, for example, an OTA interface, a network interface, a wire connection (e.g., physical port), a wireless connection (e.g., antenna), a network interface card, a wireless interface to connect to a wireless network, a physical interface for connecting to a cable for network connectivity, and / or virtual interfaces (e.g., software interface, application programming interface (API), software development kit (SDK), virtual network connection, a virtual interface implemented in software, network communication software providing higher layers of network connectivity).

[0064] Network 110 may be implemented as, for example, an OTA network, the internet, a local area network, a virtual network, a wireless network, a cellular network, a local bus, a point to point link (e.g., wired), and / or combinations of the aforementioned. Processor(s) 102 may be implemented, for example, as a central processing unit(s) (CPU), a graphics processing unit(s) (GPU), field programmable gate array(s) (FPGA), digital signal processor(s) (DSP), and application specific integrated circuit(s) (ASIC). Processor(s) 102 may include a single processor, or multiple processors (homogenous or heterogeneous) arranged for parallel processing, as clusters and / or as one or more multi core processing devices.

[0065] Computing device 104 may communicate with one or more servers 118 such as for obtaining the relevant target file 120A corresponding to the source file 150A of end device 150. Server(s) 118 may include, for example, a respective server per each manufacturer of one or more end devices, and / or a communal server for multiple manufacturers of different types of end devices. Each server 118 may store respective target files 120A, for example, different versions of the target files for different types of end devices 150. Computing device 150A may obtain target file 120A from update server(s) 118, and locally compute the delta file to provide to end device(s) 150. Alternatively, server(s) 118 is implemented by computing device 104, i.e., another server 118 is not necessarily implemented. Computing device 104 may locally store target file(s) 120A.

[0066] Memory 106 stores code instructions executable by hardware processor(s) 102. Exemplary memories 106 include a random access memory (RAM), read-only memory (ROM), a storage device, non-volatile memory, magnetic media, semiconductor memory devices, hard drive, removable storage, and optical media (e.g., DVD, CD-ROM). For example, memory 106 may store code 106 A that execute one or more acts of the method described with reference to FIGs. 2-3.

[0067] Computing device 104 may include data storage device 120 for storing data, for example, one or more of: target file 120A, machine learning model 120B that generates a combination of the configuration parameters, configuration parameter repository 120C that stores the combination of configuration parameters generated by machine learning model 120B, update generator 120D that generates the delta file, delta file repository 120E that stores the generated delta file, performance parameter repository 120E that stores one or more performance parameters (e.g., as measured for the delta file, and / or targets for the performance parameters), and training dataset 120F for training machine learning model 120B, as described herein. Data storage device 120 may be implemented as, for example, a memory, a local hard-drive, a removable storage unit, an optical disk, a storage device, a virtual memory and / or as a remote server 118 and / or computing cloud (e.g., accessed over network 110).

[0068] Computing device 104 may include and / or is in communication with one or more user interfaces 124 that include a mechanism for inputting data (e.g., manually entering configuration parameters used to train the ML model) and / or viewing data, for example, viewing the configuration parameters generated by the ML model. Exemplary other user interfaces 124 include, for example, one or more of, a touchscreen, a display, a keyboard, a mouse, and voice activated software using speakers and microphone.

[0069] Referring now back to FIG. 2, at 202 an ML model is trained and / or accessed. The ML model is further described, herein for example, with reference to features 212-214 of FIG. 2. An exemplary approach for training the ML model is described with reference to FIG. 3.

[0070] At 204, an indication of a source file installed on the end device is obtained. The source file may represent an older version of the file which is currently installed on the device, for which a new version is available and to which the older version is to be upgraded to. The source file may be referred to herein as a first version of the file, to distinguish from a second version of the file that represents the target upgrade.

[0071] The indication of the source file may be obtained by, for example, a message sent by the end device to the processor (e.g., server) indicating the source file installed thereon, obtained by looking up the source file in a dataset storing records of the source files that were previously installed on different end devices (e.g., by the server), and may be the source file itself that is send from the end device to the processor (e.g., when the processor does not have access to a copy of the source file).

[0072] At 206, an indication of a target file for installation on the end device is obtained. The target file may represent a newer version of the file that is currently installed on the device, where the older version currently installed on the device is to be upgraded to the newer version, i.e., to the target file. The source file and the target file represent different versions of the same code. The target file may be referred to herein as a second version of the file, to distinguish from the first version of the file that represents the source upgrade.

[0073] The source file and target file may be, for example, software and / or firmware running on the end device, for example, ECU of a vehicle, loT device, drone, robot, mobile device, and the like. The source file may be updated to the target file, for example, for fixing bugs, for fixing security issues, and / or for providing improved features.

[0074] At 208, a target for one or more performance parameters may be obtained.

[0075] The performance parameters(s) are associated with the delta file generated by the update generator according to a combination of configuration parameters. Details of generation of the delta file and / or of the combination of the configuration parameters, are described with herein, for example, with reference to 214-218 of FIG. 2. The performance parameters may be impacted by the combination of configuration parameters that are generated by the ML model (e.g., as described herein with reference to 212- 214 of FIG. 2). Different combinations of configuration parameters lead to different performance parameters.

[0076] The performance parameters impact performance of, and / or indicate the performance of one or more of:

[0077] • A wireless network that transmits the delta file to the device, for example, the OTA interface, the cellular network, antennas, routers, and other network equipment.

[0078] • Computational performance of the end device installing the delta file, for example, utilization of processing resources of the device for installing the delta file, processing time for installing the delta file, and memory usage for installing the delta file.

[0079] • Computational performance of a computing device (e.g., cloud, server) that runs the update generator, for example, a central server and / or computing cloud that runs the update generator for creating multiple different delta files for different end devices. For example, utilization of processing resources, processing time for installing the delta file, and memory usage for installing the delta file.

[0080] Determination of the combination of configuration parameters impacts performance of the wireless network, the end device, and / or the computing device, via impact on the performance parameters. For example:

[0081] • The performance parameter(s) may include a size of the delta file (e.g., in bytes). The lower the size, the better. A smaller size provides higher performance of the wireless network (e.g., in terms of shorter transmission time) and / or higher computational performance of the end device (e.g., in terms of shorter time to apply the delta file), in comparison to a larger size.

[0082] • The performance parameter(s) may include apply time of the delta file, The lower the apply time, the better. A shorter apply time provides higher performance of the wireless network and / or higher computational performance of the end device, in comparison to a longer apply time.

[0083] • The performance parameter(s) may include time for generating of the delta file. The lower the time, the better. A shorter time for generation of the delta file improves performance of the computing device that runs the update generator in comparison to a longer time for generation (e.g., lower utilization of computational resources).

[0084] • The performance parameter(s) may include memory storage requirements for generating of the delta file, The lower the size, the better. A smaller memory storage requirement for generation of the delta file improves performance of the computing device that runs the update generator in comparison to a larger memory storage requirement.

[0085] • When the delta file is transmitted from the processor (e.g., server, computing cloud) to the end device using an over the air interface, the performance parameter(s) may impacts transmission time over the over the air interface.

[0086] The target of the performance parameter(s) may be used for instructing the ML model to generate the combination of configuration parameters that are predicted to obtain the provided target of the performance parameter(s).

[0087] The target may be obtained from a user, for example, manually entered by the user via a user interface, optionally a graphical user interface (GUI) presented on a display. The GUI may be designed for enabling a user to select the target of a combination of one or more performance parameters. The target may be selected as a point within a multi-dimensional space. Each dimension of the space may denote a respective performance parameter. An allowable range of motion of the point within the multi-dimensional space denotes allowable combinations. The user may user for example, a touch screen and / or mouse to move an icon representing the point within the space, according to the allowable ranges for selecting a desired combination of performance parameters as the target. The allowable ranges may indicate tradeoffs between different performance parameters. For example, increasing the target of a first performance parameter may lead to a decrease in the target of a second performance parameter impacted by the first performance parameter, i.e., the first cannot be increased without decreasing the second.

[0088] Referring now back to FIG. 4, a multi-dimensional space 402 may be presented within a GUI for enabling a user to move around a location of an icon 404 for selecting a combination of target performance parameters. Space 402 may be depicted as the volume within a 3D cube. For example, the dimensions of space 402 include the performance parameters of delta size 406, apply time 408, and generation time 410 (which are described herein). Icon 404 may be moved within space 402 presented within the GUI, for selecting different combinations of values for delta size 406, apply time 408, and generation time 410, to be used as targets. Icon 404 may be implemented as, for example, as a 3D slider UI mechanism (e.g., a slider handle that can be moved) to let the user define the optimality of the target performance parameters for generating the delta file. For example, user may use icon 404 to select that the delta size is minimal while apply time is less restricted, or vice versa.

[0089] At 210, one or more other parameters may be obtained. The other parameters may be fed into the ML model for increasing accuracy of generating the combination of configuration parameters predicted to achieve the target of the performance parameters.

[0090] The parameters may be obtained, for example, as metadata, values of fields, categories, numerical values, and the like.

[0091] Examples of other parameters include: brand of the end device, model of the end device, manufacturer of the end device, processor make and / or model of the end device that is executing the update, available memory on the end device that will be used for the update, quality of the OTA interface, and the like.

[0092] At 212, the source file and the target file are fed into the machine learning model. Alternatively, the indication of the source file and / or the indication of the source file are fed into the ML model, rather than feeding the source file and / or target file themselves.

[0093] Optionally, the target of the performance parameters is fed into the ML model in combination with the source file and the target file. Alternatively, the target is not explicitly fed into the machine learning model. The target may be implied and / or defined internally within the ML model, for example, as an optimal of the performance parameter(s), for example, to minimize (or maximize) the performance parameters.

[0094] Alternatively or additionally, the other parameter(s) are fed into the ML model in combination with the source file and the target file and the optional target.

[0095] At 214, a combination of configuration parameters are obtained as an outcome of the machine learning model.

[0096] The combination of configuration parameters obtained from the ML model may refer to, for example, values for setting the configuration parameters, categories for setting the configuration parameters, and / or a selected subset of configuration parameters from a larger set of candidate configuration parameters.

[0097] The ML model may provide values for all of the configuration parameters that are used by the update generator. Alternatively, the ML model may define values for a subset of the configuration parameter. Values for the other configuration parameters may be, for example, preset, obtained from storage, and / or manually set.

[0098] The number of configuration parameters which are determined by the ML model may be, for example, about 10-150, or about 100, or about 50-75, or other values. The machine learning model may be trained for selecting the combination of the configuration parameters for obtaining the target of the performance parameter(s) associated with the delta file. Alternatively or additionally, when no explicit target is provided, the machine learning model may be trained for selecting the combination of the configuration parameters for obtaining a substantially minimal value of the performance parameter(s) associated with delta file, or vice versa. The minimal value may be, for example, in comparison to another combination of the configuration parameters that obtains a higher value of the performance parameter, or vice versa.

[0099] Examples of configuration parameters and their impact on performance parameters include:

[0100] • Chunk Size. The value of the chunk size may be used to reduce number of writings to the memory, which shortens the apply time (i.e., performance parameter).

[0101] • Sector Size, which denotes the size of the windows for comparison between the source file and the target file. When the window is too small the match may be missed and this will increase the delta file size (i.e., performance parameter).

[0102] • Whether the delta file is revertible for reverting back to the first version from the second version. . The ‘Revertible delta’, may refer to a delta file which apart from serving for performing the update from the source file to the target file, also serves for reverting back from the updated version to the previous version This feature may be used, for example, in case the update is not successful and / or for some reason there is a need to revert back to the previous delta file. With a revertible delta feature the same delta file uses both the update and the reverting back without a need to send two different deltas file, which increases performance of the network and / or end device and / or computing device (i.e., performance parameter).

[0103] In an example, the end device includes one or move ECU of a vehicle, and the machine learning model generates the configuration parameters multiple different types of ECUs and / or vehicles.

[0104] At 216, the source file, the target file, and the combination of the configuration parameters obtained from the ML model are fed into an update generator.

[0105] At 218, a delta file is obtained from the update generator.

[0106] Optionally, the delta file is associated with one or more installation parameters that define the installation process of the delta file on the end device. The installation parameters may overlap with the configuration parameters, may be a subset of the configuration parameters, may be the same as the configuration parameters, and / or may be different than the configuration parameters (entirely or in part).

[0107] At 220, the delta file is sent to the end device for local installation and upgrade of the source file to the target file by a differential delta applier. The delta file may be sent over an OTA interface, and / or using other approaches. The installation parameter(s) may be sent with the delta file.

[0108] The differential delta applier may locally install the delta file for upgrading the source file to the target file, optionally following the installation parameters and / or following other rules and / or parameters that were set by the at the update generator.

[0109] The performance parameters may be set according to the delta file and / or according to the installation parameters.

[0110] At 222, the ML model may be updated in response to installation of the delta file and / or upgrade of the source device on the end device by the differential delta applier.

[0111] Optionally, performance parameters associated with the delta file and / or installation process (e.g., delivery of the delta file to the end device, upgrade using the delta file, installation of the delta file) are determined and / or measured. For example, size, time, memory usage, and / or other performance parameters described herein.

[0112] A new record that includes the performance parameter(s) and other data (e.g., source file, target file, configuration parameters) may be created. The ML model may be updated using the new record. This provides iterative improvement of the ML model.

[0113] At 224, one or more features described with reference to 204-222 may be iterated, for example, for updating different end devices and / or subsequently updating the same end device with newly released versions of the file.

[0114] Each iteration may be performed, for example, triggered by a timer at regular intervals, upon request of the end device, triggered by a release of a new version of the file, and / or triggered by other events.

[0115] Referring now back to FIG. 3, at 302, installation of a sample delta file and / or creation of the delta file from a sample source file installed on a sample end device and from a target file for upgrading the sample source file on the sample end device may be monitored. The sample delta file may be created by the update generator.

[0116] At 304, an indication of the sample source file on a sample end device is obtained, for example, as described with reference to 204 of FIG. 2.

[0117] At 306, an indication of the sample target file for upgrading the sample source file on the sample end device is obtained, for example, as described with reference to 206 of FIG. 2. At 308, one or more performance parameters associated with the sample delta file and / or installation process (e.g., delivery of the sample delta file to the end device, upgrade using the sample delta file, installation of the sample delta file) are determined and / or measured. The performance parameters may indicate performance of, for example, one or more of: a wireless network that transmits the sample delta file to the sample end device, computational performance of the end device that installs the sample delta file, and / or computational performance of a computing device that runs the update generator that generates the sample delta file.

[0118] Details of the performance parameters and / or exemplary performance parameters are described, for example, with reference to 208 of FIG. 2.

[0119] At 310, one or more other parameters may be obtained, for example, with reference to 210 of FIG. 2.

[0120] At 312, configuration parameters used to create the sample delta file are obtained. The configuration parameters may have been for example, manually entered by a user (e.g., when the ML model has not yet been trained and / or used), and / or automatically generated by the ML model (e.g., when the ML model is being updated). Details of the configuration parameters and / or exemplary configuration parameters are described, for example, with reference to 214 of FIG. 2.

[0121] At 314, a record of the sample device may be created and / or define. The record includes:

[0122] • The sample source file (or indication of the sample source file) that was installed on the sample device prior to upgrade,

[0123] • The target file (or indication of the target file) to which the sample device was upgraded to.

[0124] • A combination of the configuration parameters used by the update generator for creating the delta file used to upgrade the sample device. When the ML model is being trained using a supervised approach, the combination of the configuration parameters may be set as ground truth. Alternatively, when the ML model is being trained using a non-supervised approach, the ground truth is not necessarily set.

[0125] • The record may include the performance parameter(s).

[0126] • The record may include the other parameter(s).

[0127] At 316, features described with reference to 302-314 may be iterated for multiple different end devices (e.g., of different types) and / or different files, for creating multiple records. The multiple records may be include in a multi-record training dataset.

[0128] At 320, the ML model may be trained on the training dataset, using a supervised and / or non-supervised approach. The ML model is trained for generating an outcome of a new combination of the configuration parameters in response to an input of a new target source file and a new source file, optionally for meeting a target of one or more performance parameters.

[0129] Exemplary architectures of the ML model include a detector architecture, a classifier architecture, and / or a pipeline combination of detector(s) and / or classifier(s), for example, statistical classifiers and / or other statistical models, neural networks of various architectures (e.g., convolutional, fully connected, deep, encoder-decoder, recurrent, transformer, graph), support vector machines (SVM), logistic regression, k-nearest neighbor, decision trees, boosting, random forest, a regressor, and / or any other commercial or open source package allowing regression, classification, dimensional reduction, supervised, unsupervised, semi- supervised, and / or reinforcement learning. Machine learning models may be trained using supervised approaches and / or unsupervised approaches.

[0130] The descriptions of the various embodiments of the present disclosure have been presented for purposes of illustration, but are not intended to be exhaustive or limited to the embodiments disclosed. Many modifications and variations will be apparent to those of ordinary skill in the art without departing from the scope and spirit of the described embodiments. The terminology used herein was chosen to best explain the principles of the embodiments, the practical application or technical improvement over technologies found in the marketplace, or to enable others of ordinary skill in the art to understand the embodiments disclosed herein.

[0131] It is expected that during the life of a patent maturing from this application many relevant machine learning models will be developed and the scope of the term machine learning model is intended to include all such new technologies a priori.

[0132] As used herein the term “about” refers to ± 10 %.

[0133] The terms "comprises", "comprising", "includes", "including", “having” and their conjugates mean "including but not limited to". This term encompasses the terms "consisting of" and "consisting essentially of".

[0134] The phrase "consisting essentially of" means that the composition or method may include additional ingredients and / or steps, but only if the additional ingredients and / or steps do not materially alter the basic and novel characteristics of the claimed composition or method.

[0135] As used herein, the singular form "a", "an" and "the" include plural references unless the context clearly dictates otherwise. For example, the term "a compound" or "at least one compound" may include a plurality of compounds, including mixtures thereof.

[0136] The word “exemplary” is used herein to mean “serving as an example, instance or illustration”. Any embodiment described as “exemplary” is not necessarily to be construed as preferred or advantageous over other embodiments and / or to exclude the incorporation of features from other embodiments.

[0137] The word “optionally” is used herein to mean “is provided in some embodiments and not provided in other embodiments”. Any particular embodiment of the disclosure may include a plurality of “optional” features unless such features conflict.

[0138] Throughout this application, various embodiments of this disclosure may be presented in a range format. It should be understood that the description in range format is merely for convenience and brevity and should not be construed as an inflexible limitation on the scope of the disclosure. Accordingly, the description of a range should be considered to have specifically disclosed all the possible subranges as well as individual numerical values within that range. For example, description of a range such as from 1 to 6 should be considered to have specifically disclosed subranges such as from 1 to 3, from 1 to 4, from 1 to 5, from 2 to 4, from 2 to 6, from 3 to 6 etc., as well as individual numbers within that range, for example, 1, 2, 3, 4, 5, and 6. This applies regardless of the breadth of the range.

[0139] Whenever a numerical range is indicated herein, it is meant to include any cited numeral (fractional or integral) within the indicated range. The phrases “ranging / ranges between” a first indicate number and a second indicate number and “ranging / ranges from” a first indicate number “to” a second indicate number are used herein interchangeably and are meant to include the first and second indicated numbers and all the fractional and integral numerals therebetween.

[0140] It is appreciated that certain features of the disclosure, which are, for clarity, described in the context of separate embodiments, may also be provided in combination in a single embodiment. Conversely, various features of the disclosure, which are, for brevity, described in the context of a single embodiment, may also be provided separately or in any suitable subcombination or as suitable in any other described embodiment of the disclosure. Certain features described in the context of various embodiments are not to be considered essential features of those embodiments, unless the embodiment is inoperative without those elements.

[0141] Although the disclosure has been described in conjunction with specific embodiments thereof, it is evident that many alternatives, modifications and variations will be apparent to those skilled in the art. Accordingly, it is intended to embrace all such alternatives, modifications and variations that fall within the spirit and broad scope of the appended claims.

[0142] It is the intent of the applicant(s) that all publications, patents and patent applications referred to in this specification are to be incorporated in their entirety by reference into the specification, as if each individual publication, patent or patent application was specifically and individually noted when referenced that it is to be incorporated herein by reference. In addition, citation or identification of any reference in this application shall not be construed as an admission that such reference is available as prior art to the present disclosure. To the extent that section headings are used, they should not be construed as necessarily limiting. In addition, any priority document(s) of this application is / are hereby incorporated herein by reference in its / their entirety.

Claims

WHAT IS CLAIMED IS:

1. A system for updating a device, comprising: at least one processor executing a code for: obtaining an indication of a source file installed on the device representing a first version of the file; obtaining an indication of a target file for installation on the device representing a second version of the file; feeding the source file and the target file into a machine learning model; obtaining a combination of a plurality of configuration parameters as an outcome of the machine learning model; feeding the source file, the target file, and the combination of the plurality of configuration parameters into an update generator; obtaining a delta file from the update generator; and sending the delta file to the device for local installation and upgrade of the source file to the target file by a differential delta applier.

2. The system of claim 1, wherein at least one performance parameter associated with the delta file generated by the update generator is defined according to the combination of the plurality of configuration parameters, wherein the at least one performance parameter impacts performance of at least one of: a wireless network that transmits the delta file to the device, computational performance of the device installing the delta file, and computational performance of a computing device that runs the update generator.

3. The system of claim 2, wherein the machine learning model is trained for selecting the combination of the plurality of configuration parameters for obtaining a target of at least one performance parameter for the delta file.

4. The system of claim 3, wherein the target is not fed into the machine learning model, wherein the target comprises an optimal of the at least one performance parameter.

5. The system of claim 3, wherein the at least one processor further executes code for feeding the target into the machine learning model.

6. The system of claim 5, wherein the at least one processor further comprises code for obtaining the target from a graphical user interface (GUI) presented on a display, the GUI configured for enabling a user to select the target of a combination of the at least one performance parameter as a point within a multi-dimensional space, each dimension denoting a respective performance parameter, wherein a range of the point within the multi-dimensional space denotes allowable combinations.

7. The system of claim 3, wherein the machine learning model is trained for selecting the combination of the plurality of configuration parameters for obtaining a substantially minimal value of the at least one performance parameter of the delta file in comparison to another combination of the plurality of configuration parameters that obtains a higher value of the at least one performance parameter.

8. The system of claim 2, wherein the at least one performance parameter comprises size of the delta file, wherein a smaller size provides higher performance of the wireless network and / or higher computational performance of the device, in comparison to a larger size.

9. The system, of claim 2, wherein the at least one performance parameter comprises apply time of the delta file, wherein a shorter apply time provides higher performance of the wireless network and / or higher computational performance of the device, in comparison to a longer apply time.

10. The system, of claim 2, wherein the at least one performance parameter comprises time for generating of the delta file, wherein a shorter time for generation of the delta file improves performance of the computing device that runs the update generator in comparison to a longer time for generation.

11. The system, of claim 2, wherein the at least one performance parameter comprises memory storage requirements for generating of the delta file, wherein a smaller memory storage requirement for generation of the delta file improves performance of the computing device that runs the update generator in comparison to a larger memory storage requirement.

12. The system of claim 2, wherein the delta file is transmitted from the at least one processor to the device using an over the air interface, wherein the at least one performance parameter impacts transmission time over the over the air interface.

13. The system of claim 1, wherein the combination of the plurality of configuration parameters are selected from a group comprising: chunk size, sector size, whether the delta file is revertible for reverting back to the first version from the second version.

14. The system of claim 1, wherein at least one of the plurality of configuration parameters are defined as installation parameters associated with the delta file, and wherein sending comprises sending the delta file and the installation parameters to the device for local installation and update by the differential delta applier.

15. The system of claim 1, wherein the device comprises at least one ECU of a vehicle, wherein the machine learning model generates the plurality of configuration parameters for a plurality of different types of ECUs and / or vehicles.

16. The system of claim 1, wherein the first version represents an older version of the file currently installed on the device and the second version represents a new version of the file for upgrading the older version of the file on the device.

17. The system of claim 1, wherein the at least one processor is implemented as at least one of a computing cloud and a server, and the device is one of a plurality of devices serviced by the at least one processor.

18. The system of claim 1, wherein the machine learning model is trained on a training dataset of a plurality of records for each sample device of a plurality of sample devices of different types, each record including a source file that was installed on the sample device prior to upgrade, a target file to which the sample device was upgraded to, and the combination of the plurality of configuration parameters used by the update generator for creating the delta file used to upgrade the sample device.

19. The system of claim 18, wherein the combination of the plurality of configuration parameters are set as ground truth, and wherein the machine learning model is trained on the training dataset using a supervised learning approach.

20. The system of claim 18, wherein the machine learning model is trained on the training dataset using a non-supervised approach.

21. The system of claim 18, wherein the record further includes at least one performance parameter that indicates performance of at least one of: a wireless network that transmits the delta file to the device, computational performance of the device that installs the delta file, and computational performance of a computing device that runs the update generator, wherein the machine learning model is trained for obtaining a target of the at least one performance parameter.

22. The system of claim 21, wherein the at least one processor further execute code for obtaining the at least one performance parameter in response to the local installation and upgrade of the source file to the target file by the differential delta applier of the device, creating a new record that includes that at least one performance parameter, and updating the ML model using the new record.

23. A system for training a machine learning model, comprising: at least one processor executing a code for: creating a multi-record training dataset for a plurality of sample devices, wherein a record of a sample device includes: a source file that was installed on the sample device prior to upgrade, a target file to which the sample device was upgraded to, and a ground truth of a combination of the plurality of configuration parameters used by an update generator for creating the delta file used to upgrade the sample device; and training a machine learning model on the training dataset for generating an outcome of a new combination of the plurality of configuration parameters in response to an input of a new target source file and a new source file.

24. The system of claim 23, wherein the record further comprises at least one performance parameter that indicates performance of at least one of: a wireless network that transmits the delta file to the device, computational performance of the device that installs the delta file, and computational performance of a computing device that runs the update generator, and wherein the machine learning model is trained for generating the new combination of the plurality of configuration parameters for meeting a target of at least one performance parameter.

25. A method for updating a device, comprising: obtaining an indication of a source file installed on the device representing a first version of the file; obtaining an indication of a target file for installation on the device representing a second version of the file; feeding the source file and the target file into a machine learning model; obtaining a combination of a plurality of configuration parameters as an outcome of the machine learning model; feeding the source file, the target file, and the combination of the plurality of configuration parameters into an update generator; obtaining a delta file from the update generator; and sending the delta file to the device for local installation and upgrade of the source file to the target file by a differential delta applier.