Digital data compression, decompression, and processing methods, and related devices
By grouping data vectors into clusters with a global minimization criterion and using centroid vectors and inverse permutations, the method effectively compresses AI model data with minimal performance loss, addressing the inefficiencies of existing methods.
Patent Information
- Authority / Receiving Office
- FR · FR
- Patent Type
- Applications
- Current Assignee / Owner
- UNIV DE LIMO
- Filing Date
- 2024-11-14
- Publication Date
- 2026-05-15
AI Technical Summary
Existing data compression methods for AI models, such as integer quantization, pruning, and low-rank decomposition, result in significant performance losses, especially when applied to neural networks, and known methods like k-means clustering with vector quantization suffer from quantification errors.
A method that groups data vectors into K clusters using a global minimization criterion for distance variance, generating a compressed representation with centroid vectors and inverse permutation vectors to minimize performance loss, allowing for efficient storage and decompression without retraining the model.
Achieves a high compression ratio with negligible performance loss, reducing memory requirements and computational resources needed for AI model deployment in resource-constrained environments.
Smart Images

Figure 00000000_0000_ABST
Abstract
Description
Title of the invention: Methods for compressing, decompressing, and processing digital data and corresponding devices. Technical field
[0001] The invention relates to the technical field of digital data compression and decompression. It applies particularly, but not exclusively, to digital data relating to an artificial intelligence model, such as its parameters. Prior art
[0002] In today's digital world, data size is a central issue, as every online interaction, connected sensor, and transaction generates a massive amount of information. This exponential growth requires advanced technical infrastructures and raises questions of security, confidentiality, and real-time processing.
[0003] In particular, for Artificial Intelligence (AI), the size of the training data directly determines the performance and accuracy of the models. With the explosion of data generated by connected devices, social networks, and industrial sensors, organizations now have vast amounts of information to analyze. This allows them to train more sophisticated models and improve their ability to recognize patterns, predict behaviors, or automate complex tasks that were not possible with traditional algorithms. However, managing and analyzing this massive data requires powerful infrastructures and advanced algorithms to process volumes that continue to grow exponentially in real time.
[0004] In this context, the volume of data constituting an AI model is also constantly increasing, in line with the performance level of the models. Indeed, a neural network consists of a large set of parameters, essential to its operation and performance. The parameters (weights and biases) are internal to the network and are automatically adjusted during training to optimize the model's accuracy. These are the values that the neural network "learns" directly from the training data to make its predictions.
[0005] During model inference (prediction on new data), the parameters are used to transform the input data, for example images, into output, which is the result of this inference and depends on the task chosen: classification, detection and segmentation of objects in an image, etc.
[0006] The larger the model, the more it requires the use of high-performance computing equipment such as graphics cards and a large memory capacity. However, some applications requiring the use of AI models run in an environment constrained in terms of memory and computing resources. This type of environment includes, for example, embedded systems, such as smartphones or tablets, and microcomponents, such as the "STM32" type, which are based on a 32-bit architecture and are often used for their power, versatility, and adaptability in embedded applications where performance, power consumption, and cost are important factors. Some applications may also have sensitivity regarding the protection of user data and, therefore, require local deployment of the AI model.
[0007] Data compression methods for AI models are known, based on integer quantization, which involves approximating a real value with the nearest integer. However, applying this method to the parameters of an AI model results in a significant performance loss.
[0008] Pruning methods are also known for neural networks. These methods involve removing certain connections or neurons with low weights to reduce the network's size and simplify its structure, thereby decreasing the required memory and accelerating calculations, while minimizing the loss of accuracy. One drawback is that performance losses increase sharply with the compression ratio.
[0009] Similarly, low-rank decomposition methods approximate the network weight matrices, particularly those of the fully connected or convolutional layers, with products of lower-rank matrices. These methods exploit the sparse nature of the data to lighten the network and reduce the required memory. However, the network needs to be retrained to limit the performance loss.
[0010] The document published under number WO2023 / 23179 describes a method for compressing the parameters of a neural network comprising organizing the parameters into a set of vectors, grouping the vectors using a k-means classification method into several (K) groups characterized by their respective centroid vectors, and vectorizing the vectors of each group using their centroid vector. The drawback is that the quantification errors are significant, which leads to a substantial loss of model performance.
[0011] The invention improves the situation. In particular, the invention aims to provide a solution for compressing and decompressing a set of digital data, such as a set of parameters of an AI model, guaranteeing a negligible loss of performance. Summary
[0012] To this end, a method is proposed for compressing a volume of digital data comprising a set of N vectors of M components, with N and M being non-null integers, implemented by a compression device, said method comprising: - obtaining K groups of vectors comprising the M components, permuted from the vectors by grouping said vectors according to a global minimization criterion of a distance variance of the vectors of the K groups around K respective centroid vectors, with K a non-zero integer, less than the number N of vectors in the set, and; - the generation of a compressed representation of said set of vectors comprising the K centroid vectors of said groups and, associating with said vector, an index of the centroid vector of the group to which the permuted component vector belongs and an inverse permutation vector, said inverse permutation vector comprising P integers, with P greater than or equal to 2 and less than or equal to M, defining said inverse permutation of the components of said permuted component vector allowing the vector to be obtained from the permuted component vector, and - making available the compressed representation for use.
[0013] Thus, the present invention proposes a completely new and inventive approach to data compression which is based on grouping data vectors from a second set of vectors obtained from the original set of vectors, by internal permutation of their components, and then on approximating the vectors of a group by their centroid.
[0014] Using a global minimization criterion for the distance variance of the permuted vector groups makes it possible to obtain homogeneous groups around their respective centroids and to guarantee compression without significant loss of performance.
[0015] In addition to the K centroid vectors, the proposed representation also includes, for each data vector v, the inverse permutation vector allowing, during decompression, to recover the initial arrangement of this vector from the centroid vector to which it is associated, and to reconstruct it.
[0016] The compressed representation is for example stored in local or remote memory or transmitted to another entity for use.
[0017] The proposed method makes it possible to reduce the memory space required to store digital data comprising a set of vectors and therefore more generally the computing resources to be provided for processing such data.
[0018] It is generic in that it applies to any type of digital data volume that can be represented as a set of component vectors of the same dimensions. By way of non-limiting example, one can cite the parameters of an artificial intelligence model, the rows or columns of a digital image, samples of an audio signal, or other digital data volumes such as point clouds representing one or more 3D objects.
[0019] In a particular embodiment, obtaining the K groups of permuted component vectors includes successive iterations of permutation steps of all or part of the components of the vectors and grouping of the permuted component vectors as long as an average of the distance variances of the permuted component vectors of the K groups around K respective centroid vectors is not less than or equal to a given threshold.
[0020] According to one example of implementation, a brute-force approach is used in which different permutations are tested in combination with the grouping of vectors into K groups.
[0021] According to one example of implementation, the mean variance threshold was determined in a prior phase, based on a rate of performance loss or accuracy acceptable for the application considered.
[0022] In particular, according to another implementation example, a predefined data table associates a threshold value with a given performance loss rate. This association can be specific to the nature of the data. For example, a different threshold can be determined for pixel rows or columns of an image, or for the parameters of an artificial intelligence model, or even for parameters from different types of neural network layers.
[0023] According to yet another implementation example, one or more successive iterations test permutations of components or distinct blocks of components within the vectors, and at the end of this operation, the permuted positions of the components of a given block are fixed, before proceeding to test permutations of another block of components of the vectors. In this way, the brute-force approach is localized in the sense that it is applied to smaller datasets, thus requiring less computing and memory resources to execute it.
[0024] According to yet another example, one or more other criteria for stopping successive iterations can be checked, such as a maximum number of iterations or a criterion relating to an improvement in the results obtained by one or more more recent iterations compared to older iterations, in order to limit the execution time.
[0025] In a particular embodiment, obtaining the K groups comprises:
[0026] The ranking of all or part of the components of the N vectors according to an ascending or descending sorting criterion,
[0027] Obtaining the N vectors of permuted components by internal permutation of the components of said vectors according to the ranking obtained, and
[0028] The grouping of the permuted component vectors into the K groups according to the global minimization criterion of a distance variance of the vectors of the K groups around K respective centroid vectors.
[0029] This preliminary permutation, based at least on a data sorting criterion, confers a semi-structure to the data vectors of the second set, which makes it possible to approach the global minimization condition of the distance variance of the groups with reduced computational complexity. Indeed, the vectors of a group are closer to each other according to the given distance criterion and can therefore be approximated by the centroid vector of the group to which they belong, which helps to achieve compression without significant performance loss.
[0030] According to an example implementation, the sorting performed within a vector v is local, that is, limited to a subset of the components. For example, the sorting only concerns the first J components of the vector with J <M. Les composantes non soumises au tri ne sont pas permutées, elles gardent donc leur caractère aléatoire, mais la complexité du procédé est réduite.
[0031] According to another implementation example, a localized brute-force approach is applied to a subset of the vector components and combined with ascending or descending sorting to all or part of the remaining vector components. This hybrid approach makes it possible to get closer to the minimum variances, at a lower cost compared to a classical brute-force approach.
[0032] In a particular embodiment, obtaining the groups further includes dividing said vector into E blocks, with E an integer between 2 and M, the ranking of the components of the N vectors of the set is carried out block by block with respect to the first component of the blocks and the inverse permutation vector includes the permutations of said blocks.
[0033] This block partitioning allows adjustment of the permutation length and the dimension of the permutation vector, which is linked to the block size E. It also allows for a compromise between compression gain and performance loss. Indeed, The smaller the blocks, the more efficient ascending or descending sorting becomes, allowing us to get closer to the minimum variance condition for the groups and thus limit performance losses. Generally, blocks of size 1 provide the closest approximation to the minimum variance condition and the lowest performance loss, although the resulting permutation vector is usually of maximum size, and the calculations are longer and more complex. Indeed, with blocks of size 1, the size of the permutation vector is maximal, equal to P, whereas with larger blocks, the size of the permutation vector is reduced to the number of blocks.
[0034] For example, the inventors obtained a high compression ratio (0.128) and a very acceptable loss level (-1.85) by forming K=250 groups in a set of N= 10000 vectors.
[0035] In a particular embodiment, the compression process further comprises, following the classification of the components according to an ascending or descending sort, the rearrangement of the sorted components by traversing the components from the largest value to the smallest, the largest being placed in the middle of the vector of permuted components and the others successively on either side.
[0036] Arranging the positions of the sorted components with respect to a fixed point minimizes the distances between the components, thus reducing the dimension P of the inverse permutation vector.
[0037] In a particular embodiment, the components of the vectors in the set of vectors are floating-point numbers and the components of the inverse permutation vectors are integers.
[0038] One advantage is storing permutations of dimension P x 8 bits (that is, a permutation of a vector is represented by P integers of at most 8 bits) instead of storing a vector of M 32-bit floating-point numbers. In other words, we store four times less data by changing the representation. Of course, each inverse permutation vector is associated with the index of the centroid vector of the group to which the permuted decomposing vector belongs.
[0039] In a particular embodiment, the components of the vectors of the set are parameters of an artificial intelligence model.
[0040] Here, we typically refer to the values of the weights or biases obtained by training the artificial intelligence (AI) model. For example, this model comprises a plurality of layers, and the components of a vector in the set are the parameters of all or part of one or more layers of said plurality of layers. In this respect, the invention applies to any type of neural network layer whose parameters can be expressed as component vectors of the same dimensions. This is particularly the case for layers of 2D convolution in a convolutional network or CNN (in English, "convolutional neural network"), a Recurrent Neural Network (RNN), specially designed to process data sequences, a long and short-term memory network, LSTM (Long Short-Term Memory) or even a dense or fully connected network.
[0041] The compression process makes it possible to obtain a compression ratio of between 10 and 20% of the original volume occupied by the model parameters. It does not require retraining of the model.
[0042] The proposed compression method can also be combined with known prior art techniques for compressing a neural network, such as scalar quantization, pruning or lower-rank decomposition for stronger compression.
[0043] According to another aspect, a data volume compression device is proposed, comprising a set of N vectors of M components, with N and M being non-nuisance integers, said compression device being configured to implement: - obtaining K groups of vectors comprising the M components, permuted from the vectors of the set, by grouping according to a global minimization criterion of a distance variance of the vectors of the K groups around K respective centroid vectors, with K a non-zero integer, less than the number N of vectors in the set, and; - the generation of a compressed representation of said set of vectors comprising the K centroid vectors of said groups and, associating with said permuted component vector an index of the centroid vector of the group to which the permuted component vector belongs and an inverse permutation vector, said inverse permutation vector comprising P integers, with P greater than or equal to 2 and less than or equal to M, defining said inverse permutation of the components of said permuted component vector allowing the vector to be obtained from the permuted component vector, and - making the compressed representation available for use.
[0044] The invention also relates to a method for decompressing all or part of a volume of digital data, implemented by a decompression device, said method comprising: - the identification of at least one vector to be decompressed from a set of N vectors of M components of said volume, with N and M being non-null integers, - obtaining a compressed representation of said set of N vectors, said compressed representation comprising K centroid vectors of K groups of vectors, with K an integer greater than 2 and less than N, and associating to said vector, an index k of said centroid vector and an inverse permutation vector comprising P integers, with P greater than or equal to 2 and less than or equal to M, - obtaining, from the compressed representation, the index of the centroid vector and the inverse permutation vector associated with said vector, - obtaining, from the compressed representation, the centroid vector from the index k, and - obtaining at least one decompressed vector k by permuting the components of the centroid vector according to the inverse permutation vector and, - making the decompressed vector available for use.
[0045] The decompressed vector corresponds to the centroid vector of the group associated with the vector, after application of the inverse permutation vector associated with it.
[0046] According to another aspect, a device for decompressing all or part of a volume of digital data is proposed, said decompression device (being configured to implement:
[0047] the identification of at least one vector to be decompressed in a set of N vectors of M components of said volume, with N and M being non-null integers,
[0048] obtaining a compressed representation of said set of N vectors, said compressed representation comprising K centroid vectors of groups of vectors and, associating with said vector, an index k of said centroid vector, with k a non-zero integer and k an integer between 1 and K, and an inverse permutation vector comprising P integers, with P greater than or equal to 2 and less than or equal to M, - obtaining, from the compressed representation, the index k of the centroid vector and the inverse permutation vector associated with said vector, - obtaining, from the compressed representation, the centroid vector from the index k, and - obtaining at least one decompressed vector by permuting the components of the centroid vector according to the inverse permutation vector and, - making the decompressed vector available for use.
[0049] According to another aspect, the invention relates to a method for processing input data, said input data comprising measurement data collected by sensors placed in a real environment, the artificial intelligence model having been previously trained to predict output data to control at least one object in said real environment, said artificial intelligence model being defined by parameters included in a set of N vectors of M components, with N and M non-zero integers, implemented by a processing device, said method comprising: - obtaining the input data or intermediate data obtained by the processing device from the input data, - the determination of at least one said vector comprising parameters of the artificial intelligence model to be applied to said input data or to intermediate data, - obtaining a compressed representation of said set of N vectors stored in memory, said compressed representation comprising K centroid vectors of groups of vectors and, associating with said vector, an index k of said centroid vector and an inverse permutation vector comprising P integers, with P greater than or equal to 2 and less than or equal to M, - the decompression of said at least one vector determined from said compressed representation, said decompression comprising: • obtaining the index k of the centroid vector and the inverse permutation vector associated with said determined vector, • obtaining the centroid vector (ck) from the index k, and • obtaining at least one decompressed vector (vd) by permuting the components of the centroid vector according to the inverse permutation vector, and - the processing of input data by the artificial intelligence model from the parameters contained in the components of said at least one decompressed vector.
[0050] The decompression of the representation is performed partially, progressively, depending on the vectors required to process the data. Since the input data is transmitted from one layer to another, the input vectors associated with each layer can be decompressed successively as the input data, once processed by the preceding layers, reaches it (as data to be processed). In this second case, the decompression process is thus embedded within the model inference process. One advantage is that it limits the amount of memory required to store the model.
[0051] Alternatively, the decompression can be performed completely and once before the artificial intelligence model is applied to the data. In this case, the input data is processed in the conventional way, using the decompressed artificial intelligence model.
[0052] According to another aspect, an input data processing device is proposed, said input data comprising measurement data collected by sensors placed in a real environment, the artificial intelligence model having been previously trained to predict output data to control at least one object in said real environment, said artificial intelligence model being defined by parameters included in a set of N vectors of M components, with N and M non-zero integers, said processing device being configured to implement:
[0053] _ obtaining the input data or intermediate data obtained by said device based on input data, - the determination of at least one said vector comprising parameters of the model to be applied to said input data or to said intermediate data, - obtaining a compressed representation of said set of N vectors stored in memory, said compressed representation comprising K centroid vectors of groups of vectors and, associating with said vector, an index k of said centroid vector, with K a non-zero integer and k an integer between 1 and K, and a permutation vector comprising P integers, with P greater than or equal to 2 and less than or equal to M, - the decompression of said at least one vector from said compressed representation, said decompression comprising: • obtaining the index k of the centroid vector and the permutation vector associated with said vector, • obtaining the centroid vector from the index k, and • obtaining at least one decompressed vector (vd) by permutation of the components of the centroid vector (ck) according to the permutation vector, and - the prediction of output data from input data or intermediate data by the artificial intelligence model from the parameters contained in the components of said at least one decompressed vector.
[0054] According to one or more exemplary embodiments, each of the aforementioned devices comprises at least one processor and at least one memory comprising computer program code, the at least one memory and the computer program code being configured to, with the at least one processor, cause the execution of said device.
[0055] According to one or more implementation examples, the aforementioned devices are configured to implement the corresponding aforementioned process, in its various embodiments.
[0056] Correspondingly, an electronic device includes a memory storing a compressed representation of a volume of digital data, the aforementioned input data processing device and / or the aforementioned decompression device.
[0057] Correspondingly, a system includes the aforementioned digital data volume compression device, a memory storing a representation compressed from said volume obtained by said compression device and the aforementioned decompression device.
[0058] This description also relates to a data processor-readable information medium containing instructions for a program as described above. The information medium can be any hardware, entity, or device capable of storing the instructions for a program as described above. Usable program storage media include ROM or RAM memories, magnetic storage media such as magnetic disks and tapes, hard drives, or optically readable digital data storage media, or any combination thereof.
[0059] In some cases, the computer-readable storage medium is not transient. In other cases, the information medium may be a transient medium (for example, a carrier wave) for the transmission of a signal (electromagnetic, electrical, radio, or optical signal) carrying program instructions. This signal may be transmitted via a suitable means of transmission, wired or wireless: electrical or optical cable, radio or infrared link, or by other means.
[0060] An embodiment also relates to a computer program product comprising a computer-readable storage medium on which program instructions are stored, the program instructions being configured to cause a host device (for example, a computer) to execute all or part of the steps of one or more of the aforementioned processes when the program instructions are executed by one or more processors and / or one or more programmable hardware components of a host device, such as, for example, one of the aforementioned devices or electronic equipment. Brief description of the drawings
[0061] Other features and advantages will become apparent upon reading the detailed description that follows, for which reference should be made to the attached drawings, among which:
[0062] [Fig-1] schematically illustrates the architecture of a compression system and decompression of a volume of digital data representable as a set of vectors of the same dimensions, according to a particular non-limiting example of embodiment;
[0063] [Fig.2] presents in the form of a logic diagram the steps of a compression process for such a set of digital data vectors, according to a particular non-limiting embodiment;
[0064] [Fig.3] details in the form of a logic diagram the step of generating a second set of numerical data vectors from the original set of vectors, by internal permutation of their components, according to a non-limiting particular embodiment example;
[0065] [Fig.4A] and [Fig.4B] present distribution curves of the data of the vectors before and after permutation by ascending sort, according to a non-limiting particular embodiment example;
[0066] [Fig.5] presents in the form of a logic diagram the steps of a process for decompressing a set of digital data vectors, according to a particular non-limiting embodiment;
[0067] [Fig. 6] presents in flowchart form the steps of a method for applying an intelligence model to input data, at least some of whose parameters are available in a compressed representation using the aforementioned compression method, according to a specific, non-limiting embodiment; and
[0068] [Fig. 7] schematically illustrates an example of the hardware structure of compression and decompression devices for a set of digital data vectors and for processing input data by an artificial intelligence model, according to a specific, non-limiting embodiment. [Description of embodiments]
[0069] In the following description, identical, similar, or analogous elements will be designated by the same reference numerals. Unless otherwise indicated, the diagrams are not necessarily to scale. The block diagrams and flowcharts in the figures illustrate the architecture, functionality, and operation of computer programs, systems, devices, processes, and products according to one or more embodiments. Each block in a block diagram or each phase in a flowchart can represent a module or a portion of software code comprising instructions for implementing one or more functions. In some implementations, the order of the blocks or phases can be changed, or the corresponding functions can be implemented in parallel.
[0070] This disclosure relates to devices and methods for compressing and decompressing a volume of digital data represented as a set of vectors of the same dimension. These devices and methods, by facilitating the storage, transmission, and processing of volumes of digital data, are applicable to various types of data and have numerous industrial applications in diverse fields, such as medical data processing, robotics, surveillance, and security.
[0071] By way of example, their use is described in particular for compressing the parameters of an artificial intelligence model and decompressing them according to the needs for the processing of input data during an inference of this model.
[0072] In relation to [Fig. 1], we consider a system S for processing a volume of digital data representable as a set V of N vectors v of the same dimension M, with M and N being non-null integers. This set V is, for example, stored in a memory MEM.
[0073] The system S includes a digital data compression device 100 comprising a module 110 for obtaining K groups V'k of Nk vectors v' comprising respectively the permuted components of the vectors v, according to a global minimization criterion of a distance variance of the vectors v' of the K groups around K respective centroid vectors ck, with K a non-zero integer, less than the number N of vectors in the set V.
[0074] The device 100 includes a module 120 for generating a compressed representation of the set of vectors V comprising the K centroid vectors of said groups and, associating with said vector v, an index of the centroid vector of the group to which the vector of permuted components v' belongs and an inverse permutation vector. Said inverse permutation vector comprises P integers, with P greater than or equal to 2 and less than or equal to M, and defines the inverse permutation of the components of said vector v' allowing the vector v of the set V to be obtained from the vector v'. Finally, the device 100 is configured (230) to make the compressed representation RC available for use. For example, it stores it in a local or remote memory M1, or transmits it via a CN communication network.
[0075] Thus, according to one or more embodiments, the device 100 is configured to implement a compression method for a set of digital data vectors, which will be described below in relation to [Fig. 2]. The device 100 can be implemented in various ways, both software and / or hardware. In the example of [Fig. 1], it has the hardware structure of a computer comprising a memory M1 and a processor P1 connected to each other to allow the execution of the aforementioned modules.
[0076] In the example of [Fig. 1], the device 100 is integrated into a computer system, of the SV server type. Such a system generally has the hardware structure of a computer and has sufficient computing resources, including memory and processing power, to allow the implementation of digital data volume compression. In [Fig. 1], the MEM memory is shown as remote memory of the SV computer system, but it could be integrated into it.
[0077] The system S also includes a device 200 for decompressing all or part of the compressed RC representation of the set V of vectors v. The device 200 includes a module 210 for identifying at least one vector v to be decompressed in the set V, a module 220 for obtaining the compressed RC representation, a module 230 for obtaining the index of the centroid vector and the permutation vector associated with said vector v in this compressed representation, and a module 240 for obtaining the centroid vector from the index. Next, the device 200 includes a module 250 for reconstructing a vector vd corresponding to the vector v by permuting the components of the centroid vector using the permutation vector. Finally, the device 200 is configured (260) to make the reconstructed vector vd available for use. For example, it stores it in Ml memory or transmits it via the CN communication network.
[0078] Thus, according to one or more embodiments, the device 200 implements a decompression process for a set of digital data vectors, which will be described below in relation to [Fig. 5]. The device 200 can be implemented in various ways, both software and / or hardware. In the example of [Fig. 1], it has the hardware structure of a computer comprising a memory M2 and a processor P2 connected together to allow the execution of the aforementioned modules.
[0079] In the example of [Fig. 1], the device 200 is also integrated into an electronic device (ED). Such a device generally has the hardware structure of a computer with limited computing resources, particularly in terms of memory and processing power. In this context, access to a compressed representation of a volume of digital data, which can be decompressed in whole or in part, is particularly advantageous. The electronic device (ED) is, for example, a user device (UD), such as a laptop, tablet, or smartphone. It can also be a microcontroller, microcomponent, or integrated circuit for an embedded system, for example, an ASIC (Application-Specific Integrated Circuit), FPGA (Field-Programmable Gate Array), SoC (System on Chip), or (Digital Signal Processor), depending on the specific needs of the intended application.
[0080] In the example of [Fig. 1], the electronic equipment EE, UE further comprises a device 300 for applying an artificial intelligence model to input data. The model is described by a set of digital data vectors for which a compressed representation RC has been obtained by the compression device 100 and made available, for example, in memory M'. The device 300 comprises a module 310 for obtaining digital data to be processed from the input data, a module 320 for determining at least one vector v from the set V to be applied to said data to be processed, a module 330 for obtaining the compressed representation of said set of N vectors stored in memory, a module 340 for obtaining a decompressed vector vd corresponding to the vector v reconstructed from said compressed representation, a module 350 for processing the digital data to be processed and a module 360 for making available the output data obtained.
[0081] Thus, according to one or more embodiments, the device 300 is configured to implement a method for processing input data using an artificial intelligence model, all or part of whose parameters are stored in the form of a compressed representation by the device 100. It will be described below in relation to [Fig. 6]. The device 300 can be implemented in various ways, both software and / or hardware. In the example of [Fig. 1], it has the hardware structure of a computer comprising a memory M3 and a processor P3 connected together to allow the execution of the aforementioned modules.
[0082] In this respect, the data processing device 300 can integrate the decompression device 200 or be connected to it (as illustrated by [Fig. 1]). An example of the hardware structure of the devices 100, 200 and 300 will be described in relation to [Fig. 7].
[0083] Of course, the present description is not limited to the compression and decompression of parameters of an AI model, but applies to any type of semi-structured digital data that can be represented by a set of vectors of the same dimension, such as the pixels of an image or a sequence of discrete values resulting from the sampling of an audio signal. For an image, the vectors are formed, for example, from the rows or columns of pixels. For an audio signal, the vectors comprise samples of a segment of the signal, the length of which can vary depending on the application and the type of signal.
[0084] A method for compressing a volume of digital data is now presented in relation to [Fig. 2]. In the following, the method is considered to be implemented by a device integrated into a computer system, for example device 100 and the SV server of [Fig. 1].
[0085] In 20, the volume of digital data VN is obtained, for example from a local or remote memory or via the CN communication network.
[0086] In step 21, the volume data is organized to form a set V of N vectors v of dimension M, which is stored in memory. N and M are non-null integers. The numerical data forming the components of the vectors can be of various types. In one example, they represent parameters of an artificial intelligence model and are floating-point numbers represented on 32 bits. In another example, they represent pixel values of an image and are integers coded on 8 to 32 bits. In yet another example, They represent samples of an audio signal and are 32-bit floating-point numbers.
[0087] In a step 22, K groups V'k of Nk vectors v' of M components are obtained, respectively from the N vectors v of the set V, by internal permutation of components of the vectors v, according to a global minimization criterion of a distance variance of the vectors v' of the K groups around K respective centroid vectors ck. K is a non-zero integer, less than the number N of vectors in the set V.
[0088] According to a first example of implementation, the vector groups V'1 to V'K are obtained by a data clustering technique, for example, k-means clustering. K-means clustering is an unsupervised learning method used to partition a dataset into K groups. The general process is usually as follows:
[0089] - During an initialization phase, a number of groups K are chosen and initialized K points (here vectors cl to cK), called centroids, often chosen randomly.
[0090] - Each data point is assigned to the group V'k whose centroid is the close, generally according to a Euclidean distance.
[0091] For each group V'k, the centroid is recalculated by taking the average of the positions of the points or vectors assigned to it.
[0092] The assignment and update steps are repeated until the centroids no longer move or the variation is minimal.
[0093] One advantage of this k-means technique is its simplicity and speed, making it particularly well-suited to large datasets. However, it requires choosing a number K of groups and is therefore sensitive to the number K chosen. Note that for a large dataset V, the k-means technique can be applied to groups formed within that dataset, thus limiting the amount of memory and computing resources required.
[0094] According to a second embodiment, the grouping of vectors implements an Approximate Nearest Neighbor Search (ANN) technique used to search for nearby neighbors, tolerating a certain margin of error to increase speed. It is described in particular in section 2 of the document entitled "A Survey of Product Quantization" by Matsui et al., published in Transactions on Media Technology and Applications (MTA), vol. 6, in 2018. ANN relies on a prior data indexing step (here, the vectors), for example, based on a Locally Sensitive Hashing (LSH) technique, which projects the data into subspaces using hash functions. Rather than searching for the vectors to be grouped in all dimensions, this technique explores only the subspaces. Its most probable spaces, efficiency, and speed in finding the nearest neighboring points in high-dimensional datasets allow for optimized searches and can be combined with clustering techniques, such as the previous k-means technique.
[0095] In a particular, non-limiting embodiment detailed below, the set V comprises parameters of a neural network represented by a total number N equal to 2,224,320 vectors. Approximately 222 sets of 10,000 vectors are considered. For example, the vectors each correspond to a kernel of a 3x3 convolution filter and are therefore of dimension M=9. The total number KT of groups obtained is KT = floor(N / 10,000) * K groups; where the floor(x) operator corresponds to the lower integer part of the real number x. The inventors conducted experiments with different values of K = 200, 300, 400, 500, 600, which led to the following results in terms of respective performance losses: -2.43, -1.91, -1.41, -1.40, -1.19. For an industrial application that tolerates a loss of accuracy or performance of less than 2%, it turns out that K = 300 groups is the best compromise.
[0096] In 23, a compressed RC representation of the set V is generated from the groups V' 1 to V'K obtained previously.
[0097] More specifically, this RC representation comprises:
[0098] - the K centroid vectors ck of the K groups V' 1 to V'K,
[0099] - for each vector v' 1 to v'N, an index k of the group V'k to which it has been assigned,
[0100] - the inverse permutation vector inv allowing the recovery of the vector v from of the vector v'. It has dimension P, where P is an integer less than or equal to M, the number of components of the vectors v and v'. The value of P depends on the representation chosen to define the permutations performed in the vector v. Indeed, if it includes fixed points, then P equals M. If it is expressed as a product of cycles, the permutation can be expressed more concisely.
[0101] Thus, instead of the N vectors v of M components, for example 32-bit floating-point numbers, of the original set V, the RC representation includes K <N vecteurs centroïdes de M composantes (nombres flottants de 32 bits), N vecteurs de permutations inverse, dont les P<N composantes sont des entiers de 4 bits et N indices (entiers de 4 bits).
[0102] Compression formula:
[0103] In one embodiment, a compression ratio TC is calculated by determining how many vectors v of M floating-point numbers among the N vectors in the set V are replaced by vectors ^inv of integers that represent the inverse permutation associated with each vector vi. The formula is as follows:
[0104] [Math.l] KMF+N.MJ 1 NMF
[0105] TC=^+^
[0106] With M the dimension of the data vectors v, F the number of bits of a floating-point number representing, for example, a component of a vector (v or centroid ck), i.e., for example, F = 32 bits. I denotes the number of bits of an integer to represent a component of an inverse permutation vector. N is the total number of vectors in the set V and K the number of centroids in V.
[0107] It follows from equation [Math 1] that the number of centroids can easily become small enough to be negligible in the compression ratio TC. Consequently, we see that TC approaches FF, which confirms that representing permutations with integers provides an interesting compression result.
[0108] For example, for the previous neural network, each of the 222 batches is divided into K=300 groups, resulting in a total of KT = 222 x 300 = 66600 groups or centroids for the N vectors. The resulting compression ratio is therefore TC = (Ne * 9 * F + N * 9 * 4) / (N * 9 * 32) = 0.155. (See [Table 1] for further results).
[0109] It should be noted that with batches of 10,000 vectors, the number of centroids represents 3% or 0.03 of the total number of vectors N = 22,243,200, which is small but not negligible. However, when using the k-means technique on batches of 100,000 vectors, the number of centroids represents only 0.003%, which makes it negligible after compression. According to this RC representation, each vector v is approximated by the centroid vector of one of the K groups V'1 to V'K of permuted vectors v'. However, due to the permutations performed, the resulting groups are more homogeneous and the distance between a vector v' of a group V'k and its centroid is reduced, compared to groups that would have been formed directly from the vectors v of the original set V. The approximation error between the vector v' and the centroid ck to which it is associated is therefore reduced.
[0110] In 24, this compressed RC representation is made available for use. For example, it is stored in local or remote memory and / or transmitted via a communication network.
[0111] Step 22 of generating the set V' of permuted component vectors v' can be implemented in various ways.
[0112] In general, it is based on the following minimization formula:
[0113] [Math.2] e = minIKvarfv'J.....Vadvd)!
[0114] With V' 1,V'2 ... V'K, the K groups (in English "cluster") of vectors of permuted components v', Var(V'i) the variance of the group V'k, with k an integer between 1 and the number K of groups and ck the centroid vector of the group V'j.
[0115] Var(V'i)= 1 y il n il2 is the variance of the cluster V'j included in V' and v' the j v-jZv'GV'jr vector of permuted components obtained from the vector v by the permutation a, v'=vo- = (vc7P va2, ,
[0116] is the product set of P permutations with M elements and & is a vector of P permutations with M elements of this set.
[0117] According to a first, non-limiting embodiment, the generation of the set V' of vectors v' with permuted components is achieved by an exhaustive method of searching for the permutations that will satisfy equation [Math 2]. This is typically a so-called brute-force approach to problem-solving, which consists of trying all possible solutions until the correct one is found. It is understood that this involves exploring all combinations of permutations and groupings to satisfy the conditions of equation [Math 1], relying primarily on computing power.
[0118] According to a second embodiment, step 22 of generating a set V' of permuted component vectors implements an approximate nearest neighbor search (ANN) technique. This technique performs a search for nearby neighbors while tolerating a certain margin of error to improve speed. It is described in particular in section 2 of the document entitled "A Survey of Product Quantization" by Matsui et al., published in Transactions on Media Technology and Applications (MTA), vol. 6, in 2018. The ANN search relies on a prior step of indexing the data (here the vectors), for example based on a locally sensitive hashing (LSH) technique, which projects the data into subspaces using hash functions.Thus, rather than searching for vectors to group in all dimensions, the algorithm only explores the most probable subspaces.
[0119] According to a third embodiment, illustrated by [Fig.3], step 22 of generating a set V' of vectors with permuted components comprises the following substeps:
[0120] In 221, the M components of the vectors v are divided into a number E of contiguous and successive blocks Be of components, with E an integer between 2 and M and e an integer between 1 and E.
[0121] In 222, the blocks of the vectors v are classified according to an increasing or decreasing sorting criterion with respect to the first element of the block.
[0122] As an example, we consider the vector v of M = 6 real components, v = (0.45, 0.1, 0.27, 0.12, 1.05, 0.05). We divide the vector v into 3 blocks bl to b3 of 2 components, which are bl = (0.45, 0.1), b2 = (0.27, 0.12) and b3 = (1.05, 0.05). Ascending sorting by blocks with respect to the first element of each block leads to the following permuted component vector v': v'= (0.27, 0.12, 0.45, 0.1, 1.05, 0.05) and the permutation is o = (13) (24), that is, the first component is permuted 0.45 with the third 0.27 and the second 0.1 with the fourth 0.12.
[0123] The inventors have established that ascending or descending block sorting is a particular type of permutation which makes it possible to efficiently approach the minimum variances of the groups V' 1 to V'K of equation [Math 1].
[0124] Figures [Fig. 4A] and [Fig. 4B] show on the x-axis indices from 0 to 8 of the components of vectors of dimension M = 9 and on the y-axis, the values taken by these coordinates, respectively before and after the sorting. They illustrate the fact that ascending or descending sorting contributes in a simple way to making the permuted component vectors v' of the set V' more similar and allows for the formation of more homogeneous groups, by introducing a semi-structure within the permuted component vectors v'.
[0125] With blocks of size 1, a more efficient permutation is achieved, in the sense that it allows the sorting method to get as close as possible to the condition of claim 1. In this case, an ascending sort is performed on the M components of the vector v. As an example, we take the vector v = (0.27 0.12 0.45 0.1 1.05). By ascending sorting on a single block of size M, we obtain v' = (0.1, 0.12, 0.27, 0.45, 1.05) = (v4, v2, v1, v3, v5) and the permutation is o' = (1 4 3), that is to say, v4 and v1 are permuted, then v4 and v3 are permuted. With a decreasing sort, we would obtain the vector v' = 1.05 0.45 0.27 0.12 0.1) = (v5, v3, vl , v2, v4) the associated permutation vector' o” = (1 5 4 2 3).
[0126] In 224, a vector v' is formed from a vector v by permuting the components of the vector v inside each block so as to reproduce the previous ranking, according to a given order of traversal of the components of the vector within a block.
[0127] During a step 225, the vectors v' of permuted components are grouped into K groups V' 1 to V'K.
[0128] According to yet another implementation example, the step of generating a set V' of permuted component vectors v' includes an additional step 223 of rearranging the components after their ascending and descending sorting. This step applies to any type of block sort, regardless of the block size. Once the components are sorted, step 223 consists of defining for the first The first component of the sorting process is a median position in the vector, different from the first, and then the subsequent components are positioned on either side until they are all placed. This allows, because the component at the median position of a vector has a high probability of being a fixed point for the permutation, a reduction in the length of the permutation vector o, and therefore an increase in the compression ratio. In other words, if the M sorted values of the vector v are ml > m2 > m3 > ... > mM, they are positioned as follows in the vector v' (..., m6, m4, m2, ml, m3, m5, ...). As an example, consider the vector v = (2, 1, 5, 3, 4). Once sorted, we obtain (1, 2, 3, 4, 5), but rearranging the components leads to v'=(l, 3, 5, 4, 2). In this example, the component ml = 5 is a fixed point.
[0129] In relation to [Fig. 5], a method for decompressing all or part of a volume of digital data represented by a set of vectors V is now described, according to a particular embodiment. In the following, this method is considered to be implemented by a decompression device, for example device 200 of [Fig. 1].
[0130] During a step 51, one or more vectors v of the volume V to be decompressed are determined, in other words, identified.
[0131] In 52, the decompressed representation RV is obtained. For example, it is extracted from memory Ml.
[0132] In 53, for each vector v identified in 51, we obtain the elements contained in the RC representation necessary for its decompression. This is the identifier ick of the centroid c to which the vector v' corresponding to the vector will be associated. For example, in the compressed RC representation, we assume that an identifier of the vector v is associated with the index ick of this centroid and with an identifier of its inverse permutation vector ^inv.
[0133] During a step 54, the centroid vector ck is extracted from the RC representation from the index ick. This centroid vector ck constitutes an approximation of the vector v' obtained by permuting the components of the vector v during the compression process (steps 22, 224).
[0134] In step 55, a vector vd is reconstructed by inverse permutation of the centroid vector ck. In step 56, it is made available for use. For example, it is stored in memory or transmitted via a communication network.
[0135] We now consider a pre-trained artificial intelligence model defined by a plurality of parameters, all or part of which have been previously organized into a set of N vectors of M components, which has then been compressed by the process previously described in relation to [Fig. 2] and [Fig. 3]. We therefore assume that a compressed RC representation of this set V is available in local or remote memory. According to one example implementation, the N vectors comprise Each parameter defines a layer of a multi-layer model. In this respect, the compression process applies to any type of neural network layer whose parameters or coefficients can be represented as vectors of the same dimension. Examples include convolutional layers in a convolutional neural network (CNN), a recurrent neural network (RNN), specifically designed to process data sequences, a long-short-term memory (LSTM) network, or a dense or fully connected network. For example, for a convolutional layer, a vector v is defined per convolution filter. At the scale of a complete model, it is also possible to form a set from all the parameter vectors of a given dimension.Thus, the parameters of the complete model can be represented by as many compressed representations as there are sets formed.
[0136] A method for processing input data is now described in relation to [Fig. 6], by applying, or inferring, this artificial intelligence model to input data, implementing the compressed RC representation. This AI model has been previously trained on a training dataset to perform a task of predicting output data from input data. Typically, the input data consists of measurement data collected by industrial sensors placed in a real-world environment, such as cameras, temperature, pressure, and humidity sensors, computer probes, etc. For example, the output data can be used to monitor the state of one or more objects in the real-world environment or to detect and correct a current or future malfunction of an industrial system in that environment.
[0137] In the following, this process is considered to be implemented by a data processing device, for example device 300 of [Fig.1].
[0138] In 61, data to be processed DTP is obtained. This can be the input data IDT or intermediate data, resulting from previous processing carried out by the artificial intelligence model, for example by a previous layer of the model.
[0139] In step 62, the model parameters required to process the DTP data are determined and the corresponding vector(s) v from set V are identified. For example, this is the vector vn comprising the parameters of layer n of the model.
[0140] In 63, the compressed RC representation of the set V is obtained, for example extracted from a local or remote memory where it is stored.
[0141] In step 64, a decompressed version of the vector vdn is obtained from the compressed RC representation. To do this, according to a first embodiment, step 64 implements, for the vector vn (or more generally the required vectors) the decompression process previously described in relation to [Fig.5]. According to a second embodiment, step 64 includes the emission of a decompression command of the vector vn to the device 200, which can be integrated into the device 300 or connected to it, as illustrated by [Fig.1].
[0142] In 65, the components of the reconstructed vdn vector are used as parameters of the artificial intelligence model to process the data to be processed DTP.
[0143] In this way, the method allows the vectors storing the parameters of the artificial intelligence model to be decompressed as needed, during the application of the model to input data. This avoids having to store and manage the entire volume of data constituted by the model parameters.
[0144] Alternatively, this decompression can be performed for the entire V assembly once and for all before processing the input data. In this case, the two devices 200 and 300 can be independent and the processes can be executed sequentially.
[0145] An example of the application of the methods and devices described above to a particular artificial intelligence model, of the VGG19 type, is now described. This model, developed by the Visual Geometry Group (VGG) at the University of Oxford, is a convolutional neural network (CNN) model used primarily for image recognition and visual processing. It consists of 16 convolutional layers organized into blocks. The 2D convolutional filters used are all small, with a 3x3 kernel, which makes it possible to extract features at different scales of the image without introducing excessive complexity.It is structured so that after a sequence of successive convolutional layers, a maximum pooling / subsampling layer (or "Max Pooling") is inserted with a 2x2 kernel and a sliding window step of 2 during Max Pooling. This reduces the spatial dimensionality of the extracted features, thus limiting the number of parameters and computational complexity while preserving important information. The last three layers of the model are fully connected. Each convolutional layer is followed by a Rectified Linear Unit (ReLU) activation function, which introduces non-linearity into the model and helps solve complex classification problems. With 19 layers, VGG 19 is relatively deep, allowing the model to capture high-level features and more complex patterns in images.The use of small 3x3 nuclei is effective for capturing fine features in images. For these reasons, it is well suited to computer vision tasks.
[0146] One drawback of VGG19 is that it is large, with millions of parameters, which can make it slow to train and memory-intensive. Furthermore, the The network's depth and the number of parameters imply longer computation times for training and inference. As such, it is a good candidate for parameter compression.
[0147] The aforementioned compression method and device applies in particular to the 16 convolutional layers of the VGG model. For a layer Li, with i an integer between 1 and 16, the coefficients of the 3x3 filter are represented in the form of a 9-dimensional vector vi.
[0148] In one particular embodiment, for this VGG19 network, the set V comprises N = 2224320 vectors v, which corresponds to the total number of 3x3 convolution kernels (or filters). Each vector v comprises M components, with M = 3x3 = 9. In another embodiment, for a Region-based Convolution Neural Network (RCNN), for example "resnetl8", which comprises 18 convolution layers, we have N = 21889216 vectors comprising the parameters of the 3x3 convolution filters (M=9) of the 18 layers.
[0149] Experiments
[0150] Several experiments demonstrating the interest of the proposed processes and devices are detailed below, due to the level of performance obtained.
[0151] In Tables [Table 1] and [Table 2] presented below, the performance of a model is calculated using a mean average accuracy (mAP) metric. mAP is a common evaluation measure for artificial intelligence models. It considers the accuracy of predictions for each class and then calculates the mean (AP) and the average AP of all classes in the dataset, resulting in a single measure of overall model performance. mAP typically ranges from 0 to 1 (or 0% to 100%), where a higher value indicates better model performance for detection or classification.
[0152] The loss or loss of performance is the difference between the accuracy of the original model and the accuracy of the model after compression.
[0153] Table 1 below presents the results obtained for the VGG19 model for several values of Nk (number of Vk groups / centroids). TC is the compression ratio, i.e., the percentage of the original size of the VGG19 model.
[0154] [Tables 1] Number Nk of centroids per set V (N=100,000) Compression ratio TC Accuracy Original loss 0 92.43 0 250 0.128 90.58 -1.85 400 0.13 90.79 -1.64 600 0.1323 91.38 -1.05
[0155] It is observed that as the number of centroids increases, the loss of precision decreases while the compression ratio increases slightly.
[0156] Table 2 below presents a comparison of the results obtained for different models using the proposed compression / decompression processes to perform different computer vision tasks.
[0157] [Tables2] Task Model Nk TC Loss VGG19 classification 600 0.132 -1.04 Faster R-CNN detection 600 0.134 -1.08 Mask R-CNN segmentation 600 0.135 -1.1
[0158] The Faster R-CNN model is an advanced convolutional neural network model designed for object detection in images. It combines speed and accuracy to locate and classify objects. The Faster R-CNN operates in two main stages:
[0159] - a first part of the model, called RPN (for "Region Proposal Network" in English), generates proposals for regions of interest in the input image (i.e., areas where objects might be located) from features extracted by a convolutional neural network CNN and in this way replaces traditional upstream region generation methods.
[0160] - Next, the model refines the location of objects within these proposed regions and classifies them into object categories or in the background. This model is widely used in computer vision applications such as surveillance, autonomous vehicles, and medical image analysis.
[0161] The Mask R-CNN model is an extension of the earlier Faster R-CNN model, developed to perform instance segmentation in addition to object detection. This model identifies objects in an image and also generates a binary mask for each detected object instance, specifying the object's shape and contours to the pixel level. It works in three steps:
[0162] In a first step, it uses an RPN to generate regions of interest where objects are likely to be located. In a second step, the network then refines these regions and classifies them into object categories, while adjusting the edges for more precise localization. In a third step, an additional branch produces a segmentation mask for each detected object, enabling the capture of specific pixels for each object instance.
[0163] The Mask R-CNN model is capable of providing very accurate object segmentation, making it useful for applications requiring a detailed understanding of object shapes, such as in robotics, augmented reality, and medical image analysis.
[0164] It can be deduced from the results in this table 2 that, whatever the model or task considered, the compression rate and the performance loss obtained have similar values.
[0165] It can also be seen that the losses in accuracy are small and acceptable compared to the very significant gains obtained with regard to the compression ratio of the models.
[0166] Those skilled in the art will understand that all the functional diagrams presented here represent conceptual views, given by way of example, of circuits incorporating the principles of disclosure.
[0167] Each function, block, and step described can be implemented in hardware, software, firmware, middleware, microcode, or any suitable combination thereof. If implemented in software, the functions or blocks of the functional diagrams and flowcharts can be implemented by computer program instructions / software code, which can be stored or transmitted on computer-readable media, or loaded onto a general-purpose computer, a special-purpose computer, or other programmable processing device and / or system, such that the computer program instructions or software code executing on the computer or other programmable processing device create the means for implementing the functions described herein.
[0168] In relation to [Fig.7], an example of the material structure of the respective devices 100 for compressing a volume of digital data, 200 for decompressing a volume of digital data and 300 for processing input data by an artificial intelligence model is now described, according to one or more embodiments of the invention.
[0169] In [Fig.7], the device 100, 200, 300, comprises at least one processor 110, 210, 310 and at least one memory 120, 220, 320. The device 100, 200, 300 may also include one or more communication interfaces. In this example, the Device 100, 200, 300 includes network interfaces 130, 230, 330 (e.g., network interfaces for accessing a wired / wireless network, including an Ethernet interface, a Wi-Fi interface, etc.) connected to the processor 110, 210, 310 and configured to communicate via one or more wired / wireless communication links, and user interfaces 140, 240, 340 (e.g., a keyboard, a mouse, a display screen, etc.) connected to the processor. Device 100, 200, 300 may also include one or more media drives 150, 250, 350 for reading computer-readable storage media (e.g., a digital storage disc (CD-ROM, DVD, Blu-ray, etc.), a USB flash drive, etc.). The 110, 210, 310 processor is connected to each of the other aforementioned components in order to control their operation.
[0170] Memory 120, 220, 320 may include random access memory (RAM), cache memory, non-volatile memory, backup memory (e.g., programmable or flash memory), read-only memory (ROM), a hard disk drive (HDD), a solid-state drive (SSD), or any combination thereof. The ROM of memory 120, 220, 320 may be configured to store, among other things, an operating system of the device 100, 200, 300 and / or one or more computer program codes of one or more software applications. The RAM of memory 120, 220, 320 may be used by the processor 110, 210, 320 for the temporary storage of data, for example, permutation vectors or decompressed data vectors.
[0171] The processor 110, 210, 310 can be configured to store, read, load, execute, and / or otherwise process instructions stored in a computer-readable storage medium and / or in memory 120, 220, 320 such that, when the instructions are executed by the processor, the device 100, 200, 300 executes one or more, or all, of the steps of the aforementioned process. Means implementing a function or set of functions may, in this document, correspond to a software component, a hardware component, or a combination of hardware and / or software components, capable of implementing the function or set of functions, as described below for the means concerned.
[0172] The embodiments just presented, as well as their variants, each offer numerous advantages. In particular, the proposed solution significantly reduces the memory space required to store digital data, especially when dealing with parameters of an artificial intelligence model, and consequently reduces the amount of computing resources needed to process them. It allows such models to be deployed, in compressed form, on equipment with limited computing resources, whether embedded systems on robots, satellites, autonomous vehicles, or drones, or again in an environment with limited financial resources, such as a hospital, which does not necessarily have the latest and most efficient computer equipment.
[0173] Consequently, the aforementioned devices and methods find industrial applications in various technical fields, such as medical data processing, security, surveillance, robotics, autonomous vehicles, and which use artificial intelligence models for, by way of example:
[0174] -detect people, identify them by facial recognition, or count the number of people present in an area covered by a camera,
[0175] - control access to a restricted area,
[0176] - detect dangerous behaviors and / or objects (weapons, tools, etc.),
[0177] - segment objects (tumors, pedestrians, road, signals and signs, vehicles, obstacles, etc.) for medical diagnosis assistance or autonomous control of a robot, - etc.
Claims
1.
2. Demands A method for compressing a volume of digital data comprising a set (V) of N vectors (v) of M components, with N and M being non-null integers, implemented by a compression device (100) comprising a processor and a memory, said method comprising: - obtaining (22) K groups (V'k) of Nk vectors (v') comprising the M components, permuted from the vectors (v), by grouping said vectors of permuted components (v') according to a global minimization criterion of a distance variance of the vectors (v') of the K groups around K respective centroid vectors (ck), with K a non-zero integer, less than the number N of vectors in the set (V), and; - the generation (23) of a compressed representation (RC) of said set of vectors (V) comprising the K centroid vectors (ck) of said groups (V'k) and, associating with said vector (v), an index (ick) of the centroid vector of the group to which the permuted component vector (v') belongs and an inverse permutation vector (&inv), said inverse permutation vector comprising P integers, with P greater than or equal to 2 and less than or equal to M, defining said inverse permutation of the components of said permuted component vector (v') allowing the vector (v) to be obtained from the permuted component vector (v'), and - making available (24) the compressed representation (RC) for use. Compression method according to the preceding claim, characterized in that obtaining (22) the K groups of permuted component vectors comprises successive iterations of permutation steps of all or part of the components of the vectors (v) and of grouping the vectors (v') of permuted components as long as an average of the distance variances of the vectors (v') of the K groups around K respective centroid vectors (ck) is not less than or equal to a given threshold.
3. Compression method according to any one of claims 1 and 2, characterized in that obtaining the groups (22) comprises: - Sorting (222) all or part of the components of the N vectors (v) according to an increasing or decreasing sorting criterion, - Obtaining (224) the N vectors of permuted components (v') by internal permutation of the components of said vectors according to the sorting obtained, and - Grouping (225) the vectors of permuted components (v') into the K groups according to the global minimization criterion of a distance variance between the vectors of said groups.
4. Compression method according to the preceding claim, characterized in that obtaining the groups further comprises the division (221) of said vector into E blocks, with E an integer between 2 and M, in that the sorting (222) of the components of the N vectors (v) of the set (V) is carried out block by block with respect to the first component of the blocks and in that the inverse permutation vector comprises the permutations of said blocks.
5. A method according to any one of claims 3 and 4, characterized in that it further comprises, following the classification of the components according to an ascending or descending sort, the rearrangement (223) of the sorted components by traversing the components from the largest value to the smallest, the largest being placed in the middle of the vector of permuted components and the others successively on either side.
6. A method according to any one of the preceding claims, characterized in that the components of the vectors of the set (V) are parameters of an artificial intelligence model.
7. A method for decompressing all or part of a volume of digital data, implemented by a decompression device (200), said method comprising:
8. - the identification (51) of at least one vector (v) to be decompressed in a set of N vectors (v) of M components of said volume, with M and N being non-null integers, - obtaining (52) a compressed representation (RC) of said set of N vectors (v), said compressed representation comprising K centroid vectors (ck) of K groups of vectors of permuted components (v'), with K being an integer greater than or equal to 2 and less than N, and associating with said vector (v), an index k of said centroid vector and an inverse permutation vector comprising P integers, with P greater than or equal to 2 and less than or equal to M, - obtaining (53), from the compressed representation, the index (k) of the centroid vector and the inverse permutation vector associated with said vector (v), - obtaining (54), from the compressed representation, the centroid vector (ck) from the index (k), - obtaining (55) at least one decompressed vector (vd) by permuting the components of the centroid vector according to the inverse permutation vector and, - making available (56) the decompressed vector for use. A method for processing input data, said input data comprising measurement data collected by sensors placed in a real environment, the artificial intelligence model having been previously trained to predict output data to control at least one object in said real environment, said artificial intelligence model being defined by parameters included in a set of N vectors of M components, with N and M non-zero integers, implemented by a processing device (300), said method comprising: obtaining (61) the input data (IDT) or intermediate data (DTP) obtained by the processing device (300) from the input data, determining (62) at least one said vector (v) comprising parameters of the artificial intelligence model to be applied to said input data or intermediate data, obtaining (63) a compressed representation (CR) of said set of N vectors stored in memory, said compressed representation comprising K centroid vectors (ck) of groups of vectors of permuted components (v') and, associating with said vector (v), an index k of said centroid vector and an inverse permutation vector comprising P integers, with P greater than or equal to 2 and less than or equal to M, decompressing (64) said at least one vector (v) from said compressed representation, said decompression comprising: • obtaining the index of the centroid vector and
9. of the inverse permutation vector associated with said vector(v), • obtaining the centroid vector (ck) from the index (k), • obtaining at least one decompressed vector (vd) by permuting the components of the centroid vector according to the inverse permutation vector, and - the processing (65) of the input data or intermediate data by the artificial intelligence model from the parameters contained in the components of said at least one decompressed vector. A device (100) for compressing a volume of digital data comprising a set (V) of N vectors (v) of M components, with N and M being non-nuisance integers, said compression device (100) being configured to implement: obtaining K groups (V'k) of vectors (v') comprising the M components, permuted from the vectors (v), by grouping according to a global minimization criterion of a distance variance of the vectors (v') of the K groups around K respective centroid vectors (ck), with K a non-zero integer, less than the number N of vectors in the set (V), and; the generation of a compressed representation (CR) of said set of vectors (V) comprising the K centroid vectors (ck) of said groups (V'k) and, associating to said vector (v), an index (k) of the centroid vector of the group to which the permuted component vector (v') belongs and an inverse permutation vector (&inv), said inverse permutation vector comprising P integers, with P greater than or equal to 2 and less than or equal to M, defining said inverse permutation of the components of said vector (v') allowing the vector (v) to be obtained from the permuted component vector (v'), and making the representation (CR) available for use.
10. Device (200) for decompressing all or part of a volume of digital data, said decompression device (200) being configured to implement: - the identification of at least one vector (v) to be decompressed in a set of N vectors (v) of M components of said volume, - obtaining a compressed representation (CR) of said set of N vectors, said compressed representation comprising K centroid vectors (ck) of groups of vectors (v) and, associating with said vector (v), an index (k) of said centroid vector, with k a non-zero integer and k an integer between 1 and K, and a permutation vector comprising P integers, with P greater than or equal to 2 and less than or equal to M, - obtaining, from the compressed representation, the index (k) of the centroid vector and the inverse permutation vector associated with said vector, - obtaining, from the compressed representation, the centroid vector (c) from the index (k), - obtaining at least one decompressed vector (vd) by permuting the components of the centroid vector according to the vector of inverse permutation and,- making the uncompressed vector available for use.
11. Input data processing device (300), said input data comprising measurement data collected by sensors placed in a real environment, the artificial intelligence model having been previously trained to predict output data to control at least one object in said real environment, said artificial intelligence model being defined by parameters included in a set of N vectors of M components, with N and M non-zero integers, said processing device being configured to implement: - obtaining the input data or intermediate data obtained by said device from the input data, - determining at least one said vector (vn) comprising parameters of the model to be applied to said input data or said intermediate data, - obtaining a compressed representation (CR) of said set of N vectors stored in memory, said compressed representation comprising K centroid vectors (ck) of groups of vectors (v) and, associating with said vector (v), an index k of said centroid vector, with K a non-zero integer and k an integer between 1 and K, and a permutation vector comprising P integers, with P greater than or equal to 2 and less than or equal to M, - decompressing said at least one vector from said compressed representation, said decompression comprising: • obtaining the index (k) of the centroid vector and the permutation vector associated with said vector,• obtaining the centroid vector (ck) from the index (k), and • obtaining at least one decompressed vector (vdn) by permuting the components of the centroid vector (ck) according to the inverse permutation vector, - predicting output data from the input data or intermediate data by the artificial intelligence model based on the parameters contained in the components of said at least one decompressed vector.
12. Electronic equipment (EE, UE) comprising a memory storing a compressed representation of a volume of digital data, an input data processing device (300) according to claim 11 and / or a decompression device (200) according to claim 10.
13. Computer program comprising instructions for carrying out a process according to any one of claims 1 to 8, when said program is executed by a computer.
14. Non-volatile, computer-readable recording medium on which the computer program according to the preceding claim is recorded.