WO2023229483A1 - Способ и система классификации текста - Google Patents
Способ и система классификации текста Download PDFInfo
- Publication number
- WO2023229483A1 WO2023229483A1 PCT/RU2022/000179 RU2022000179W WO2023229483A1 WO 2023229483 A1 WO2023229483 A1 WO 2023229483A1 RU 2022000179 W RU2022000179 W RU 2022000179W WO 2023229483 A1 WO2023229483 A1 WO 2023229483A1
- Authority
- WO
- WIPO (PCT)
- Prior art keywords
- language model
- text
- data set
- classification
- training
- Prior art date
Links
- 238000000034 method Methods 0.000 title claims abstract description 81
- 239000013598 vector Substances 0.000 claims abstract description 70
- 238000009826 distribution Methods 0.000 claims abstract description 17
- 238000012545 processing Methods 0.000 claims abstract description 16
- 230000004044 response Effects 0.000 claims abstract description 12
- 238000012549 training Methods 0.000 claims description 121
- FGUUSXIOTUKUDN-IBGZPJMESA-N C1(=CC=CC=C1)N1C2=C(NC([C@H](C1)NC=1OC(=NN=1)C1=CC=CC=C1)=O)C=CC=C2 Chemical compound C1(=CC=CC=C1)N1C2=C(NC([C@H](C1)NC=1OC(=NN=1)C1=CC=CC=C1)=O)C=CC=C2 FGUUSXIOTUKUDN-IBGZPJMESA-N 0.000 claims 1
- 239000000243 solution Substances 0.000 description 34
- 230000008569 process Effects 0.000 description 30
- 230000006870 function Effects 0.000 description 9
- 239000011521 glass Substances 0.000 description 9
- 238000003860 storage Methods 0.000 description 9
- 230000006978 adaptation Effects 0.000 description 5
- 238000013500 data storage Methods 0.000 description 5
- 239000012634 fragment Substances 0.000 description 5
- 230000003287 optical effect Effects 0.000 description 5
- 238000013459 approach Methods 0.000 description 4
- 230000008859 change Effects 0.000 description 4
- 238000004891 communication Methods 0.000 description 4
- 238000010586 diagram Methods 0.000 description 4
- 238000005516 engineering process Methods 0.000 description 4
- 238000010801 machine learning Methods 0.000 description 4
- 238000007781 pre-processing Methods 0.000 description 4
- 241001025261 Neoraja caerulea Species 0.000 description 3
- 230000005540 biological transmission Effects 0.000 description 3
- 238000001914 filtration Methods 0.000 description 3
- 230000014509 gene expression Effects 0.000 description 3
- 238000002347 injection Methods 0.000 description 3
- 239000007924 injection Substances 0.000 description 3
- 230000009467 reduction Effects 0.000 description 3
- 238000013528 artificial neural network Methods 0.000 description 2
- 239000000463 material Substances 0.000 description 2
- 238000005457 optimization Methods 0.000 description 2
- 238000012805 post-processing Methods 0.000 description 2
- ORILYTVJVMAKLC-UHFFFAOYSA-N Adamantane Natural products C1C(C2)CC3CC1CC2C3 ORILYTVJVMAKLC-UHFFFAOYSA-N 0.000 description 1
- 101100322920 Danio rerio gpt2l gene Proteins 0.000 description 1
- 101150079757 GPT2 gene Proteins 0.000 description 1
- 238000013473 artificial intelligence Methods 0.000 description 1
- 230000003190 augmentative effect Effects 0.000 description 1
- 230000015572 biosynthetic process Effects 0.000 description 1
- 230000001364 causal effect Effects 0.000 description 1
- 238000004040 coloring Methods 0.000 description 1
- 230000007423 decrease Effects 0.000 description 1
- 230000003247 decreasing effect Effects 0.000 description 1
- 238000013461 design Methods 0.000 description 1
- 238000011161 development Methods 0.000 description 1
- 230000002996 emotional effect Effects 0.000 description 1
- 239000000284 extract Substances 0.000 description 1
- 230000003993 interaction Effects 0.000 description 1
- 230000007774 longterm Effects 0.000 description 1
- 238000003058 natural language processing Methods 0.000 description 1
- 230000008520 organization Effects 0.000 description 1
- 210000001525 retina Anatomy 0.000 description 1
- 238000010561 standard procedure Methods 0.000 description 1
- 239000013589 supplement Substances 0.000 description 1
- 238000003786 synthesis reaction Methods 0.000 description 1
- 238000013519 translation Methods 0.000 description 1
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/30—Information retrieval; Database structures therefor; File system structures therefor of unstructured textual data
- G06F16/35—Clustering; Classification
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F40/00—Handling natural language data
- G06F40/20—Natural language analysis
- G06F40/279—Recognition of textual entities
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06N—COMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
- G06N20/00—Machine learning
Definitions
- the claimed technical solution generally relates to the field of computer technology, and in particular to methods and systems for additional training of a language model and solving the problem of text classification with an additional trained language model.
- one of the ways to adapt a language model is the fine-tuning method, during which the model is completely retrained on new training data corresponding to the problem being solved.
- the disadvantages of this method are the computational resource intensity due to the training of all weights; increase in required memory due to storing a copy of the retrained model equal in size to the original model; high requirements for the size of the training dataset.
- a common shortcoming of existing solutions is the lack of an efficient and accurate way to automatically adapt a language model to solve the required text classification problems. Also, this solution should provide the ability to adapt the language model on small amounts of training data while maintaining high accuracy for the problem being solved, which, as a consequence, reduces the required volume and requirements for computing resources, as well as the amount of memory required to store the retrained language model. In addition, this kind of solution should provide the versatility of model adaptation technology, allowing the generation of arbitrary prompt formats, which ensures support for an arbitrary input data structure.
- the formatting of the training input data set is performed using a template for formatting.
- a template for formatting is selected based on the classification problem being solved.
- the classification task is at least: i. binary question-answer systems; ii. binary classification for recognizing a cause-and-effect relationship between two sentences; iii. binary classification to choose one of two alternatives; iv. machine reading task in the form of binary classification;
- V binary classification task to recognize cause-and-effect relationships between premise and hypothesis.
- the claimed technical results are achieved due to a method for classifying text with a language model, additionally trained according to the steps of a method for automatically additionally training a language model for text classification, performed by at least one computing device, and containing stages in which: a) obtaining an input set data corresponding to the required classification task, in the format on the basis of which the language model was additionally trained; b) formatting the input data set with symbols, each symbol corresponding to an abstract pseudoword; c) performing tokenization and vectorization of the input data set, with the characters corresponding to the abstract pseudo-words being replaced by trained vector representations of the characters stored in the data file; d) perform processing of the data obtained at stage c), with an additionally trained language model, during which a logit vector is obtained reflecting the probability distribution of classes corresponding to the words of the language model dictionary; e) select target logit components corresponding to the tokens of the target classes of the classification problem being solved; f) determine from the target logit components obtained at stage e), the logit component reflecting the
- FIG. 1 illustrates a general block diagram of the proposed system for automatic additional training of a language model for text classification.
- FIG. 2 illustrates a general block diagram of the proposed text classification system using a language model.
- FIG. 3 illustrates a flowchart of a method for automatically retraining a language model for text classification.
- FIG. 4 illustrates a flowchart of a method for classifying text with a language model.
- FIG. 5 illustrates an example of a general view of a computing system that provides the implementation of the claimed solution.
- a model in machine learning is a set of artificial intelligence methods, the characteristic feature of which is not the direct solution of a problem, but learning in the process of applying solutions to many similar problems.
- Word embeddings are a general name for various approaches to language modeling and representation learning in natural language processing that aim to map words (and possibly phrases) from some dictionary of vectors from an n-dimensional real space R_n.
- Tokenization is the process of breaking text into text units or tokens (most often these units are words, but they can also be letters, parts of a sentence, combinations of words, etc.).
- a language model is a probability distribution on a set of vocabulary sequences.
- language model is used to describe neural network language models that are designed to model a language by estimating the probability of a particular sequence of characters.
- Logits - in this patent the term is used to refer to the outputs from the last layer of the neural network language model, which represent the logarithm of the odds ratio.
- the concept of logits is closely related to the probability distribution and, as a consequence, the logit vector can be converted into a probability distribution.
- a hint is an arbitrary input text and/or a sequence of characters and/or a corresponding sequence of input embeddings, embedded in the text processed by the language model and providing a change in the result of text processing by the language model.
- the term hint is disclosed in more detail in the prior art, see, for example, the source found on the Internet at the link: https://arxiv.org/pdf/2005.14165.pdf
- the claimed technical solution offers a new approach that provides the ability to automatically generate hints for the language model, which allows you to effectively retrain the language model for text classification. This approach ensures a reduction in the required computing resources spent on training a language model for text classification, while maintaining high classification accuracy.
- the required amount of memory is reduced (by several orders of magnitude).
- the claimed technical solution can be implemented on a computer, in the form of an automated information system (AIS) or machine-readable media containing instructions for executing the stated preferred options for implementing the solution.
- AIS automated information system
- the technical solution may also be implemented as a distributed computer system or computing device.
- a system means a computer system, a computer (computer), CNC (computer numerical control), PLC (programmable logic controller), computerized control systems and any other devices capable of performing a given, well-defined sequence of computing operations (actions, instructions).
- a command processing device means an electronic unit or an integrated circuit (microprocessor) that executes machine instructions (programs)/
- a command processing device reads and executes machine instructions (programs) from one or more data storage devices, such as devices such as random access memory (RAM) and/or read only memory (ROM).
- ROM can be, but is not limited to, hard drives (HDD), flash memory, solid-state drives (SSD), optical storage media (CD, DVD, BD, MD, etc.), etc.
- a program is a sequence of instructions intended to be executed by a computer control device or command processing device.
- the term "instructions" as used in this application may refer generally to software instructions or software commands that are written in a given programming language to perform a specific function, such as, for example, text encoding and decoding, filtering, ranking , translation of texts into a dialogue system, etc. Instructions can be implemented in a variety of ways, including, for example, object-oriented methods. For example, instructions can be implemented using the Python programming language, C++, Java, Python, various libraries (for example, MFC; Microsoft Foundation Classes), etc. Instructions that implement the processes described in this solution can be transmitted either over the wire, and via wireless data transmission channels, such as Wi-Fi, Bluetooth, USB, WLAN, LAN, etc.
- the language model is not additionally trained for text classification, but is only capable of producing probabilities for predicting the next word for the input text, then, in order to solve classification problems, it is necessary to additionally train the language model.
- additional training of a language model is an adaptation of the language model to enable text classification.
- additional training of the language model for text classification is carried out by generating a prompt for the specified model.
- the text classification itself is carried out using the language model’s processing of input data, supplemented and presented in a certain form (combined with a hint).
- the specified hint ensures accurate processing of data by the language model, and, accordingly, an accurate and high-quality classification result, however, as indicated in the prior art, generating a hint is a complex and time-consuming task. Aspects of the present technical solution address this issue by automatically generating a hint and are described in more detail below.
- FIG. 1 shows a general view of the system 100 for automatic additional training of a language model for text classification.
- the system 100 includes basic functional elements, such as: data acquisition module 101, language model storage module 102, formatting module 103, target class verbalization module 104, preprocessing module 105, trainable embeddings parameterization module 106, module injection of trainable embeddings 107, training module 108.
- the elements of the system 100 are disclosed in more detail in FIG. 5.
- the data acquisition module 101 may be implemented on at least one computing device, such as elements of the system (500) disclosed in FIG. 5, and is configured to obtain a language model and a training input dataset containing at least a list of fields of the input dataset.
- the language model in a particular embodiment of the invention, may be an adaptable pre-trained language model, for example, BERT, GPT3, ELMo, Transformer, etc.
- the language model is chosen to be a transformer-decoder type.
- the RuGPT3 -Large language model was used, available at the link, found on the Internet: https://huggingface. Georgia/sberbank-ai/rugpt3 large based on gpt2.
- the basic principle of operation of the language model is that a text sequence is supplied to the model’s input, and the model, based on historical data, predicts the probability of the next word appearing.
- the model takes into account which combinations of words and in what order are most often found together in the language. And the larger and more diverse the set of texts on which it is trained, the better the dependencies the model can capture and reproduce them on new data.
- a training data set is a data set containing a list of fields that define the classification problem being solved.
- the classification task can be, for example, a binary answer in question-answer systems; binary classification for recognizing a cause-and-effect relationship between two sentences; binary classification to choose one of two alternatives; machine reading task in the form of binary classification; binary classification task to recognize cause-and-effect relationships between premise and hypothesis, etc.
- the result of solving this kind of problem is the response of the language model.
- the training data set contains a list of fields that determine the format of the classification problem being solved. So, for example, to solve the logical problem of determining a cause-and-effect relationship in the form of providing a binary answer, the training data set will contain the following fields, for example: “text 1”: “Vasya is fishing”, “text 2”: “Is Vasya at home? ", “Answer: no. It is worth noting that the list of fields depends on the classification task. So, for example, for a binary question-answer system, the list of fields of the input data set will contain the following fields: "text”:, “question”:, "answer”:.
- the size of the training set was 2616 examples, each of which was represented by the following list of fields: "full text”:, "output”:, "answer”.
- the specified training set is then supplied to the formatter 103.
- the language model storage module 102 may be implemented on at least one computing device and is configured to store the original language model.
- module 102 may be, for example, a read-only memory (ROM), which may be one or more permanent data storage devices, such as a hard disk drive (HDD), a solid-state drive (SSD), flash memory (EEPROM, NAND, etc.), optical storage media (CD-R/RW, DVD-R/RW, BlueRay Disc, MD), etc.
- ROM read-only memory
- HDD hard disk drive
- SSD solid-state drive
- EEPROM electrically erasable programmable read-only memory
- NAND solid-state drive
- optical storage media CD-R/RW, DVD-R/RW, BlueRay Disc, MD
- Formatter 103 may be implemented on at least one computing device equipped with appropriate software and is designed to determine a hint format, based on a list of fields in the training input data set, for a given classification task, and perform formatting of the training data set. , based on a specific hint format, during which the said data set is completed with characters, with each character corresponding to an abstract pseudo-word.
- module 103 The general principle of operation of module 103 is to convert the training data set into a string, composing it from a list of fields, which contained in the specified data set and adding characters between the fields of the training set, and the number of added characters depends on the classification problem being solved.
- the training set is first converted to a string, and then supplemented with symbols corresponding to abstract pseudo-words. So, for example, the symbol ' ⁇ P ⁇ ' is an abstract pseudo-word, and the fragment ⁇ field name ⁇ is a field of the training set, the contents of which must be included at this position when generating a hint for a specific example.
- the output of module 103 when formatting the training input data set to determine the presence of a causal relationship will be the following format: " ⁇ ⁇ ⁇ text 1 ⁇ ⁇ P ⁇ P ⁇ ⁇ P ⁇ ⁇ text 2 ⁇ ⁇ P ⁇ ⁇ P ⁇ ⁇ P ⁇ ".
- ⁇ P ⁇ corresponds to an abstract pseudo-word, i.e. There is no human-readable text equivalent for this symbol.
- the symbol ( ⁇ P ⁇ ) corresponds to an abstract symbol for which its vector representation will change (training a vector representation), which does not correspond to any real word (human-readable analogue) in the dictionary of the language model.
- the hint format may be determined based on a template for formatting, which in turn depends on the classification problem being solved.
- the seed pattern can be expressed as a function corresponding to the classification problem being solved, for example, ⁇ P> ⁇ text ⁇ P> ⁇ question ⁇ P> with the help of which the input fields of the training input data set are formatted.
- the determination of the formatting pattern to be selected can be derived from the type of field list from the input training dataset, for example by parsing the names of the fields in the specified set, such as using regular expressions.
- the target class verbalization module 104 may be implemented on at least one computing device equipped with appropriate software.
- the specified module is optional and is designed to process the target classes of the training data set if their format does not match the required one. Thus, if there are target classes in the training input data set (the “answer” field) that are not presented in text form, the specified module 104 is configured to compare the target classes possible in a given classification task, contained in the training input data set, with their text counterparts. Thus, said module 104 converts a plurality of target classes into text form.
- This module assigns three entities to each target class: a word corresponding to the concept of the class in natural speech (for example, “yes” for a positive class and “no” for a negative one), an index of this word in the dictionary of input embeddings (vector representations), an ordinal index class. It is worth noting that the target classes in the problem being solved are the “answer” field.
- the preprocessing module 105 may be implemented on at least one computing device equipped with appropriate software and include a set of models for text tokenization and vectorization of tokenized text, for example, one or more machine learning models for converting text information into vector form , for example, BERT, ELMo, ULMFit, XLNet, RoBerta, RuGPT3 and others.
- module 105 may be implemented based on elements of the system (500), which is described in more detail in FIG. 5. It is worth noting that the specific method of tokenization and vectorization depends on the language model used in the claimed solution and stored in module 102.
- tokenization is carried out using the BPE (Byte Pair Encoding) method, and subsequent vectorization is carried out by replacing each token by its index in the language model dictionary compiled at the stage of initial model training.
- word tokenization may be used as the tokenization method.
- each token obtained in the tokenization process can be vectorized, for example, using one hot encoding.
- each token obtained during the specified tokenization process is represented in the dictionary by its index, reflecting the position in the specified dictionary.
- each token represents a binary vector (values 0 or 1), and one is assigned to the element that corresponds to the token number in the dictionary, which allows each token to be represented as a vector of a fixed length corresponding to the dimension of the dictionary (for example, the dimension is 3000 by 1) .
- vectorization algorithms can be used to vectorize tokens, such as, but not limited to, Word2vec algorithms, etc.
- a corresponding token can be added to the tokenizer with which the specified characters will be replaced. This is necessary due to the fact that the source tokenizer may not contain a word such as an added character, which will lead to incorrect tokenization of the text. Additionally, in yet another particular embodiment, the assigned token may be received along with the training input data set.
- the trainable embedding parameterization module 106 can be implemented on the basis of at least one computing device equipped with appropriate software, and include a set of models for vectorization of tokenized text, for example, described in module 105.
- the specified module 106 is configured to initialize trainable vector embeddings representations for tokenized characters corresponding to abstract pseudo-words, and replacing said tokenized characters with initialized trainable character vector representations.
- a trainable vector representation (learnable embedding) is understood as a vector representation made with the possibility of dynamic (iterative) updating to bring closer to the reference results of the classification problem being solved, produced by the language model (trainable vector representations - iteratively updated during the training process, in order to improve quality of the problem being solved, vector).
- module 106 is similar to the principle of operation of module 105 and consists in vectorization of tokenized text (characters), however, it contains an additional step of initializing the embedding value for the specified characters due to the lack of vector representation in standard vectorization tools for pseudo-words.
- the learnable embedding injection module 107 is used to combine the sequence of embeddings generated by module 106 with the token embeddings obtained after tokenization of the training set by module 105. In this case, the two sets of embeddings are combined taking into account the order in which they are located after formatting by module 103. Thus , as a result of the operation of module 107, all tokens other than tokens corresponding to pseudo-words are replaced with embeddings obtained as a result of vectorization of the training data set, and tokens corresponding to pseudo-words are sequentially replaced with trained embeddings generated by module 106. [0060 ] Learning module 108.
- Said module 108 may be a computing device that performs a gradient descent algorithm using an arbitrary optimization algorithm (eg, stochastic gradient descent, Adam, AdamW), where gradients are computed using a backpropagation algorithm to update the trained vector representations.
- the specified module 108 is configured to select optimal values for trained embeddings, for example, using stochastic gradient descent.
- the gradients for the trained embeddings are calculated and updated.
- the trained embeddings will change in such a way that the mathematical expectation of the value of the loss function on any object from the distribution corresponding to the distribution of objects in the training dataset decreases.
- FIG. 2 shows a general view of the text classification system 200 using a language model.
- the system 200 includes basic functional elements such as: data acquisition module 201, language model storage module 202, preprocessing module 203, processing module 204, postprocessing module 205.
- the elements of the system 200 are disclosed in more detail in FIG. 5
- the data acquisition module 201 is configured to receive an input data set corresponding to the required classification task, in the format on the basis of which the language model was additionally trained, and the additionally trained language model.
- the input data set corresponding to the required classification task in the format on the basis of which the language model was additionally trained, is a data set that structurally coincides with the training data set (contains similar fields), but it does not contain the result of the classification task being solved.
- the specified input data set can be obtained, for example, from a dialogue system via a communication channel, for example, the Internet, and can contain, for example, for the task of text classification to answer a binary question, a set consisting of two fields: “text "question”: That is, the input set is direct text that has not previously been fed into the language model, in a format similar in structure to the training input data set.
- the pre-trained language model may be obtained from module 202.
- the pre-trained language model is the language model resulting from the operation of the system 100.
- the pre-trained language model may represent the language model and the hint with vector representations trained to solve the classification problem ( with the values of the trained character vector representations).
- the pre-trained language module may be obtained directly from module 102.
- the language model storage module 202 may be, for example, a read-only memory (ROM), which may be one or more permanent data storage media, such as a hard disk drive (HDD), a solid-state drive (SSD), a flash drive memory (EEPROM, NAND, etc.), optical storage media (CD-R/RW, DVD-R/RW, BlueRay Disc, MD), etc.
- ROM read-only memory
- HDD hard disk drive
- SSD solid-state drive
- EEPROM electrically erasable programmable read-only memory
- NAND solid-state drive
- optical storage media CD-R/RW, DVD-R/RW, BlueRay Disc, MD
- the specified module is designed to store a language model, additionally trained in accordance with the operation of the system 100.
- the preprocessing module 203 may be implemented on at least one computing device equipped with appropriate software and is designed to format the input data set, adding characters to it and tokenizing and vectorizing the formatted input data set.
- the specified module 203 in one particular embodiment may contain modules 103-105.
- module 203 includes features disclosed in more detail in FIG. 5, ensuring the performance of the prescribed functions.
- the input data set is received at the input of module 203.
- module 203 is configured to format the input data set in accordance with the type of classification problem being solved. As stated earlier, for different classification problems, different hints may be generated for the corresponding type of problem being solved.
- the input data set is formatted based on a formatting template. It is worth noting that the type of problem being solved, and therefore the type of formatting template, can be supplied, for example, together with the input data set.
- template formats for various tasks may be stored in memory system 200, for example, in the form of a file, and can be selected according to the type of input fields, determined, for example, using regular expressions.
- the general principle of formatting is to convert the input data set into a string, composing it from the list of fields that is contained in the specified data set and adding characters between the fields of the input set, and the number and arrangement of characters in the formatting process corresponds to the prompt format.
- the input set is first converted to a string, and then supplemented with characters, the number and position of said characters corresponding to the number and positions of characters added during the process of formatting the training set by module 103 for a particular classification task.
- the result of formatting the input set will be the following format: " ⁇ P ⁇ P ⁇ ⁇ P ⁇ ⁇ text 1 ⁇ P ⁇ ⁇ P ⁇ P ⁇ ⁇ text 2 ⁇ ⁇ P ⁇ ⁇ P ⁇ ⁇ R ⁇ ".
- the specified format corresponds to the format selected during the operation of the system 100 for the classification task.
- module 203 After formatting the specified set in accordance with the format of the problem being solved, module 203 performs tokenization and vectorization of the input data set.
- Tokenization and vectorization can be performed using a set of models for tokenizing text and vectorizing tokenized text, for example, one or more machine learning models for converting text information into vector form, for example, BERT, ELMo, ULMFit, XLNet, RoBerta, RuGPT3 and other.
- each token obtained during the tokenization process may be vectorized, for example, using one hot encoding. So, for example, with tokenization based on the BPE algorithm, each token obtained during the specified tokenization process is represented in the dictionary by its index, reflecting the position in the specified dictionary.
- each token represents a binary vector (values 0 or 1), and one is assigned to the element that corresponds to the token number in the dictionary, which allows each token to be represented as a vector of a fixed length corresponding to the dimension of the dictionary (for example, the dimension is 3000 by 1) .
- vectorization algorithms can be used to vectorize tokens, such as, but not limited to, Word2vec algorithms, etc. It is worth noting that The vectorization algorithm will depend on the specific language model used to implement this technical solution.
- the values for tokenization and subsequent character vectorization are obtained from the data file storing the trained embeddings.
- a file with different types of generated hints may be stored and/or supplied to the system 200.
- token values may also be retrieved from said file generated by the operation of the system 100 for the characters and values of the trained vector representations, which, during the process of vectorization and tokenization, are substituted in place of the characters added as a result of formatting.
- module 203 in yet another particular embodiment, can also determine possible target classes and match text counterparts to them.
- the target classes (the “response” field) cannot always be expressed in text form.
- This stage of operation of module 203 can be implemented, for example, by enumerating the language model dictionary and/or searching a table containing index values and a textual interpretation of the specified values stored in the language model dictionary file. It is worth noting that similar facilities are used in module 104.
- text analogues of the target classes may also be contained in a data file containing the language model and the generated hint.
- the general principle of operation is that each target class (if the target classes in the data file are not contained in text form) is assigned three entities: a word corresponding to the concept of the class in natural speech (for example, “yes” for a positive class and “no” for negative), the index of a given word in the dictionary of input embeddings (vector representations), the ordinal index of the class.
- module 203 preprocesses the input data set.
- Processing module 204 is implemented based on the language model obtained from module 202 and is configured to process the formatted input data set.
- the general principle of operation of the specified module 204 is to process by feeding a formatted and vectorized data set as input to the language model.
- the result of processing the specified set (the output of the language model) will be a vector with a probability distribution of tokens, the so-called logit vector.
- the general operating principle of the language model is disclosed in more detail in the prior art (see, for example, Internet link: https://arxiv.org/pdf72005.14165.pdf).
- Post-processing module 205 may be implemented on at least one computing device equipped with appropriate software and is designed to select target classes obtained by processing a formatted input data set with a pre-trained language model. So, as mentioned above, the output of the language model contains a vector with the probability distribution of the next token, which is a set of logits for each token in the input sequence. From this vector, the target component selection module selects only those classes that correspond to the verbalization tokens of the target class (i.e., tokens from the “answer” field of the training data set). More formally, this module 205 extracts the logits used to (a) calculate class probabilities and (b) calculate the loss function.
- FIG. 3 shows a block diagram of a method 300 for automatically retraining a language model for text classification, which is described step by step in more detail below.
- Said method 300 consists of performing steps to process various digital data. Processing is usually performed by a system, such as system 100, which may also represent, for example, a server, a computer, a mobile device, a computing device, etc.
- a system receives as input a language model, for example, from module 102, and a training input dataset containing at least a list of fields of the input dataset. Said step 301, in one particular embodiment, may be performed by module 101.
- the input training data set contains a list of fields defining the required classification task.
- the language model may be an adaptable pre-trained language model, such as BERT, GPT3, ELMo, Transformer, etc.
- the RuGPT3 -Large language model was used.
- the input training data set can be generated based on the classification problem being solved, for example, for profanity filtering systems, dialogue assistants, etc.
- the language model Since initially the language model is not capable of classifying text, but is only capable of producing probabilities for predicting the next word for the input text, then, in order to solve classification problems, it is necessary to additionally train the language model.
- the specified additional training ensures an increase in the accuracy of generating the model's response due to the correct adaptation of the weights of the generated hint (the values of the trained vector representations of symbols) for the specific type of classification problem being solved.
- training sets are supplied to the input of the language model, which are presented in such a way that the output of the language model is a response to the input text, i.e. form a hint and supplement the training sets with the specified hint, by continuing which the language model outputs the answer.
- the input training set contains the correct answer, which ensures adaptation of the hint for language model in accordance with the training data and the classification problem being solved.
- the list of fields of the training data set contains at least one input text in a certain form and a response. So, for example, when solving the logical problem of answering to find a cause-and-effect relationship between texts, the training data set will contain the following fields: “text 1 “Vasya is fishing”, “text 2”: “Is Vasya at home?”, “answer” : No,
- one of the features of this method 300 is the ability to automatically generate such a hint for any classification task.
- step 302 select a hint format based on the list of fields of the training input data set for a given classification task, and format the training input data set based on the selected hint format, which completes the data set with characters when In this case, each symbol corresponds to an abstract pseudo-word.
- Said step 302 may be performed, for example, by module 103.
- the training input data set is converted into a string, which consists of a list of fields of the specified set, and is supplemented with characters corresponding to pseudo-words.
- the position and number of characters specified is determined based on the number of input fields in the dataset.
- the hint format may be stored in advance in the memory of a system, such as system 100, as a template.
- the training set is first converted to a string, and then supplemented with symbols corresponding to abstract pseudo-words.
- the symbol ' ⁇ P ⁇ ' is an abstract pseudo-word
- the fragment ⁇ field name ⁇ is a field of the training set, the contents of which must be included at this position when generating a hint for a specific example.
- the format when formatting a training set for solving a text classification problem in a binary question-answer system, the format will be: " ⁇ P ⁇ ⁇ P ⁇ P ⁇ ⁇ text 1 ⁇ ⁇ P ⁇ P ⁇ ⁇ P ⁇ ⁇ text 2 ⁇ ⁇ P ⁇ ⁇ P ⁇ ⁇ P ⁇ ".
- ⁇ P ⁇ corresponds to an abstract pseudo-word, i.e. there is no human-readable text equivalent for this symbol.
- step 302 may be followed by an optional step 303.
- This step 303 is necessary in the case where the tokenizer is not optimized to tokenize characters corresponding to abstract pseudo-words. It is worth noting that optimization of the tokenizer can be carried out, for example, before the start of method 300.
- an optional step 303 is required, at the specified step 303, at least one token corresponding to the symbol added in step 302 is added to the tokenizer and its index is stored in the dictionary .
- the specified step 303 is only necessary if the source tokenizer is missing a word such as the added character, which will result in incorrect tokenization of the text.
- step 304 may be performed by module 104.
- this step 304 is necessary if the format of the target classes in the training input set (response field) does not match.
- the target classes possible in a given classification task contained in the training input data set obtained at step 301, are compared with their text counterparts.
- each of the words (“yes” and “no”) is then sequentially tokenized. These indices are then stored in the system 100 and used in the training process, which is described in more detail below.
- the training input data set formatted at step 302 is tokenized and vectorized, and vectorization is performed only on tokens that are not symbols.
- the input text may be divided into tokens.
- a token should be understood as a sequence of characters in the text that is important for analysis. It is worth noting that the specific method of tokenization and vectorization depends on the language model used in the claimed solution and stored in module 102. For example, when using the RuGPT3 model, tokenization is carried out using the BPE (Byte Pair Encoding) method, and subsequent vectorization is carried out by replacing each token with its index in the language model dictionary compiled at the stage of initial model training. In another private In an embodiment, tokenization may involve breaking text into words based on the space between words.
- each token obtained during the tokenization process may be vectorized, for example, using one hot encoding. So, for example, with tokenization based on the BPE algorithm, each token obtained during the specified tokenization process is represented in the dictionary by its index, reflecting the position in the specified dictionary. Thus, each token represents a binary vector (values 0 or 1), and one is assigned to the element that corresponds to the token number in the dictionary, which allows each token to be represented as a vector of a fixed length corresponding to the dimension of the dictionary (for example, the dimension is 3000 by 1) . It will be obvious to one skilled in the art that other vectorization algorithms can be used to vectorize tokens, such as, but not limited to, Word2vec algorithms, etc.
- step 306 trainable vector representations for tokenized symbols corresponding to abstract pseudo-words are initialized, and the tokenized symbols are replaced with the initialized trained symbol vector representations.
- the tokenized characters are given their initial vector representation in the dictionary.
- the specified vector representation (learnable embeddings) can be specified by a random number from the dictionary.
- the specified specified values are substituted in place of the tokenized characters, i.e. vectorization occurs.
- the embeddings will be changed so that the model is most likely to produce the correct answer in a given task.
- step 307 formatted training input data in the form of embeddings is supplied to the input of the language model, and the probabilities of text analogues of the target classes are obtained.
- the vector representations of the formatted training data set obtained at step 305 are combined with the initialized trainable character vector representations obtained at step 306.
- This merging can be performed, for example, by injection module 107.
- the merging can be done by inserting (injecting) learnable embeddings into the positions corresponding to the symbol (symbol ⁇ P ⁇ ).
- the resulting combined embedding tensor is then used as an input layer for the pre-trained language model (for example, for RuGPT3-Large).
- the weights of the language model are fixed in an unchanged state.
- the input vector representations, including the trainable ones are passed through the model and used in calculating the loss function, the weights of the model itself are not updated during the gradient descent step.
- a feature of the specified method 300 is the possibility of additional training of the language model (automatic selection of hints) without changing its weights, which significantly reduces the computing resources required for training and, as a consequence, reduces the amount of memory required to store the model adapted to solve the classification problem.
- the trained vector representations are updated based on the ground truth values of the target classes for each training object, iterating steps 307-308 until the stopping criterion is satisfied.
- module 108 can be used. As a result of training, the values of the trained embeddings that are optimal for a given classification task will be obtained, which can later be used to solve the classification problem.
- optimal values for the trained embeddings are selected, for example, using stochastic gradient descent. So, for example, the list of input embeddings obtained at step 307 enters the layers of the additional training (adaptable) model, the output of which contains a data tensor with the probability distribution of the next token. From the specified tensor, only the probabilities corresponding to the target classes are selected and the loss function between the selected probabilities and the index of the target class is calculated. Then, using the backpropagation procedure, the gradients for the trained embeddings are calculated and updated. During training, the embeddings will change in such a way that the mathematical expectation of the value of the loss function on any object from the distribution, corresponding to the distribution of objects in the training data set decreased.
- training dataset [ ⁇ did mom wash the frame?, yes ⁇ , ⁇ is there life on Mars?, no ⁇ ]
- embedding training is stopped due to the fulfillment of the stopping criterion.
- the specified stopping criterion may represent, for example, a fixed number of iterations, reaching a given probability value for the target class, etc.
- step 309 a data file is generated and the trained character vector representations corresponding to the abstract pseudo-words are stored.
- the trained embeddings obtained in step 309 are stored in a data file. These embeddings are optimal for a given classification task and are intended to increase the accuracy of the language model when solving subsequent classification problems of a similar type.
- the trained embeddings (vector representation values) are stored along with the hint format for the specified classification task. It will be obvious to one skilled in the art that for different Classification tasks can store several files with trained embeddings.
- FIG. 4 is a block diagram of a method 400 for classifying text with a language model, which is described step by step in more detail below.
- Said method 400 consists of performing steps to process various digital data. Processing is typically performed by a system, such as system 200, which may also represent, for example, a server, computer, mobile device, computing device, etc.
- step 401 an input data set corresponding to the required classification task is obtained, in the format on the basis of which the language model was additionally trained, and the additionally trained language model.
- the input data set corresponding to the required classification task in the format on the basis of which the language model was additionally trained, is a data set that structurally coincides with the training data set (contains similar fields), but it does not contain the result of the classification task being solved.
- the specified input data set can be obtained, for example, from a dialogue system via a communication channel, for example, the Internet, and can contain, for example, for the task of text classification to answer a binary question, a set consisting of two fields: “text "question”: That is, the input set is direct text that has not previously been fed into the language model, in a format similar in structure to the training input data set.
- a pre-trained language model may be obtained from module 202.
- the pre-trained language model is a language model resulting from the operation of system 100.
- the pre-trained language model is a language model with a generated hint.
- a pre-trained language model with generated hint format may be received from system 100 after method 300 is executed.
- the input data set is formatted with symbols, each symbol corresponding to an abstract pseudoword.
- the specified step 402 may be performed, for example, by module 203.
- the input data set is converted into a string, composing it from the list of fields that is contained in the specified data set and adding characters between the fields of the input set, and the number and arrangement of characters in the formatting process corresponds to the prompt format, As indicated.
- the input data set is formatted based on a formatting template. It is worth noting that the type of problem being solved, and therefore the type of formatting template, can be supplied, for example, together with the input data set.
- template formats for various tasks may be stored in memory of the system 200, for example, as a file, and may be selected according to the type of input fields determined, for example, using regular expressions.
- the general principle of formatting is to convert the input data set into a string, composing it from the list of fields that is contained in the specified data set and adding characters between the fields of the input set, and the number and arrangement of characters in the formatting process corresponds to the prompt format.
- the input set is first converted to a string, and then supplemented with characters, the number and position of said characters corresponding to the number and positions of characters added during the process of formatting the training set by module 103 for a particular classification task.
- the result of formatting the input set will be the following format: " ⁇ P ⁇ ⁇ P ⁇ P ⁇ ⁇ text 1 ⁇ ⁇ P ⁇ P ⁇ ⁇ P ⁇ ⁇ text 2 ⁇ ⁇ P ⁇ ⁇ P ⁇ ⁇ R ⁇ ".
- the specified format corresponds to the format selected during the operation of the system 100 for the classification task.
- the input data set is tokenized and vectorized, with the characters corresponding to the abstract pseudo-words being replaced with trained vector representations of the characters stored in the data file.
- tokenization and vectorization of the input data set is carried out, for example, through module 203.
- the specified tokenization and vectorization is performed for the entire input data set, where the symbols corresponding to abstract pseudo-words are replaced with trained vector representations of characters obtained from the system 100, and vectorization of tokenized characters is carried out based on the values of the trained embeddings.
- the trained embedding values obtained from method 100 may be sent to system 200 via a data link.
- a file can be sent from which the token values for the characters and the values of the trained vector representations are extracted, which, during the process of vectorization and tokenization, are substituted in place of the characters added as a result of formatting.
- the data obtained at step 403 is processed by the additionally trained language model, during which a logit vector is obtained reflecting the probability distribution of classes corresponding to the words of the language model dictionary.
- the formatted set of input data is supplied to the input of the pre-trained language model, where the specified data is processed.
- the output of the language model contains a tensor with the probability distribution of the next token, which is a set of logits for each token in the input sequence.
- a logit vector representing the probability distribution of classes corresponding to the words of the language model vocabulary is obtained.
- Target classes I - the word fly occurs more often, II - the word glass occurs more often.
- Text analogues I - fly, II - glass.
- target logit components corresponding to the target class tokens of the classification problem being solved are selected.
- the logit component reflecting the largest probability value of belonging to the target class is determined from the target logit components obtained in step e).
- the component with the highest probability is selected from the selected target components.
- step 407 a response in text form corresponding to the component selected at step 406 is generated.
- a text analogue of the selected target class that has the highest probability can be sent to the system for which the classification task was solved.
- these systems can be dialogue assistants, profanity filtering systems, question-answer systems, etc.
- the generated response may be transmitted over a communication channel such as the Internet. Additionally, in one particular embodiment, the generated response may be stored in the memory of a system, such as system (500).
- the claimed group of inventions is designed to solve applied classification problems. Adaptation of the invention to a specific classification task is carried out by changing the format of the hint, and, accordingly, changing the process of formatting the source text, and the target classes representing the answer to the problem being solved. Let's consider various options for implementing the stated solution using a set of tasks from RussianSuperGLUE (available at the link, found on the Internet: https://russiansuperglue.com/tasks/).
- the language model was additionally trained on a training dataset containing 2016 examples.
- RuGPT3 XI model available at the link: https://huggingface.co/sberbank-ai/rugpt31arge_based_on_gpt2. It was possible to achieve a significant reduction in the resources spent on training since only 3.2 million parameters were trained (selection of trained embeddings) instead of 760 million parameters (selection of language model weights to solve the specified problem).
- the quality (accuracy) of the language model exceeded the quality of the language model trained using standard methods (76.1 accuracy instead of 65.4 accuracy).
- FIG. 5 shows an example of a general view of a computing system (500) that implements the claimed methods 300 and 400 or is part of a computer system, for example, system 100 or system 200, and/or implements modules of these systems 100 and 200.
- the specified system ( 500) can be a server, a personal computer, or part of a computing cluster that processes the necessary data to implement the stated technical solution.
- the system (500) includes components such as: one or more processors (501), at least one memory (502), data storage means (503), input/output interfaces (504), means B /B (505), network communication means (506), which are combined via a universal bus.
- the processor (501) performs the basic computational operations necessary to process data when executing method 300 and method 400.
- the processor (501) executes the necessary computer-readable instructions contained in the main memory (302).
- the memory (502) is typically in the form of RAM and contains the necessary software logic to provide the required functionality.
- the data storage medium (503) can be in the form of HDD, SSD drives, raid array, flash memory, optical storage devices (CD, DVD, MD, Blue-Ray disks), etc.
- the means (503) allow Perform long-term storage of various types of information, for example, language models, trained embeddings, etc.
- I/O interfaces To organize the operation of system components (500) and organize the operation of external connected devices, various types of I/O interfaces (504) are used. The choice of appropriate interfaces depends on the specific design of the computing device, which can be, but is not limited to: PCI, AGP, PS/2, IrDa, FireWire, LPT, COM, SATA, IDE, Lightning, USB (2.0, 3.0, 3.1, micro, mini, type C), TRS/Audio jack (2.5, 3.5, 6.35), HDMI, DVI, VGA, Display Port, RJ45, RS232, etc.
- interfaces (504) depends on the specific implementation of the system (500), which can be implemented on the basis of a wide class of devices, for example, a personal computer, mainframe, laptop, server cluster, thin client, smartphone, server, etc.
- I/O data media 505
- keyboard joystick, display (touch display), monitor, touch display, touchpad, mouse, light pen, stylus, touchpad, trackball, speakers, microphone, augmented reality tools, optical sensors, tablet, light indicators, projector, camera, biometric identification tools (retina scanner, fingerprint scanner, voice recognition module), etc.
- Network interaction tools 506 are selected from devices that provide network reception and transmission of data, for example, an Ethernet card, WLAN/Wi-Fi module, Bluetooth module, BLE module, NFC module, IrDa, RFID module, GSM modem, etc. etc.
- the organization of data exchange is ensured between, for example, the system (500), presented in the form of a server, and the user’s computing device, on which the received data (the answer in the question-answer system) can be displayed via a wired or wireless channel data transmission, for example WAN, PAN, LAN, Intranet, Internet, WLAN, WMAN or GSM.
- a wired or wireless channel data transmission for example WAN, PAN, LAN, Intranet, Internet, WLAN, WMAN or GSM.
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- Artificial Intelligence (AREA)
- Data Mining & Analysis (AREA)
- Software Systems (AREA)
- Audiology, Speech & Language Pathology (AREA)
- Databases & Information Systems (AREA)
- Computational Linguistics (AREA)
- General Health & Medical Sciences (AREA)
- Computer Vision & Pattern Recognition (AREA)
- Evolutionary Computation (AREA)
- Medical Informatics (AREA)
- Health & Medical Sciences (AREA)
- Computing Systems (AREA)
- Mathematical Physics (AREA)
- Machine Translation (AREA)
Abstract
Группа изобретений относится к области вычислительной техники, может быть использована для дообучения языковой модели и решения задачи классификации текста этой моделью. Способ классификации текста языковой моделью содержит этапы, на которых: получают входной набор данных, соответствующий требуемой задаче классификации; выполняют его форматирование, дополняя символами, каждый из которых соответствует абстрактному псевдо-слову; выполняют токенизацию и векторизацию входного набора данных, заменяя символы на обученные векторные представления символов; выполняют обработку данных и получают вектор логитов, отражающий вероятностное распределение классов, соответствующих словам словаря языковой модели; выбирают целевые компоненты логитов, соответствующие токенам целевых классов решаемой задачи классификации; определяют из них компоненту логита, отражающую наибольшее значение вероятности принадлежности к целевому классу; генерируют ответ в текстовой форме, соответствующий выбранной компоненте. Техническим результатом является автоматическая генерация подсказки для дообучения языковой модели.
Description
СПОСОБ И СИСТЕМА КЛАССИФИКАЦИИ ТЕКСТА
ОБЛАСТЬ ТЕХНИКИ
[0001] Заявленное техническое решение в общем относится к области вычислительной техники, а в частности к способам и системам дообучения языковой модели и решения задачи классификации текста дообученной языковой моделью.
УРОВЕНЬ ТЕХНИКИ
[0002] С развитием информационных технологий, неотъемлемой частью множества различных цифровых сервисов являются языковые модели. Так, с помощью языковых моделей решаются задачи поддержания диалога голосовыми помощниками, генерация ответов на вопросы пользователя цифровыми ассистентами, определение эмоциональной окраски текста, формирование аннотаций к статьям и т.д., т.е. прикладные задачи классификации текста. Современные языковые модели содержат в себе достаточное количество знаний (миллиарды просмотренных текстов) о мире, что позволяет решать такими моделями различные задачи путем продолжения входного текста. Основной принцип работы таких моделей заключается в определении (предсказании) вероятности появления следующего слова на основе текстов, на которых указанная модель обучалась (знания модели).
[0003] Для решения конкретных задач классификации текста с высокой точностью, в настоящий момент, требуется адаптировать (дообучить) модель в соответствии с решаемой задачей, что является вычислительно сложной и нетривиальной задачей.
[0004] Так, одним из способов адаптации языковой модели является метод файн- тюнинг (fine-tuning), в ходе которого выполняют полное дообучение модели на новых обучающих данных, соответствующих решаемой задаче. Недостатками указанного способа является вычислительная ресурсоёмкость из-за обучения всех весов; увеличение требуемой памяти, ввиду хранения копии дообученной модели по размеру равной исходной модели; высокие требования к размеру обучающего датасета.
[0005] Также, из уровня техники известны способы дообучения языковой модели, для решения требуемой задачи классификации, few-shot и zero-shot. Указанные способы основаны на подборе входного текста (подсказки), который модель будет продолжать для получения ответа на решаемую задачу классификации. Однако,
подбор правильной подсказки осуществляется вручную и является сложной и нетривиальной задачей.
[0006] Из уровня техники также известно решение, раскрытое в заявке на патент США № 2021/0280167 Al (SMITH MARIA Е [US] et all), опубл. 09.09.2021. Указанное решение, в частности, раскрывает возможность генерирования подсказки с помощью аудио ввода для корректного синтезирования речи с приданием указанной речи требуемых лингвистических характеристик.
[0007] Недостатками данного решения являются невозможность решения задач классификации текста ввиду особенности решения, невозможность автоматического подбора подсказки для решения задач классификации. Кроме того, указанное решение не обладает универсальностью.
[0008] Общими недостатками существующих решений является отсутствие эффективного и точного способа автоматической адаптации языковой модели для решения требуемых задач классификации текста. Также, указанное решение должно обеспечивать возможность адаптации языковой модели на малых объемах обучающих данных с сохранением высокой точности для решаемой задачи, что, как следствие, снижает необходимый объем и требования к вычислительным ресурсам, а также объем памяти, требуемый для хранения дообученной языковой модели. Кроме того, такого рода решение должно обеспечивать универсальность технологии адаптации модели, позволяющей генерировать произвольные форматы подсказок, что обеспечивает поддержку произвольной структуры входных данных.
РАСКРЫТИЕ ИЗОБРЕТЕНИЯ
[0009] Данное техническое решение направлено на устранение недостатков, присущих существующим решениям, известным из уровня техники. В заявленном техническом решении предлагается новый подход к дообучению языковой модели для классификации текста.
[0010] Т аким образом, решается техническая проблема обеспечения возможности автоматической генерации подсказки для адаптации языковой модели для классификации текста.
[ООП] Техническим результатом, проявляющимся при решении вышеуказанной проблемы, является обеспечение возможности автоматической генерации подсказки для дообучения языковой модели на решение задачи классификации.
[0012] Дополнительным техническим результатом, достигающимся при решении данной проблемы, является снижение вычислительной мощности на обучение языковой модели и объема памяти для хранения языковой модели для классификации текста.
[0013] Указанные технические результаты достигаются благодаря осуществлению способа автоматического дообучения языковой модели для классификации текста, выполняющийся по меньшей мере одним вычислительным устройством, и содержащим этапы, на которых: a) принимают языковую модель и обучающий входной набор данных, содержащий по меньшей мере список полей входного набора данных; b) выбирают формат подсказки, на основе списка полей обучающего входного набора данных, для заданной задачи классификации, и выполняют форматирование обучающего входного набора данных, на основе выбранного формата подсказки, в ходе которого выполняют дополнение упомянутого набора данных символами, при этом каждый символ соответствует абстрактному псевдо-слову; c) выполняют токенизацию и векторизацию отформатированного на этапе Ь) обучающего входного набора данных, причем векторизация выполняется только для токенов, которые не относятся к символам; d) инициализируют обучаемые векторные представления для токенизированных символов, соответствующих абстрактным псевдословам, и заменяют упомянутые токенизированные символы на инициализированные обучаемые векторные представления символов; e) подают на вход языковой модели отформатированные обучающий входной набор данных в виде векторных представлений, и получают вероятности аналогов целевых классов; f) обновляют обучаемые векторные представления, на основе истинных значений целевых классов для каждого обучающего объекта, итеративно повторяя этапы e)-f) до выполнения критерия останова; g) формируют файл данных и сохраняют обученные векторные представления символов, соответствующие абстрактным псевдо-словам.
[0014] В одном из частных вариантов реализации способа форматирование обучающего входного набора данных выполняется с использованием шаблона для форматирования.
[0015] В другом частном варианте реализации способа шаблон для форматирования выбирается на основе решаемой задачи классификации.
[0016] В другом частном варианте реализации способа задача классификации представляет собой по меньшей мере: i. бинарные вопросно-ответные системы; ii. бинарная классификация на распознавание причинно-следсвенной связи между двумя предложениями; iii. бинарная классификация на выбор одной из двух альтернатив; iv. задача на машинное чтение в форме бинарной классификации;
V. задача бинарной классификации на распознавание причинно- следственных связей между посылкой и гипотезой.
[0017] Кроме того, заявленные технические результаты достигаются за счет способа классификации текста языковой моделью, дообученной согласно этапам способа автоматического дообучения языковой модели для классификации текста, выполняющегося по меньшей мере одним вычислительным устройством, и содержащего этапы, на которых: a) получают входной набор данных, соответствующий требуемой задаче классификации, в формате, на основе которого дообучалась языковая модель; b) выполняют форматирование входного набора данных, дополняя его символами, причем каждый символ соответствует абстрактному псевдослову; c) выполняют токенизацию и векторизацию входного набора данных, причем символы, соответствующие абстрактным псевдо-словам, заменяются на обученные векторные представления символов, сохраненные в файле данных; d) выполняют обработку данных, полученных на этапе с), дообученной языковой моделью, в ходе которой получают вектор логитов, отражающий вероятностное распределение классов, соответствующих словам словаря языковой модели; e) выбирают целевые компоненты логитов, соответствующие токенам целевых классов решаемой задачи классификации;
f) определяют из целевых компонентов логитов, полученных на этапе е), компоненту логита, отражающую наибольшее значение вероятности принадлежности к целевому классу; g) генерируют ответ в текстовой форме, соответствующий выбранной на этапе 1) компоненте.
[0018] Кроме того, заявленные технические результаты достигаются за счет системы автоматического дообучения языковой модели для классификации текста, содержащей:
• по меньшей мере один процессор;
• по меньшей мере одну память, соединенную с процессором, которая содержит машиночитаемые инструкции, которые при их выполнении по меньшей мере одним процессором обеспечивают выполнение способа автоматического дообучения языковой модели для классификации текста.
[0019] Кроме того, заявленные технические результаты достигаются за счет системы классификации текста дообученной языковой моделью, содержащей:
• по меньшей мере один процессор;
• по меньшей мере одну память, соединенную с процессором, которая содержит машиночитаемые инструкции, которые при их выполнении по меньшей мере одним процессором обеспечивают выполнение способа классификации текста языковой моделью.
КРАТКОЕ ОПИСАНИЕ ЧЕРТЕЖЕЙ
[0020] Признаки и преимущества настоящего изобретения станут очевидными из приводимого ниже подробного описания изобретения и прилагаемых чертежей.
[0021] Фиг. 1 иллюстрирует блок-схему общего вида заявленной системы автоматического дообучения языковой модели для классификации текста.
[0022] Фиг. 2 иллюстрирует блок-схему общего вида заявленной системы классификации текста языковой моделью.
[0023] Фиг. 3 иллюстрирует блок-схему выполнения способа автоматического дообучения языковой модели для классификации текста.
[0024] Фиг. 4 иллюстрирует блок-схему выполнения способа классификации текста языковой моделью.
[0025] Фиг. 5 иллюстрирует пример общего вида вычислительной системы, которое обеспечивает реализацию заявленного решения.
ОСУЩЕСТВЛЕНИЕ ИЗОБРЕТЕНИЯ
[0026] Ниже будут описаны понятия и термины, необходимые для понимания данного технического решения.
[0027] Модель в машинном обучении (МО) — совокупность методов искусственного интеллекта, характерной чертой которых является не прямое решение задачи, а обучение в процессе применения решений множества сходных задач.
[0028] Векторное представление слов (word embeddings, эмбеддинги) — общее название для различных подходов к моделированию языка и обучению представлений в обработке естественного языка, направленных на сопоставление словам (и, возможно, фразам) из некоторого словаря векторов из n-мерного вещественного пространства R_n.
[0029] Токенизация — это процесс разбиения текста на текстовые единицы или токены (чаще всего в качестве таких единиц выступают слова, но это могут быть также буквы, части предложения, сочетания слов и т д).
[0030] Языковая модель - это вероятностное распределение на множестве словарных последовательностей. В данном патенте термин “языковая модель” употребляется для описания нейросетевых языковых моделей, которые выполнены с возможностью моделирования языка посредством оценки вероятности той или иной последовательности символов.
[0031 ] Логиты - в данном патенте термин употребляется для обозначения выходов с последнего слоя нейросетевой языковой модели, которые представляют собой логарифм отношения шансов. Понятие логитов тесно связано с вероятностным распределением и, как следствие, вектор логитов можно преобразовать в вероятностное распределение.
[0032] Подсказка (prompt) - это произвольный входной текст и/или последовательность символов и/или соответствующая им последовательность входных эмбеддингов, встраиваемая в обрабатываемый языковой моделью текст и обеспечивающая изменение результата обработки текста языковой моделью. Более подробно термин подсказка раскрыт в уровне техники, см., например, источник, найдено в Интернет по ссылке: https://arxiv.org/pdf/2005.14165.pdf
[0033] Заявленное техническое решение предлагает новый подход, обеспечивающий возможность автоматической генерации подсказки для языковой модели, что позволяет эффективно дообучить языковую модель на классификацию текста. Такой подход обеспечивае снижение, затрачиваемых на обучение языковой модели классификации текста, требуемых вычислительных ресурсов, сохраняя при этом высокую точность классификации.. Кроме того, за счет исключения необходимости хранения полностью дообученной, в соответствии с известным уровнем техники, языковой модели, сокращается требуемый объем памяти (на несколько порядков)..
[0034] Заявленное техническое решение может быть реализовано на компьютере, в виде автоматизированной информационной системы (АИС) или машиночитаемого носителя, содержащего инструкции для выполнения заявленных предпочтительных вариантов реализации решения.
[0035] Техническое решение также может быть реализовано в виде распределенной компьютерной системы или вычислительного устройства.
[0036] В данном решении под системой подразумевается компьютерная система, ЭВМ (электронно-вычислительная машина), ЧПУ (числовое программное управление), ПЛК (программируемый логический контроллер), компьютеризированные системы управления и любые другие устройства, способные выполнять заданную, чётко определённую последовательность вычислительных операций (действий, инструкций).
[0037] Под устройством обработки команд подразумевается электронный блок либо интегральная схема (микропроцессор), исполняющая машинные инструкции (программы)/
[0038] Устройство обработки команд считывает и выполняет машинные инструкции (программы) с одного или более устройства хранения данных, например, таких устройств, как оперативно запоминающие устройства (ОЗУ) и/или постоянные запоминающие устройства (ПЗУ). В качестве ПЗУ могут выступать, но, не ограничиваясь, жесткие диски (HDD), флэш-память, твердотельные накопители (SSD), оптические носители данных (CD, DVD, BD, MD и т.п.) и др.
[0039] Программа — последовательность инструкций, предназначенных для исполнения устройством управления вычислительной машины или устройством обработки команд.
[0040] Термин «инструкции», используемый в этой заявке, может относиться, в общем, к программным инструкциям или программным командам, которые написаны на заданном языке программирования для осуществления конкретной функции, такой как, например, кодирование и декодирование текстов, фильтрация, ранжирование, трансляция текстов в диалоговую систему и т. п. Инструкции могут быть осуществлены множеством способов, включающих в себя, например, объектно- ориентированные методы. Например, инструкции могут быть реализованы, посредством языка программирования Python, C++, Java, Python, различных библиотек (например, MFC; Microsoft Foundation Classes) и т. д. Инструкции, осуществляющие процессы, описанные в этом решении, могут передаваться как по проводным, так и по беспроводным каналам передачи данных, например Wi-Fi, Bluetooth, USB, WLAN, LAN и т. п.
[0041] Поскольку, изначально языковая модель не дообучена на классификацию текста, а способна только выдавать вероятности предсказания следующего слова для входного текста, то, для решения задач классификации, необходимо выполнить дообучение языковой модели. Как понимается в данном техническом решении, дообучение языковой модели представляет собой адаптацию языковой модели к обеспечению возможности классификации текста. Так, в настоящем варианте реализации заявленного решения, дообучение языковой модели на классификацию текста осуществляется с помощью генерации подсказки (prompt) для указанной модели. Сама же классификация текста осуществляется с помощью обработки языковой моделью входных данных, дополненных и поданных в определенном виде (объединенных с подсказкой). Указанная подсказка обеспечивает точную обработку данных языковой моделью, и, соответственно точный и качественный результат классификации, однако, как указывалось в уровне техники, генерация подсказки является сложной и трудоемкой задачей. Аспекты настоящего технического решения направлены на решение указанной проблемы с помощью автоматической генерации подсказки и более подробно описано ниже.
[0042] На фиг. 1 приведен общий вид системы 100 автоматического дообучения языковой модели для классификации текста. В первом предпочтительном варианте осуществления система 100 включает в себя основные функциональные элементы, такие как: модуль получения данных 101, модуль хранения языковой модели 102, модуль форматирования 103, модуль вербализации целевых классов 104, модуль предобработки 105, модуль параметризации обучаемых эмбеддингов 106, модуль
инъекции обучаемых эмбеддингов 107, модуль обучения 108. Более подробно элементы системы 100 раскрыты на фиг. 5.
[0043] Модуль получения данных 101 может быть реализован на базе по меньшей мере одного вычислительного устройства, например, на базе элементов системы (500), раскрытой на фиг. 5, и выполнен с возможностью получения языковой модели и обучающего входного набора данных, содержащего по меньшей мере список полей входного набора данных.
[0044] Так, языковой моделью, в частном варианте осуществления изобретения, может являться адаптируемая предобученная языковая модель, например, BERT, GPT3, ELMo, Transformer и т.д. В одном частном варианте осуществления, языковая модель выбирается типа трансформер-декодер. В предпочтительном варианте реализации была использована языковая модель RuGPT3 -Large, доступная по ссылке, найдено в Интернет: https ://huggingface. со/ sberbank-ai/rugpt3 large based on gpt2. Основной принцип работы языковой модели заключается в том, что на вход модели подается текстовая последовательность, а модель, на основе исторических данных, предсказывает вероятность появления следующего слова. Кроме того, в модели учитывается какие комбинации слов и в каком порядке чаще всего встречаются в языке вместе. И чем больше и разнообразнее набор текстов, на которых она обучается, тем более качественные зависимости возможно улавливать моделью и воспроизводить их на новых данных.
[0045] Обучающим набором данных является набор данных, содержащий в себе список полей, определяющих решаемую задачу классификации. В качестве задачи классификации может выступать, например, бинарный ответ в вопросно-ответных системах; бинарная классификация на распознавание причинно-следственной связи между двумя предложениями; бинарная классификация на выбор одной из двух альтернатив; задача на машинное чтение в форме бинарной классификации; задача бинарной классификации на распознавание причинно-следственных связей между посылкой и гипотезой и т.д. Результатом решения такого рода задач является ответ языковой модели.
[0046] Таким образом, обучающий набор данных содержит в себе список полей, которые определяют формат решаемой задачи классификации. Так, например, для решения логической задачи определения причинно-следственной связи в виде предоставления бинарного ответа, обучающий набор данных будет содержать следующие поля, например: "текст 1": "Вася ловит рыбу"», "текст 2": "Вася дома?",
«"ответ": нет. Стоит отметить, что список полей зависит от задачи классификации. Так, например, для бинарной вопросно-ответной системы, список полей входного набора данных будет содержать следующие поля: "текст ":, "вопрос”:, "ответ": . Соответственно для каждого типа решаемой задачи подбирается свой обучающий входной набор данных на основе которого генерируется подсказка. Так, в качестве примера, приведем размеры и структуру (формат) обучающих наборов для нескольких задач классификации текста. Для задачи бинарного ответа на вопрос по тексту (бинарная вопросно-ответная система) был использован размер обучающего набора данных в размере 1749 примеров, каждый из которых был представлен в формате "текст ":, "вопрос":, "ответ":. Для задачи бинарной классификации на распознавание причинно-следственной связи между двумя предложениями (задача определения, учитывая два текстовых фрагмента, выводится ли (может быть выведено) значение одного текста из другого текста) размер обучающего набора составлял 2616 пример, каждый из которых был представлен следующим списком полей: "полный текст ":, "вывод":, "ответ".
[0047] Указанный обучающий набор далее подается в модуль форматирования 103.
[0048] Модуль хранения языковой модели 102 может быть реализован на базе по меньшей мере одного вычислительного устройства и предназначен для хранения исходной языковой модели. Так, модуль 102 может представлять собой, например, постоянное запоминающее устройства (ПЗУ), которое может являться одним или более средств для постоянного хранения данных, например, жесткий диск (HDD), твердотельный накопитель данных (SSD), флэш-память (EEPROM, NAND и т.п.), оптические носители информации (CD-R/RW, DVD-R/RW, BlueRay Disc, MD) и др.
[0049] Модуль форматирования 103 может быть реализован на базе по меньшей мере одного вычислительного устройства, оснащенного соответствующим программным обеспечением, и предназначен для определения формата подсказки, на основе списка полей обучающего входного набора данных, для заданной задачи классификации, и выполнения форматирования обучающего набора данных, на основе определенного формата подсказки, в ходе которого выполняют дополнение упомянутого набора данных символами, при этом каждый символ соответствует абстрактному псевдо-слову.
[0050] Общий принцип работы модуля 103 заключается в преобразовании обучающего набора данных в строку, составляя её из списка полей, который
содержится в указанном наборе данных и добавления символов между полями обучающего набора, причем количество добавляемых символов зависит от решаемой задачи классификации. Таким образом, при форматировании обучающего набора, сначала обучающий набор преобразовывается в строку, и далее дополняется символами, соответствующими абстрактным псевдо-словам. Так, например, символ ' {Р}' является абстрактными псевдо-словами, а фрагмент {имя поля} является полем обучающего набора, содержимое которого необходимо включить на данную позицию при формировании подсказки к конкретному примеру.
[0051] Так, например, в одном частном варианте осуществления, результатом работы модуля 103 при форматировании обучающего входного набора данных для определения наличия причинно-следственной связи будет следующий формат: "{₽}{₽} {₽} {текст 1} {Р}{Р} {Р} {текст 2} {Р} {Р} {Р}". Где символ {Р} соответствует абстрактному псевдо-слову, т.е. для данного символа не существует человекочитаемого текстового аналога. Так, символ ({Р}), соответствует абстрактному символу, для которого будет меняться его векторное представление (обучение векторного представления), не соответствующее никакому реальному слову (человеку-читаемому аналогу) в словаре языковой модели. Стоит отметить, что указанный частный вариант приведен для решаемой задачи наличия причинно- следственной связи между двумя фрагментами текста. Так, в еще одном частном варианте осуществления формат подсказки может определяться на основе шаблона для форматирования, который, в свою очередь, зависит от решаемой задачи классификации .
[0052] Так, в еще одном частном варианте осуществления, в качестве формата подсказки на основе которого форматируется обучающий входной набор данных, шаблон затравки может быть выражен в виде функции, соответствующей решаемой задачи классификации, например, <Р>{текст}<Р>{вопрос}<Р> с помощью которой происходит форматирование входных полей обучающего входного набора данных. Кроме того, определение выбираемого шаблона для форматирования может быть получено на основе типа списка полей из входного обучающего набора данных, например, посредством анализа названия полей в указанном наборе, например, с помощью регулярных выражений. Возвращаясь к указанному примеру, при определении названия входных полей как {текст}, {вопрос}, будет применен шаблон для бинарной вопросно-ответной системы и т.д.
[0053] Модуль вербализации целевых классов 104 может быть реализован на базе по меньшей мере одного вычислительного устройства, оснащенного соответствующим программным обеспечением. Указанный модуль является опциональным и предназначен для обработки целевых классов обучающего набора данных в случае несоответствия их формата требуемому. Так, при наличии в обучающем входном наборе данных целевых классов (поле «ответ»), изложенных не в текстовом виде, указанный модуль 104 выполнен с возможностью сопоставления возможным в заданной задаче классификации целевым классам, содержащимся в обучающем входном наборе данных, их текстовые аналоги. Так, указанный модуль 104 преобразовывает множество целевых классов в текстовую форму. Данный модуль ставит в соответствие каждому целевому классу три сущности: слово, соответствующее понятию класса в естественной речи (например, "да" для положительного класса и "нет" для отрицательного), индекс данного слова в словаре входных эмбеддингов (векторных представлений), порядковый индекс класса. Стоит отметить, что целевыми классами в решаемой задачи является поле «ответ».
[0054] Например, продолжая описанный пример, целевыми классами которого являются true/false (поле «ответ» в обучающем наборе данных), будет присвоено следующее: true/false => "да"/"нет" => 349/1386, где последние цифры соответствуют индексам слов да и нет в словаре языковой модели.
[0055] Модуль предобработки 105 может быть реализован на базе по меньшей мере одного вычислительного устройства, оснащенного соответствующим программным обеспечением, и включать набор моделей для токенизации текста и векторизации токенизированного текста, например, одну или несколько моделей машинного обучения для преобразования текстовой информации в векторную форму, например, BERT, ELMo, ULMFit, XLNet, RoBerta, RuGPT3 и другие. В одном частном варианте осуществления модуль 105 может быть реализован на базе элементов системы (500), которая более подробно раскрыта на фиг. 5. Стоит отметить, что определенный метод токенизации и векторизации зависит от языковой модели, используемой в заявленном решении и хранящейся в модуле 102. Например, при использовании модели RuGPT3, токенизация осуществляется методом ВРЕ (Byte Pair Encoding), а последующая векторизация - путем замены каждого токена на его индекс в словаре языковой модели, составленном на этапе изначального обучения модели. Кроме того, в еще одном частном варианте осуществления, в качестве метода токенизации может использоваться токенизация по словам.
Пример токенизации по словам и векторизации слов индексами в словаре:
[0056] Кроме того, в еще одном частном варианте осуществления может выполняться векторизация каждого токена, полученного в процессе токенизации, например, с помощью прямого кодирования (one hot encoding). Так, например, при токенизации на основе алгоритма ВРЕ, каждый токен, полученный в ходе указанного процесса токенизации, представлен в словаре своим индексом, отображающий позицию в указанном словаре. Таким образом, каждый токен представляет бинарный вектор (значения 0 или 1), а единица ставится тому элементу, который соответствует номеру токена в словаре, что позволяет представить каждый токен в виде вектора фиксированной длины, соответствующей размерности словаря (например, размерности 3000 на 1). Для специалиста в данной области техники будет очевидно, что для векторизации токенов могут применять и другие алгоритмы векторизации, например, алгоритмы Word2vec и т. д., не ограничиваясь.
[0057] Стоит отметить, что для токенизации символов, добавленных модулем 103, в одном частном варианте осуществления, в токенизатор может добавляться соответствующий токен, на который указанные символы будут заменяться. Это необходимо ввиду того, что в исходном токенизаторе может отсутствовать такое слово, как добавленный символ, что приведет к некорректной токенизации текста. Кроме того, в еще одном частном варианте осуществления, присваиваемый токен может быть получен вместе с обучающим входным набором данных.
[0058] Модуль параметризации обучаемых эмбеддингов 106 может быть реализован на базе по меньшей мере одного вычислительного устройства, оснащенного соответствующим программным обеспечением, и включать набор моделей для векторизации токенизированного текста, например, описанных в модуле 105. Указанный модуль 106 выполнен с возможностью инициализации обучаемых векторных представлений для токенизированных символов, соответствующих абстрактным псевдо-словам, и замены упомянутых токенизированных символов на инициализированные обучаемые векторные представления символов. Под обучаемым векторным представлением (обучаемый эмбеддинг) понимается векторное представление, выполненное с возможностью динамического (итеративного) обновления для приближения к эталонным результатам решаемой задачи классификации, выдаваемых языковой моделью (обучаемые векторные представления — итеративно обновляемые в процессе обучения, с целью повышения
качества решаемой задачи, вектора). Т.е. значения обучаемых векторных представлений не зафиксированы и могут обновляться в соответствии с выходным слоем языковой модели. Более подробно указанный термин раскрыт по ссылке, найдено в Интернет: htp://www.generalized.ru/Atention_Is All You Need . Принцип работы модуля 106 схож с принципом работы модуля 105 и заключается в векторизации токенизированного текста (символов), однако содержит дополнительный этап инициализации значения эмбеддингов для указанных символов ввиду отсутствия векторного представления в стандартных средствах векторизации для псевдо-слов.
[0059] Модуль инъекции обучаемых эмбеддингов 107 используется для объединения последовательности эмбеддингов, порожденных модулем 106, с эмбеддингами токенов полученных после токенизации обучающего набора модулем 105. При этом два множества эмбеддиногов объединяются с учетом порядка, в котором они расположены после форматирования модулем 103. Таким образом, в результате работы модуля 107 все токены, отличные от токенов, соответствующий псевдо-словам, заменяются на эмбеддинги, полученные в результате векторизации обучающего набора данных, а токены, соответствующие псевдо-словам, последовательно заменяются на обучаемые эмбеддинги, порожденные модулем 106. [0060] Модуль обучения 108. Указанный модуль 108 может представлять собой вычислительное устройство, выполняющее алгоритм градиентного спуска с помощью произвольного алгоритма оптимизации (например, стохастического градиентного спуска, Adam, AdamW), где градиенты вычисляются по алгоритму обратного распространения ошибки с целью обновления обучаемых векторных представлений. Указанный модуль 108 выполнен с возможностью осуществлять подбор оптимальных значений для обучаемых эмбеддингов, например, с помощью стохастического градиентного спуска. Более подробно указанные алгоритмы раскрыты в уровне техники, например, по ссылке: htps://ru.wiki edia.org/wiki/%D0%93 %D 1 %80%D0%B0%D0%B4%D0%B8%D0%B5%
DO%BD%D1%82%DO%BD%D1%8B%DQ%B9_%D1%81%DO%BF%D1%83%D1%81
%:
%D0%B5%D0%BD%D 1 %82%D0%BD%D 1 %8B%D0%B9 _%D 1 %81 %D0%BF%D 1 %8 3%Dl%81%D0%BA , https://habr.eom/ru/post/318970/ . Кратко опишем этот процесс. [0061] Список входных эмбеддингов с модуля 107 подается в слои языковой модели, которая на выходе выдает распределение вероятностей следующего токена.
На основе целевых классов, определенных модулем 104, выбираются только вероятности, соответствующие целевым классам, и вычисляется функция потерь между выбранными вероятностями и индексом целевого класса. После чего с помощью процедуры обратного распространения ошибки вычисляются градиенты для обучаемых эмбеддингов, и выполняется их обновление. В ходе обучения обучаемые эмбеддинги будут меняться таким образом, чтобы математическое ожидание значения функции потерь на любом объекте из распределения, соответствующего распределению объектов обучающего датасета, уменьшалось.
[0062] Для специалиста в данной области техники очевидно, что, хотя и описанные выше модули представлены как отдельные устройства, указанные модули также могут быть объединены в составе одной системы, например, системы (500).
[0063] Далее рассмотрим общий вид системы классификации текста дообученной языковой моделью.
[0064] На фиг. 2 приведен общий вид системы 200 классификации текста языковой моделью. В предпочтительном варианте осуществления система 200 включает в себя основные функциональные элементы, такие как: модуль получения данных 201, модуль хранения языковой модели 202, модуль предобработки 203, модуль обработки 204, модуль постобработки 205. Более подробно элементы системы 200 раскрыты на фиг. 5
[0065] Модуль получения данных 201 выполнен с возможностью получения входного набора данных, соответствующего требуемой задаче классификации, в формате, на основе которого дообучалась языковая модель, и дообученную языковую модель.
[0066] Входной набор данных, соответствующий требуемой задаче классификации, в формате, на основе которого дообучалась языковая модель, представляет собой набор данных, который структурно совпадает с обучающим набором данных (содержит аналогичные поля), однако в нем отсутствует результат решаемой задачи классификации. Так, указанный входной набор данных может быть получен, например, от диалоговой системы посредством канала связи, например, сети Интернет, и может содержать, например, для решаемой задачи классификации текста для ответа на бинарный вопрос, набор, состоящий из двух полей: "текст "вопрос":. Т.е. входной набор представляет собой непосредственный текст, который до этого не был подан в языковую модель, в формате, схожим по структуре с обучающим входным набором данных.
[0067] Дообученная языковая модель может быть получена из модуля 202. Указанная дообученная языковая модель является языковой моделью, полученной в результате работы системы 100. Так, дообученная языковая модель может представлять языковую модель и подсказку с обученными, для решения задачи классификации, векторными представлениями (с значениями обученных векторных представлений символов). В одном частном варианте осуществления, дообученная языковая модуль может быть получена непосредственно от модуля 102.
[0068] Модуль хранения языковой модели 202 может представлять собой, например, постоянное запоминающее устройства (ПЗУ), которое может являться одним или более средств для постоянного хранения данных, например, жесткий диск (HDD), твердотельный накопитель данных (SSD), флэш-память (EEPROM, NAND и т.п.), оптические носители информации (CD-R/RW, DVD-R/RW, BlueRay Disc, MD) и др. Указанный модуль предназначен для хранения языковой модели, дообученной в соответствии с работой системы 100.
[0069] Модуль предобработки 203 может быть реализован на базе по меньшей мере одного вычислительного устройства, оснащенного соответствующим программным обеспечением, и предназначен для форматирования входного набора данных, дополняя его символами и токенизации и векторизации отформатированного входного набора данных.
[0070] Так, указанный модуль 203 в одном частном варианте осуществления может содержать в себе модули 103-105. В еще одном частном варианте осуществления модуль 203 содержит в себе средства, более подробно раскрытые на фиг. 5, обеспечивающие выполнение предписанных функций. Так, на вход модуля 203 поступает входной набор данных. На первом этапе работы, модуль 203 выполнен с возможностью форматирования входного набора данных в соответствии с типом решаемой задачи классификации. Как было указано ранее, для разных задач классификации может быть сгенерированные разные подсказки под соответствующий тип решаемой задачи. Так, в одном частном варианте осуществления, форматирование входного набора данных осуществляется на основе шаблона для форматирования. Стоит отметить, что тип решаемой задачи, а следовательно, и тип шаблона форматирования может поступать, например, совместно с входным набором данных. Кроме того, в еще одном частном варианте осуществления форматы шаблонов для различных задач могут храниться в памяти
системы 200, например, в виде файла, и могут выбираться в соответствии с типом входных полей, определяемого, например, с помощью регулярных выражений.
[0071] Общий принцип форматирования заключается в преобразовании входного набора данных в строку, составляя её из списка полей, который содержится в указанном наборе данных и добавления символов между полями входного набора, причем, количество и расположение символов в процессе форматирования соответствует формату подсказки. Таким образом, при форматировании входного набора, сначала входной набор преобразовывается в строку, и далее дополняется символами, причем количество и позиция указанных символов соответствует количеству и позициям символов, добавленных в процессе форматирования обучающего набора модулем 103 для конкретной задачи классификации. Так, например, в одном частном варианте осуществления, результатом форматирования входного набора будет следующий формат: "{Р}{Р} {Р} {текст 1}{Р} {Р}{Р} {текст 2} {Р} {Р} {Р}". Причем, указанный формат соответствует формату, выбранному в процессе работы системы 100 для задачи классификации.
[0072] После форматирования указанного набора в соответствии с форматом решаемой задачи модуль 203 выполняет токенизацию и векторизацию входного набора данных.
[0073] Токенизация и векторизация может выполняться с помощью набора моделей для токенизации текста и векторизации токенизированного текста, например, одну или несколько моделей машинного обучения для преобразования текстовой информации в векторную форму, например, BERT, ELMo, ULMFit, XLNet, RoBerta, RuGPT3 и другие. Кроме того, в еще одном частном варианте осуществления может выполняться векторизация каждого токена, полученного в процессе токенизации, например, с помощью прямого кодирования (one hot encoding). Так, например, при токенизации на основе алгоритма ВРЕ, каждый токен, полученный в ходе указанного процесса токенизации, представлен в словаре своим индексом, отображающий позицию в указанном словаре. Таким образом, каждый токен представляет бинарный вектор (значения 0 или 1), а единица ставится тому элементу, который соответствует номеру токена в словаре, что позволяет представить каждый токен в виде вектора фиксированной длины, соответствующей размерности словаря (например, размерности 3000 на 1). Для специалиста в данной области техники будет очевидно, что для векторизации токенов могут применять и другие алгоритмы векторизации, например, алгоритмы Word2vec и т. д., не ограничиваясь. Стоит отметить, что
алгоритм векторизации будет зависеть от конкретной языковой модели, применяемой для реализации данного технического решения.
[0074] Стоит отметить, что значения для токенизации и последующей векторизации символов получают из файла данных, хранящего обученные эмбеддинги. Так, в одном частном варианте осуществления, как упоминалось выше, файл с разными типами сгенерированных подсказок могут храниться и/или поступать в систему 200. Так, вместе с типом подсказки, из указанного файла, созданного посредством работы системы 100, могут также извлекаться значения токенов для символов и значения обученных векторных представлений, которые, в процессе векторизации и токенизации, подставляются на место символов, добавленных в результате форматирования.
[0075] Кроме того, модуль 203, в еще одном частном варианте осуществления, также может определять возможные целевые классы и сопоставлять им текстовые аналоги. Как указывалось выше, целевые классы (поле «ответ») не всегда могут быть изложены в текстовом виде. С учетом того, что указанный модуль 203 использует целевые классы, определенные при дообучении языковой модели на обучающем наборе данных, то могут возникнуть ситуации, когда целевыми классами обучения будут являться классы, изложенные не в текстовом виде. Указанный этап работы модуля 203 может быть реализован, например, посредством перебора словаря языковой модели и/или поиском по таблице, содержащей индексные значения и текстовую интерпретацию указанных значений, хранящихся в файле словаря языковой модели. Стоит отметить, что аналогичные средства применяются в модуле 104. Так, в одном частном варианте осуществления, текстовые аналоги целевых классов могут также содержаться в файле данных, содержащим языковую модель и сгенерированную подсказку. Общий принцип работы заключается в том, что каждому целевому классу (в случае, если целевые классы в файле данных содержаться не в текстовом виде) ставится в соответствии три сущности: слово, соответствующее понятию класса в естественной речи (например, "да" для положительного класса и "нет" для отрицательного), индекс данного слова в словаре входных эмбеддингов (векторных представлений), порядковый индекс класса.
[0076] Таким образом, модуль 203 осуществляет предобработку входного набора данных.
[0077] Модуль обработки 204 реализован на базе языковой модели, полученной от модуля 202 и выполнен с возможностью осуществления обработки отформатированного входного набора данных.
[0078] Общий принцип работы указанного модуля 204 заключается в обработке, путем подачи на вход языковой модели отформатированного и векторизованного набора данных. Результатом обработки указанного набора (выход языковой модели) будет вектор с распределением вероятностей токенов, так называемый вектор логитов. Более подробно общий принцип работы языковой модели раскрыт в уровне технике (см., например, ссылка в Интернет: https://arxiv.org/pdf72005.14165.pdf ).
[0079] Модуль постобработки 205 может быть реализован на базе по меньшей мере одного вычислительного устройства, оснащенного соответствующим программным обеспечением, и предназначен для выбора целевых классов, полученных в результате обработки отформатированного входного набора данных дообученной языковой моделью. Так, как упоминалось выше, на выходе языковой модели содержится вектор с распределением вероятностей следующего токена, который представляет собой набор логитов для каждого токена входной последовательности. Из данного вектора модуль выбора целевых компонент отбирает только те классы, которые соответствуют токенам вербализации целевого класса (т.е. токенам, из поля «ответ» обучающего набора данных). Более формально, в данном модуле 205 происходит выделение логитов, используемых для (а) вычисления вероятностей классов и (б) вычисления функции потерь. Принимает на вход вектор выходных логитов дообученной языковой модели для нескольких последовательностей, где для каждой последовательности вектор выходных логитов соответствует последнему токену. В каждом векторе логитов, поскольку его длина равна размеру словаря, выбираются компоненты, соответствующие токенам текстовых аналогов классов. Таким образом, для каждой входной последовательности выходом является единственный вектор, длина которого равна количеству классов.
[0080] Для специалиста в данной области техники очевидно, что, хотя и описанные выше модули представлены как отдельные устройства, указанные модули также могут быть объединены в составе одной системы, например, системы (500).
[0081] На фиг. 3 представлена блок схема способа 300 автоматического дообучения языковой модели для классификации текста, который раскрыт поэтапно более подробно ниже. Указанный способ 300 заключается в выполнении этапов, направленных на обработку различных цифровых данных. Обработка, как правило,
выполняется с помощью системы, например, системы 100, которая также может представлять, например, сервер, компьютер, мобильное устройство, вычислительное устройство и т. д.
[0082] Как упоминалось выше, для дообучения языковой модели классификации текста обучающий набор необходимо представить в определенном виде (дополнить подсказкой), чтобы обеспечить возможность точно решать языковой моделью указанную задачу. В настоящий момент, в известном уровне техники, такие подсказки генерируются вручную, что является трудоемким процессом и не обеспечивает высокую точность результата решаемой задачи ввиду человеческого фактора. Способ 300, в частности, направлен на решение указанной проблемы.
[0083] На этапе 301 система, такая как система 100, принимает на вход языковую модель, например, от модуля 102, и обучающий входной набор данных, содержащий по меньшей мере список полей входного набора данных. Указанный этап 301, в одном частном варианте осуществления может быть выполнен модулем 101.
[0084] Как упоминалось выше, входной обучающий набор данных содержит список полей, определяющий требуемую задачу классификации. Языковая модель может представлять собой адаптируемую предобученную языковую модель, например, BERT, GPT3, ELMo, Transformer и т.д. В предпочтительном варианте реализации была использована языковая модель RuGPT3 -Large. Входной обучающий набор данных может быть сформирован на основе решаемой задачи классификации, например, для систем фильтрации ненормативной лексики, диалоговых ассистентов и т.д.
Поскольку изначально языковая модель не способна на классификацию текста, а способна только выдавать вероятности предсказания следующего слова для входного текста, то, для решения задач классификации, необходимо выполнить дообучение языковой модели. Указанное дообучение обеспечивает повышение точности генерации ответа модели за счет правильной адаптации весов генерируемой подсказки (значений обучаемых векторных представлений символов) для конкретного типа решаемой задачи классификации. Для этого, на вход языковой модели подают обучающие наборы, которые представлены таким образом, чтобы выход языковой модели являлся ответом на входной текст, т.е. формируют подсказку и дополняют обучающие наборы указанной подсказкой, путем продолжения которой языковая модель на выходе представляет ответ. Кроме того, во входном обучающем наборе содержится правильный ответ, что обеспечивает адаптацию подсказки для
языковой модели в соответствии с обучающими данными и решаемой задачи классификации. Соответственно список полей обучающего набора данных содержит по меньшей мере один входной текст в определенной форме и ответ. Так, например, при решении логической задачи ответа на поиск причинно-следственной связи между текстами, обучающий набор данных будет содержать следующие поля: "текст 1 "Вася ловит рыбу", "текст 2": "Вася дома?", «"ответ": нет,
[0085] Соответственно, одной из особенностей указанного способа 300 является возможность автоматической генерации такой подсказки для любой задачи классификации .
[0086] Для этого способ 300 переходит к этапу 302.
[0087] На этапе 302 выполняют выбор формата подсказки, на основе списка полей обучающего входного набора данных, для заданной задачи классификации, и выполняют форматирование обучающего входного набора данных, на основе выбранного формата подсказки, в ходе которого выполняют дополнение упомянутого набора данных символами, при этом каждый символ соответствует абстрактному псевдо-слову. Указанный этап 302 может выполняться, например, модулем 103.
[0088] На этапе 302 обучающий входной набор данных преобразовывается в строку, которая состоит из списка полей указанного набора, и дополняется символами, соответствующие псевдо-словам. Позиция и количество указанных символов определяется на основе количества входных полей набора данных. Кроме того, в одном частном варианте осуществления для типовых задач классификации формат подсказки может быть заранее сохранен в памяти системы, например, системы 100, в виде шаблона. Таким образом, при форматировании обучающего набора, сначала обучающий набор преобразовывается в строку, и далее дополняется символами, соответствующими абстрактным псевдо-словам. Так, символ ' {Р}' является абстрактными псевдо-словами, а фрагмент {имя поля} является полем обучающего набора, содержимое которого необходимо включить на данную позицию при формировании подсказки к конкретному примеру.
[0089] Так, например, в одном частном варианте осуществления, при форматировании обучающего набора для решения задачи классификации текста в бинарной вопросно-ответной системе будет следующий формат: "{Р} {Р}{Р} {текст 1} {Р}{Р} {Р} {текст 2} {Р} {Р} {Р}". Где символ {Р} соответствует абстрактному псевдо-слову, т.е. для данного символа не существует человеко-читаемого текстового аналога.
[0090] Таким образом, на указанном этапе 302 формируется формат подсказки.
[0091] В одном частном варианте осуществления, после этапа 302 может следовать опциональный этап 303. Указанный этап 303 необходим в случае, когда токенизатор не оптимизирован для токенизации символов, соответствующих абстрактным псевдо-словам. Стоит отметить, что оптимизация токенизатора может быть осуществлена, например, до начала способа 300. При необходимости опционального этапа 303, на указанном этапе 303 добавляют в токенизатор по меньшей мере один токен, соответствующий символу, добавленному на этапе 302, и сохраняют его индекс в словаре. Таким образом, указанный этап 303 необходим только, если в исходном токенизаторе отсутствует такое слово, как добавленный символ, что приведет к некорректной токенизации текста.
[0092] Далее способ 300 также может переходить к опциональному этапу 304, указанный этап 304 может выполняться, модулем 104. Как упоминалось выше, указанный этап 304 необходим в случае несоответствия формата целевых классов в обучающем входном наборе (поле «ответ»). Так, на этапе 304 сопоставляют возможным в заданной задаче классификации целевым классам, содержащимся в обучающем входном наборе данных, полученном на этапе 301, их текстовые аналоги. [0093] Так, для бинарной вопросно-ответной системы, целевые классы будут преобразованы в слова следующим образом: {положительный => "да", отрицательный => "нет"}. Для вычисления индекса данных слов в словаре входных эмбеддингов языковой модели далее осуществляют последовательно токенизацию каждого из слов (“да” и “нет”). Указанные индексы далее сохраняются в системе 100 и применяются в процессе обучения, который более подробно описан ниже.
[0094] На этапе 305 выполняют токенизацию и векторизацию отформатированного на этапе 302 обучающего входного набора данных, причем векторизация выполняется только для токенов, которые не относятся к символам.
[0095] Входной текст может быть разделен на токены. Под токеном в данном решении следует понимать последовательность символов в тексте, которая имеет значение для анализа. Стоит отметить, что определенный метод токенизации и векторизации зависит от языковой модели, используемой в заявленном решении и хранящейся в модуле 102. Например, при использовании модели RuGPT3, токенизация осуществляется методом ВРЕ (Byte Pair Encoding), а последующая векторизация - путем замены каждого токена на его индекс в словаре языковой модели, составленном на этапе изначального обучения модели. В еще одном частном
варианте осуществления токенизация может представлять собой разбиение текста на слова по пробелу между словами. Далее составляется словарь токенов фиксированного размера (например, 30000 токенов), где каждому токену сопоставляется его индекс в словаре. Кроме того, в еще одном частном варианте осуществления может выполняться векторизация каждого токена, полученного в процессе токенизации, например, с помощью прямого кодирования (one hot encoding). Так, например, при токенизации на основе алгоритма ВРЕ, каждый токен, полученный в ходе указанного процесса токенизации, представлен в словаре своим индексом, отображающий позицию в указанном словаре. Таким образом, каждый токен представляет бинарный вектор (значения 0 или 1), а единица ставится тому элементу, который соответствует номеру токена в словаре, что позволяет представить каждый токен в виде вектора фиксированной длины, соответствующей размерности словаря (например, размерности 3000 на 1). Для специалиста в данной области техники будет очевидно, что для векторизации токенов могут применять и другие алгоритмы векторизации, например, алгоритмы Word2vec и т. д., не ограничиваясь.
[0096] Соответственно для добавленных символов не существует индекса в словаре, в связи с чем на данном этапе 305 их векторизация не проводится.
[0097] На этапе 306 инициализируют обучаемые векторные представления для токенизированных символов, соответствующих абстрактным псевдо-словам, и заменяют упомянутые токенизированные символы на инициализированные обучаемые векторные представления символов.
[0098] На этапе 306 для токенизированных символов задают их начальное векторное представление в словаре. Так, в одном частном варианте осуществления указанное векторное представление (обучаемые эмбеддинги) может быть задано случайным числом из словаря. Указанные заданные значения подставляются на место токенизированных символов, т.е. происходит векторизация. В ходе обучения эмбеддинги будут изменены таким образом, чтобы модель с наибольшей вероятностью выдавала верный ответ в заданной задаче.
[0099] На этапе 307 подают на вход языковой модели отформатированные обучающие входные данные в виде эмбеддингов, и получают вероятности текстовых аналогов целевых классов.
[0100] На этапе 307 векторные представления отформатированного обучающего набора данных, полученные на этапе 305 объединяются с инициализированными обучаемыми векторными представлениями символов, полученные на этапе 306.
Указанное объединение может быть выполнено, например, модулем инъекции 107. Объединение может быть выполнено путем вставки (инъекции) обучаемых эмбеддингов на места, соответствующие символу (символ {Р}). Полученный объединенный тензор эмбеддингов затем используется в качестве входного слоя для дообучаемой языковой модели (например, для RuGPT3-Large).
[0101] Стоит отметить, что при обработке тензора эмбеддингов языковой моделью, веса языковой модели фиксируются в неизменном состоянии. При обучении, несмотря на то, что входные векторные представления, в том числе и обучаемые, проходят через модель и используются при вычислении функции потерь, веса самой модели не обновляются при шаге градиентного спуска. Особенностью указанного способа 300 является возможность дообучения языковой модели (автоматического подбора подсказки) без изменения ее весов, что существенно снижает вычислительные ресурсы, необходимые на обучение и, как следствие, снижает объем памяти, требуемый для хранения адаптированной под решение задачи классификации модели.
[0102] На этапе 308 обновляют обучаемые векторные представления, на основе истинных значений целевых классов для каждого обучающего объекта, итеративно повторяя этапы 307-308 до выполнения критерия останова.
[0103] Для дообучения языковой модели может быть использован модуль 108. В результате обучения будут получены оптимальные для данной задачи классификации значения обучаемых эмбеддингов, которые в дальнейшем можно будет использовать для решения задачи классификации.
[0104] На указанном этапе 308 осуществляется подбор оптимальных значений для обучаемых эмбеддингов, например, с помощью стохастического градиентного спуска. Так, например, список входных эмбеддингов, полученных на этапе 307, поступает в слои дообучаемой (адаптируемой) модели, на выходе которой содержится тензор данных с распределением вероятностей следующего токена. Из указанного тензора выбираются только вероятности, соответствующие целевым классам и вычисляется функция потерь между выбранными вероятностями и индексом целевого класса. После чего с помощью процедуры обратного распространения ошибки вычисляются градиенты для обучаемых эмбеддингов и выполняется их обновление. В ходе обучения эмбеддинги будут меняться таким образом, чтобы математическое ожидание значения функции потерь на любом объекте из распределения,
соответствующего распределению объектов обучающего набора данных, уменьшалось.
Рассмотрим в качестве примера следующий обучающий набор данных: обучающий набор данных: [{мама мыла раму?, да}, {есть ли на марсе жизнь?, нет}]
Обучение эмбеддингов, демонстрирующее как повышается вероятность правильного класса:
GPT(<P=[0.33, 0.11, 0.1]>Мама мыла раму?) => [да: 0.1, нет: 0.5, возможно: 0.0, небо: 0.1] => вероятность правильного ответа: 0.1
GPT(<P=[0.32, 0.12, 0.1]>Мама мыла раму?) => [да: 0.2, нет: 0.4, возможно: 0.0, небо: 0.1] => вероятность правильного ответа: 0.2
GPT(<P=[0.35, 0.09, 0.1]>Мама мыла раму?) => [да: 0.4, нет: 0.2, возможно: 0.0, небо: 0.1] =>вероятность правильного ответа: 0.4
GPT(<P=[0.2, 0.3, 0.1]>Мама мыла раму?) => [да: 0.5, нет: 0.1, возможно: 0.0, небо: 0.1] => вероятность правильного ответа: 0.5
GPT(<P=[0.1, 0.5, 0.1]>Мама мыла раму?) => [да: 0.5, нет: 0.1, возможно: 0.0, небо: 0.1] -> вероятность правильного ответа: 0.5
[0105] Как видно из примера, обучение эмбеддингов остановлено в связи с выполнением критерия останова. Указанный критерий останова, может представлять, например, фиксированное число итераций, достижение значения заданной вероятности для целевого класса и т.д. Хотя и указанный пример обучения эмбеддингов приведен на одном обучающем примере, важно отметить, что при каждом обновлении значений эмбеддингов учитываются сразу несколько примеров из обучающего набора данных.
[0106] На этапе 309 формируют файл данных и сохраняют обученные векторные представления символов, соответствующие абстрактным псевдо-словам.
[0107] Обученные эмбедденги, полученные на этапе 309, сохраняются в файл данных. Указанные эмбеддинги являются оптимальными для данной задачи классификации и предназначены для повышения точности языковой модели при решении последующих задач классификации схожего типа. В одном частном варианте осуществления, обученные эмбеддинги (значения векторных представлений) сохраняются вместе с форматом подсказки для указанной задачи классификации. Специалисту в данной области техники очевидно, что для разных
задач классификации может храниться несколько файлов с обученными эмбедд ингами.
[0108] Таким образом, за счет автоматической генерации подсказки для дообучения языковой модели на решение заданной задачи классификации текста, обеспечивается возможность дообучения языковой модели на малых вычислительных мощностях с сохранением высокой точности для решаемой задачи. Кроме того, указанный процесс дообучения снижает необходимый объем памяти, требуемый для хранения дообученной языковой модели (требуется хранить только обученные эмбеддинги).
[0109] На фиг. 4 представлена блок схема способа 400 классификации текста языковой моделью, который раскрыт поэтапно более подробно ниже. Указанный способ 400 заключается в выполнении этапов, направленных на обработку различных цифровых данных. Обработка, как правило, выполняется с помощью системы, например, системы 200, которая также может представлять, например, сервер, компьютер, мобильное устройство, вычислительное устройство и т. д.
[ОНО] На этапе 401 получают входной набор данных, соответствующий требуемой задаче классификации, в формате, на основе которого дообучалась языковая модель, и дообученную языковую модель.
[0111] Входной набор данных, соответствующий требуемой задаче классификации, в формате, на основе которого дообучалась языковая модель, представляет собой набор данных, который структурно совпадает с обучающим набором данных (содержит аналогичные поля), однако в нем отсутствует результат решаемой задачи классификации. Так, указанный входной набор данных может быть получен, например, от диалоговой системы посредством канала связи, например, сети Интернет, и может содержать, например, для решаемой задачи классификации текста для ответа на бинарный вопрос, набор, состоящий из двух полей: "текст "вопрос":. Т.е. входной набор представляет собой непосредственный текст, который до этого не был подан в языковую модель, в формате, схожим по структуре с обучающим входным набором данных.
[0112] Дообученная языковая модель может быть получена из модуля 202. Указанная дообученная языковая модель является языковой моделью, полученной в результате работы системы 100. Так, в одном частном варианте осуществления, дообученная языковая модель представляет собой языковую модель со сгенерированной подсказкой. Так, например, дообученная языковая модель со
сгенерированным форматом подсказки (обученными эмбеддингами), может быть получена от системы 100 после выполнения способа 300.
[0113] На этапе 402 выполняют форматирование входного набора данных, дополняя его символами, причем каждый символ соответствует абстрактному псевдослову. Указанный этап 402 может выполняться, например, модулем 203.
[0114] На этапе 402 осуществляется преобразование входного набора данных в строку, составляя её из списка полей, который содержится в указанном наборе данных и добавления символов между полями входного набора, причем, количество и расположение символов в процессе форматирования соответствует формату подсказки, Как было указано ранее, для разных задач классификации могут быть сгенерированы разные подсказки под соответствующий тип решаемой задачи. Так, в одном частном варианте осуществления, форматирование входного набора данных осуществляется на основе шаблона для форматирования. Стоит отметить, что тип решаемой задачи, а следовательно, и тип шаблона форматирования может поступать, например, совместно с входным набором данных. Кроме того, в еще одном частном варианте осуществления форматы шаблонов для различных задач могут храниться в памяти системы 200, например, в виде файла, и могут выбираться в соответствии с типом входных полей, определяемого, например, с помощью регулярных выражений. [0115] Общий принцип форматирования заключается в преобразовании входного набора данных в строку, составляя её из списка полей, который содержится в указанном наборе данных и добавления символов между полями входного набора, причем, количество и расположение символов в процессе форматирования соответствует формату подсказки. Таким образом, при форматировании входного набора, сначала входной набор преобразовывается в строку, и далее дополняется символами, причем количество и позиция указанных символов соответствует количеству и позициям символов, добавленных в процессе форматирования обучающего набора модулем 103 для конкретной задачи классификации. Так, например, в одном частном варианте осуществления, результатом форматирования входного набора будет следующий формат: "{Р} {Р}{Р} {текст 1} {Р}{Р} {Р} {текст 2} {Р} {Р} {Р}". Причем, указанный формат соответствует формату, выбранному в процессе работы системы 100 для задачи классификации.
[0116] На этапе 403 выполняют токенизацию и векторизацию входного набора данных, причем символы, соответствующие абстрактным псевдо-словам, заменяются на обученные векторные представления символов, сохраненных в файле данных.
[0117] На этапе 403 осуществляется токенизация и векторизация входного набора данных, например, посредством модуля 203. Причем в ходе процесса токенизации и векторизации, указанная токенизация и векторизация выполняется для всего входного набора данных, где символы, соответствующие абстрактным псевдо-словам, заменяются на обученные векторные представления символов, полученные от системы 100, а векторизация токенизированных символов осуществляется на основе значений, обученных эмбеддингов. Как указывалось, выше, значения обученных эмбеддингов, полученные в результате выполнения способа 100 могут быть отправлены в систему 200 посредством канала передачи данных. Так, вместе с типом подсказки, может быть отправлен файл из которого извлекаются значения токенов для символов и значения обученных векторных представлений, которые, в процессе векторизации и токенизации, подставляются на место символов, добавленных в результате форматирования.
[0118] На этапе 404 выполняют обработку данных, полученных на этапе 403, дообученной языковой моделью, в ходе которой получают вектор логитов, отражающий вероятностное распределение классов, соответствующих словам словаря языковой модели.
[0119] Так, на указанном этапе 404 отформатированный набор входных данных поступает на вход дообученной языковой модели, где происходит обработка указанных данных. На выходе языковой модели содержится тензор с распределением вероятностей следующего токена, который представляет собой набор логитов для каждого токена входной последовательности.
[0120] Рассмотрим указанный этап на примере. Пример решения задачи определения истинности входного текста. В качестве целевых классов для решаемой задачи из обучающего набора данных были определены следующие классы: I - текст истинный, II - текст ложный, соответственно им были присвоены следующие текстовые аналоги: I - да, II - нет. Результатом обработки дообученной языковой моделью входного набора данных, представленного в следующем виде: «текст»: «вопрос»: будет следующий вектор логитов: v = [0.1, 0, 0, 0.3, 0.5] = [в, на, да, нет, наверное]. Длина указанного вектора ровняется длине словаря языковой модели, например, 50000 слов.
[0121] Таким образом на указанном этапе 404 выполняется получение вектора логитов, отражающего вероятностное распределение классов, соответствующих словам словаря языковой модели.
[0122] В качестве еще одного примера рассмотрим решение задачи сравнения количества слов «муха» и «стекло» в тексте. Целевые классы: I - слово муха встречается чаще, II - слово стекло встречается чаще. Текстовые аналоги: I - муха, II - стекло. Выход дообученной языковой модели v = [0.1, 0, 0, 0.3, 0.5] == [в, на, муха, стекло, наверное]. Длина выходного вектора |v| = const = | V|, т.е. равна длине словаря. [0123] На этапе 405 выбирают целевые компоненты логитов, соответствующие токенам целевых классов решаемой задачи классификации.
[0124] На указанном этапе 405 из вектора логитов, например, с помощью модуля 208, осуществляют выбор целевых компонент, которые соответствуют целевым классам. Так, продолжая пример реализации для решаемой задачи определения истинности входного текста будут отобраны следующие целевые компоненты: [I, II] = [да, нет] = [0, 0.3]. Соответственно для другого примера сравнения количества слов «муха» и «стекло» в тексте будут отобраны следующие целевые компоненты: [I, II] = [муха, стекло] = [0, 0.3].
[0125] На этапе 406 определяют из целевых компонентов логитов, полученных на этапе е), компоненту логита, отражающую наибольшее значение вероятности принадлежности к целевому классу.
[0126] На указанном этапе 406 из отобранных целевых компонент выбирают компоненту с наибольшей вероятностью. Так, продолжая пример задачи определения истинности входного текста второй целевой класс имеет значение вероятности большее, чем первый, следовательно II > I === нет > да => ответ II (текст ложный). Для примера сравнения количества слов «муха» и «стекло» в тексте соответственно II > I == стекло > муха => ответ II (слово стекло встречается чаще).
[0127] На этапе 407 генерируют ответ в текстовой форме, соответствующий выбранной на этапе 406 компоненте.
[0128] Так, на указанном этапе 407 текстовый аналог выбранного целевого класса, имеющего наибольшую вероятность может быть отправлен в систему для которой решалась поставленная задача классификации. Так, указанными системами могут являться диалоговые ассистенты, системы фильтрации ненормативной лексики, вопросно-ответные системы и т.д. Передача сгенерированного ответа может осуществляться по каналу связи, такому как Интернет. Кроме того, в одном частном варианте осуществления сгенерированный ответ может быть сохранен в памяти системы, такой как система (500).
[0129] Таким образом, в вышеприведенных материалах были описаны системы и способы автоматического дообучения языковой модели для решения задач классификации и классификация текста языковой моделью.
[0130] Теперь рассмотрим примеры реализации заявленного технического решения.
[0131] Как упоминалось выше, заявленная группа изобретений выполнена с возможностью решения прикладных задач классификации. Адаптация изобретения под конкретную задачу классификации выполняется изменением формата подсказки, и, соответственно изменением процесса форматирования исходного текста, и целевых классов, представляющих ответ на решаемую задачу. Рассмотрим различные варианты реализации заявленного решения на наборе задач из RussianSuperGLUE (доступно по ссылке, найдено в Интернет: https://russiansuperglue.com/tasks/).
[0132] Для примера возьмем задание Terra (задача определения, учитывая два текстовых фрагмента, выводится ли (может быть выведено) значение одного текста из другого текста). Для решения указанной задачи, языковая модель дообучалась на обучающем наборе данных, содержащим 2016 примеров. При обучении модели RuGPT3 XI (доступна по ссылке: https://huggingface.co/sberbank- ai/rugpt31arge_based_on_gpt2). Удалось добиться значительного сокращения затраченных ресурсов на обучение так как выполнялось обучение только 3.2 миллионов параметров (подбор обучаемых эмбеддингов) вместо 760 миллионов параметров (подбор весов языковой модели для решения указанной задачи). При этом качество (точность) языковой модели превысило качество языковой модели, обученной стандартными методами (76.1 accuracy вместо 65.4 accuracy).
Пример задания:
“текст”: “Автор поста написал в комментарии, что прорвалась канализация. ” “вывод “Автор поста написал про канализацию. ” “ответ “Связь есть ”.
[0133] На Фиг. 5 представлен пример общего вида вычислительной системы (500), которая обеспечивает реализацию заявленных способов 300 и 400 или является частью компьютерной системы, например, системы 100 или системы 200, и/или реализует модули указанных систем 100 и 200. Кроме того, указанная система (500) может являться сервером, персональным компьютером, частью вычислительного кластера, обрабатывающим необходимые данные для осуществления заявленного технического решения.
[0134] В общем случае система (500) содержит такие компоненты, как: один или более процессоров (501), по меньшей мере одну память (502), средство хранения данных (503), интерфейсы ввода/вывода (504), средство В/В (505), средство сетевого взаимодействия (506), которые объединяются посредством универсальной шины.
[0135] Процессор (501) выполняет основные вычислительные операции, необходимые для обработки данных при выполнении способа 300 и способа 400. Процессор (501) исполняет необходимые машиночитаемые команды, содержащиеся в оперативной памяти (302).
[0136] Память (502), как правило, выполнена в виде ОЗУ и содержит необходимую программную логику, обеспечивающую требуемый функционал.
[0137] Средство хранения данных (503) может выполняться в виде HDD, SSD дисков, рейд массива, флэш-памяти, оптических накопителей информации (CD, DVD, MD, Blue-Ray дисков) и т. п. Средства (503) позволяют выполнять долгосрочное хранение различного вида информации, например, языковых моделей, обученных эмбеддингов и т. п.
[0138] Для организации работы компонентов системы (500) и организации работы внешних подключаемых устройств применяются различные виды интерфейсов В/В (504). Выбор соответствующих интерфейсов зависит от конкретного исполнения вычислительного устройства, которые могут представлять собой, не ограничиваясь: PCI, AGP, PS/2, IrDa, FireWire, LPT, COM, SATA, IDE, Lightning, USB (2.0, 3.0, 3.1, micro, mini, type C), TRS/Audio jack (2.5, 3.5, 6.35), HDMI, DVI, VGA, Display Port, RJ45, RS232 и т. п.
[0139] Выбор интерфейсов (504) зависит от конкретного исполнения системы (500), которая может быть реализована на базе широко класса устройств, например, персональный компьютер, мейнфрейм, ноутбук, серверный кластер, тонкий клиент, смартфон, сервер и т. п.
[0140] В качестве средств В/В данных (505) может использоваться: клавиатура, джойстик, дисплей (сенсорный дисплей), монитор, сенсорный дисплей, тачпад, манипулятор мышь, световое перо, стилус, сенсорная панель, трекбол, динамики, микрофон, средства дополненной реальности, оптические сенсоры, планшет, световые индикаторы, проектор, камера, средства биометрической идентификации (сканер сетчатки глаза, сканер отпечатков пальцев, модуль распознавания голоса) и т. п.
[0141] Средства сетевого взаимодействия (506) выбираются из устройств, обеспечивающий сетевой прием и передачу данных, например, Ethernet карту, WLAN/Wi-Fi модуль, Bluetooth модуль, BLE модуль, NFC модуль, IrDa, RFID модуль, GSM модем и т. п. С помощью средств (505) обеспечивается организация обмена данными между, например, системой (500), представленной в виде сервера и вычислительным устройством пользователя, на котором могут отображаться полученные данные (ответ в вопросно-ответной системе) по проводному или беспроводному каналу передачи данных, например, WAN, PAN, ЛВС (LAN), Интранет, Интернет, WLAN, WMAN или GSM.
[0142] Конкретный выбор элементов системы (500) для реализации различных программно-аппаратных архитектурных решений может варьироваться с сохранением обеспечиваемого требуемого функционала.
[0143] Представленные материалы заявки раскрывают предпочтительные примеры реализации технического решения и не должны трактоваться как ограничивающие иные, частные примеры его воплощения, не выходящие за пределы испрашиваемой правовой охраны, которые являются очевидными для специалистов соответствующей области техники. Таким образом, объем настоящего технического решения ограничен только объемом прилагаемой формулы.
Claims
ФОРМУЛА Способ автоматического дообучения языковой модели для классификации текста, выполняющийся по меньшей мере одним вычислительным устройством, и содержащим этапы, на которых: a) принимают языковую модель и обучающий входной набор данных, содержащий по меньшей мере список полей входного набора данных; b) выбирают формат подсказки, на основе списка полей обучающего входного набора данных, для заданной задачи классификации, и выполняют форматирование обучающего входного набора данных, на основе выбранного формата подсказки, в ходе которого выполняют дополнение упомянутого набора данных символами, при этом каждый символ соответствует абстрактному псевдо-слову; c) выполняют токенизацию и векторизацию отформатированного на этапе Ь) обучающего входного набора данных, причем векторизация выполняется только для токенов, которые не относятся к символам; d) инициализируют обучаемые векторные представления для токенизированных символов, соответствующих абстрактным псевдословам, и заменяют упомянутые токенизированные символы на инициализированные обучаемые векторные представления символов; e) подают на вход языковой модели отформатированный обучающий входной набор данных в виде векторных представлений, и получают вероятности текстовых аналогов целевых классов; f) обновляют обучаемые векторные представления, на основе истинных значений целевых классов для каждого обучающего объекта, итеративно повторяя этапы e)-f) до выполнения критерия останова; g) формируют файл данных и сохраняют обученные векторные представления символов, соответствующие абстрактным псевдо-словам. Способ по п. 1, характеризующийся тем, что форматирование обучающего входного набора данных выполняется с использованием шаблона для форматирования . Способ по п. 2, характеризующийся тем, что шаблон для форматирования выбирается на основе решаемой задачи классификации.
33
Способ по п. 3, характеризующийся тем, что задача классификации представляет собой по меньшей мере: i. бинарные вопросно-ответные системы; й. бинарная классификация на распознавание причинно-следственной связи между двумя предложениями; iii. бинарная классификация на выбор одной из двух альтернатив; iv. задача на машинное чтение в форме бинарной классификации; v. задача бинарной классификации на распознавание причинно- следственных связей между посылкой и гипотезой. Способ классификации текста языковой моделью, дообученной согласно этапам способа по любому из пп 1 -4, выполняющийся по меньшей мере одним вычислительным устройством, и содержащий этапы, на которых: a) получают входной набор данных, соответствующий требуемой задаче классификации, в формате, на основе которого дообучалась языковая модель; b) выполняют форматирование входного набора данных, дополняя его символами, причем каждый символ соответствует абстрактному псевдослову; c) выполняют токенизацию и векторизацию входного набора данных, причем символы, соответствующие абстрактным псевдо-словам, заменяются на обученные векторные представления символов, сохраненные в файле данных; d) выполняют обработку данных, полученных на этапе с), дообученной языковой моделью, в ходе которой получают вектор логитов, отражающий вероятностное распределение классов, соответствующих словам словаря языковой модели; e) выбирают целевые компоненты логитов, соответствующие токенам целевых классов решаемой задачи классификации; f) определяют из целевых компонентов логитов, полученных на этапе е), компоненту логита, отражающую наибольшее значение вероятности принадлежности к целевому классу; g) генерируют ответ в текстовой форме, соответствующий выбранной на этапе f) компоненте.
34
Система автоматического дообучения языковой модели для классификации текста, содержащая:
• по меньшей мере один процессор;
• по меньшей мере одну память, соединенную с процессором, которая содержит машиночитаемые инструкции, которые при их выполнении по меньшей мере одним процессором обеспечивают выполнение способа по любому из пп. 1-4. Система классификации текста дообученной языковой моделью, содержащая:
• по меньшей мере один процессор;
• по меньшей мере одну память, соединенную с процессором, которая содержит машиночитаемые инструкции, которые при их выполнении по меньшей мере одним процессором обеспечивают выполнение способа по п. 5.
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
RU2022114371 | 2022-05-27 | ||
RU2022114371A RU2818693C2 (ru) | 2022-05-27 | Способ и система классификации текста |
Publications (1)
Publication Number | Publication Date |
---|---|
WO2023229483A1 true WO2023229483A1 (ru) | 2023-11-30 |
Family
ID=88919634
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
PCT/RU2022/000179 WO2023229483A1 (ru) | 2022-05-27 | 2022-05-27 | Способ и система классификации текста |
Country Status (1)
Country | Link |
---|---|
WO (1) | WO2023229483A1 (ru) |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN117669737A (zh) * | 2023-12-20 | 2024-03-08 | 中科星图数字地球合肥有限公司 | 一种端到端地理行业大语言模型构建及使用方法 |
CN118536605A (zh) * | 2024-07-24 | 2024-08-23 | 浪潮电子信息产业股份有限公司 | 自然语言处理任务执行及其模型训练方法、设备、介质 |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20210035556A1 (en) * | 2019-08-02 | 2021-02-04 | Babylon Partners Limited | Fine-tuning language models for supervised learning tasks via dataset preprocessing |
CN113032559A (zh) * | 2021-03-15 | 2021-06-25 | 新疆大学 | 一种用于低资源黏着性语言文本分类的语言模型微调方法 |
CN113868380A (zh) * | 2021-06-21 | 2021-12-31 | 四川启睿克科技有限公司 | 一种少样本意图识别方法及装置 |
RU2763921C1 (ru) * | 2021-02-10 | 2022-01-11 | Акционерное общество "Лаборатория Касперского" | Система и способ создания эвристических правил для обнаружения мошеннических писем, относящихся к категории ВЕС-атак |
-
2022
- 2022-05-27 WO PCT/RU2022/000179 patent/WO2023229483A1/ru unknown
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20210035556A1 (en) * | 2019-08-02 | 2021-02-04 | Babylon Partners Limited | Fine-tuning language models for supervised learning tasks via dataset preprocessing |
RU2763921C1 (ru) * | 2021-02-10 | 2022-01-11 | Акционерное общество "Лаборатория Касперского" | Система и способ создания эвристических правил для обнаружения мошеннических писем, относящихся к категории ВЕС-атак |
CN113032559A (zh) * | 2021-03-15 | 2021-06-25 | 新疆大学 | 一种用于低资源黏着性语言文本分类的语言模型微调方法 |
CN113868380A (zh) * | 2021-06-21 | 2021-12-31 | 四川启睿克科技有限公司 | 一种少样本意图识别方法及装置 |
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN117669737A (zh) * | 2023-12-20 | 2024-03-08 | 中科星图数字地球合肥有限公司 | 一种端到端地理行业大语言模型构建及使用方法 |
CN117669737B (zh) * | 2023-12-20 | 2024-04-26 | 中科星图数字地球合肥有限公司 | 一种端到端地理行业大语言模型构建及使用方法 |
CN118536605A (zh) * | 2024-07-24 | 2024-08-23 | 浪潮电子信息产业股份有限公司 | 自然语言处理任务执行及其模型训练方法、设备、介质 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US11574122B2 (en) | Method and system for joint named entity recognition and relation extraction using convolutional neural network | |
JP7193252B2 (ja) | 画像の領域のキャプション付加 | |
CN108170749B (zh) | 基于人工智能的对话方法、装置及计算机可读介质 | |
US20180068221A1 (en) | System and Method of Advising Human Verification of Machine-Annotated Ground Truth - High Entropy Focus | |
WO2023229483A1 (ru) | Способ и система классификации текста | |
WO2021001517A1 (en) | Question answering systems | |
EP3832485A1 (en) | Question answering systems | |
WO2023088278A1 (zh) | 用于验证表述的真实性的方法、设备、装置和介质 | |
CN118170668A (zh) | 一种测试用例生成方法、装置、存储介质和设备 | |
CN117350302B (zh) | 一种基于语义分析的语言撰写文本纠错方法、系统及人机交互装置 | |
CN117556789A (zh) | 基于多层次语义挖掘的学生评语生成方法 | |
US11868313B1 (en) | Apparatus and method for generating an article | |
CN117153142A (zh) | 一种语音信号合成方法、装置、电子设备及存储介质 | |
KR102629063B1 (ko) | 제약 조건을 이용하는 질의 응답 시스템 및 정보 제공 방법 | |
RU2818693C2 (ru) | Способ и система классификации текста | |
KR102642012B1 (ko) | 전자 의무 기록을 구성하는 텍스트의 분석과 관련된 전처리를 수행하는 전자 장치 | |
EA045059B1 (ru) | Способ и система классификации текста | |
CN114372467A (zh) | 命名实体抽取方法及装置、电子设备、存储介质 | |
CN113408296A (zh) | 一种文本信息提取方法、装置及设备 | |
RU2796208C1 (ru) | Способ и система генерации текста для цифрового ассистента | |
RU2817524C1 (ru) | Способ и система генерации текста | |
RU2814808C1 (ru) | Способ и система перефразирования текста | |
JP6441203B2 (ja) | 音声認識結果圧縮装置、音声認識結果圧縮方法、プログラム | |
CN116205217B (zh) | 一种小样本关系抽取方法、系统、电子设备及存储介质 | |
RU2760637C1 (ru) | Способ и система извлечения именованных сущностей |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
121 | Ep: the epo has been informed by wipo that ep was designated in this application |
Ref document number: 22943949 Country of ref document: EP Kind code of ref document: A1 |