Methods for compression of digital data, decompression, and processing, and corresponding devices

By grouping vectors into clusters with centroid vectors and inverse permutations, the method efficiently compresses AI model parameters, addressing performance degradation issues in existing methods and reducing memory and computational needs.

WO2026104545A1PCT designated stage Publication Date: 2026-05-21UNIV DE LIMO +1
View PDF 1 Cites 0 Cited by

Patent Information

Authority / Receiving Office
WO · WO
Patent Type
Applications
Current Assignee / Owner
UNIV DE LIMO
Filing Date
2025-11-13
Publication Date
2026-05-21

Smart Images

  • Figure EP2025082899_21052026_PF_FP_ABST
    Figure EP2025082899_21052026_PF_FP_ABST
Patent Text Reader

Abstract

The invention relates to a method for compressing a volume of digital data comprising a set (V) of N vectors (v) of M components, the method comprising: - obtaining (23) K groups (V'k) of vectors (v') comprising the M permuted components of the vectors (v) by grouping the vectors (v') according to an overall minimization criterion for a distance variance around K centroid vectors, where K is smaller than N; - generating (24) a compressed representation (RC) of the set of vectors (V), the compressed representation comprising the K centroid vectors and associating with one said vector (v) an index of the centroid vector of the group to which the corresponding permuted-component vector (v') belongs and an inverse permutation vector allowing the vector (v) to be obtained from the vector (v'); and - making the representation (RC) available.
Need to check novelty before this filing date? Find Prior Art

Description

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 volume is a central issue, as every online interaction, connected sensor, and transaction generates a massive amount of information. This exponential growth demands 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 impossible to accomplish with traditional algorithms. However, managing and analyzing this massive amount of data requires powerful infrastructure 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), parameters are used to transform input data, for example images, into output, which is the result of this inference and depends on the chosen task: classification, detection and segmentation of objects in an image, etc.

[0006] The larger the model, the more high-performance computing equipment it requires, such as graphics cards and a large memory capacity. However, Some applications requiring the use of AI models run in resource-constrained environments. These environments include embedded systems, such as smartphones and tablets, and microcomponents, such as the STM32, 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 critical factors. Some applications may also have sensitive user data protection requirements and therefore necessitate local deployment of the AI ​​model.

[0007] Data compression methods for AI models are known and are based on integer quantization, which approximates a real value with the nearest integer. However, applying this method to AI model parameters results in a significant performance degradation.

[0008] Pruning methods are also known for neural networks. These methods involve removing 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 degradation increases significantly with the compression ratio.

[0009] Similarly, low-rank decomposition methods approximate the network's weight matrices, particularly those of 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 minimize performance loss.

[0010] The document published under number WO2023 / 23179 describes a method for compressing the parameters of a neural network. This method involves organizing the parameters into a set of vectors, grouping these vectors using a k-means classification method into several (K) groups characterized by their respective centroid vectors, and then vectorizing the vectors in each group using their centroid vector. One drawback is that the quantization errors are significant, leading 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 compression method is proposed for a volume of digital data comprising a set of N vectors of M components, where N and M are integers. nuis, implemented by a compression device, said process 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 generating 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 the provision of 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 permuted vector groups makes it possible to obtain homogeneous groups around their respective centroids and to guarantee compression without significant performance loss.

[0015] In addition to the K centroid vectors, the proposed representation also includes, for each data vector v, the inverse permutation vector which, during decompression, allows us 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 required to process 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. Non-limiting examples include 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 one particular embodiment, obtaining the K groups of permuted component vectors involves successive iterations of permutation steps of every or part of the components of the vectors and grouping of the vectors of the permuted components as long as an average of the distance variances of the vectors of permuted components of the K groups around K respective centroid vectors is not less than or equal to a given threshold.

[0020] According to one example implementation, a brute-force approach is used in which different permutations are tested in combination with grouping vectors into K groups.

[0021] According to one implementation example, the mean variance threshold was determined in a prior phase, based on a performance loss or accuracy rate acceptable for the application under consideration.

[0022] In particular, according to another implementation example, a predefined data table associates a threshold value with a given performance degradation 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 in an image, or for the parameters of an artificial intelligence model, or even for parameters from different types of neural network layers.

[0023] In yet another implementation example, one or more successive iterations test permutations of components or distinct blocks of components within the vectors. Following this operation, the permuted positions of the components in a given block are fixed before proceeding to test permutations of another block of vector components. In this way, the brute-force approach is localized in the sense that it is applied to smaller datasets, thus requiring less computing power and memory to execute.

[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 one particular embodiment, obtaining the K groups includes:

[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 prior permutation, based at least on a data sorting criterion, gives a semi-structure to the data vectors of the second set which allows us 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 one implementation example, the ranking performed within a vector v is local, that is, limited to a subset of the components. For example, the ranking 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] In another implementation example, a localized brute-force approach is applied to a subset of vector components and combined with ascending or descending sorting on all or part of the remaining vector components. This hybrid approach allows for a closer approximation of 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-based approach allows you to adjust the length of the permutation performed and the size of the permutation vector, which is linked to the block size E. It also allows you to find a compromise between compression gain and performance loss. Indeed, the smaller the blocks, the more efficient the ascending or descending sorting becomes, allowing you to get closer to the minimum variance condition for the groups and thus limit performance losses. Generally, blocks of size 1 get closest to the minimum variance condition and result in the lowest performance loss, although the resulting permutation vector is usually of maximum size, and the calculations are longer and more complex. In fact, 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 achieved a high compression ratio (0.149) and a very acceptable loss level (-1.39) by forming K=8897 groups in a set of N= 2224320 vectors.

[0035] In a particular embodiment, the compression process further includes, 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 relative to a fixed point minimizes the distances between the components, thus decreasing the dimension P of the inverse permutation vector.

[0037] In one 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 vector of permuted components belongs.

[0039] In one particular embodiment, the components of the vectors of the set are parameters of an artificial intelligence model.

[0040] Typically, this refers 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 2D 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.

[0041] The compression process achieves a compression ratio of between 10 and 20% of the original volume occupied by the model parameters. It does not require retraining 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 compression device for a volume of data 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 permuted components of the vectors in the set, by grouping according to a global minimization criterion of a distance variance of the vectors in 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 generating 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 the provision of the compressed representation 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 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, 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, the provision of the uncompressed vector 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 is proposed for decompressing all or part of a volume of digital data, said decompression device (being configured to implement:

[0047] 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,

[0048] obtaining a compressed representation of said set of N vectors, said compressed representation comprising K centroid vectors of groups of vectors and associating to 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 of 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, the provision of the uncompressed vector 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: o obtaining the index k of the centroid vector and the inverse permutation vector associated with said determined vector, o obtaining the centroid vector (ck) from the index k, and o obtaining at least one decompressed vector (vd) by permuting the components of the centroid vector according to the inverse permutation vector, and processing the 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. Indeed, 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 therefore embedded within the model inference process. One advantage is to limit the Amount of memory required to store the model.

[0051] Alternatively, the decompression can be performed completely and once before applying the artificial intelligence model 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 of 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, 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, the obtaining of 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 to 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: o obtaining the index k of the centroid vector and the permutation vector associated with said vector, o obtaining the centroid vector from the index k, and o obtaining at least one decompressed vector (vd) by permuting the components of the centroid vector (ck) according to the permutation vector, and predicting 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.

[0053] According to one or more exemplary embodiments, each of the aforementioned devices comprises at least one processor and at least one memory containing 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.

[0054] According to one or more implementation examples, the aforementioned devices are configured to implement the corresponding aforementioned process, in its various embodiments.

[0055] Correspondingly, electronic equipment 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.

[0056] Correspondingly, a system includes the aforementioned digital data volume compression device, a memory storing a compressed representation of said volume obtained by said compression device, and the aforementioned decompression device.

[0057] This description also applies to a data processor-readable information medium containing instructions for a program as described above. The information medium can be any physical means, 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.

[0058] 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) carrying program instructions. This signal may be transmitted via a suitable means, wired or wireless: electrical or optical cable, radio or infrared link, or by other means.

[0059] 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

[0060] Other features and advantages will become apparent as you read the detailed description that follows, for which you should refer to the attached drawings, including:

[0061] [Fig 1] schematically illustrates the architecture of a compression and decompression system for a volume of digital data representable as a set of vectors of the same dimensions, according to a particular non-limiting example of implementation;

[0062] [Fig 2] presents in the form of a flowchart the steps of a compression process for such a set of digital data vectors, according to a particular non-limiting example of implementation;

[0063] [Fig 3] details in the form of a flowchart 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;

[0064] [Fig 4A] and [Fig 4B] present distribution curves of the data vectors before and after permutation by ascending sort, according to a non-limiting particular embodiment example;

[0065] [Fig 5] presents in the form of a flowchart the steps of a process for decompressing a set of digital data vectors, according to a particular non-limiting example of implementation;

[0066] [Fig 6] presents in flowchart form the steps of a process 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

[0067] [Fig 7] schematically illustrates an example of the hardware structure of devices for compressing, respectively decompressing a set of digital data vectors and for processing input data by an artificial intelligence model, according to a particular non-limiting example of implementation. [Description of the implementation methods]

[0068] In the following description, identical, similar, or analogous elements will be designated by the same reference numerals. Unless otherwise indicated, diagrams are not necessarily to scale. Block diagrams and flowcharts in the figures illustrate the architecture, functionality, and operation of computer systems, devices, processes, and program products according to one or more implementation examples. 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. Depending on the implementation, the order of the blocks or phases may be changed, or the corresponding functions may be implemented in parallel.

[0069] 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 data types and have numerous industrial applications in diverse fields, such as medical data processing, robotics, surveillance, and security.

[0070] As an example, their use is described in particular to compress the parameters of an artificial intelligence model and decompress them according to the needs for the processing of input data during an inference of this model.

[0071] In relation to Fig 1, we consider a system S for processing a volume of numerical data representable as a set V of N vectors v of the same dimension M, where M and N are non-null integers. This set V is, for example, stored in a MEM memory.

[0072] 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.

[0073] 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, 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.

[0074] Thus, according to one or more embodiments, the device 100 is configured to implement a compression process 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 shown in Fig. 1, it presents the hardware structure of a computer comprising a memory M1 and a processor P1 connected to each other to enable the execution of the aforementioned modules.

[0075] In the example shown in Fig. 1, device 100 is integrated into a computer system, specifically an SV server. Such a system typically has the hardware structure of a computer and sufficient computing resources, including memory and processing power, to enable the compression of the digital data volume. In Fig. 1, the MEM memory is shown as remote memory from the SV computer system, but it could also be integrated into it.

[0076] 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 memory M1 or transmits it via the CN communication network.

[0077] 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 in Fig. 1, it presents the hardware structure of a computer comprising a memory M2 and a processor P2 connected to each other to allow the execution of the aforementioned modules.

[0078] In the example shown in Fig. 1, device 200 is also integrated into an electronic device (ED). Such a device typically 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 then 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.

[0079] In the example in Fig 1, the electronic equipment EE, UE further includes 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 includes 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.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 as 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 in Fig. 1, it presents the hardware structure of a computer comprising a memory M3 and a processor P3 connected to each other to enable the execution of the aforementioned modules.

[0080] In this respect, the data processing device 300 can be integrated with the decompression device 200 or connected to it (as illustrated in Fig. 1). An example of the hardware structure of devices 100, 200, and 300 will be described in relation to Fig. 7.

[0081] Of course, this description is not limited to the compression and decompression of parameters in 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 sampling an audio signal. For an image, the vectors are formed, for example, from rows or columns of pixels. For an audio signal, the vectors comprise samples from a segment of the signal, the length of which can vary depending on the application and the type of signal.

[0082] We now present, in relation to Fig. 2, a method for compressing a volume of digital data. In the following, we consider that the method is implemented by a device integrated into a computer system, for example device 100 and the SV server of Fig. 1.

[0083] In 20, the volume of digital data VN is obtained, for example from a local or remote memory or via the CN communication network.

[0084] 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 32-bit floating-point numbers. In another example, they represent pixel values ​​of an image and are integers encoded on 8 to 32 bits. In yet another example, they represent samples of an audio signal and are 32-bit floating-point numbers.

[0085] In 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.

[0086] According to a first implementation example, the vector groups V'1 to V'K are obtained using 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: During an initialization phase, a number of groups K are chosen and K points (here vectors d to cK), called centroids, are initialized, often chosen randomly. Each data point is assigned to the V'k group whose centroid is closest, usually according to a Euclidean distance.

[0087] For each group V'k, the centroid is recalculated by taking the average of the positions points or vectors that are assigned to it.

[0088] The assignment and update steps are repeated until the centroids no longer move or the variation is minimal.

[0089] One advantage of the k-means technique is its simplicity and speed, making it particularly well-suited to large datasets. However, it requires selecting a number K of groups and is therefore sensitive to the chosen number K. It should be noted 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 when necessary.

[0090] According to a second implementation example, the grouping of vectors employs an Approximate Nearest Neighbor Search (ANN) technique, used to find nearby neighbors while allowing a certain margin of error to improve speed. It is notably described 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 preliminary 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 vectors to group in all dimensions, this technique explores only the most probable subspaces, making it efficient and fast for finding the nearest neighboring points in high-dimensional datasets. It therefore optimizes the search and can be combined with a grouping technique, such as the previous k-means technique.

[0091] In a specific, 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. For example, each vector corresponds to a kernel of a 3x3 convolution filter and is therefore of dimension M=9. The inventors conducted experiments with different values ​​of the number of groups K = 8,897, 11,121, 13,345, which led to the following results in terms of respective performance losses: -1.39, -1.65, 2.06. For an industrial application that tolerates a loss of accuracy or performance of less than 2%, it turns out that K = 8,897 groups or centroids (i.e., a centroid ratio of 0.004) constitutes the best compromise.

[0092] In 23, a compressed RC representation of the set V is generated from the groups V'1 to V'K obtained previously.

[0093] More specifically, this RC representation includes: the K centroid vectors ck of the K groups V'1 to V'K, for each vector v'1 to v'N, an index k of the group V'k to which it has been assigned, the inverse permutation vector o m - v allowing us to find the vector v from the vector v'. It is of dimension P, where P is an integer less than or equal to M, the number of components of the vectors v, 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.

[0094] Thus, instead of the N vectors v of M components, for example 32-bit floating-point numbers, from 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<M composantes sont des entiers d’au plus 4 bits dans le cas où M=9 pour le modèle VGG19 (plus précisément, chacun entier d’une composante du vecteur de permutation est de taille au plus égale à un nombre de bits I = log2(M) bits) et N indices (entiers de taille au plus égale à log2( ) bi) indiquant la position du centroïde dans une table d’index.

[0095] Compression formula:

[0096] In one embodiment, a compression ratio TC is calculated by determining how many vectors v of M floating-point numbers among the N vectors of the set V are replaced by vectors o m - vof integers that represent the inverse permutation associated with each vector vi. The formula is as follows: / r - x ... Equation 1 ' ' "

[0097] M denotes the number of components in the data vectors v, F the number of bits in a floating-point number representing, for example, a component of a vector (v or centroid ck), e.g., F = 32 bits. N is the total number of vectors in the set V, and K the number of centroids in V. In this formula, the product KMF represents the cost for K centroids of M components, each component having F bits, and NMF the product for N vectors of M components having F bits. The product NPIog2(M) represents the cost for N permutations of P components (P integers) of size log2(M) bits. It should be noted that even if a vector o m - vcan have P (< M) components, the integer value of each component can vary between 1 and M, hence the cost of log2(M). The product N.log2(K) represents the cost of the index table comprising N indices (whose integer value varies from 1 to K) for each of the N vectors v of the set V.

[0098] It follows from equation 1 that the number of centroids can easily become small enough to be negligible in the compression ratio TC. Therefore, we see that TC approaches — — m f This confirms that representing permutations with integers provides an interesting compression result.

[0099] For example, for the previous neural network, with a centroid rate of 0.004, the (integer) number of centroids is K = 0.004 x N = 0.004 x 2224320 = 8897.

[0100] For example, for the VGG19 model, which will be described in more detail below, we have N = 2224320 and M = P = 9. We also have log2(M) = Iog2(9) = 3.1699 and log2(K) = Iog2(8897) = 13.119.

[0101] According to equation 1, TC = (8897x9x32 + 2224320x9x3.169 + 2224320x13.119) / (2224320x9x32) = 0.149 (see Table 1 for more results). It should be noted that in this example, the centroid ratio K / N is almost negligible, as it only affects the third decimal place of the compression ratio TC.

[0102] 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.

[0103] 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.

[0104] Step 22 of generating the set V' of permuted component vectors v' can be implemented in various ways.

[0105] In general, it is based on the following minimization formula: E = (Equation 2) <

[0106] With V'1 ,V'2...V'K, the K groups (in English "cluster") of vectors of permuted components v', Var(Vï) 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. 2

[0107] Var(V'j) is the variance of the cluster V'j included in V' and v' is the vector of permuted components obtained from the vector v by the permutation a , =

[0108] SM is the product set of P permutations with M elements and a = (o-, a 2t - o) a vector of P permutations to M elements of this set.

[0109] According to a first, non-limiting example, the generation of the set V' of permuted component vectors is achieved through an exhaustive search for permutations that satisfy equation 2. This is typically a brute-force approach to problem-solving, which involves trying all possible solutions until the correct one is found. It consists of exploring all combinations of permutations and groupings to satisfy the conditions of equation 1, relying primarily on computing power.

[0110] According to a second example implementation, step 22 of generating a set V' of permuted component vectors implements an approximate search technique Nearest Neighbor Search (ANN) is a technique that performs a search for nearest neighbors, allowing for a certain margin of error to improve speed. It is described in section 2 of the paper 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 preliminary data indexing step (in this case, for 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 explores only the most probable subspaces.

[0111] 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:

[0112] 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.

[0113] In 222, the blocks of the vectors v are classified according to an ascending or descending sorting criterion with respect to the first element of the block.

[0114] 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 b1 to b3 of 2 components, which are b1 = (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.

[0115] The inventors established that ascending or descending block sorting is a special type of permutation that allows one to efficiently approach the minimum variances of the groups V'1 to V'K of equation 1.

[0116] Figures 4A and 4B show on the x-axis indices from 0 to 8 representing the components of vectors of dimension M = 9, and on the y-axis, the values ​​taken by these coordinates before and after sorting, respectively. They illustrate 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'.

[0117] With blocks of size 1, we achieve a more efficient permutation, in the sense that it allows us to get as close as possible to the condition of claim 1 using the sorting method. In this case, we perform an ascending sort on the M components of the vector v. As an example, let's take the vector v = (0.270.120.450.1 1.05). By ascending sort 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 43), that is, v4 and v1 are swapped, then v4 and v3 are swapped. With descending sort, we would obtain the vector v' = 1.050.450.270.120.1) = (v5, v3, v1 , v2, v4) the associated permutation vector' o” = (1 5423).

[0118] In 224, we form a vector v' 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.

[0119] During a step 225, the vectors v' of permuted components are grouped into K groups V'1 to V'K.

[0120] 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 sorted component, a median position in the vector, different from the first, and then positioning the subsequent components 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 thus an increase in the compression ratio. In other words, if the M sorted values ​​of the vector v are m1 > m2 > m3 > ... > mM, we position them as follows in the vector v' (... ., m6, m4, m2, m1, 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' = (1, 3, 5, 4, 2). In this example, the component m1 = 5 is a fixed point.

[0121] In relation to Fig. 5, we now describe a process for decompressing all or part of a volume of digital data represented by a set of vectors V, according to a particular embodiment. In the following, we consider that this process is implemented by a decompression device, for example, device 200 in Fig. 1.

[0122] During step 51, one or more vectors v of the volume V to be decompressed are determined, in other words, identified.

[0123] In step 52, we obtain the decompressed representation RV. For example, it is extracted from memory M1.

[0124] In step 53, for each vector v identified in step 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 o inv .

[0125] In 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).

[0126] In step 55, a vector vd is reconstructed by the 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.

[0127] We now consider a pre-trained artificial intelligence model defined by a plurality of parameters, some or all of which have been previously organized into a set of N vectors with M components. This model has then been compressed using the method described earlier in relation to Figures 2 and 3. We therefore assume that a compressed RC representation of this set V is available in local or remote memory. In one implementation example, the N vectors each comprise the parameters defining a layer of a multi-layer model. In this respect, the compression method 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 instance, a convolutional layer is defined by a vector v per convolutional 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.

[0128] We now describe, in relation to Fig. 6, a method for processing input data 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 measurements 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.

[0129] In the following, we assume that this process is implemented by a data processing device, for example device 300 in Fig. 1.

[0130] In step 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.

[0131] In step 62, the parameters of the model 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 including the parameters of layer n of the model.

[0132] 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.

[0133] 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 sending a decompression command for the vector vn to the device 200, which can be integrated into the device 300 or connected to it, as illustrated by Fig. 1.

[0134] 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.

[0135] In this way, the process allows the vectors storing the artificial intelligence model's parameters to be decompressed as needed, when the model is applied to input data. This avoids having to store and manage the entire volume of data constituted by the model's parameters.

[0136] 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 run sequentially.

[0137] We now describe an example of applying the previously described methods and devices to a specific artificial intelligence model, VGG19. 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 allows for the extraction of 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. 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, VGG19 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.

[0138] One drawback of VGG19 is its large size, with millions of parameters, which can make it slow to train and memory-intensive. Furthermore, the network depth and the number of parameters result in longer computation times for training and inference. As such, it is a good candidate for parameter compression.

[0139] 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 as a 9-dimensional vector vi.

[0140] In one particular embodiment, for this VGG19 network, the set V comprises N = 2224320 v vectors, which corresponds to the total number of 3x3 convolution kernels (or filters). Each v vector comprises M components, with M = 3x3 = 9. In another embodiment, for a Region-based Convolution Neural Network (RCNN), for example "resnet18", which comprises 18 convolution layers, we have N = 21889216 vectors comprising the parameters of the 3x3 convolution filters (M=9) of the 18 layers.

[0141] Experiences

[0142] Several experiments demonstrating the value of the proposed processes and devices are detailed below, due to the level of performance obtained.

[0143] In Tables 1 and 2 below, a model's performance is calculated using a mean average precision (mAP) metric. mAP is a common evaluation measure for artificial intelligence models. It considers the accuracy of predictions for each class, 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%), with higher values ​​indicating better model performance for detection or classification.

[0144] Loss or performance loss is the difference between the accuracy of the original model and the accuracy of the model after compression.

[0145] 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.

[0146] Table 1

[0147] We observe that as the number of centroids increases, the loss of precision decreases while the compression ratio increases slightly.

[0148] 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.

[0149] Table 2

[0150] 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: The first part of the model, called RPN (for "Region Proposal Network"), generates proposals of regions of interest in the input image (i.e. areas where objects could be located) from features extracted by a convolutional neural network CNN and in this way replaces traditional upstream region generation methods. Next, the model refines the location of objects within these proposed regions and classifies them into object categories or backgrounds. This model is widely used in computer vision applications such as surveillance, autonomous vehicles, and medical image analysis.

[0151] The Mask R-CNN model is an extension of the previous 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:

[0152] In the first step, it uses a Relative Progressive Network (RPN) to generate regions of interest where objects are likely to be located. In the second step, the network then refines these regions and classifies them into object categories, while adjusting the edges for more precise localization. In the third step, an additional branch produces a segmentation mask for each detected object, allowing the capture of specific pixels for each object. object instance.

[0153] The Mask R-CNN model is capable of providing highly accurate object segmentation, making it useful for applications requiring a detailed understanding of object shapes, such as robotics, augmented reality, and medical image analysis.

[0154] We can deduce from the results in this table 2 that, regardless of the model or task considered, the compression rate and performance loss obtained have similar values.

[0155] We can also see that the losses in accuracy are small and acceptable compared to the very significant gains obtained with regard to the compression rate of the models.

[0156] Those in the field will understand that all the functional diagrams presented here represent conceptual views, given as examples, of circuits incorporating the principles of disclosure.

[0157] 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 in 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 that execute on the computer or other programmable processing device create the means to implement the functions described herein.

[0158] 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.

[0159] In Fig. 7, the device 100, 200, 300 includes 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. The 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.

[0160] Memory 120, 220, 320 can include random access memory (RAM), cache memory, non-volatile memory, and backup memory (e.g., memory chips). 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 can be configured to store, among other things, an operating system for device 100, 200, 300 and / or one or more computer program codes for one or more software applications. The RAM of memory 120, 220, 320 can be used by the processor 110, 210, 320 for the temporary storage of data, for example, permutation vectors or decompressed data vectors.

[0161] 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, several, 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.

[0162] The embodiments just presented, along with their variations, each offer numerous advantages. The proposed solution, in particular, 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 in environments with limited financial resources, such as hospitals, which may not have the latest and most powerful computing equipment.

[0163] Consequently, the aforementioned devices and processes find industrial applications in various technical fields, such as medical data processing, security, surveillance, robotics, autonomous vehicles, and which use artificial intelligence models for, among other things: -detect people, identify them by facial recognition, or count the number of people present in an area covered by a camera, - to control access to a restricted area, - detect dangerous behaviors and / or objects (weapons, tools, etc.), - Segmenting objects (tumors, pedestrians, roads, signals and signs, vehicles, obstacles, etc.) to aid in medical diagnosis or the autonomous control of a robot, - etc.

Claims

Demands 1. 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 to said vector (v), an index (ick) of the centroid vector of the group to which the vector of permuted components (v') belongs and a vector ( <r inv ) of inverse permutation, 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 permutation vector (v') allowing the vector (v) to be obtained from the permutation vector (v'), and the provision (24) of the compressed representation (RC) for use.

2. 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 groups (22) comprises: The ranking (222) of all or part of the components of the N vectors (v) according to an ascending or descending sorting criterion, Obtaining (224) the N vectors of permuted components (v') by internal permutation of the components of said vectors according to the ranking obtained, and The grouping (225) of 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: 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 non-nullified integers, the obtaining (52) of 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 an integer greater than or equal to 2 and less than N, and associating to 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, the provision (56) of the decompressed vector for use.

8. A method for processing input data, said input data comprising measurement data collected by sensors placed in a real environment, an 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 to 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, the decompression (64) of said at least one vector (v) from said compressed representation, said decompression comprising: o obtaining the index of the centroid vector and the inverse permutation vector associated with said vector(v), o obtaining the centroid vector (ck) from the index (k), o 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.

9. 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 vector of permuted components (v') belongs and a vector (a inv ) of inverse permutation, 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 obtaining the vector (v) from the vector of permuted components (v'), and the provision of the representation (RC) 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 to 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 inverse permutation vector and making the decompressed vector available for use.

11. Input data processing device (300), said input data comprising measurement data collected by sensors placed in a real environment, an 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, the determination of at least one said vector (vn) comprising parameters of the model to be applied to said input data or to said intermediate data, obtaining a compressed representation (RC) of said set of N vectors stored in memory, said compressed representation comprising K centroid vectors (ck) of groups of vectors (v) and, associating to 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, 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 (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 input or intermediate data by the artificial intelligence model from 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.