EP4062295A1 - Systems, apparatuses, and methods for document querying - Google Patents
Systems, apparatuses, and methods for document queryingInfo
- Publication number
- EP4062295A1 EP4062295A1 EP20829402.5A EP20829402A EP4062295A1 EP 4062295 A1 EP4062295 A1 EP 4062295A1 EP 20829402 A EP20829402 A EP 20829402A EP 4062295 A1 EP4062295 A1 EP 4062295A1
- Authority
- EP
- European Patent Office
- Prior art keywords
- documents
- data
- proper subset
- machine learning
- computer
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Withdrawn
Links
Classifications
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; 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/33—Querying
- G06F16/338—Presentation of query results
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/90—Details of database functions independent of the retrieved data types
- G06F16/903—Querying
- G06F16/9032—Query formulation
- G06F16/90332—Natural language query formulation or dialogue systems
Definitions
- FIG. 1 illustrates embodiments of an enterprise search service.
- FIG. 2 illustrates embodiments of the enterprise search service used for providing inference functionality.
- FIG. 4 illustrates embodiments of a method for performing an inference (search on documents).
- FIG. 6 illustrates embodiments of a method for performing an improved display of a result of an inference query.
- FIG. 8 illustrates embodiments of a method for performing ingestion of one or more documents.
- FIG. 9 illustrates embodiments of exemplary reserved fields for use in ingestion.
- FIG. 10 illustrates embodiments of a graphical user interface to be used in updating/adding/removing reserved fields for use in ingestion.
- FIG. 11 illustrates embodiments of a model building system.
- FIG. 12 illustrates embodiments of a method for model management.
- FIG. 13 illustrates embodiments of a graphical user interface to be used in active learning of question and answer(s) for training a machine learning model.
- FIG. 14 illustrates embodiments of a graphical user interface to be used in active learning of document ranking for training a machine learning model.
- FIG. 15 illustrates embodiments of a method for active learning for training a machine learning model.
- FIG. 16 illustrates embodiments of a method for training and use of a question generation model.
- FIG. 17 illustrates a first set of example candidate questions generated by a question generation model trained on known question and answer pairs.
- FIG. 18 illustrates a second set of example candidate questions generated by a question generation model trained on known question and answer pairs.
- FIG. 19 illustrates embodiments of a method for training a question generation model.
- FIG. 20 illustrates an example provider network environment according to some embodiments.
- FIG. 21 is a block diagram of an example provider network that provides a storage service and a hardware virtualization service to customers according to some embodiments.
- FIG. 22 is a block diagram illustrating an example computer system that may be used in some embodiments.
- the present disclosure relates to methods, apparatus, systems, and non-transitory computer-readable storage media for indexing and searching text-based documents using machine learning.
- Documents are acquired, text from the documents extracted and indexed, etc. to make them searchable using term-based or question-based queries.
- These text-based documents including frequently asked questions (FAQs) are to be searched according to a user query for one or more top ranked (most relevant) documents, one or more top ranked passages (where a passage is a limited number of contiguous lines that have been extracted from a given document), and/or one or more top ranked FAQs.
- FAQs frequently asked questions
- Detailed herein are embodiments of an enterprise search service that enables users to intuitively search unstructured data using natural language. It returns specific and personalized answers to questions, giving end users an experience that comes closer to interacting with a human expert.
- Embodiments detailed herein allow for document corpus hosted internally or externally to be accessed and indexed those documents.
- the indexing helps to provide a context of a document and provides a semblance of “structure” to an unstructured document.
- a set of reserved fields for the indexes gives a more uniform context to labels in a document.
- embodiments of the enterprise search service described below allow for the answering of factoid and non-factoid (e.g., how, what, why) questions by extracting relevant information from a document corpus.
- Such questions are usually answerable in a few words.
- the enterprise search service allows for the answering of short questions that can be answered in a few lines such as those found in a frequently asked questions document (e.g., “What is the difference between the IP default gateway, IP default-network, and IP route 0.0.0.0/0 commands?”).
- the enterprise search service allows for the answering of descriptive questions through the identification of an entire relevant document where the answer is the entire document. For example, “What is the CLI for Brazil?”
- FIG. 1 illustrates embodiments of an enterprise search service.
- the enterprise search service 102 allows for the querying or searching of documents and/or proper subsets thereof of an enterprise using one or more machine learning models. Details of various aspects of this enterprise search service 102 are discussed below. Prior to any searching, the documents and/or proper subsets thereof have been ingested prior to such querying.
- the enterprise search service 102 provides the capability to ingest documents from data sources 105 internal to a provider network 100 and data sources 106 external to the provider network 100 (e.g., stored at a third-party location, stored locally, etc.).
- An ingestion service 130 allows for the ingestion of documents into the enterprise search service 102.
- Documents may be pulled from data sources (e.g., in response to a request) and/or pushed from data sources (e.g., a synchronization of when a document is added or altered).
- the ingestion service 130 may also fetch access control lists (ACLs) associated with the documents.
- ACLs can be used to determine if a search result is allowed to be served.
- the ingestion service couples to a connector service 180 which offers a plurality of connectors to connect to different data sources and receive data (as a push or a pull) from those sources according to the appropriate protocol for a particular data source.
- a connector service 180 which offers a plurality of connectors to connect to different data sources and receive data (as a push or a pull) from those sources according to the appropriate protocol for a particular data source.
- different data sources may use different transmission protocols, storage protocols, encryption protocols, etc.
- the data connectors of the connector service 180 are configured using a control plane 170.
- This control plane 170 contains workflows for resource management of the enterprise search service 102.
- the control plane 170 may also be used to configure a model building pipeline 160 which builds specific models, vocabularies, and embeddings to be hosted in the model hosting service 110 and used in answering a query.
- a model management service 150 may be used to refresh a given model.
- the ingestion service 130 also extracts text from documents, pre-processes the extracted text (e.g., tokenize, normalize, and/or remove noise), and calls an indexing service to generate index entries for text, and causes the documents (or subset thereof) to be stored.
- the indexing service 140 indexes documents that have been acquired by the ingestion service 130 into one or more indexes 107.
- An index is a data structure of organized data that maps the data to a plurality of fields. Each document or subset of a document (e.g., passage) is identified with a unique identifier.
- the index is comprised a plurality of JSON documents.
- the index is an inverted index that lists every unique word that appears in any document and identifies all of the documents each word occurs in.
- An index can be thought of as an optimized collection of documents and each document is a collection of fields, which are the key-value pairs that contain data.
- Each indexed field has a dedicated, optimized data structure. For example, text fields are stored in inverted indices, and numeric and geo fields are stored in BKD trees.
- the indexing service 140 may be schema-less, which means that documents can be indexed without explicitly specifying how to handle each of the different fields that might occur in a document. When dynamic mapping is enabled, the indexing service 140automatically detects and adds new fields to the index. However, as noted below, a schema of reserved fields may be used to map detected data into datatypes. The reserved fields allow for the distinguishing between full-text string fields and exact value string fields, performing language-specific text analysis, optimizing fields for partial matching, and/or the use datatypes that are not automatically detected.
- Examples of models utilized by the inference service 120 that are ran in the model hosting service 110 include, but are limited to a question/answer (e.g., reading comprehension) which extracts answers from passages, a document/passage ranking model which sorts documents in an order of relevance with respect to the query, and a FAQ matching model which attempts to identify a correct the right answer for a given question from a given FAQ document.
- a question/answer e.g., reading comprehension
- a document/passage ranking model which sorts documents in an order of relevance with respect to the query
- a FAQ matching model which attempts to identify a correct the right answer for a given question from a given FAQ document.
- a cloud provider network typically refers to a large pool of accessible virtualized computing resources (such as compute, storage, and networking resources, applications, and services).
- a cloud can provide convenient, on-demand network access to a shared pool of configurable computing resources that can be programmatically provisioned and released in response to customer commands. These resources can be dynamically provisioned and reconfigured to adjust to variable load.
- Cloud computing can thus be considered as both the applications delivered as services over a publicly accessible network (e.g., the Internet, a cellular communication network) and the hardware and software in cloud provider data centers that provide those services.
- a cloud provider network can be formed as a number of regions, where a region may be a geographical area in which the cloud provider clusters data centers. Each region can include multiple (e.g., two or more) availability zones (AZs) connected to one another via a private high speed network, for example a fiber communication connection.
- An AZ may provide an isolated failure domain including one or more data center facilities with separate power, separate networking, and separate cooling from those in another AZ.
- AZs within a region are positioned far enough away from one other that a same natural disaster (or other failure-inducing event) should not affect or take more than one AZ offline at the same time.
- Customers can connect to AZ of the cloud provider network via a publicly accessible network (e.g., the Internet, a cellular communication network).
- a user may indirectly utilize a compute instance by submitting code to be executed by the provider network (e.g., via an on-demand code execution service), which in turn utilizes a compute instance to execute the code - typically without the user having any control of or knowledge of the underlying compute instance(s) involved.
- the provider network e.g., via an on-demand code execution service
- Circles with numbers inside of them represent exemplary actions that may be taken for performing an inference (query).
- an inference request is sent by an edge device 108 to the enterprise search service 102.
- the frontend 104 calls the inference service 120 which begins processing the request at circle 2.
- the processing of the request includes accessing one or more indexes 107 via the indexing service 140 at circle 3 to get identifiers of sets of documents to analyze, accessing the identified sets of documents (or text thereof) from document storage 109, and providing the documents (or text thereof) and the query to one or more machine learning models in the model hosting service 110 at circle 5 to determine one or more of top documents, a top passage, and/or a top FAQ.
- the result of the determination by the one or more machine learning models is provided the requestor at circle 6 (subject to any restrictions).
- the provision of the result may also include using an enhanced display.
- FIG. 2 illustrates embodiments of the enterprise search service 102 used for providing inference functionality.
- the aspects shown may be used to respond to a search query on a set of documents.
- the frontend 104 takes in a search request (or query) and provides that request to an inference orchestrator 220 of the inference service 120.
- the query is submitted as an application programming interface (API) call.
- API application programming interface
- a default response to such a query includes a relevant passage, a matching FAQ, and a relevant document.
- the query may contain one or more fields indicating how the search is to be performed and/or what is to be returned.
- This one or more fields include, for example, one or more of: an attribute filter field which enables filtered searches based on document attributes; an exclude document attributes field indicating what attributes to exclude from a response; a facets field defining what document attributes to count; an include document attributes field indicating the document attributes to include in a response; an index identifier field indicating the index(es) to search; a page number field indicating the number of pages of results to return; a page size field indicating the size of pages of results to return; a query result type configuration field which sets the type of query (e.g., FAQ, passage, document); a query text field which includes a string of text to search for; and a user context field which identifies the end user making the query so it can be determined if the query result should be filtered based on the user (e.g., an access control list indicates that the user is not allowed to see the content such a regular employee searching for health records of another employee).
- an attribute filter field which enables filtered searches based on document attributes
- the inference orchestrator 220 co-ordinates various services to perform an inference using the query.
- the inference orchestrator 220 includes a state machine or algorithm defining the actions to take.
- the inference orchestrator 220 performs query classification and enrichment (or couples to a component that does). For example, in some embodiments, key phrases, entities, syntax, topics, and/or classifications are extracted.
- a classifier machine learning model determines what type of question is being presented. Factoid questions and non-factoid questions may get different treatment with respect to what models are used to determine top results and how results are shown.
- the inference orchestrator 220 couples to the indexing service 140 and utilizes the indexing service 140 to access one or more indexes 107 to get matching document identifiers for the query.
- the indexes 107 include a FAQ index 107A, a question/answer index 107B, and a document/passage index 107C.
- the inference orchestrator 220 provides an indication of what index(es) to use.
- the metadata 210 provides a physical location of the indexes 107 for the indexing service 140 to use.
- the result (e.g., document identifiers) of various index queries are received by the inference orchestrator 220 to use to retrieve one or more documents for use by one or more machine learning models (e.g., FAQ model 212C, question/answer model 212B, and document/passage ranking model(s) 212A) hosted by the model hosting service 110.
- the inference orchestrator 220 retrieves the identified documents (e.g., an entire document, passage, or FAQ) from text/document storage 109 using document storage service 208.
- FIG. 3 illustrates embodiments of the enterprise search service 102 used for providing inference functionality.
- a query 300 is received by the inference orchestrator 220. This is shown at circle 1.
- the inference orchestrator 220 fires the query against one or more indexes 107.
- the query is fired against the document index 107A and the passage index 107B (shown at circle 2).
- An identification of set of “top” documents (e.g., top 1,000 documents) and “top” passages (e.g., 5,000 passages) are provided from the indexing service 140 back to the inference orchestrator 220.
- the associated documents and passages are retrieved (shown at circle 3) and then sent to the document/passage ranking model(s) 212A.
- the document/passage ranking model(s) 212A analyzes and re-ranks the top documents based on relevance scores and, for a top subset (e.g., 100) of the ranked documents, determines a set number (e.g., 3) of passages for each of the top subset of ranked documents (shown at circle 4).
- a feature-based deep cross network (DCN) analyzes and re-ranks the top documents.
- a bidirectional encoder representations from transformers (BERT) model takes the ranking top subset of documents and finds the passages and outputs relevance scores. The relevance scores of the DCN and BERT are combined to obtain the final reranking of top documents.
- an output of the document/passage ranking model(s) 212A is a set of top ranking document(s) 304 and/or top ranking passages.
- the top ranking passages are found using a union of the top ranking documents and the indexed passages.
- the question and answer model 212B is used to determine a set of one or more top passages for the query.
- the query is fired against the passage index 107B at circle 5 to find a top number (e.g., 100) of passages which are retrieved and sent to the document/passage ranking model(s) 212A for analysis and reranking.
- the BERT model receives the top passages and re-ranks the passages and sends top few (e.g., 5) to the question and answer model 212B at circle 6.
- the question and answer model 212B is also BERT-based.
- the FAQ model 212C is used to determine a set of one or more top FAQs for the query.
- the query is fired against the FAQ questions index 107C at circle 7 and the top set of matching questions are sent to the FAQ model 212C from the text/document storage 109.
- the FAQ model 212C re-ranks the top set of questions and returns the most relevant questions along with their answers 308.
- the FAQ model 212C is a BERT-based model.
- FIG. 4 illustrates embodiments of a method for performing an inference (search on documents). Some or all of the operations (or other processes described herein, or variations, and/or combinations thereof) are performed under the control of one or more computer systems configured with executable instructions and are implemented as code (e.g., executable instructions, one or more computer programs, or one or more applications) executing collectively on one or more processors, by hardware or combinations thereof.
- the code is stored on a computer-readable storage medium, for example, in the form of a computer program comprising instructions executable by one or more processors.
- the computer-readable storage medium is non- transitory.
- one or more (or all) of the operations are performed by components of the other figures such as under the control of the inference orchestrator 220 which calls the indexing service 140 for document identifiers, fetches the identified documents using the document storage service 208, and calls one or more ML models in the model hosting service 110 to analyze the fetched documents.
- the inference orchestrator 220 which calls the indexing service 140 for document identifiers, fetches the identified documents using the document storage service 208, and calls one or more ML models in the model hosting service 110 to analyze the fetched documents.
- a search query is received in a frontend.
- the search query includes a question to be answered.
- the search query includes an indication of what type of answer is expected (e.g., a listing of documents, a passage, and/or an FAQ).
- prefix or postfix
- passage: QUESTIONTEXT may be used.
- a selection from a list of potential results may be used. Examples of a search query API call have been detailed above.
- the search query is performed to generate one or more results at 402.
- Documents that matches the search query are identified by querying one or more indexes at 403.
- an index for documents is queried for a set “top” matching documents at 405
- an index for passages is queried for a set of “top” matching passages at 406
- an index for FAQs is queried for a set of “top” FAQs at 407.
- these indexes may be independent of each other or combined in any manner.
- an inference orchestrator may cause these one or more queries to occur.
- the query is formed such that is requests a “match” for the words of the question.
- a match query returns documents that match provided text, numbers, dates, or Boolean values. The match query may limit the number of results, the number of words of the question to use, etc.
- the identified documents, passages, and/or FAQs are fetched according to the matched data at 409.
- an inference orchestrator may cause these one or more fetches to occur.
- the documents, passages, and/or FAQs may be stored in separate locations or together. Additionally, the documents, passages, and/or FAQs may be pre-processed to make subsequent analysis easier.
- the fetching is of whole documents. In some embodiments, the fetching is of extracted text from the documents.
- One or more of a top ranked passage, top ranked documents, and a top ranked FAQ are determined from the fetched documents, passages, and/or FAQs based upon one or more invocations of one or more machine learning models for the search query at 411. Several operations may occur in this action. Note the models produce a confidence score for their results.
- a proper subset of the identified (fetched) set of documents are determined using a first machine learning model at 413.
- the fetched documents are reranked using a first model (e.g., DCN model) according to relevance scores and then a second model (e.g., BERT-based) looks at some top number of those reranked documents (e.g., 100) and uses top passages from the retrieved passages for those top documents to determine a relevance score per document.
- the relevance scores from the first and second models are combined to generate a set of top ranked documents.
- only the reranking using the first model is performed.
- a proper subset of the identified (and fetched) set of passages is identified using a second machine learning model based upon the query and fetched passages at 417.
- This proper subset is a reranking of the passages.
- This may be the same model as the BERT- based model detailed as being used at 413.
- This reranked subset is provided to a third model (along with aspects of the query) which determines a top passage from the reranked subset at 419.
- the third model is a BERT-based model in some embodiments.
- a proper subset of the identified (and fetched) set of FAQS is determined using a fourth machine learning model on the fetched FAQs and the query at 421.
- This proper subset includes the top ranked FAQ.
- the fourth machine learning model is BERT-based.
- One or more of the top ranked passage, the top ranked documents, and the top ranked FAQ are returned at 423.
- the return may include displaying the result.
- what is returned is subject to an access control list and/or confidence score threshold. For example, if the top ranked document, etc. is not allowed to be shared with the searching user based on the access control list, then either nothing is returned, or a lower ranked document, etc. is returned instead.
- an improved display of the result is utilized. Note that in some embodiments, the returned result is sent back through the frontend and/or inference orchestrator.
- feedback is received on the one or more of the returned one or more of the top ranked passage, the top ranked documents, and the top ranked FAQ in some embodiments. This feedback may be used to tune the models.
- the GUI 500 provides an indication of a number of results 506 that are returned along with the results 508, 518 themselves.
- an answer 505 to the question being asked is extracted and shown proximately.
- the first result 508 shows text 510 which includes highlighting for a particularly relevant aspect of the result.
- the text “RESULT’ has been highlighted from a document’ s text. This highlighted text is the top ranked text (or at least the top ranked text that the user is allowed to see) where the result exceeds one or more confidence score thresholds.
- the first result 508 also includes the location of the result 512 (e.g., the document location) and a means to provide feedback 514, e.g., as feedback input 1106 in FIG. 11.
- the second result 518 shows text 520 that less emphasizes a relevant aspect of the result.
- the text “RESULT” has been emphasized from a document’s text, but in a less conspicuous way than the highlighted text.
- This emphasized text is the top ranked text (or at least the top ranked text that the user is allowed to see) where the result exceeds one or more confidence score thresholds (but not as much as a highlighted text would).
- the emphasis may be bolding, italicizing, underlining, changing the font size, etc.
- the second result 518 also includes the location of the result 522 (e.g., the document location) and a means to provide feedback 524, e.g., as feedback input 1106 in FIG. 11.
- Feedback input may be in the form of an API request that includes one or more parameters such as one or more of: click feedback items (alert that the search result was taken), an identifier of the index that was queried, an identifier of the query itself, relevance such as a thumbs-up or thumbs-down.
- FIG. 6 illustrates embodiments of a method for performing an improved display of a result of an inference query.
- Some or all of the operations are performed under the control of one or more computer systems configured with executable instructions and are implemented as code (e.g., executable instructions, one or more computer programs, or one or more applications) executing collectively on one or more processors, by hardware or combinations thereof.
- the code is stored on a computer-readable storage medium, for example, in the form of a computer program comprising instructions executable by one or more processors.
- the computer-readable storage medium is non-transitory.
- one or more (or all) of the operations are performed by components of the other figures.
- a search query is received at 601.
- a search query is received at the frontend 104 and passed to the inference orchestrator 220. Examples of search queries have been detailed above.
- the search query is performed to generate one or more results at 603. Embodiments of such performance have been detailed above (e.g., with respect to at least FIG. 4).
- the results may include, but are not limited to: text from top ranking documents, a top ranked passage, a top ranked FAQ, etc.
- the performance of the search query includes using one or more ML models.
- an index When an index has been created, it can be updated. This updating may be in the form of a single update or batch update which causes an ingestion of text and unstructured text into an index, the addition of custom attributes to the documents (should it be desired), an attachment of an access control list to the documents added to the index, a storage of the text, a pre-processing of the text (and storage thereof), etc.
- an intake request is received.
- the frontend 104 receives the intake request.
- One or more documents are acquired from one or more data sources according to the request at 803. For example, when the request indicates a particular storage bucket, documents are gathered from that bucket. Note that acquiring could simply be pulling one or more documents from the intake request.
- the documents are acquired by crawling of one or more data sources at 805.
- This crawling of documents is performed by the connector service 180 in some embodiments and may include gathering from internal and/or external sources.
- the ACL for the acquired one or more documents is fetched at 807.
- ACLs may be used to determine what results a user can see for a performed inference.
- the ACL may be stored with the document or pointed to by the document’ s owner.
- Text is extracted from the acquired one or more documents and pre-processed at 809. Metadata may also be extracted. For example, text may be extracted from a document that includes non- text such as images.
- the pre-processing of the extracted text includes one or more of tokenizing, normalizing, and/or removing noise. This is performed by the extraction and pre processing pipeline 735 per document acquired. Note that extracted text may include passages.
- the extracted text and pre-processed text are stored at 811. This may be performed by the document storage service 208 which puts this extracted text and pre-processed text in text/document storage 109.
- the text and/or pre-processed text are used during inference.
- index entries for the extracted text are generated.
- the index entry includes a pointer to an ACL.
- the generation of the index includes mapping labels of the document into fields for the index entry.
- this mapping utilizes reserved fields. Reserved fields are “default” fields that allow for standardization across multiple different accounts. This standardization may help in the training of the models used in an inference as developing a corpus of training data should be easier when common labels are used (as opposed to training using different labels per user account). For example, a reserved field of “TITLE” allows user account 1 and user account 2 to use the same label in their documents.
- existing labels are mapped to the reserved fields. That mapping may be automatic or according to a mapping provided by an administrator ⁇
- the underlying acquired documents are stored at 815.
- FIG. 9 illustrates embodiments of exemplary reserved fields for use in ingestion.
- Documents can use labels to indicate what the text is. For example, a label indicating the text is the title.
- index entries include fields for the text content and these fields correspond to labels.
- a set of “reserved” labels may be utilized in index entry fields. These reserved labels allow for text to be labeled in a common manner between documents, users, etc.
- Examples of names of “reserved” fields 901 and their corresponding datatypes 903 are shown. In some embodiments, body and title are default. While these fields are “reserved,” in some embodiments these fields are updatable. For example, if the name “modification date” is not what anyone is using, it can be changed to reflect usage. Additionally, new “reserved” fields may be added as needed or desired. Note that the use of “reserved” fields may be overridden in some embodiments.
- FIG. 10 illustrates embodiments of a graphical user interface to be used in updating/adding/removing reserved fields for use in ingestion.
- a GUI 1000 allows for a user to adjust reserved fields including adding a field, removing a field, and updating a field.
- the GUI 1000 includes a reserved field search mechanism 1004 (e.g., an input box).
- the user may further define the dataset using a dataset indicator/selector 1002. For example, the user may define that HR documents have a certain set of reserved fields, whereas finance documents use a different set.
- the display includes, per reserved field, a reserved field name 1006, an explicit mapping to the name field 1008, data type field 1012, and an indication of if the reserved field is used.
- the reserved field name 1006 is the label used by the indexing service 140.
- the explicit mapping to the name field 1008 allows for a user to provide to the indexing service 140 a mapping of labels in existing documents to the reserved field.
- the fields 1006, 1008, and 1012 are editable and the application of the update field functionality 1016 commits changes.
- a new reserved field entry is added allowing a user to add reserved field name, an explicit mapping to the name field, data type field, and an indication of if the reserved field is used. This may be performed using one or more GUIs (not shown).
- a field can be removed using the use field 1014 and then applying the remove field functionality 1014.
- FIG. 11 illustrates embodiments of a model building system.
- Model building system may be utilized to build the model and refresh it.
- Depicted model building system includes frontend 104 coupled to an ingestion service 130, a model building pipeline 160 coupled to the ingestion service 130, a metric aggregator 1102, a control plane 170, and a model storage service 1104.
- Depicted model building system includes metric aggregator 1102 coupled to control plane 170, and model storage service 1104 coupled to model management service 150.
- Depicted model management service is coupled to model hosting service 110, which may host one or any combination of: document/passage ranking model(s) 212A, question/answer model 212B, and FAQ model 212C.
- ingestion service 130 receives a document or documents that are to be ingested, and sends a report of the ingestion metrics (e.g., metrics that indicate the number of documents, the index size of the corpus of documents, index failures, etc.) to metric aggregator 1102, metric aggregator 1102 polls if document corpus has changed enough (e.g., exceed a threshold) to trigger model building, when the model build is triggered, an indication is sent to control plane 170 such that the control plane cause the model building pipeline 160 to build the model (e.g., machine learning model), the built model is then saved by model storage service 1104.
- the ingestion metrics e.g., metrics that indicate the number of documents, the index size of the corpus of documents, index failures, etc.
- metric aggregator 1102 polls if document corpus has changed enough (e.g., exceed a threshold) to trigger model building, when the model build is triggered, an indication is sent to control plane 170 such that the control plane cause the model building
- Model building system may further include a training data generation service 1108, e.g., to create training data 1110 from the user’s data.
- Training data 1110 may be utilized by the model building pipeline 160 in creation of a model and/or used by model management service 150 in the refresh of a model.
- a model (e.g., at or after initial use) may have improved functionality with further training.
- the training may be based at least in part on feedback input 1106, e.g., feedback provided by a user.
- a model management service 150 is to pull the model (e.g., from model storage service 1104) and refresh it (e.g., based on feedback input 1106). Refreshing the model may include utilizing the feedback (e.g., from feedback input 1106 or other feedback) in a next training iteration of the model.
- a model refresh (or displaying of a proper subset of the data for labeling by the user in active learning) may be triggered in response to exceeding a confidence difference threshold for a difference between a first confidence score for a first section (e.g., a first, highest scored candidate answer or candidate document) of the proper subset of the data with respect to its relevance to the search query and a second confidence score for a second section (e.g., a second, next highest scored candidate answer or candidate document) of the proper subset of the data with respect to its relevance to the search query.
- a confidence difference threshold for a difference between a first confidence score for a first section (e.g., a first, highest scored candidate answer or candidate document) of the proper subset of the data with respect to its relevance to the search query and a second confidence score for a second section (e.g., a second, next highest scored candidate answer or candidate document) of the proper subset of the data with respect to its relevance to the search query.
- a proper subset of the data (e.g., answers and/or documents) for presentation to the user (e.g., to be used for labeling by the user in active learning) may be selected based on a confidence value of the proper subset of the data the model returns for a search query.
- the feedback input 1106 may include click-through data (e.g., how many times a provided link is selected by a user) and/or customer annotated data (e.g., as discussed below in reference to FIGS. 13 and 14).
- click-through data e.g., how many times a provided link is selected by a user
- customer annotated data e.g., as discussed below in reference to FIGS. 13 and 14.
- a model may include an input of a search query for a search of ingested data (e.g., the user’s documents) and an output of a best answer from a plurality of answers from the data and/or an output of a best document from a plurality of documents from the data.
- Active learning may be utilized to train the model where a user is to request that the user indicate the desired output (e.g., answer(s) or document(s)) for an input (e.g., search query).
- certain embodiments herein present a proper subset of the data to the user for their indication which answers and/or documents are the most important for a search query.
- these embodiments allow a user to perform the labeling (e.g., as being important enough to use for a next iteration of training) of the data without overwhelming them with uninformative document(s).
- active learning is applied to suggest a specific subset of user query (or queries) and document candidates and/or answer candidates to a user (e.g., a human) for labeling.
- a user e.g., a human
- the suggested subset of document candidates and/or answer candidates provide more value towards improving the machine learning model compared to a randomly sampled set.
- One example is to check the difference between the confidence scores from the top candidates, e.g., and if the difference is less than a threshold, the model then needs refinement on such queries.
- Another example is diversity sampling in order to have larger coverage of the data.
- a user e.g., customer
- can label the relevance of the document and answer candidates e.g., by selecting an interface element of a graphical user interface.
- a threshold amount of annotated data e.g. 1000 samples
- the machine learning model is retrained using the annotated data (e.g., and the accuracy of the retrained model is evaluated on a held-out set of data from the user’s data (e.g., ingested data)).
- the improvement exceeds a certain threshold, the previous version of the model is replaced with the retrained model. The above can be repeated based on a pre-determined schedule.
- FIG. 12 illustrates embodiments of a method for model management, for example, implemented by model management service 150.
- Depicted model management includes (optionally) receiving a search query 1201, (optionally) performing a search of data of a user, using a machine learning model, for the search query to generate a result 1203, and (optionally) providing a result of the search to the user 1205.
- Active learning 1207 includes generating a confidence score (e.g., by the machine learning model) based on the result of the search 1209, selecting a proper subset of the data based at least in part on a confidence score of the proper subset of the data 1211, displaying the proper subset of the data to the user 1213, receiving an indication from the user of one or more sections of the proper subset of the data for use in a next training iteration of the machine learning model for the search query 1215, performing the next training iteration of the machine learning model with the one or more sections of the proper subset of the data 1217, and (optionally) replacing a previous version of the machine learning model used for the search query with a next version generated from the next training iteration when an accuracy score for the next version exceeds an accuracy score for the previous version 1219.
- a confidence score e.g., by the machine learning model
- another search query may be received 1221, then performing the another search query of data of the user using the machine learning model trained with the one or more sections of the proper subset of the data 1223, and providing a result of the another search to the user 1225.
- FIG. 13 illustrates embodiments of a graphical user interface 1300 to be used in active learning of question and answer(s) for training a machine learning model.
- Depicted graphical user interface 1300 includes a field 1302 that is customizable with text to indicate that the user is to take an action (e.g., “Please select the following answer(s) that are relevant to the indicated query”) and a field 1304 to be populated with the query that the user is to label the answers for relevancy.
- the number of candidate answers 1306 may be indicated.
- Graphical user interface 1300 includes a plurality of entries 1308A-B and each entry includes a feedback input 1310A-B, respectively. Although two entries are shown, any plurality of entries may be utilized (e.g., where “X” is any positive integer).
- a query 1304 that is to have active learning performed on it is provided as well as a plurality of candidate answers, e.g., as discussed herein. For example, with candidate answers including a passage 1312 with the answer highlighted (e.g., bold, underlined, marked as a different color, etc.) and the passage of surrounding text also included (e.g., to provide context to the user for their reading comprehension of the answer and its possible relevancy to the query).
- a link 1314 may also be included to the source document.
- Candidate answer 1 1308A includes a passage 1312A stating “There is no charge for this option. We will pick up your return at the address of your choice.” A user may deem that candidate answer 1 to be relevant (e.g., a most important answer(s)) and mark feedback input 1310A (shown as a checkbox as an example).
- Candidate answer 2 1308B includes a passage 1312B stating “If you choose the Pickup option and the return is not a result of our error, you will be charged a convenience fee of $XX.XX for the Pickup.” (where XX.XX is an actual number value).
- a user may deem that candidate answer 2 to be relevant (e.g., independent of candidate answer 1 being relevant) and mark feedback input 1310B (shown as a checkbox as an example).
- the highlighting may be added to the result provided by the model, and the surrounding words (e.g., the sentence before and/or after the result) also provided.
- Feedback input 1310 may be another interface element, such as, but not limited to a thumbs up (or down), checkbox, button, dropdown menu, etc.
- a user may click the submit interface element 1316 to cause the feedback input(s) to be sent, e.g., as feedback input 1106 in FIG. 11.
- Feedback input may be aggregated, e.g., to trigger a retrain of a model as discussed herein.
- FIG. 14 illustrates embodiments of a graphical user interface to be used in active learning of document ranking for training a machine learning model.
- Depicted graphical user interface 1400 includes a field 1402 that is customizable with text to indicate that the user is to take an action (e.g., “Please select the following document(s) that are relevant to the indicated query”) and a field 1404 to be populated with the query that the user is to label the documents for relevancy.
- the number of candidate documents 1406 may be indicated.
- Graphical user interface 1400 includes a plurality of entries 1408A-B and each entry includes a feedback input 1410A-B, respectively. Although two entries are shown, any plurality of entries may be utilized (e.g., where “X” is any positive integer).
- a query 1404 that is to have active learning performed on it is provided as well as a plurality of candidate documents, e.g., as discussed herein. For example, with candidate documents including a link 1412 to the (e.g., hosted in storage 109) document.
- a user may click the submit interface element 1416 to cause the feedback input(s) to be sent, e.g., as feedback input 1106 in FIG. 11.
- Feedback input may be aggregated, e.g., to trigger a retrain of a model as discussed herein.
- Training data may include a question and a corresponding answer from a user’s data (e.g., in contrast to public data or data from other enterprises).
- Training data may be used by a model building system (e.g., model building system depicted in FIG. 11).
- Model building system may include a training data generation service (e.g., training data generation service 1108 in FIG.
- a request to build a model causes a service (e.g., training data generation service 1108 in FIG. 11) to generate training data from a user’s data.
- Training data may include questions and their corresponding answers, e.g., candidate questions generated by the service for probable answers in a user’ s data.
- Completed training data may then be provided to a model building pipeline for use in building a model specifically for a user’s data.
- FIG. 16 illustrates embodiments of a method for training and use of a question generation model.
- the training data to be generated is a set of one or more candidate questions from a user’s data (e.g., the user’s documents, passages, etc.) containing answers.
- Depicted method in FIG. 16 includes training of a question generation model 1601.
- the training of question generation model 1601 includes training a (e.g., language) machine learning model with known question and answer pairs to predict a question from an answer 1603.
- the known question and answer pairs may be data that does not include the user’s data (e.g., data not from the user), e.g., this data may be public data.
- ML language machine learning
- ML language machine learning
- Certain embodiments herein modify a language ML model used to predict the next word for each successive word of a string of text to predict each next (e.g., successive) word of a question for a given answer, e.g., to predict each successive word of a known question (e.g., a multiple word question) from its known answer (e.g., a multiple word answer).
- a known question e.g., a multiple word question
- One example language ML model is a transformer model (e.g., a GPT-2 model) that is first trained on (e.g., a very large amount of) data in an unsupervised manner using language modeling as a training signal, and is second fine-tuned on much smaller supervised datasets (e.g., known questions and their corresponding known answers) to help it solve specific tasks.
- a transformer model e.g., a GPT-2 model
- the training data (e.g., which has been generated by a machine and not by a human or using human’s annotations) is then used to train another machine learning model.
- a second machine learning model e.g., document/passage ranking model(s) 212A, question/answer model 212B, and FAQ model 212C
- the set of question and answer pairs (e.g., from training data 1110 storage in FIG. 11) generated from the one or more documents of the user’s, to determine one or more top ranked answers from data of the user for a search query from the user 1611.
- the second machine learning model After training the second machine learning model, it may then be used, for example, after receiving a search query from the user 1613, for performing the search query on data (e.g., documents) of the user using the second machine learning model 1615, and providing a result of the search query to the user 1617, e.g., a result of one or more of a top ranked document, top ranked passage, or top ranked question.
- data e.g., documents
- a result of the search query e.g., a result of one or more of a top ranked document, top ranked passage, or top ranked question.
- the language ML model is also trained to detect an end of question (EOQ) token.
- the input to a language model to generate training data includes a passage having the answer and the question, for example, in the format of a beginning of service indicator (e.g., ⁇ bos>) followed by beginning of question indicator (e.g., ⁇ boq>), followed by the question, and then followed by an end of question indicator (e.g., ⁇ eoq>).
- FIG. 18 illustrates a second set of example candidate questions generated by a question generation model trained on known question and answer pairs.
- example synthetic question generation 1800 includes a known question 1802 (e.g., with an end of question token), a passage with a known answer 1804 to the known question 1802, and illustrates the candidate questions (e.g., and their end of question token ⁇ eoq>) generated by the model 1806 trained to generate synthetic questions from those two inputs 1802 and 1804.
- the model trained to do so may thus be used on a user’s data to generate specific training data based on the user’s (e.g., customer’s) documents, e.g., instead of only being trained on other’s documents.
- a same model is used to generate questions 1806 in FIG. 18 and questions 1706 in FIG. 17.
- Trained model may then be used to generate training data that is subsequently used to train a second machine learning model (e.g., document/passage ranking model(s) 212A, question/answer model 212B, and FAQ model 212C), e.g., and the trained, second machine learning model used as discussed herein.
- a second machine learning model e.g., document/passage ranking model(s) 212A, question/answer model 212B, and FAQ model 212C
- a customer of the service provider such as the operator of customer network(s) 2050A-2050C may, for example, implement customer-specific applications and present the customer’ s applications on an intermediate network 2040, such as the Internet.
- Other network entities 2020 on the intermediate network 2040 may then generate traffic to a destination public IP address 2014 published by the customer network(s) 2050A-2050C; the traffic is routed to the service provider data center, and at the data center is routed, via a network substrate, to the local IP address 2016 of the virtualized computing resource instance 2012 currently mapped to the destination public IP address 2014.
- response traffic from the virtualized computing resource instance 2012 may be routed via the network substrate back onto the intermediate network 2040 to the source entity 2020.
- Public IP addresses are Internet mutable network addresses that are assigned to resource instances, either by the service provider or by the customer. Traffic routed to a public IP address is translated, for example via 1:1 NAT, and forwarded to the respective local IP address of a resource instance.
- customer IP addresses allow the customer to mask resource instance or availability zone failures by remapping the customer’s public IP addresses to any resource instance associated with the customer’s account.
- the customer IP addresses for example, enable a customer to engineer around problems with the customer’s resource instances or software by remapping customer IP addresses to replacement resource instances.
- FIG. 21 is a block diagram of an example provider network that provides a storage service and a hardware virtualization service to customers, according to some embodiments.
- Hardware virtualization service 2120 provides multiple computation resources 2124 (e.g., VMs) to customers.
- the computation resources 2124 may, for example, be rented or leased to customers of the provider network 2100 (e.g., to a customer that implements customer network 2150).
- Each computation resource 2124 may be provided with one or more local IP addresses.
- Provider network 2100 may be configured to route packets from the local IP addresses of the computation resources 2124 to public Internet destinations, and from public Internet sources to the local IP addresses of computation resources 2124.
- the virtualization service(s) may also be accessed from resource instances within the provider network 2100 via API(s) 2102.
- a customer, appliance service provider, or other entity may access a virtualization service from within a respective virtual network on the provider network 2100 via an API 2102 to request allocation of one or more resource instances within the virtual network or within another virtual network.
- a system that implements a portion or all of the techniques described herein may include a general-purpose computer system that includes or is configured to access one or more computer-accessible media, such as computer system 2200 illustrated in FIG. 22.
- computer system 2200 includes one or more processors 2210 coupled to a system memory 2220 via an input/output (FO) interface 2230.
- Computer system 2200 further includes a network interface 2240 coupled to FO interface 2230. While FIG. 22 shows computer system 2200 as a single computing device, in various embodiments a computer system 2200 may include one computing device or any number of computing devices configured to work together as a single computer system 2200.
- System memory 2220 may store instructions and data accessible by processor(s) 2210.
- system memory 2220 may be implemented using any suitable memory technology, such as random-access memory (RAM), static RAM (SRAM), synchronous dynamic RAM (SDRAM), nonvolatile/Flash-type memory, or any other type of memory.
- RAM random-access memory
- SRAM static RAM
- SDRAM synchronous dynamic RAM
- program instructions and data implementing one or more desired functions, such as those methods, techniques, and data described above are shown stored within system memory 2220 as enterprise search service code 2225 and data 2226.
- I/O interface 2230 may be split into two or more separate components, such as a north bridge and a south bridge, for example. Also, in some embodiments some or all of the functionality of I/O interface 2230, such as an interface to system memory 2220, may be incorporated directly into processor 2210.
- a computer system 2200 includes one or more offload cards 2270 (including one or more processors 2275, and possibly including the one or more network interfaces 2240) that are connected using an I/O interface 2230 (e.g., a bus implementing a version of the Peripheral Component Interconnect - Express (PCI-E) standard, or another interconnect such as a QuickPath interconnect (QPI) or UltraPath interconnect (UPI)).
- PCI-E Peripheral Component Interconnect - Express
- QPI QuickPath interconnect
- UPI UltraPath interconnect
- the computer system 2200 may act as a host electronic device (e.g., operating as part of a hardware virtualization service) that hosts compute instances, and the one or more offload cards 2270 execute a virtualization manager that can manage compute instances that execute on the host electronic device.
- the offload card(s) 2270 can perform compute instance management operations such as pausing and/or un-pausing compute instances, launching and/or terminating compute instances, performing memory transfer/copying operations, etc.
- Most embodiments utilize at least one network that would be familiar to those skilled in the art for supporting communications using any of a variety of widely-available protocols, such as Transmission Control Protocol / Internet Protocol (TCP/IP), File Transfer Protocol (FTP), Universal Plug and Play (UPnP), Network File System (NFS), Common Internet File System (CIFS), Extensible Messaging and Presence Protocol (XMPP), AppleTalk, etc.
- the network(s) can include, for example, a local area network (LAN), a wide-area network (WAN), a virtual private network (VPN), the Internet, an intranet, an extranet, a public switched telephone network (PSTN), an infrared network, a wireless network, and any combination thereof.
- the web server can ran any of a variety of server or mid-tier applications, including HTTP servers, File Transfer Protocol (FTP) servers, Common Gateway Interface (CGI) servers, data servers, Java servers, business application servers, etc.
- the server(s) also may be capable of executing programs or scripts in response requests from user devices, such as by executing one or more Web applications that may be implemented as one or more scripts or programs written in any programming language, such as Java®, C, C# or C++, or any scripting language, such as Perl, Python, PHP, or TCL, as well as combinations thereof.
- the server(s) may also include database servers, including without limitation those commercially available from Oracle(R), Microsoft(R), Sybase(R), IBM(R), etc.
- the database servers may be relational or non-relational (e.g., “NoSQL”), distributed or non-distributed, etc.
- Environments disclosed herein can include a variety of data stores and other memory and storage media as discussed above. These can reside in a variety of locations, such as on a storage medium local to (and/or resident in) one or more of the computers or remote from any or all of the computers across the network. In a particular set of embodiments, the information may reside in a storage-area network (SAN) familiar to those skilled in the art. Similarly, any necessary files for performing the functions attributed to the computers, servers, or other network devices may be stored locally and/or remotely, as appropriate.
- SAN storage-area network
- each such device can include hardware elements that may be electrically coupled via a bus, the elements including, for example, at least one central processing unit (CPU), at least one input device (e.g., a mouse, keyboard, controller, touch screen, or keypad), and/or at least one output device (e.g., a display device, printer, or speaker).
- CPU central processing unit
- input device e.g., a mouse, keyboard, controller, touch screen, or keypad
- output device e.g., a display device, printer, or speaker
- Such a system may also include one or more storage devices, such as disk drives, optical storage devices, and solid-state storage devices such as random-access memory (RAM) or read-only memory (ROM), as well as removable media devices, memory cards, flash cards, etc.
- RAM random-access memory
- ROM read-only memory
- Such devices can include a computer-readable storage media reader, a communications device (e.g., a modem, a network card (wireless or wired), an infrared communication device, etc.), and working memory as described above.
- the computer-readable storage media reader can be connected with, or configured to receive, a computer-readable storage medium, representing remote, local, fixed, and/or removable storage devices as well as storage media for temporarily and/or more permanently containing, storing, transmitting, and retrieving computer-readable information.
- the system and various devices also typically will include a number of software applications, modules, services, or other elements located within at least one working memory device, including an operating system and application programs, such as a client application or web browser.
- Bracketed text and blocks with dashed borders are used herein to illustrate optional operations that add additional features to some embodiments. However, such notation should not be taken to mean that these are the only options or optional operations, and/or that blocks with solid borders are not optional in certain embodiments.
- Reference numerals with suffix letters may be used to indicate that there can be one or multiple instances of the referenced entity in various embodiments, and when there are multiple instances, each does not need to be identical but may instead share some general traits or act in common ways. Further, the particular suffixes used are not meant to imply that a particular amount of the entity exists unless specifically indicated to the contrary. Thus, two entities using the same or different suffix letters may or may not have the same number of instances in various embodiments.
- references to “one embodiment,” “an embodiment,” “an example embodiment,” etc., indicate that the embodiment described may include a particular feature, structure, or characteristic, but every embodiment may not necessarily include the particular feature, structure, or characteristic. Moreover, such phrases are not necessarily referring to the same embodiment. Further, when a particular feature, structure, or characteristic is described in connection with an embodiment, it is submitted that it is within the knowledge of one skilled in the art to affect such feature, structure, or characteristic in connection with other embodiments whether or not explicitly described.
- disjunctive language such as the phrase “at least one of A, B, or C” is intended to be understood to mean either A, B, or C, or any combination thereof (e.g., A, B, and/or C). As such, disjunctive language is not intended to, nor should it be understood to, imply that a given embodiment requires at least one of A, at least one of B, or at least one of C to each be present. [00153] At least some embodiments of the disclosed technologies can be described in view of the following clauses:
- a computer-implemented method comprising: receiving a document search query; querying at least one index based upon the document search query to identify matching data, matching data including one or more of a set of documents including a set of frequently asked questions; fetching the identified matched data; determining one or more of a best matching passage, best matching documents, and a best matching frequently asked question from the set of documents based upon one or more invocations of one or more machine learning models based at least on the fetched identified matched data and the document search query by: ranking a set of best matching documents from the identified set of documents using at least first machine learning model to determine best matching documents, determining a set of best matching passages from the identified set of passages using a second machine learning model, determining a best matching passage from the set of best matching passages using a third machine learning model, and determining a best matching frequently asked question of the identified set of frequently asked questions using a fourth machine learning model; and displaying one or more of the best matching passage, the best matching documents, and the best matching frequently asked question
- a computer-implemented method comprising: receiving a document search query; querying at least one index based upon the document search query to identify matching data; fetching the identified matched data; determining one or more of a top ranked passage and top ranked documents from the set of documents based upon one or more invocations of one or more machine learning models based at least on the fetched identified matched data and the document search query by: determining a proper subset of documents from the identified set of documents, identifying, based on the document search query, a set of passages from the proper subset of documents, determining a proper subset of passages from the identified set of set of passages, determining a top ranked passage from the proper subset of best matching passages; and returning one or more of the top ranked passage and the proper subset of documents.
- a system comprising: data storage to store a set of documents; and a search service implemented by one or more electronic devices, the search service including instructions that upon execution cause the search service to: receive a document search query, query at least one index based upon the document search query to identify matching data, fetch the identified matched data, determine one or more of a top ranked passage and top ranked documents from the set of documents based upon one or more invocations of one or more machine learning models based at least on the fetched identified matched data and the document search query to: determine a proper subset of documents from the identified set of documents, identify, based on the document search query, a set of passages from the proper subset of documents, determine a proper subset of passages from the identified set of set of passages, and determine a top ranked passage from the proper subset of best matching passages, and return one or more of the top ranked passage and the proper subset of documents.
- the one or more machine learning models determining a proper subset of documents from the identified set of documents is performed using a first machine learning model, determining a proper subset of passages from the identified set of set of passages is performed using a second machine learning model, and determining a top ranked passage from the proper subset of best matching passages is performed using a third machine learning model.
- the first machine learning model is a deep cross network model and the second and third machine learning models are bidirectional encoder representations from transformers models.
- a computer-implemented method comprising : receiving an intake request to ingest at least one document for an enterprise; acquiring the at least one document from at least one data source by: crawling for documents in the at least one data source, fetching an access control list for the at least one document; extracting text from the acquired at least one document; pre-processing the extracted text to generate pre-processed text that is predictable and analyzable; generating an index entry for the extracted text, the index entry to map the extracted text to one or more reserved fields of a plurality of reserved fields; and storing the extracted text, index entry, pre-processed text, and the at least one document in at least one data storage location.
- a data type for the one or more reserved fields include a text data type, a date data type, and a numerical data type.
- a computer-implemented method comprising: receiving an intake request to ingest a document; extracting text from the document; pre-processing the extracted text to generate pre-processed text that is predictable and analyzable; generating an index entry for the extracted text, the index entry to map the extracted text to a reserved field of a plurality of reserved fields; and storing the extracted text, index entry, and pre-processed text in at least one data storage location.
- a data type for the reserved field is selected from a text data type, a date data type, and a numerical data type.
- the pre-processing includes at least one of: tokenizing the extracted text; breaking down the extracted into overlapping passages based on sliding windows; normalizing the tokens; and removing noise from the extracted text.
- a system comprising: data storage to store one or more documents; a search service implemented by one or more electronic devices, the search service including instructions that upon execution cause the search service to: receive an ingestion request to ingest a document from the data storage, extract text from the document, pre-process the extracted text to generate pre-processed text that is predictable and analyzable, generate an index entry for the extracted text, the index entry to map the extracted text to a reserved field of a plurality of reserved fields, and store the extracted text, index entry, and pre-processed text in at least one data storage location.
- a data type for the reserved field is selected from a text data type, a date data type, and a numerical data type.
- the pre-processing includes at least one of: tokenizing the extracted text; breaking down the extracted into overlapping passages based on sliding windows; normalizing the tokens; and removing noise from the extracted text
- a computer-implemented method comprising: receiving a document search query; querying at least one index based upon the document search query to identify matching data; fetching the identified matched data; determining one or more of a top ranked passage, top ranked documents, and a top ranked frequently asked question from set of documents based upon one or more invocations of one or more machine learning models based at least on the fetched identified matched data and the document search query; determining an aspect of the one or more of a top ranked passage, top ranked documents, and a top ranked frequently asked question has a confidence value that exceeds a first confidence threshold with respect to its relevance to the document search query; and displaying the one or more of the top ranked passage, the proper subset of documents, and the top ranked frequently asked question including an emphasis on the aspect of the result exceeds the first confidence threshold.
- a computer-implemented method comprising: receiving a search query; performing the search query on a plurality of documents, the documents including text passages, to generate a search query result; determining an aspect of the search query result that has a confidence value that exceeds a first confidence threshold with respect to its relevance to the search query; and displaying the search result including an emphasis on the aspect of the result exceeds the first confidence threshold.
- a system comprising: data storage to store a plurality of documents; and a search service implemented by one or more electronic devices, the search service including instructions that upon execution cause the search service to: receive a search query, perform the search query on a plurality of documents, the documents including text passages, to generate a search query result, determine an aspect of the search query result that has a confidence value that exceeds a first confidence threshold with respect to its relevance to the search query, and display the search result including an emphasis on the aspect of the result exceeds the first confidence threshold.
- search service is further to: determine the aspect of the one or more of a top ranked passage, top ranked documents, and a top ranked frequently asked question has a confidence value that exceeds a second confidence threshold with respect to its relevance to the document search query, wherein when the first and second confidence thresholds are exceeded the emphasis is highlighting.
- any of examples 55-59 wherein the emphasis is one or more of highlighting, text coloring, bolding, underlining, a change in font size, a change in font, or a stylization of a font.
- a computer-implemented method comprising: receiving a search query from a user of data of the user; performing a search of the data of the user, using a machine learning model, for the search query to generate a result; generating a confidence score for the result of the search; selecting a proper subset of the data to be provided to the user based on the confidence score; displaying the proper subset of the data to the user via a graphical user interface; receiving an indication from the user via the graphical user interface of one or more sections of the proper subset of the data for use in a next training iteration of the machine learning model for the search query; and performing the next training iteration of the machine learning model with the one or more sections of the proper subset of the data.
- a computer-implemented method comprising: performing a search of data of a user, using a machine learning model, for a search query to generate a result; generating a confidence score for the result of the search; selecting a proper subset of the data to be provided to the user based on the confidence score; displaying the proper subset of the data to the user; receiving an indication from the user of one or more sections of the proper subset of the data for use in a next training iteration of the machine learning model; and performing the next training iteration of the machine learning model with the one or more sections of the proper subset of the data.
- a system comprising: a data storage service implemented by a first one or more electronic devices to store data for a user; and a model management service implemented by a second one or more electronic devices, the model management service including instructions that upon execution cause the model management service to: perform a search of the data of the user, using a machine learning model, for a search query to generate a result, generate a confidence score for the result of the search, select a proper subset of the data to be provided to the user based on the confidence score, display the proper subset of the data to the user, receive an indication from the user of one or more sections of the proper subset of the data for use in a next training iteration of the machine learning model, and perform the next training iteration of the machine learning model with the one or more sections of the proper subset of the data.
- a computer-implemented method comprising : training a language machine learning model on a first one or more documents including known question and answer pairs to predict a question from an answer in the first one or more documents; receiving a second one or more documents from a user; generating a set of question and answer pairs from the second one or more documents from the user using the language machine learning model; and storing the set of question and answer pairs generated from the second one or more documents from the user.
- the computer- implemented method of example 81 wherein the training comprises training the language machine learning model to predict each successive word of a known question from its known answer for the known question and answer pairs.
- the computer-implemented method of example 81 further comprising training a machine learning model with the set of question and answer pairs generated from the second one or more documents.
- a computer-implemented method comprising: receiving one or more documents from a user; generating a set of question and answer pairs from the one or more documents from the user using a machine learning model trained to predict a question from an answer; and storing the set of question and answer pairs generated from the one or more documents from the user.
- training comprises training the machine learning model to predict each successive word of a known question from its known answer for the known question and answer pairs.
- training comprises training the machine learning model to predict an end of question token for the known question from the known answer.
- training data generation service includes instructions that upon execution cause the training data generation service to train the machine learning model with known question and answer pairs to predict the question from the answer.
- training data generation service includes instructions that upon execution cause the training data generation service to train the machine learning model to predict each successive word of a known question from its known answer for the known question and answer pairs.
- training data generation service includes instructions that upon execution cause the training data generation service to train the machine learning model to predict an end of question token for the known question from the known answer.
Landscapes
- Engineering & Computer Science (AREA)
- Physics & Mathematics (AREA)
- Theoretical Computer Science (AREA)
- Databases & Information Systems (AREA)
- Mathematical Physics (AREA)
- Computational Linguistics (AREA)
- Data Mining & Analysis (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Artificial Intelligence (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
Description
Claims
Applications Claiming Priority (6)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| US16/698,027 US20210158209A1 (en) | 2019-11-27 | 2019-11-27 | Systems, apparatuses, and methods of active learning for document querying machine learning models |
| US16/697,948 US11366855B2 (en) | 2019-11-27 | 2019-11-27 | Systems, apparatuses, and methods for document querying |
| US16/698,080 US11475067B2 (en) | 2019-11-27 | 2019-11-27 | Systems, apparatuses, and methods to generate synthetic queries from customer data for training of document querying machine learning models |
| US16/697,964 US11314819B2 (en) | 2019-11-27 | 2019-11-27 | Systems, apparatuses, and method for document ingestion |
| US16/697,979 US11526557B2 (en) | 2019-11-27 | 2019-11-27 | Systems, apparatuses, and methods for providing emphasis in query results |
| PCT/US2020/061947 WO2021108365A1 (en) | 2019-11-27 | 2020-11-24 | Systems, apparatuses, and methods for document querying |
Publications (1)
| Publication Number | Publication Date |
|---|---|
| EP4062295A1 true EP4062295A1 (en) | 2022-09-28 |
Family
ID=74046127
Family Applications (1)
| Application Number | Title | Priority Date | Filing Date |
|---|---|---|---|
| EP20829402.5A Withdrawn EP4062295A1 (en) | 2019-11-27 | 2020-11-24 | Systems, apparatuses, and methods for document querying |
Country Status (3)
| Country | Link |
|---|---|
| EP (1) | EP4062295A1 (en) |
| CN (1) | CN115004175A (en) |
| WO (1) | WO2021108365A1 (en) |
Families Citing this family (1)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| CN115658609A (en) * | 2022-10-14 | 2023-01-31 | 南京芯驰半导体科技有限公司 | A file viewing method, device, electronic equipment and storage medium |
Family Cites Families (6)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| US7185001B1 (en) * | 2000-10-04 | 2007-02-27 | Torch Concepts | Systems and methods for document searching and organizing |
| US8161036B2 (en) * | 2008-06-27 | 2012-04-17 | Microsoft Corporation | Index optimization for ranking using a linear model |
| CN104216913B (en) * | 2013-06-04 | 2019-01-04 | Sap欧洲公司 | Question answering method, system and computer-readable medium |
| US9330084B1 (en) * | 2014-12-10 | 2016-05-03 | International Business Machines Corporation | Automatically generating question-answer pairs during content ingestion by a question answering computing system |
| CN109219811B (en) * | 2016-05-23 | 2022-03-29 | 微软技术许可有限责任公司 | Related paragraph retrieval system |
| US10997221B2 (en) * | 2018-04-07 | 2021-05-04 | Microsoft Technology Licensing, Llc | Intelligent question answering using machine reading comprehension |
-
2020
- 2020-11-24 CN CN202080094631.8A patent/CN115004175A/en active Pending
- 2020-11-24 EP EP20829402.5A patent/EP4062295A1/en not_active Withdrawn
- 2020-11-24 WO PCT/US2020/061947 patent/WO2021108365A1/en not_active Ceased
Non-Patent Citations (1)
| Title |
|---|
| ANONYMOUS: "Cloud computing architecture - Wikipedia", 14 March 2017 (2017-03-14), XP093103348, Retrieved from the Internet <URL:http://web.archive.org/web/20170314130259/https://en.wikipedia.org/wiki/Cloud_computing_architecture> [retrieved on 20231120] * |
Also Published As
| Publication number | Publication date |
|---|---|
| WO2021108365A1 (en) | 2021-06-03 |
| CN115004175A (en) | 2022-09-02 |
Similar Documents
| Publication | Publication Date | Title |
|---|---|---|
| US11475067B2 (en) | Systems, apparatuses, and methods to generate synthetic queries from customer data for training of document querying machine learning models | |
| US11366855B2 (en) | Systems, apparatuses, and methods for document querying | |
| US11321329B1 (en) | Systems, apparatuses, and methods for document querying | |
| US11314819B2 (en) | Systems, apparatuses, and method for document ingestion | |
| CN111563141B (en) | Method and system for processing an input problem to query a database | |
| US10678835B2 (en) | Generation of knowledge graph responsive to query | |
| US11403356B2 (en) | Personalizing a search of a search service | |
| US11526557B2 (en) | Systems, apparatuses, and methods for providing emphasis in query results | |
| US20190005025A1 (en) | Performing semantic graph search | |
| US9519703B2 (en) | Refining search results for a compound search query | |
| US20210158209A1 (en) | Systems, apparatuses, and methods of active learning for document querying machine learning models | |
| US12265528B1 (en) | Natural language query processing | |
| CN105550206B (en) | The edition control method and device of structured query sentence | |
| CN104221017A (en) | Finding data in connected corpuses using examples | |
| US20240045893A1 (en) | Method and system for querying and deriving insights about network infrastructure using natural language queries | |
| US12346315B1 (en) | Natural language query processing | |
| US9690862B2 (en) | Realtime ingestion via multi-corpus knowledge base with weighting | |
| US9898467B1 (en) | System for data normalization | |
| US20150149497A1 (en) | Determining problem resolutions within a networked computing environment | |
| US11755596B2 (en) | Personalized NLS query suggestions using language models | |
| US11580126B1 (en) | Systems, apparatuses, and methods for request throttling | |
| Akdoğan | Elasticsearch Indexing | |
| EP4062295A1 (en) | Systems, apparatuses, and methods for document querying | |
| US12259914B1 (en) | Questions disambiguation using generative evidence fusion and round-trip prediction | |
| US20090234824A1 (en) | Browser Use of Directory Listing for Predictive Type-Ahead |
Legal Events
| Date | Code | Title | Description |
|---|---|---|---|
| STAA | Information on the status of an ep patent application or granted ep patent |
Free format text: STATUS: UNKNOWN |
|
| STAA | Information on the status of an ep patent application or granted ep patent |
Free format text: STATUS: THE INTERNATIONAL PUBLICATION HAS BEEN MADE |
|
| PUAI | Public reference made under article 153(3) epc to a published international application that has entered the european phase |
Free format text: ORIGINAL CODE: 0009012 |
|
| STAA | Information on the status of an ep patent application or granted ep patent |
Free format text: STATUS: REQUEST FOR EXAMINATION WAS MADE |
|
| 17P | Request for examination filed |
Effective date: 20220621 |
|
| AK | Designated contracting states |
Kind code of ref document: A1 Designated state(s): AL AT BE BG CH CY CZ DE DK EE ES FI FR GB GR HR HU IE IS IT LI LT LU LV MC MK MT NL NO PL PT RO RS SE SI SK SM TR |
|
| STAA | Information on the status of an ep patent application or granted ep patent |
Free format text: STATUS: EXAMINATION IS IN PROGRESS |
|
| 17Q | First examination report despatched |
Effective date: 20221020 |
|
| DAV | Request for validation of the european patent (deleted) | ||
| DAX | Request for extension of the european patent (deleted) | ||
| STAA | Information on the status of an ep patent application or granted ep patent |
Free format text: STATUS: THE APPLICATION HAS BEEN WITHDRAWN |
|
| 18W | Application withdrawn |
Effective date: 20240416 |