Data processing system and data processing method
The data processing system addresses the challenge of prolonged decompression times by providing access to compressor configuration and compressed data, enabling high-speed decompression AI for efficient analysis.
Patent Information
- Application Number
- JP2021089677
- Authority / Receiving Office
- JP · JP
- Patent Type
- Patents
- Current Assignee / Owner
- Filing Date
- 2021-05-28
- Publication Date
- 2025-11-11
- Estimated Expiration
- 2041-05-28
AI Technical Summary
Existing storage systems that use lossy compression cannot utilize high-speed decompression AI due to the inability to access compressor configuration information and compressed data externally, leading to prolonged decompression times during analysis.
A data processing system with a compression/decompression unit that provides an interface to output compressor configuration information and compressed data, enabling the generation of high-speed decompression AI for direct analysis using compressed data.
Facilitates the use of high-speed decompression AI, significantly reducing decompression times during analysis by allowing direct input of compressed data and utilizing compressor configuration for efficient AI inference.
Smart Images

Figure 0007767028000001 
Figure 0007767028000002 
Figure 0007767028000003
Abstract
Description
[Technical Field]
[0001] The present invention generally relates to artificial intelligence (AI) for processing compressed data. [Background technology]
[0002] Storage systems that reduce the amount of data are known (see Patent Document 1). Such storage systems generally reduce the amount of data by compression. One existing compression method, such as the run-length method, is known, which creates a dictionary of character strings that appear frequently within a predetermined block unit and replaces them with codes of smaller size.
[0003] Lossy compression technology is known as a technology that reduces the amount of data more effectively than lossless compression such as the run-length method (see Patent Document 2). For example, the storage system described in Patent Document 2 is a storage system that compresses and stores data using a compression technology that uses a neural network. The data is compressed by modeling the regularity of the data using a neural network.
[0004] There is known a technology that uses AI to quickly analyze data compressed using a compression technology that uses a neural network (see Non-Patent Document 1). For example, the technology described in Non-Patent Document 1 is a technology that speeds up the decompression process of compressed data by modifying the AI so that compressed data can be directly input. Hereinafter, AI such as that described in Non-Patent Document 1 will be referred to as high-speed decompression AI. [Prior art documents] [Patent documents]
[0005] [Patent Document 1] Japanese Patent Application Laid-Open No. 2007-199891 [Patent Document 2] Japanese Patent Application Publication No. 2019-095913 [Non-patent literature]
[0006] [Non-Patent Document 1] Robert Torfason, Fabian Mentzer, Eirikur Agustsson, Michael Tschannen, Radu Timofte, Luc Van Gool, “Towards Image Understanding from Deep Compression without Decoding”, 2018. Summary of the Invention [Problem to be solved by the invention]
[0007] From the perspective of reducing data storage costs, it is believed that high-compression lossy compression is required for storing large amounts of data generated by IoT (Internet-of-Things) devices. It is also believed that high-speed analysis of large amounts of data using AI is required. To meet both of these requirements, a system is conceivable in which data stored using lossy compression is analyzed at high speed using high-speed decompression AI using the storage system described in Patent Document 2.
[0008] The design and training of high-speed decompression AI requires configuration information for the compressor (e.g., the size of the tensor in the compressed data, the range of values, the compressor itself, etc.) to generate the compressed data that will be input. This is because the structure of the high-speed decompression AI must be designed so that the size and range of values of the tensor that the high-speed decompression AI receives as input match the size and range of values of the compressed data.
[0009] In addition, the compressor itself is required to generate training data for high-speed decompression AI. For example, in training an AI that performs image classification, the training data generally consists of a pair of image data and label data that represents the class. On the other hand, in training high-speed decompression AI, pairs of compressed data and label data are required as training data. Therefore, the compressor itself is required to generate compressed data that corresponds to the image data for training.
[0010] Furthermore, when analyzing data using high-speed decompression AI, compressed data is required, not decompressed data.
[0011] However, in a storage system such as that shown in Patent Document 2, compression and decompression processes are performed internally and transparently, so the compressor itself and configuration information of the compressor cannot be accessed from outside the storage system. Furthermore, compressed data before decompression cannot be obtained from outside the storage system. Therefore, these storage systems cannot use high-speed decompression AI, which poses a problem of long decompression times during analysis.
[0012] The present invention has been made in consideration of the above points, and aims to propose a data processing system or the like for providing a high-speed decompression AI that can utilize a compression / decompression unit that performs compression and decompression. [Means for solving the problem]
[0013] In order to solve this problem, the present invention provides a data processing system having a compression / expansion unit that includes a compressor that compresses data and a decompressor that decompresses the data compressed by the compressor, and the compression / expansion unit has a first interface unit that can output configuration information of the compressor and a second interface unit that can output data compressed by the compressor.
[0014] According to the above configuration, since the configuration information of the compressor is output, it is possible to generate a high-speed decompression AI that can perform inference such as analysis processing using data compressed by the compressor as input, and to perform inference using the generated high-speed decompression AI. Also, according to the above configuration, since the data compressed by the compressor of the compression / decompression unit is input to the high-speed decompression AI without being decompressed, the decompression time in inference can be shortened. [Effects of the Invention]
[0015] According to the present invention, it is possible to provide a high-speed decompression AI that can utilize a compression / decompression unit that performs compression and decompression. [Brief explanation of the drawings]
[0016] [Figure 1] FIG. 1 is a diagram illustrating an overview of a data processing system according to a first embodiment. [Figure 2] FIG. 1 illustrates an example of a data processing system according to a first embodiment. [Figure 3] FIG. 2 illustrates an example of a configuration of a RAM according to the first embodiment. [Figure 4] FIG. 2 illustrates an example of a configuration of a RAM according to the first embodiment. [Figure 5] FIG. 3 is a diagram illustrating an example of a configuration of a compressor configuration information table according to the first embodiment. [Figure 6] FIG. 10 illustrates an example of a data write process according to the first embodiment. [Figure 7] FIG. 10 illustrates an example of decompressed data read processing according to the first embodiment; [Figure 8] FIG. 10 illustrates an example of a compressed data read process according to the first embodiment. [Figure 9] FIG. 10 is a diagram illustrating an example of a compressor configuration information response process according to the first embodiment. [Figure 10] FIG. 2 is a diagram illustrating an example of high-speed decompression AI learning processing according to the first embodiment. [Figure 11] FIG. 2 is a diagram illustrating an example of generation of a high-speed decompression AI model according to the first embodiment. [Figure 12] FIG. 10 is a diagram illustrating an example of high-speed decompression AI analysis processing according to the first embodiment. [Figure 13] FIG. 2 illustrates an example of the configuration of a compressor and an encoder according to the first embodiment. DETAILED DESCRIPTION OF THE INVENTION
[0017] (I) First embodiment An embodiment of the present invention will be described in detail below. This embodiment relates to reducing the amount of data and performing high-speed analysis processing. However, the present invention is not limited to this embodiment.
[0018] The data processing system of this embodiment includes a compression / decompression unit including a compressor that compresses data and a decompressor that decompresses data compressed by the compressor (compressed data). The compressor and decompressor are, for example, neural networks. The compression / decompression unit responds to an external request with configuration information for the compressor via a first interface. The data processing system also includes a library that generates a compressor model and a high-speed decompression AI model based on the acquired configuration information, and the library enables an AI learning program to design and learn a high-speed decompression AI. The compression / decompression unit also responds to an external request with compressed data before decompression via a second interface.
[0019] According to the above configuration, for example, in a system that compresses and stores data using a compressor that uses a neural network, it becomes possible to use high-speed decompression AI, thereby speeding up the decompression process during analysis compared to the technology described in Patent Document 2.
[0020] Next, an embodiment of the present invention will be described with reference to the drawings. The following description and drawings are examples for explaining the present invention, and some omissions and simplifications have been made as appropriate for clarity of explanation. The present invention can be implemented in various other forms. Unless otherwise specified, each component may be singular or plural.
[0021] Furthermore, the designations "first," "second," "third," etc. in this specification are used to identify components and do not necessarily limit the number or order. Furthermore, numbers used to identify components are used in different contexts, and numbers used in one context do not necessarily indicate the same configuration in another context. Furthermore, this does not prevent a component identified by a certain number from also serving the function of a component identified by another number.
[0022] (1-1) Overview The outline of the first embodiment will be explained with reference to FIG.
[0023] The data processing system of this embodiment includes a data generation source 100, a compression / decompression unit 101, an AI processing unit 102, and a storage 112.
[0024] The data generation source 100 is an entity that generates data to be accumulated and analyzed. The data generation source 100 is, for example, an image sensor that generates image data. The data generation source 100 and the data generated by the data generation source 100 are not limited to this, and may be, for example, a surveillance camera that generates video data, a vibration sensor that generates one-dimensional data, software that generates log data, etc. Furthermore, there may be multiple data generation sources 100.
[0025] The compression / decompression unit 101 is a module responsible for compressing and decompressing data. The compression / decompression unit 101 includes a compressor 110, a decompressor 113, an encoder 114, and a decoder 115. The compressor 110 and the decompressor 113 are, for example, neural networks, and are configured using the encoder and decoder portions of an autoencoder.
[0026] In response to a data write request from a data generation source 100 , a compression / decompression unit 101 converts the data into compressed data using a compressor 110 , then converts the compressed data into a bit string using an encoder 114 and stores it in a storage 112 .
[0027] In response to a read request for decompressed data (decompressed data 103), the compression / decompression unit 101 reads the bit string of the target data from the storage 112, converts it into compressed data using a decoder 115, and then performs decompression processing on the compressed data using a decompressor 113, and responds with the decompressed data (decompressed data 103) to the requestor.
[0028] On the other hand, when a request is made to read compressed data in order to perform analysis using the high-speed decompression AI 161, the compression / decompression unit 101 reads the bit string of the target data from the storage 112, and then responds to the requester with the compressed data that has been converted (decoded) by the decoder 115. In this case, the decompression process by the decompressor 113 is omitted, and therefore the decompression process during analysis is faster than when responding to a request to read decompressed data.
[0029] Furthermore, the compression / decompression unit 101 manages configuration information (compressor configuration information 111) related to the compressor 110, and when the compressor configuration information 111 is requested, it returns the compressor configuration information 111 to the request source.
[0030] The AI processing unit 102 is a module that performs learning of the high-speed decompression AI 142 and analysis using the high-speed decompression AI 161, which is an AI that has undergone learning of the high-speed decompression AI 142. The AI processing unit 102 includes a library 120, a high-speed decompression AI learning unit 140, a high-speed decompression AI analysis unit 160, and the like.
[0031] The library 120 is a library that provides a model of the compressor 141 (compressor model 122) and a model of the high-speed decompression AI 142 (high-speed decompression AI model 123), which are necessary for training the high-speed decompression AI 142.
[0032] The high-speed decompression AI learning unit 140 is a program that learns the high-speed decompression AI 142. The high-speed decompression AI learning unit 140 queries the compression / decompression unit 101 for compressor configuration information 111 and sets it as setting information 121 in the library 120. The library 120 generates a trained compressor model 122 and an untrained high-speed decompression AI model 123 based on the setting information 121. The high-speed decompression AI learning unit 140 uses, as input, compressed data obtained by compressing data (training input data 131) from the training data 130 that is to be input to the high-speed decompression AI 142 by the compressor 141 that is operatively read out by the compressor model 122, and uses a loss function 143 to train the high-speed decompression AI 142 from which the high-speed decompression AI model 123 is operatively read out so as to output correct label data 132. After completing the learning, the high-speed decompression AI learning unit 140 stores the learned model of the high-speed decompression AI 142 in the storage 150.
[0033] The high-speed decompression AI analysis unit 160 is a program that acquires a model of the high-speed decompression AI 142 that has completed learning from the storage 150, and analyzes data stored in the storage 112 using the high-speed decompression AI 161 that has read out the model of the high-speed decompression AI 142 in an operable manner. The high-speed decompression AI analysis unit 160 requests the compression / decompression unit 101 to read out compressed data, and executes the high-speed decompression AI 161 using the acquired compressed data as input to obtain an analysis result.
[0034] (1-2) Data processing system configuration An example of a data processing system (data processing system 200) according to this embodiment will be described with reference to FIG.
[0035] Each of the compression / decompression unit 101 and the AI processing unit 102 is a computer equipped with hardware resources such as a processor, memory, network interface, etc., and software resources such as a compressor, decompressor, etc. The switch 201 interconnects the data generation source 100, the compression / decompression unit 101, and the AI processing unit 102.
[0036] The compression / decompression unit 101 includes a switch 210, a processor 220, an I / F 230 (Front-end Interface), a RAM 240, and an I / F 250 (Back-end Interface). The I / F 230 is an interface for connecting the compression / decompression unit 101 with the data generation source 100 and the AI processing unit 102. The processor 220 controls the entire compression / decompression unit 101 via the switch 210 based on a program 245 and management information 246 (Metadata) recorded in the RAM 240. The I / F 250 connects the compression / decompression unit 101 with the storage 112.
[0037] The AI processing unit 102 includes a storage 150, an I / F 260 (Front-end Interface), a switch 270, a processor 280, and a RAM 290. The I / F 260 is an interface for connecting the AI processing unit 102 with the compression / decompression unit 101 and the like. The processor 280 controls the entire AI processing unit 102 via the switch 270 based on a program 291 and management information 292 (Metadata) recorded in the RAM 290.
[0038] Processor 220 and processor 280 may be general-purpose processors such as CPUs (Central Processing Units), accelerators such as GPUs (Graphical Processing Units) and FPGAs (Field Programmable Gate Arrays), or combinations thereof.
[0039] Storage 112 and storage 150 may be block devices configured using HDDs (Hard Disk Drives) or SSDs (Solid State Drives), file storage, content storage, volumes constructed on a storage system, or any other method of storing data.
[0040] The compression / decompression unit 101 and the AI processing unit 102 may be configured by interconnecting hardware such as an integrated circuit (IC) that implements the above-described components, or may be configured by implementing some of the components in a single semiconductor element such as an application-specific integrated circuit (ASIC) or FPGA. The compression / decompression unit 101 and the AI processing unit 102 may be different hardware devices, different virtual machines (VMs) running on the same computer, different containers running on the same operating system (OS), or different applications running on the same OS. For example, the compression / decompression unit 101, the AI processing unit 102, and the storage 112 may be individual pieces of software running on a hyper converged infrastructure (HCI). The compression / decompression unit 101 and the AI processing unit 102 may be implemented by a cluster consisting of multiple computers.
[0041] (1-3)RAM configuration 3 shows an example of the configuration of the RAM 290 of the AI processing unit 102. The RAM 290 stores a program 291 executed by the processor 280 of the AI processing unit 102 and management information 292 used by the program 291.
[0042] The program 291 includes a high-speed decompression AI learning program 300, a high-speed decompression AI analysis program 301, a compressor model generation program 302, and a high-speed decompression AI model generation program 303. The management information 292 includes a compressor configuration information setting table 310, training input data 131, and correct answer label data 132. Of these, the compressor model generation program 302, the high-speed decompression AI model generation program 303, and the compressor configuration information setting table 310 are programs and management information included in the library 120. Furthermore, the training data 130 may be stored in the storage 150 instead of in the RAM 290.
[0043] The high-speed decompression AI learning program 300 is a program for learning the high-speed decompression AI 142 using learning data 130 consisting of learning input data 131 and correct answer label data 132.
[0044] The high-speed decompression AI analysis program 301 is a program that analyzes data stored in the storage 112 using the high-speed decompression AI 142 that has completed learning by the high-speed decompression AI learning program 300, that is, the high-speed decompression AI 161.
[0045] The compressor model generation program 302 is a program that generates the compressor model 122, which is a model of the trained compressor 141 required for training the high-speed decompression AI 142, based on the configuration information of the compressor 110 set in the compressor configuration information setting table 310.
[0046] The high-speed decompression AI model generation program 303 is a program that converts a predetermined AI model (input AI model) given as input into the high-speed decompression AI model 123 based on the configuration information of the compressor 110 set in the compressor configuration information setting table 310. However, the high-speed decompression AI model 123 is generated in an unlearned state. For example, when the high-speed decompression AI model generation program 303 receives an image as input and a neural network model that identifies numbers appearing in the image, it generates a high-speed decompression AI neural network model that identifies numbers using the compressed data of the image as input. Details will be described later using FIG. 11.
[0047] The compressor configuration information setting table 310 is a table for managing the compressor configuration information 111 (configuration information of the compressor 110) acquired from the compression / decompression unit 101.
[0048] The training input data 131 and the correct label data 132 are training data used to train the high-speed decompression AI 142. For example, if the high-speed decompression AI 142 is an AI that uses compressed image data as input and identifies numbers appearing in the images, the training input data 131 is a group of images containing numbers, and the correct label data 132 is a group of labels representing the numbers appearing in each image. Note that the configuration of the training data 130 is not limited to pairs of training input data 131 and correct label data 132. For example, when training an AI that learns without a teacher, the correct label data 132 may not exist. Furthermore, when training a high-speed decompression AI 142 that simultaneously performs multiple tasks in response to an input, the training data 130 may include multiple types of correct label data 132. Furthermore, when using data stored in the storage 112 for training, the training data 130 may not include the training input data 131.
[0049] 4 shows an example of the configuration of the RAM 240 of the compression / decompression unit 101. The RAM 240 stores a program 245 executed by the processor 220 of the compression / decompression unit 101, and management information 246 used by the program 245.
[0050] The program 245 includes a data write program 400, a decompressed data read program 401, a compressed data read program 402, and a compressor configuration information response program 403. The management information 246 includes a compressor configuration information management table 410.
[0051] The data writing program 400 is a program that compresses data received from the data generation source 100 using the compressor 110 , converts the data into a bit string using the encoder 114 , and then stores the data in the storage 112 .
[0052] The decompressed data read program 401 is a program that, in response to an external request to read decompressed data, reads the corresponding bit string of data from the storage 112, decodes it into compressed data using the decoder 115, and then responds to the request source with the decompressed data that has been decompressed using the decompressor 113.
[0053] The compressed data read program 402 is a program that, in response to an external request to read compressed data, reads the bit string of the corresponding data from the storage 112 and returns the compressed data decoded by the decoder 115 to the request source.
[0054] The compressor configuration information response program 403 is a program that, in response to an external request to acquire the compressor configuration information 111, reads the compressor configuration information 111 from the compressor configuration information management table 410 and responds to the request source.
[0055] The compressor configuration information management table 410 is a table for managing the compressor configuration information 111 .
[0056] (1-4) Table configuration 5 shows an example of the configuration of the compressor configuration information table 500. The compressor configuration information setting table 310 and the compressor configuration information management table 410 hold the compressor configuration information 111 based on the format of the compressor configuration information table 500. Note that the method of expressing the compressor configuration information 111 is not limited to the format of the compressor configuration information table 500, and the compressor configuration information 111 may be expressed using a data structure other than a table, such as XML (Extensible Markup Language), YAML (YAML Ain't a Markup Language), a hash table, or a tree structure.
[0057] The compressor configuration information table 500 is a table that manages the setting values shown in the setting value column 511 for the parameters of the compressor 110 shown in the configuration parameter column 510. Fig. 5 shows an example of parameters managed in the compressor configuration information table 500. Note that the parameters managed in the compressor configuration information table 500 may be other than the parameters shown in Fig. 5, or the parameters shown in Fig. 5 may be excluded.
[0058] The number of input channels 520 represents the number of channels of the tensor input by the compressor 110. The number of output channels 521 represents the number of channels of the tensor output by the compressor 110. The output width scale 522 represents how many times the width of the output tensor of the compressor 110 is compared to the width of the input tensor of the compressor 110. The output height scale 523 represents how many times the height of the output tensor of the compressor 110 is compared to the height of the input tensor of the compressor 110. The input range 524 represents the range of values that each element of the tensor input by the compressor 110 can take. The output range 525 represents the range of values that each element of the tensor output by the compressor 110 can take.
[0059] For example, in the configuration shown in Figure 5, compressor 110 receives as input three-channel three-dimensional data, such as an RGB image, in which the value of each element is between 0 and 255, and outputs a tensor in which the value of each element is between -3 and 3, the number of channels is 64, and the height and width are each 1 / 16 the size of the input.
[0060] Weight parameters 526 represent learned parameters such as weights and biases of the neural network that constitutes the compressor 110. The parameters may be represented in any data structure such as a Dictionary or ONNX (Open Neural Network eXchange) format.
[0061] (1-5) Data writing process 6 is a flow diagram of the data writing program 400. The processor 220 of the compression / decompression unit 101 starts the data writing program 400 in response to an event in which the I / F 230 receives a data writing request from the data generation source 100 (S600).
[0062] In S601, the processor 220 acquires the data to be written received by the I / F 230, and converts it into compressed data by the compressor 110.
[0063] In S602, the processor 220 converts the compressed data converted (generated) in S601 into a bit string using the encoder 114. For example, the compressed data can be simply encoded by binarizing the 32-bit floating-point numbers of each element of the tensor in raster-scan order. In addition, to improve the compression ratio, the compressed data may be entropy-coded using arithmetic coding or the like. However, the encoding method is not limited to these.
[0064] An example of the configuration of the compressor 110 and the encoder 114 when entropy encoding is performed is shown in Fig. 13. However, the configurations of the compressor 110 and the encoder 114 are not limited to this.
[0065] The compressor 110 includes a padder 1301, an encoder 1303, and a quantizer 1304. The encoder 1303 is, for example, the encoder portion of an autoencoder configured using a convolutional neural network. The convolutional neural network is configured with a convolutional layer, a batch normalization layer, an activation function, and the like, and generally outputs a tensor consisting of real numbers. The quantizer 1304 performs a process of rounding the values of each element of the tensor output by the encoder 1303 to a discrete value. For example, the quantizer 1304 is a quantizer that rounds the value of each element to the nearest integer value, or a quantizer that replaces the value of each element with the nearest value from a predefined finite number of values. Alternatively, the quantizer 1304 may be any other quantizer.
[0066] The encoder 1303 generally uses a pooling layer or a convolutional layer with a stride to output a tensor whose spatial size is smaller than that of the input tensor 1300. For example, in the case of a convolutional neural network including four convolutional layers with a stride of "2", a tensor whose size on each spatial axis is 1 / 16 of that of the input tensor 1300 is output. If the input tensor 1300 includes a spatial axis whose size is not a multiple of 16, the padder 1301 adds elements (pads) to the input tensor 1300 so that the size of that axis becomes the smallest multiple of 16 that is larger than the original size.
[0067] The padder 1301 may perform zero-padding, which adds "0", or may add any other value. For example, if the spatial size of the input tensor 1300 is 126 pixels wide and 129 pixels high, the padder 1301 inserts "0" one pixel on each side, eight pixels above, and seven pixels below to generate a tensor 1302 that is 128 pixels wide and 144 pixels high, and the encoder 1303 and quantizer 1304 generate compressed data 1305 that is 8 pixels wide and 9 pixels high.
[0068] The encoder 114 is composed of a padder 1306, a hyperencoder 1308, a hyperdecoder 1310, a context estimator 1311, a mixer 1312, a probability generator 1313, and an entropy encoder 1314. The hyperencoder 1308, the hyperdecoder 1310, the context estimator 1311, and the mixer 1312 are each composed of a neural network, and calculate parameters for predicting the occurrence probability of the value of each element of the compressed data 1305. The hyperencoder 1308 and the hyperdecoder 1310 are implemented so that the size of the input tensor of the hyperencoder 1308 and the size of the output tensor of the hyperdecoder 1310 are equal.
[0069] The context estimator 1311 is configured, for example, by a Masked Convolution layer. The mixer 1312 receives the output of the hyperdecoder 1310 and the output of the context estimator 1311 as inputs and outputs parameters required for probability prediction. The probability generator 1313 calculates the occurrence probability of the value of each element of the compressed data 1305 based on the output of the mixer 1312. For example, the output of the mixer 1312 represents the mean value and standard deviation of each element of the compressed data 1305, and the probability generator 1313 calculates the probability of the value of each element using a Gaussian distribution represented by these parameters. The entropy coder 1314 is, for example, an arithmetic coder, and converts the compressed data 1305 into a bit string 1315 using the probabilities generated by the probability generator 1313.
[0070] The hyperencoder 1308 and the hyperdecoder 1310 are configured, for example, with a convolutional neural network with stride. Therefore, similar to the encoder 1303, the size of the spatial axis of the tensor 1307 input to the hyperencoder 1308 must be a multiple of a specific integer. The padder 1306 converts the size of the compressed data 1305 to satisfy this condition and outputs the tensor 1307. Like the padder 1301, the padder 1306 may add elements with a value of "0" evenly on the top, bottom, left, and right, but may also add elements shifted to the bottom and right so that the coordinates of the output tensor of the context estimator 1311 and the output tensor of the hyperdecoder 1310 are consistent.
[0071] Furthermore, the padder 1301 may add all at once the number of elements required by the padder 1306. For example, if the encoder 1303 is configured with four convolutional layers with a stride of 2 and the hyperencoder 1308 is configured with two convolutional layers with a stride of 2, the padder 1301 may add elements so that the size of the spatial axis is a multiple of 64, and the padder 1306 may be omitted. However, the configuration shown in FIG. 13 , in which the padder 1301 adds elements so that the size is a multiple of 16 and the padder 1306 adds elements so that the size is a multiple of 4, reduces the number of elements in the compressed data 1305, and therefore a better compression rate can be expected.
[0072] In S603, the processor 220 stores the bit string generated in S602 in the storage 112. Thereafter, the data writing program 400 ends (S604).
[0073] (1-6) Decompressed data reading process 7 is a flow diagram of the decompressed data read program 401. The processor 220 of the compression / decompression unit 101 starts the decompressed data read program 401 in response to an event in which the I / F 230 receives a read request for decompressed data (S700). Note that the request is issued by, for example, the AI processing unit 102, but may also be any other hardware connected to the switch 201, virtualized hardware, or the like.
[0074] In S701, the processor 220 obtains from the storage 112 a bit string corresponding to the data to be read.
[0075] In S702, the processor 220 uses the decoder 115 to decode the bit string into compressed data.
[0076] In S703, the processor 220 uses the decompressor 113 to decompress the compressed data into data in the same format as before compression.
[0077] In S704, the processor 220 returns the decompressed data acquired in S703 to the request source via the I / F 230. Thereafter, the decompressed data reading program 401 ends (S705).
[0078] (1-7) Compressed data reading process 8 is a flow diagram of the compressed data read program 402. The processor 220 of the compression / decompression unit 101 starts the compressed data read program 402 (S800) in response to an event in which the I / F 230 receives a request to read compressed data. Note that the request is issued by, for example, the AI processing unit 102, but may also be any other hardware connected to the switch 201, virtualized hardware, or the like.
[0079] In S801, the processor 220 obtains from the storage 112 a bit string corresponding to the data to be read.
[0080] In S802, the processor 220 uses the decoder 115 to decode the bit string into compressed data.
[0081] In S803, the processor 220 returns the compressed data acquired in S802 to the request source via the I / F 230. Thereafter, the compressed data reading program 402 ends (S804).
[0082] The compressed data reading program 402 does not require step S703 of decompressing the compressed data by the decompressor 113, which was necessary in the decompressed data reading program 401, and therefore speeds up the decompression process during analysis.
[0083] (1-8) Compressor configuration information response processing 9 is a flow diagram of the compressor configuration information response program 403. The processor 220 of the compression / decompression unit 101 starts the compressor configuration information response program 403 (S900) in response to an event in which the I / F 230 receives a request to acquire the compressor configuration information 111. Note that the request is issued by, for example, the AI processing unit 102, but may also be any hardware connected to the switch 201, virtualized hardware, or the like.
[0084] In S901, the processor 220 acquires the compressor configuration information 111 from the compressor configuration information management table 410.
[0085] In S902, the processor 220 responds to the request source with the compressor configuration information 111 acquired in S901. Thereafter, the compressor configuration information response program 403 ends (S903).
[0086] (1-9) High-speed extension AI learning processing 10 is a flow diagram of the high-speed decompression AI learning program 300. The processor 280 of the AI processing unit 102 starts executing the high-speed decompression AI learning program 300, for example, when the user issues an instruction to the AI processing unit 102 using an external input device such as a keyboard, but any other event may also be used as the trigger. Note that the high-speed decompression AI learning program 300 is written by the AI designer, and the flow shown in FIG. 10 is merely an example; different processing may be written in the program as long as it uses the library 120 to learn the high-speed decompression AI 142.
[0087] In S1001, the processor 280 requests the compressor configuration information 111 from the compression / decompression unit 101 via the I / F 250. Based on this request, the compressor configuration information response program 403 is executed in the compression / decompression unit 101, and the returned compressor configuration information 111 is received by the I / F 250.
[0088] In S1002, the processor 280 sets the compressor configuration information 111 received via the I / F 250 in the compressor configuration information setting table 310. The processor 280 may write information to the compressor configuration information setting table 310 included in the library 120 in accordance with steps described in the high-speed decompression AI learning program 300, or may write information using an API (Application Programming Interface) provided by the library 120.
[0089] In S1003, the processor 280 calls the compressor model generation program 302 as a subroutine to obtain the trained compressor model 122. The compressor model generation program 302 generates the compressor model 122 based on the structure of the neural network of the compressor 110 and information on the weight parameters 526 stored in the compressor configuration information setting table 310.
[0090] In S1004, the processor 280 calls the high-speed decompression AI model generation program 303 as a subroutine to obtain an untrained high-speed decompression AI model 123. The high-speed decompression AI model generation program 303 generates the high-speed decompression AI model 123 based on the configuration information of the compressor 110 stored in the compressor configuration information setting table 310 and the input AI model provided as an argument to the high-speed decompression AI model generation program 303.
[0091] An example of the generation of high-speed decompression AI model 123 is shown in Figure 11. As the neural network of input AI model 1110, AI 1105 is assumed, which takes a 128x128 RGB image as input, identifies numbers appearing in the RGB image, and outputs it as a one-hot vector of length 10. Furthermore, as compressor 110, it is assumed that an RGB image (each element has a value range of 0 to 255) is input, and that a 64-channel tensor (each element has a value range of -3 to 3) with width and height each reduced to 1 / 16th of the original size is output.
[0092] In this case, the high-speed decompression AI model generation program 303 constructs a preprocessing unit 1100 that converts compressed data with a value range of -3 to 3 and a size of 64x8x8 into a tensor with a value range of 0 to 255 and a size of 3x128x128, based on the configuration information of the compressor 110 stored in the compressor configuration information setting table 310.
[0093] The pre-processing unit 1100 can be configured, for example, with a normalization layer 1101 that converts the value range from -3 to 3 to -1 to 1 by dividing the value of each element by 3, a convolution layer 1102 that converts a 64-channel tensor into a 3-channel tensor, an interpolation layer 1103 that expands the width and height of the tensor by 16 times using linear interpolation, and a denormalization layer 1104 that converts the range from 0 to 255 by multiplying the value of each element by 255. In this way, the high-speed decompression AI model generation program 303 can generate a high-speed decompression AI model 123 of a high-speed decompression AI 1106 that receives compressed data as input and outputs a vector of length 10 by linking the generated pre-processing unit 1100 with a given input AI model 1110.
[0094] However, the preprocessing unit 1100 may be generated by a method other than that described here. Also, like the compressor 110, if the AI 1105 is configured with a convolutional neural network or the like, the high-speed decompression AI model generation program 303 may generate the high-speed decompression AI model 123 by removing the convolutional layer preceding the input AI model 1110 so that a tensor of the size of the compressed data can be input, instead of generating the preprocessing unit 1100, or may generate the high-speed decompression AI model 123 by changing the stride of the convolutional layer preceding the input AI model 1110 to "1" or removing the pooling layer.
[0095] In S1006, the processor 280 samples and acquires the training input data 131 and the correct label data 132 from the training data .
[0096] In S1007, the processor 280 performs an augmentation process on the training input data 131 and the correct label data 132 acquired in S1006. The augmentation process includes, for example, random rotation, flipping, and resizing, and cutting out the data into patches of the same size. Note that if the augmentation process is not necessary, this step may be omitted.
[0097] In S1008, the processor 280 inputs the learning input data 131 generated in S1007 to the compressor 141 loaded in the RAM 290 so that the compressor model 122 acquired in S1003 can be executed, and acquires compressed data.
[0098] In S1009, the processor 280 updates the parameters of the high-speed decompression AI 142 loaded into RAM 290 so that the high-speed decompression AI model 123 acquired in S1004 can be executed, so that the high-speed decompression AI model 123 receives the compressed data generated in S1008 as input and outputs the correct label data 132 generated in S1007. For example, the processor 280 inputs the compressed data to the high-speed decompression AI 142 configured by a neural network, evaluates the difference between the output value and the correct label data 132 using a loss function 143, calculates the differential value of each parameter using backpropagation or the like, and updates each parameter using an optimization algorithm such as Adam. However, the learning algorithm of the high-speed decompression AI 142 is not limited to this.
[0099] S1006 to S1009 are repeatedly executed until a predetermined condition is met, such as the learning of the high-speed decompression AI 142 converging (S1005).
[0100] When the learning is completed, the processor 280 stores the learned model of the high-speed decompression AI 142 in the storage 150, and ends the high-speed decompression AI learning program 300 (S1011).
[0101] (1-10) High-speed extension AI analysis processing 12 is a flow diagram of the high-speed decompression AI analysis program 301. The processor 280 of the AI processing unit 102 starts executing the high-speed decompression AI analysis program 301, for example, when the user gives an instruction to the AI processing unit 102 using an external input device such as a keyboard, but any other event may also be used as the trigger. Note that the high-speed decompression AI analysis program 301 is written by the AI designer, and the flow shown in FIG. 12 is just one example; different processing may be written as long as it includes a step of executing the high-speed decompression AI 161.
[0102] In S1201, the processor 280 obtains the trained model of the high-speed decompression AI 142 from the storage 150.
[0103] In S1202, the processor 280 requests the compressed data to be analyzed from the compression / decompression unit 101 via the I / F 250. Based on the request, the compression / decompression unit 101 executes the compressed data reading program 402, and the I / F 250 receives the compressed data returned.
[0104] In S1203, the processor 280 inputs the compressed data received by the I / F 250 to the high-speed decompression AI 161, which has been loaded into the RAM 290 so that the model of the high-speed decompression AI 142 acquired in S1201 can be executed, and acquires the analysis result. Thereafter, the processor 280 terminates the high-speed decompression AI analysis program 301 (S1204).
[0105] The processor 280 may repeat S1202 to S1203 to perform analysis on a plurality of data using the high-speed decompression AI 161, or may perform processing of the analysis results obtained in S1203 following S1203.
[0106] An example of a system to which the present invention is applied has been described above.
[0107] (II) Supplementary Note The above-described embodiment includes, for example, the following contents.
[0108] In the above embodiment, the present invention is described as being applied to a data processing system, but the present invention is not limited to this and can be widely applied to various other systems, devices, methods, and programs.
[0109] Furthermore, in the above-described embodiments, part or all of the programs may be installed from a program source into a device such as a computer that implements the compression / decompression unit 101, the AI processing unit 102, etc. The program source may be, for example, a program distribution server connected via a network or a computer-readable recording medium (e.g., a non-transitory recording medium). Furthermore, in the above description, two or more programs may be implemented as one program, or one program may be implemented as two or more programs.
[0110] The above-described embodiment has the following characteristic configurations, for example.
[0111] (1) A data processing system (e.g., data processing system 200) having a compression / expansion unit (e.g., compression / expansion unit 101) including a compressor (e.g., compressor 110) that compresses data and a decompressor (e.g., decompressor 113) that decompresses the data compressed by the compressor, wherein the compression / expansion unit has a first interface unit (e.g., compressor configuration information response program 403, processor 220, circuit) that can output configuration information of the compressor, and a second interface unit (e.g., compressed data reading program 402, processor 220, circuit) that can output data compressed by the compressor.
[0112] The compression / decompression unit may be provided in a storage, or may be a VM, a container, an application, or the like.
[0113] According to the above configuration, since the configuration information of the compressor is output, it is possible to generate a high-speed decompression AI that can perform inference such as analysis processing using data compressed by the compressor as input, and to perform inference using the generated high-speed decompression AI. Also, according to the above configuration, since the data compressed by the compressor of the compression / decompression unit is input to the high-speed decompression AI without being decompressed, the decompression time in inference can be shortened.
[0114] (2) The data processing system includes a generation unit (e.g., library 120, compressor model generation program 302 and high-speed decompression AI model generation program 303, processor 280, circuit) that generates a model of the compressor (e.g., compressor model 122) from configuration information of the compressor (e.g., compressor configuration information 111) output by the first interface unit, and generates a model of a high-speed decompression AI (e.g., high-speed decompression AI model 123) that uses data compressed by the compressor as input from the configuration information of the compressor and a predetermined AI (Artificial Intelligence) model (e.g., input AI model 1110).
[0115] According to the above configuration, the compressor model and the high-speed decompression AI model are generated by the generation unit, so that, for example, there is no need to generate these models manually, and the high-speed decompression AI can be easily generated.
[0116] (3) The generation unit generates a preprocessing unit (e.g., preprocessing unit 1100) from the configuration information to convert the data compressed by the compressor into a data format to be input to the specified AI, and combines the generated preprocessing unit with a model of the specified AI to generate a model of the high-speed decompression AI.
[0117] According to the above configuration, a high-speed decompression AI can be generated without changing the structure of layers, etc. in a given AI model.
[0118] (4) The data processing system includes a learning unit (e.g., high-speed decompression AI learning unit 140, high-speed decompression AI learning program 300, processor 280, circuit) that uses as input data compressed from training data (e.g., training data 130) by a compressor (e.g., compressor 141) into which a model of the compressor is operably loaded, and learns a high-speed decompression AI (e.g., high-speed decompression AI 142) into which a model of the high-speed decompression AI is operably loaded.
[0119] According to the above configuration, the high-speed decompression AI is learned, so that, for example, the learned high-speed decompression AI can be easily used.
[0120] (5) The specified AI is an AI (e.g., AI 1105) that performs analytical processing of data, and the data processing system includes an analysis unit (e.g., high-speed decompression AI analysis unit 160, high-speed decompression AI analysis program 301, processor 280, circuit) that performs analytical processing of the data using the data compressed by the compressor output by the second interface unit and the high-speed decompression AI learned by the learning unit.
[0121] According to the above configuration, for example, it is possible to speed up the data analysis process.
[0122] (6) The compression / decompression unit includes an encoder (e.g., encoder 114) that encodes data compressed by the compressor, and a decoder (e.g., decoder 115) that decodes the data encoded by the encoder. The data processing system includes a third interface unit (e.g., data write program 400, processor 220, circuit) that uses the encoder to encode the data compressed by the compressor and store the encoded data in a storage (e.g., storage 112), and a fourth interface unit (e.g., decompressed data read program 401, processor 220, circuit) that reads data from the storage, decodes the read data with the decoder, decompresses the decoded data with the decompressor, and outputs the decompressed data. The second interface unit reads data from the storage, decodes the read data with the decoder, and outputs the decoded data (see, e.g., FIG. 8).
[0123] In the above configuration, compressed and encoded data is stored in the storage, so that, for example, the amount of data in the storage can be reduced and inference can be performed at a higher speed.
[0124] (7) The compressor includes a padding device (e.g., padding device 1301) that pads the input data to make it a data size that can be received by the encoder section (e.g., encoder 1303) of the compressor, and the encoder includes a padding device (e.g., padding device 1306) that pads the data compressed by the compressor to make it a data size that can be received by the hyperencoder section (e.g., hyperencoder 1308) of the encoder.
[0125] According to the above configuration, the number of elements in the data after compression by the compressor can be reduced, so that, for example, the compression rate can be improved and the amount of data in storage can be further reduced.
[0126] Furthermore, the above-described configurations may be modified, rearranged, combined, or omitted as appropriate within the scope of the present invention. [Explanation of symbols]
[0127] 101: Compression and decompression unit, 402: Compressed data reading program, 403: Compressor configuration information response program.
Claims
1. A data processing system including an AI processing unit that performs analysis using AI (Artificial Intelligence) and a storage subsystem having a compression / decompression unit, the compression / decompression unit of the storage subsystem is a computer including a compressor that compresses data and a decompressor that decompresses the data compressed by the compressor, a process of compressing data to be written sent from a data generating source using the compressor and storing the compressed data in a storage; a process of decompressing the compressed write target data using the decompressor and transmitting the decompressed data to a requesting device external to the storage subsystem; Run The compression / extension unit a first interface unit capable of outputting configuration information of the compressor; a second interface unit capable of outputting the write target data compressed by the compressor; Furthermore, The AI processing unit After obtaining the configuration information using the first interface, A process of generating a high-speed decompression AI model using the data compressed by the compressor as an input from the configuration information of the compressor and a predetermined AI model; A process of generating a model of the compressor in the AI processing unit from the configuration information; A process of compressing learning input data using the compressor model generated within the AI processing unit; A process of training the high-speed decompression AI using the compressed learning input data and correct label data corresponding to the learning input data; a generator that executes the After obtaining the compressed data to be written using the second interface, A process of inputting the compressed write target data into the high-speed decompression AI after learning; A process of obtaining analysis results from the high-speed extension AI after learning; A high-speed extension AI analysis unit that executes having Data processing system.
2. The generation unit When performing the process of generating the high-speed extension AI model, A process of generating a pre-processing unit that converts the data compressed by the compressor into a data format that can be input to the predetermined AI based on the configuration information; A process of combining the generated preprocessing unit with the predetermined AI model to generate the high-speed extension AI model. To execute 10. The data processing system of claim 1.
3. the compressor is a neural network including at least a layer other than a fully connected layer; 10. The data processing system of claim 1.
4. The neural network includes at least a convolutional layer.
4. The data processing system of claim 3.
5. A data processing method performed in a data processing system including an AI processing unit that performs analysis using AI (Artificial Intelligence) and a storage subsystem having a compression / decompression unit, the compression / decompression unit of the storage subsystem is a computer including a compressor that compresses data and a decompressor that decompresses the data compressed by the compressor, The compression / extension unit a first interface unit capable of outputting configuration information of the compressor; a second interface unit capable of outputting the write target data compressed by the compressor; Furthermore, The AI processing unit, a generation unit; High-speed extension AI analysis unit Equipped with The data processing method comprises: The compression / decompression unit of the storage subsystem Using the compressor, compress the write target data sent from the data generating source and store the compressed data in a storage; using the decompressor to decompress the compressed write target data and transmit it to a requesting device external to the storage subsystem; After the generation unit of the AI processing unit acquires the configuration information using the first interface, generating a high-speed decompression AI model using the data compressed by the compressor as an input from the configuration information of the compressor and a predetermined AI model; generating a model of the compressor in the AI processing unit from the configuration information; Compressing training input data using the compressor model generated within the AI processing unit; The high-speed decompression AI is trained using the compressed learning input data and correct label data corresponding to the learning input data; After the high-speed decompression AI analysis unit of the AI processing unit acquires the write target data compressed using the second interface, The compressed data to be written is input to the high-speed decompression AI after learning, Obtaining analysis results from the high-speed extension AI after learning; Data processing methods.
Citation Information
Patent Citations
Data compressing device and data restoring device and method therefor
JP1999215007A
Storage system and storage control apparatus
JP2007199891A
Encoding method, encoding program, and encoding device
JP2007214813A
Storage system
JP2019095913A
Auto encoder device, data processing system, data processing method and program
JP2019140680A