In the context of oil and gas industry, a drilling fluid is often used while drilling a wellbore. Generally, a drilling fluid is any fluid that is circulated in the borehole of a well to aid a drilling operation. For example, a drilling fluid may carry rock cuttings from a wellbore back to the surface. Drilling fluid may also be used to lubricate and cool a drill bit. Further, the drilling fluid, by hydrostatic pressure, may also assist in preventing the collapse of unstable strata into the wellbore as well as the intrusion of water from stratigraphic formations proximate the wellbore.
Drilling fluids are commonly classified as oil-based mud (OBM), water-based mud (WBM), brine-based fluid, or synthetic-based fluid. For any categorization, drilling fluids may be characterized by a variety of properties such as density, rheological properties, gels strengths, and electrical stability. Drilling is enhanced by tailoring and maintaining drilling fluid properties within a specified range based on the drilling requirements and subsurface formation. Typically, a drilling fluid is pumped into a wellbore and returns to the surface to be re-pumped into the wellbore forming a closed-loop circulation system. As such, the properties of a drilling fluid are continuously evolving while drilling due to interaction with the wellbore and the surrounding environment (e.g., subterranean formations, formation brine, etc.). Further, operational parameters controlling the drilling process (e.g., rate of penetration) may affect the properties of a drilling fluid. To maintain desired drilling fluid properties and to modify the properties of a drilling fluid according to changes in the subsurface while drilling, a chemical treatment must be applied to the drilling fluid.
Conventionally, treatment decisions are made by a drilling fluids specialist (DFS) based on measured properties of the circulated drilling fluid. Because treatment decisions rely on the expertise of individual drilling fluid specialists, treatments are not consistently applied often leading to issues of over- or undertreatment. Accordingly, there exists a need to automatically determine, without relying on the expertise of a DFS, the effect of a treatment applied to a drilling fluid.
This summary is provided to introduce a selection of concepts that are further described below in the detailed description. This summary is not intended to identify key or essential features of the claimed subject matter, nor is it intended to be used as an aid in limiting the scope of the claimed subject matter.
Embodiments disclosed herein generally relate to a method for determining drilling fluid properties. The method includes obtaining current drilling fluid properties for a drilling fluid used in a drilling operation, obtaining operational parameters related to the drilling operation, and obtaining a treatment, wherein the treatment describes one or more additives or processes to be applied the drilling fluid. The method further includes processing the current drilling fluid properties, the operational parameters, and the treatment with a treatment prediction system to determine a prediction for drilling fluid properties after treatment. The method further includes applying the treatment to the drilling fluid and using the drilling fluid, after application of the treatment, in the drilling operation.
Embodiments disclosed herein generally relate to a non-transitory computer-readable memory comprising computer-executable instructions stored thereon that, when executed on a processor, cause the processor to perform the following steps. The steps include obtaining current drilling fluid properties for a drilling fluid used in a drilling operation, obtaining operational parameters related to the drilling operation, and obtaining a treatment, wherein the treatment describes one or more additives or processes to be applied the drilling fluid. The steps further include processing the current drilling fluid properties, the operational parameters, and the treatment with a treatment prediction system to determine a prediction for drilling fluid properties after treatment, where, upon application of the treatment to the drilling fluid, the drilling fluid is used in the drilling operation.
Embodiments disclosed herein generally relate to a system for determining drilling fluid properties. The system includes a drilling system conducting a drilling operation where the drilling system includes a drilling fluid. The drilling system is configured to drill a wellbore through a subsurface. The system further includes a computer configured to: obtain current drilling fluid properties for the drilling fluid used in the drilling system; obtain operational parameters related to the drilling operation; obtain a treatment, wherein the treatment describes one or more additives or processes to be applied the drilling fluid; and process the current drilling fluid properties, the operational parameters, and the treatment with a treatment prediction system to determine a prediction for drilling fluid properties after treatment. Further, upon application of the treatment to the drilling fluid using the system, the drilling fluid is used in the drilling operation.
Other aspects and advantages of the claimed subject matter will be apparent from the following description and the appended claims.
In general, embodiments of the disclosure include systems and methods for determining the effect of a treatment applied to a drilling fluid, also called drilling mud (or, more simply, mud). Further, one or more embodiments relate to systems and methods for determining a treatment for a drilling fluid in order to achieve a desired set of drilling fluid properties. The methods and systems may further include an automated drilling fluid mixing process using real-time sensors and control systems. For example, various drilling fluid property values may be adapted by automatically deploying a treatment, where the treatment is determined by the methods and systems disclosed herein. In one or more embodiments, sensor data is collected at different stages of a drilling fluid mixing process, the sensor data is analyzed to determine a treatment, and the treatment is applied to the drilling fluid.
Thus, an automated mixing process may adjust a total drilling fluid volume and drilling fluid properties by adding fresh drilling fluid and additives throughout a continuous drilling operation. In some embodiments, for example, monitored drilling fluids properties may include rheological behavior, pH levels, and/or density values, such as specific gravity values, etc. The drilling fluid, with continuously monitored and updated drilling fluid properties may be circulated through a drill string into the wellbore. Thus, automating a drilling fluid mixing process and the determination of a desired treatment may increase efficiency in drilling fluid production, increase drilling fluid quality, and/or reduce losses of net productive time (NPT).
Turning to
Furthermore, drilling fluid properties may correspond to different physical qualities associated with drilling fluid, such as specific gravity values, viscosity levels, pH levels, rheological values such as flow rates, temperature values, resistivity values, mud mixture weights, mud particle sizes, and various other attributes that affect the role of drilling fluid in a wellbore. For example, a drilling fluid property may be selected by a user to have a desired predetermined value, which may include a range of acceptable values, a specific threshold value that should be exceeded, a precise scalar quantity, etc. As such, an automated drilling fluid manager or another control system may obtain sensor data (e.g., sensor data A (173), sensor data B (174), sensor data C (175)) from various drilling fluid property sensors (e.g., mud property sensors A (161), mud property sensors B (162), mud property sensors C (163)) regarding various drilling property parameters. Examples of drilling fluid property sensors include pH sensors, density sensors, rheological sensors, volume sensors, weight sensors, flow meters, etc. Likewise, sensor data may refer to both raw sensor measurements and/or processed sensor data associated with one or more drilling fluid properties (e.g., rheological data A (111), density data B (112), pH data C (113), volume data D (114), flow meter data E (115)).
In some embodiments, an automated drilling fluid manager includes functionality for managing one or more mixing stages of a drilling fluid (e.g., mud mixture A (154), mud mixture B (155), mud mixture C (156)) within a mixing tank (e.g., mixing tank A (151), mixing tank B (152), mixing tank C (153)). Furthermore, within this disclosure, “mud mixture” may refer to a mixture input or a mixture output of one or more mixing stages of a drilling fluid production process, while “drilling fluid” may refer to a final output of the drilling fluid production process that is sent to a wellbore. However, “mud mixture” and “drilling fluid” are not intended to have discrete meanings, and may be interchangeable at times, e.g., a “drilling fluid processing system” may manage “mud mixtures” at different stages of a “drilling fluid production process.”
With respect to a mixing tank, a mixing tank may be a container or other type of receptacle (e.g., a mud pit) for mixing various liquids, fresh mud, recycled mud, additives, and/or other chemicals to produce a particular mud mixture. For example, a mixing tank may be coupled to one or more mud supply tanks, one or more additive supply tanks, one or more dry/wet feeders (e.g., feeder A (141), feeder B (142)), and one or more control valves for managing the mixing of chemicals within a respective mixing tank. Control valves may be used to meter chemical inputs into a mixing tank, as well as release drilling fluid into a mixing tank. Likewise, a mixing tank may include and/or be coupled to various types of drilling fluid equipment not shown in
In some embodiments, the drilling fluid processing system (100) includes an automated material transfer system (e.g., automated material transfer system A (120)). In particular, an automated material transfer system may be a control system with functionality for managing supplies of bulk powder and other inputs for producing a preliminary mud mixture (e.g., preliminary mud mixture A (122)). For example, an automated material transfer system may include a pneumatic, conveyer belt or a screw-type transfer system (e.g., using a screw pump) that transports material from a supply tank upon a command from a sensor-mediated response. Once an automated drilling fluid manager actives an automated material transfer system, the automated material transfer system may monitor a mixing tank using weight sensors and/or volume sensors to meter a predetermined amount of bulk powder to a selected mixing tank. Likewise, the automated material transfer system may include hardware and/or software to provide water (e.g., using water supply tank (148)) to a mixing tank to produce a preliminary mud mixture. For example, water (or mineral oil or diesel in the case of oil-based muds) may be metered through a flow meter (e.g., flow meter F (149)) to a mixing tank. Once material for the preliminary mud mixture is transferred, the automated material transfer system may notify an automated drilling fluid manager that the task or mixing stage is complete. In some embodiments, for example, the preliminary mud mixture is a dry blended composition that has a predetermined accuracy with drilling fluid provided to a wellbore (e.g., drilling fluid properties that match 90-95% of a final mud mixture). For example, a preliminary mud mixture may be produced away from a wellsite and kept in a supply tank (e.g., bulk powder supply tank (121)) at the wellsite. Accordingly, an automated material transfer system may transfer additional amounts of materials from a supply tank upon command from a sensor-mediated response to fine-tune various drilling fluid properties.
Keeping with
Furthermore, the automated mud property system and/or the automated drilling fluid manager may monitor various drilling fluid properties in real-time using one or more mud property sensors. In some embodiments, the treatment prediction system (190) receives sensor data from one or more mud property sensors and determines the effect of a treatment (195). Herein, a treatment (195) is described as set of prescribed additives, and their amounts, and processes to be applied to a drilling fluid. For example, a treatment may specify the amount and type of viscosifier and weighting agent to be injected and/or mixed into a supply of recycled drilling fluid (185). In one or more embodiments, the treatment prediction system (190) includes user-specified desired drilling fluid properties (e.g., desired drilling fluid properties X (191)). In one or more embodiments, the treatment prediction system (190) determines the properties of a drilling fluid given an initial state of the drilling fluid and the application a specified treatment (195). In such cases, the predicted drilling properties may be compared to the desired drilling fluid properties to determine if the treatment should be applied. In other embodiments, the treatment prediction system (190) determines the treatment (195) that should be applied to a given drilling fluid, based on the current properties of the drilling fluid, in order to achieve the desired drilling fluid properties. For example, an automated drilling fluid manager may be coupled to the treatment prediction system (190) through a user interface provided by the automated drilling fluid manager or remotely over a network (e.g., a remote connection through Internet access or a wireless connection at a well site). Based on real-time updates received for a current mud mixture, the automated drilling fluid manager may implement a prescribed treatment where the treatment or effect of the treatment is determined by the treatment prediction system (190) (e.g., in response to changes in drilling operations in the wellbore).
The automated drilling fluid manager may include functionality for transmitting a command for causing drilling fluid to circulate through a drill string for continuous drilling, e.g., drilling fluid A (181), drilling fluid B (182), and drilling fluid C (183) shown in
Keeping with
The drill string (208) may include one or more drill pipes (209) connected to form conduit and a bottom hole assembly (BHA) (210) disposed at the distal end of the conduit. The BHA (210) may include a drill bit (212) to cut into the subsurface rock. The BHA (210) may include measurement tools (214), such as a measurement-while-drilling (MWD) tool and logging-while-drilling (LWD) tool. Measurement tools (214) may include sensors and hardware to measure downhole drilling parameters, and these measurements may be transmitted to the surface using any suitable telemetry system known in the art. The BHA (210) and the drill string (208) may include other drilling tools known in the art but not specifically shown.
The drill string (208) may be suspended in wellbore (202) by a derrick (218). A crown block (220) may be mounted at the top of the derrick (218), and a traveling block (222) may hang down from the crown block (220) by means of a cable or drilling line (224). One end of the cable (224) may be connected to a drawworks (226), which is a reeling device that may be used to adjust the length of the cable (224) so that the traveling block (222) may move up or down the derrick (218). The traveling block (222) may include a hook (228) on which a top drive (230) is supported.
The top drive (230) is coupled to the top of the drill string (208) and is operable to rotate the drill string (208). Alternatively, the drill string (208) may be rotated by means of a rotary table (not shown) on the drilling floor (231). Drilling fluid (commonly called “mud”) may be stored in a mud pit (232), and at least one pump (234) may pump the mud from the mud pit (232) into the drill string (208). The mud may flow into the drill string (208) through appropriate flow paths in the top drive (230) (or a rotary swivel if a rotary table is used instead of a top drive to rotate the drill string (208)). Drilling fluid (or mud) is any fluid that is circulated in the wellbore (202) to aid in the drilling operation. Drilling fluids may be broadly categorized according to their principal constituent. For example, a drilling fluid may be said to be an oil-based mud (OBM), water-based mud (WBM), brine-based fluid, or synthetic-based fluid. The base component for a water-based drilling fluid (or WBM) may be fresh water, seawater, brine, saturated brine, or a formate brine. The liquid part of a drilling fluid is known as “mud filtrate.” When a drilling fluid passes through a porous medium (e.g., subsurface formation (204, 206)), solid particulates suspended in the drilling fluid may become separated from the mud filtrate. Solid particulates, upon separation, may accumulate and form a layer commonly known as “mudcake.” Some well sites (200) may include a drilling fluid processing system (100) like that of
In some implementations, a drilling operations system (299) may be disposed at or communicate with the well site (200). Drilling operations system (299) may control at least a portion of a drilling operation at the well site (200) by providing controls to various components of the drilling operation. In one or more embodiments, drilling operations system (299) may receive data from one or more sensors (260) arranged to measure controllable parameters of the drilling operation. As a non-limiting example, sensors (260) may be arranged to measure: weight on bit (WOB), drill string rotational speed (e.g., rotations per minute (RPM)), flow rate of the mud pumps (e.g., in the units of gallons per minute (GPM)), and rate of penetration of the drilling operation (ROP). In one or more embodiments, the drilling operation may be controlled by the drilling operations system (299).
Sensors (260) may be positioned to measure parameter(s) related to the rotation of the drill string (208), parameter(s) related to travel of the traveling block (222), which may be used to determine ROP of the drilling operation, and parameter(s) related to flow rate of the pump (234). For illustration purposes, sensors (260) are shown on drill string (208) and proximate mud pump (234). The illustrated locations of sensors (260) are not intended to be limiting, and sensors (260) could be disposed wherever drilling parameters need to be measured. Moreover, there may be many more sensors (260) than shown in
During a drilling operation at the well site (200), the drill string (208) is rotated relative to the wellbore (202), and weight is applied to the drill bit (212) to enable the drill bit (212) to break rock as the drill string (208) is rotated. In some cases, the drill bit (212) may be rotated independently with a drilling motor. In some implementations, the drilling motor is a positive displacement motor (216) located on the distal end of the drill string (208) as part of the BHA (210). In further embodiments, the drill bit (212) may be rotated using a combination of the drilling motor, such as a positive displacement motor (216), and the top drive (230) (or a rotary swivel if a rotary table is used instead of a top drive to rotate the drill string (208)). While cutting rock with the drill bit (212), mud is pumped into the drill string (208).
The drilling fluid flows down the drill string (208) and exits into the bottom of the wellbore (202) through nozzles in the drill bit (212). The drilling fluid in the wellbore (202) then flows back up to the surface in an annular space between the drill string (208) and the wellbore (202) with entrained cuttings.
The drilling fluid with the cuttings is returned to the pit (232) to be circulated back again into the drill string (208). Typically, the cuttings are removed from the drilling, and the drilling fluid is reconditioned as necessary, before pumping the drilling fluid again into the drill string (208).
Depending on the depth of hydrocarbon bearing formation and other geological complexes, a well can have several hole sizes before it reaches its target depth. A steel pipe, or casing (not shown), may be lowered in each hole and a cement slurry may be pumped from the bottom up through the presumably annular space between the casing and the wellbore (202) to fix the casing, seal the wellbore from the surrounding subsurface (204, 206) formations, and ensure proper well integrity throughout the lifecycle of the well. The casing may be inserted periodically while drilling out the well.
Upon finishing drilling the wellbore (202), the well may undergo a “completions” process to stabilize the well and provide reliable access to the desired hydrocarbons. In some implementations, the final wellbore (202) can be completed using either cased and cemented pipe, which is later perforated to access the hydrocarbon, or it may be completed using a multi-stage open-hole packers assembly. Once completed, a well site (200) may be used in production to extract hydrocarbons from underground reservoirs.
In one aspect, embodiments disclosed herein relate to a treatment prediction system (190). The treatment prediction system may include user-specified desired drilling fluid properties (e.g., desired drilling fluid properties X (191)) and a treatment (195). In one or more embodiments, the treatment prediction system (190) automatically determines, without relying on the expertise of a DFS, the effect of a treatment applied to a drilling fluid given the treatment and the initial state, or determined properties, of the drilling fluid. In one or more embodiments, the treatment prediction system (190) prescribes a treatment to achieve a set of desired drilling fluid properties given the initial state, or determined properties, of the drilling fluid.
Keeping with
Keeping with
As seen in
The desired drilling fluid properties (304) indicate the desired properties of the drilling fluid as specified by a user or drilling fluid specialist (DFS) according to the determined needs of the drilling operation in view of the subsurface. For example, drilling may be optimized (e.g., reduction in drilling time to reach a target depth) by supplying a drilling fluid tailored to the specific circumstances of the drilling operation. As seen in
In one or more embodiments, the treatment prediction system (190) depicted in
As depicted in
Continuing with
Upon updating, the proposed treatment is considered a new proposed treatment. After Block 508, the inversion process returns to Block 190 such that the new proposed treatment may be processed anew by the treatment prediction system which produces a new prediction for the drilling fluid properties after treatment. The new prediction for the drilling fluid properties after treatment is compared to the desired drilling fluid properties to determine a new treatment update in Block 504. If the new treatment update is significant (i.e., not converged), the new proposed treatment is updated (in Block 508) resulting in another new proposed treatment. Without undue ambiguity, the new proposed treatment (and subsequent updates to new proposed treatment) can simply be referred to as the proposed treatment. That is, in
In accordance with one or more embodiments, the objective function (404) is given as
where ϕd is a measure of the data misfit (i.e., quantification of the difference between the desired drilling fluid properties (represented a vector ddesired) and the predicted drilling fluid properties after treatment), ϕm is a model regularization term, ϕq is a penalty term to enforce any desired physical constraints on the proposed treatment, and λi, i=1, . . . 2 are different Lagrange multipliers. The data misfit function Od, intuitively, makes use of the desired drilling fluid properties, ddesired, and the current drilling fluid properties, dcurrent, where the current drilling fluid properties are processed with the proposed treatment m to generate the predicted drilling fluid properties after treatment. The model regularization function ϕm, in addition to the proposed treatment vector, depends on a prior proposed treatment vector mp (i.e., prior, or expected values for the proposed treatment). The prior proposed treatment vector includes any prior information known about the proposed treatment. In one or more embodiments, the prior prosed treatment vector is the same as the initial, or original, proposed treatment vector. In one or more embodiments, the inversion system (402) uses a genetic algorithm.
Currently, a chemical and/or physics-based model for drilling fluid treatment and response prediction is not possible due to the complexity of the composition of drilling fluids and interactions with respect to the effects on drilling fluid properties between individual treatments (e.g., chemical additives). As such, in accordance with one or more embodiments, the treatment prediction system (190) includes a machine-learned model.
Machine learning (ML), broadly defined, is the extraction of patterns and insights from data. The phrases “artificial intelligence”, “machine learning”, “deep learning”, and “pattern recognition” are often convoluted, interchanged, and used synonymously throughout the literature. This ambiguity arises because the field of “extracting patterns and insights from data” was developed simultaneously and disjointedly among a number of classical arts like mathematics, statistics, and computer science. For consistency, the term machine learning (ML), or machine-learned, will be adopted herein, however, one skilled in the art will recognize that the concepts and methods detailed hereafter are not limited by this choice of nomenclature.
Machine-learned model types may include, but are not limited to, k-means, k-nearest neighbors, neural networks, logistic regression, random forests, generalized linear models, and Bayesian regression. Also, machine-learning encompasses model types that may further be categorized as “supervised”, “unsupervised”, “semi-supervised”, or “reinforcement” models. One with ordinary skill in the art will appreciate that additional or alternate machine-learned model categorizations may be defined without departing form the scope of this disclosure. Machine-learned model types are usually associated with additional “hyperparameters” which further describe the model. For example, hyperparameters providing further detail about a neural network may include, but are not limited to, the number of layers in the neural network, choice of activation functions, inclusion of batch normalization layers, and regularization strength. Commonly, in the literature, the selection of hyperparameters surrounding a model is referred to as selecting the model “architecture.”
A cursory introduction to a few machine-learned models and the general principles related to training a supervised machine-learned model are provided below. However, while descriptions of machine-learned models are provided to aid in understanding, one with ordinary skill in in the art will recognize that these descriptions do not impose a limitation on the instant disclosure. This is because one with ordinary skill in the art will appreciate that, due to the depth and breadth of the field, a detailed description of the field of machine learning, and the various model types encompassed by the field, cannot be adequately summarized in the present disclosure.
A commonly employed type of machine-learned model is a neural network (NN). A diagram of a neural network is shown in
Nodes (602) and edges (604) carry additional associations. Namely, every edge is associated with a numerical value. The edge numerical values, or even the edges (604) themselves, are often referred to as “weights” or “parameters.” While training a neural network (600), numerical values are assigned to each edge (604). Additionally, every node (602) is associated with a numerical variable and an activation function. Activation functions are not limited to any functional class, but traditionally follow the form
where i is an index that spans the set of “incoming” nodes (602) and edges (604) and ƒ is a user-defined function. Incoming nodes (602) are those that, when viewed as a graph (as in
and rectified linear unit function ƒ(x)=max(0, x), however, many additional functions are commonly employed. Every node (602) in a neural network (600) may have a different associated activation function. Often, as a shorthand, activation functions are described by the function ƒ by which it is composed. That is, an activation function composed of a linear function ƒ may simply be referred to as a linear activation function without undue ambiguity.
When the neural network (600) receives an input, the input is propagated through the network according to the activation functions and incoming node (602) values and edge (604) values to compute a value for each node (602). That is, the numerical value for each node (602) may change for each received input. Occasionally, nodes (602) are assigned fixed numerical values, such as the value of 1, that are not affected by the input or altered according to edge (604) values and activation functions. Fixed nodes (602) are often referred to as “biases” or “bias nodes” (606), displayed in
In some implementations, the neural network (600) may contain specialized layers (605), such as a normalization layer, or additional connection procedures, like concatenation. One skilled in the art will appreciate that these alterations do not exceed the scope of this disclosure.
As noted, the training procedure for the neural network (600) comprises assigning values to the edges (604). To begin training the edges (604) are assigned initial values. These values may be assigned randomly, assigned according to a prescribed distribution, assigned manually, or by some other assignment mechanism. Once edge (604) values have been initialized, the neural network (600) may act as a function, such that it may receive inputs and produce an output. As such, at least one input is propagated through the neural network (600) to produce an output. Training data is provided to the neural network (600). Generally, training data consists of pairs of inputs and associated targets. The targets represent the “ground truth”, or the otherwise desired output, upon processing the inputs. During training, the neural network (600) processes at least one input from the training data and produces at least one output. Each neural network (600) output is compared to its associated input data target. The comparison of the neural network (600) output to the target is typically performed by a so-called “loss function;” although other names for this comparison function such as “error function,” “misfit function,” and “cost function” are commonly employed. Many types of loss functions are available, such as the mean-squared-error function, however, the general characteristic of a loss function is that the loss function provides a numerical evaluation of the similarity between the neural network (600) output and the associated target. The loss function may also be constructed to impose additional constraints on the values assumed by the edges (604), for example, by adding a penalty term, which may be physics-based, or a regularization term. Generally, the goal of a training procedure is to alter the edge (604) values to promote similarity between the neural network (600) output and associated target over the training data. Thus, the loss function is used to guide changes made to the edge (604) values, typically through a process called “backpropagation”.
While a full review of the backpropagation process exceeds the scope of this disclosure, a brief summary is provided. Backpropagation consists of computing the gradient of the loss function over the edge (604) values. The gradient indicates the direction of change in the edge (604) values that results in the greatest change to the loss function. Because the gradient is local to the current edge (604) values, the edge (604) values are typically updated by a “step” in the direction indicated by the gradient. The step size is often referred to as the “learning rate” and need not remain fixed during the training process. Additionally, the step size and direction may be informed by previously seen edge (604) values or previously computed gradients. Such methods for determining the step direction are usually referred to as “momentum” based methods.
Once the edge (604) values have been updated, or altered from their initial values, through a backpropagation step, the neural network (600) will likely produce different outputs. Thus, the procedure of propagating at least one input through the neural network (600), comparing the neural network (600) output with the associated target with a loss function, computing the gradient of the loss function with respect to the edge (604) values, and updating the edge (604) values with a step guided by the gradient, is repeated until a termination criterion is reached. Common termination criteria are: reaching a fixed number of edge (604) updates, otherwise known as an iteration counter; a diminishing learning rate; noting no appreciable change in the loss function between iterations; reaching a specified performance metric as evaluated on the data or a separate hold-out data set. Once the termination criterion is satisfied, and the edge (604) values are no longer intended to be altered, the neural network (600) is said to be “trained.”
In accordance with one or more embodiments, to develop a machine-learned model for the treatment prediction system (190), many combinations of machine-learned model types and hyperparameters are developed and tested. As seen in the example of a neural network (NN), a supervised machine-learned model must be trained using a set of training data, where the set of training data consists of pairs of inputs and associated targets. In accordance with one or more embodiments, a set of training data is collected from historical data and includes the measured properties of a drilling fluid before and after a given treatment as well as the operational parameters at the time the treatment was applied. Thus, the set of training data includes past examples of treatments applied to drilling fluids and the effect of the treatment. In one or more embodiments, the past examples of treatments, operational parameters, and drilling fluid properties are collected over a diverse set of drilling operations (e.g., different geographic regions with varying lithologies) to promote robustness and generalization performance of the machine-learned model. In one or more embodiments, the set of training data is structured such that the drilling fluid properties before treatment, the operational parameters, and the treatment are considered as the inputs and the drilling fluid properties after treatment are considered as the target (See
In accordance with one or more embodiments, the general process for developing and using a machine-learned model for use in the treatment prediction system (190) is depicted in the flowchart of
In one or more embodiments, the set of training data may be preprocessed as shown in Block 704. Preprocessing, at a minimum, comprises altering the data so that it is suitable for use with machine-learned models. For example, numericalizing categorical data or removing data entries with missing values. Other typical preprocessing methods are normalization and imputation. Normalization is the process of transforming, or scaling, values of the set of training data with an intention to aid the machine-learned model. Imputation is the process of replacing missing values, corrupted values, or outlier values in a set of data with a substitute value so that the data may be used in a machine-learned model. One imputation strategy may be to replace values with the nearest acceptable value in the data set. In one or more embodiments, preprocessing requires the determination of one or more preprocessing parameters (e.g., the mean and standard deviation of a drilling fluid property over the set of training data). In general, information surrounding the preprocessing steps is saved as preprocessing parameters for potential later use. This allows future data instances to be preprocessed identically to those in the set of training data.
One with ordinary skill in the art with recognize that a myriad of preprocessing methods beyond numericalization, removal of modeling data entries with missing values, normalization, and imputation exist. Thus, the enumeration of a select few preprocessing methods herein do not impose a limitation on the preprocessing steps encompassed by this disclosure.
Keeping with
Once the set of training data is split, the training set, validation set, and test set are used to train, tune, evaluate, and select a machine-learned model for use in the treatment prediction system (190). In accordance with one or more embodiments, to discover a high performing machine-learning model, one or more machine-learned model types and associated model hyperparameters are tested. To do so, a set of machine-learned model types may be defined, for example, a set may be defined to contain the model types: {logistic regression, k-nearest neighbors, gradient boosting, neural network}. Block 708 represents an iterator where each model type in the set of model types is processed according to the enclosed blocks. Likewise, Block 710 represents another iterator to cycle over hyperparameters associated with the model and perform the enclosed operations. In other words, in Block 708 a model type is selected, and in Block 710 associated hyperparameters are selected. The hyperparameters search may be performed using any method known in the art. As non-limiting examples, the hyperparameters search of Block 710 may be performed according to a grid search, a random search, or a Bayesian-based search.
For each model type and applied hyperparameters, the machine-learned model is trained using the training set, as shown in Block 712. Once a machine-learned model is trained, its performance is evaluated on the validation set, as depicted in Block 714. In the case where there is no validation set, such as when the set of training data is only split into training and testing sets, the testing set may be used for the validation set. In some embodiments, one or more validation sets may be temporarily extracted from the training set using methods like cross-validation (e.g., leave-one-out cross-validation, k-folds cross-validation). Evaluating the machine-learned model consists of processing data instances of the validation set with the trained machine-learned model to produce predictions (e.g., drilling fluid properties after treatment or treatment), and comparing the predictions with the associated targets. The evaluation of the validation set in Block 714 guides the hyperparameter search of Block 710. That is, for each model type, the best combination of hyperparameters is selected by comparing the performance of each model, with its associated hyperparameters, as evaluated on the validation set. As stated, in some embodiments, the hyperparameter search may be performed over data sets temporarily extracted from the training set through cross-validation techniques.
Through the iterators of Blocks 708 and 710, and the evaluations of Block 714, the best performing machine-learned model type, and associated hyperparameters, may be identified. In Block 716, this best performing machine-learned model is selected.
In Block 720, the selected machine-learned model is used in production. Using the selected machine-learned model in production consists of making the model readily accessible to be used with new data instances not included in the set of training data. That is, the selected machine-learned model may be used in (or as) the treatment prediction system (190) as depicted in either
However, before the machine-learned model is used in production a final indication of its performance can be acquired by estimating the generalization error of the selected machine-learned model, as shown in Block 718. The generalization error is estimated by evaluating the performance of the selected machine-learned model on the test set. One with ordinary skill in the art will recognize that the training procedure depicted in
As previously stated, many machine-learned model types may be employed in treatment prediction system (190) depicted in
In one or more embodiments, the selected machine-learned model type is a gradient boosted trees regressor. Generally, a gradient boosted trees regressor is an ensemble of decision trees. A decision tree is composed of nodes. A decision is made at each node such that data present at the node are segmented. Typically, at each node, the data at said node, are split into two parts, or segmented bimodally, however, multimodal segmentation is possible. The segmented data can be considered another node and may be further segmented. As such, a decision tree represents a sequence of segmentation rules. The segmentation rule (or decision) at each node is determined by an evaluation process. The evaluation process usually involves calculating which segmentation scheme results in the greatest homogeneity or reduction in variance in the segmented data. However, a detailed description of this evaluation process, or other potential segmentation scheme selection methods, is omitted for brevity and does not limit the scope of the present disclosure.
Further, if at a node in a decision tree, the data are no longer to be segmented, that node is said to be a “leaf node.” Commonly, values of data found within a leaf node are aggregated, or further modeled, such as by a linear model. A decision tree can be configured in a variety of ways, such as, but not limited to, choosing the segmentation scheme evaluation process, limiting the number of segmentations, and limiting the number of leaf nodes. Generally, when the number of segmentations or leaf nodes in a decision tree is limited, the decision tree is said to be a “weak learner.”
In most implementations, the decision trees from which a gradient boosted trees regressor is composed are weak learners. Additionally, for a gradient boosted trees regressor, the decision trees are ensembled in series, wherein each decision tree makes a weighted adjustment to the output of the preceding decision trees in the series. The process of ensembling decision trees in series, and making weighted adjustments, to form a gradient boosted trees regressor is best illustrated by considering the training process of a gradient boosted trees regressor.
The following description of the gradient boosted trees training process assumes that properly formatted set of training data (after normalization, imputation, etc.), which contains both the data inputs and the desired output data (or target data, or “targets”), is supplied.
Training a gradient boosted trees regressor consists of the selection of segmentation rules for each node in each decision tree; that is, training each decision tree. Once trained, a decision tree is capable of processing data. For example, a decision tree may receive a data input. The data input is sequentially transferred to nodes within the decision tree according to the segmentation rules of the decision tree. Once the data input is transferred to a leaf node, the decision tree outputs the assigned value of the associated leaf node which is usually the average value of the target of all data instances assigned to the leaf node.
Generally, training a gradient boosted regressor firstly consists of making a simple prediction (SP) for the target data. The simple prediction (SP) may be the average value of the target data. The simple prediction (SP) is subtracted from the targets to form a first residuals. The first decision tree in the series is created and trained, wherein the first decision tree attempts to predict the first residuals forming first residual predictions. The first residual predictions from the first decision tree are scaled by a scaling parameter. In the context of gradient boosted trees the scaling parameter is known as the “learning rate” (η). The learning rate is one of the hyperparameters governing the behavior of the gradient boosted trees regressor. The learning rate (η) may be fixed for all decision trees or may be variable or adaptive. The first residual predictions of the first decision tree are multiplied by the learning rate (i) and added to the simple prediction (SP) to form a first predictions. The first predictions are subtracted from the targets to form a second residuals. A second decision tree is created and trained using the data inputs and the second residuals as targets such that it produces second residual predictions. The second residual predictions are multiplied by the learning rate (η) and are added to the first predictions forming second predictions. This process is repeated recursively until a termination criterion is achieved.
Many termination criteria exist and are not all enumerated here for brevity. Common termination criteria are terminating training when a pre-defined number of decision trees has been reached, or when improvement in the residuals is no longer observed.
Once trained, a gradient boosted trees regressor may make predictions using input data. To do so, the input data is passed to each decision tree, which will form a plurality of residual predictions. The plurality of residual predictions are multiplied by the learning rate (η), summed across every decision tree, and added to the simple prediction (SP) formed during training to produce the gradient boosted trees predictions.
One with ordinary skill in the art will appreciate that many adaptions may be made to gradient boosted trees and that these adaptions do not exceed the scope of this disclosure. Some adaptions may be algorithmic optimizations, efficient handling of sparse data, use of out-of-core computing, and parallelization for distributed computing. In accordance with one or more embodiments, the selected machine-learned model type is an adapted gradient boosted trees model known as XGBoost.
The preprocessed data is passed to a machine-learned model (808). In
As a concrete example, the workflow of
Preprocessing was applied to the set of training data to correct typographical errors in the set of training data and to ensure data quality and conformity.
In this example, the set of training data is arbitrarily split into a training set and test set (Block 706). Various supervised machine-learned model types are iterated through according to Block 708 of
Additionally, once the model and associated hyperparameters are identified and selected, the selected machine-learned model undergoes further refinement through feature engineering. For feature engineering, only the features of the input data with high statistical significance (low p-value) are selected for the machine-learned model used in production. It is emphasized that the selected model is provided only as a working example of the treatment prediction system (190), in accordance with one or more embodiments, and does not impose nor represent a limitation on the instant disclosure.
In one or more embodiments, the predicted drilling fluid properties and the desired drilling fluid properties are evaluated with an inversion system to determine a treatment update. In one or more embodiments, the treatment update is applied to the treatment and the updated treatment is processed by the treatment prediction system, along with the operational parameters and current drilling fluid parameters, to determine a new prediction for the drilling fluid parameters after treatment. In one or more embodiments, one or more treatment updates are applied the treatment and the treatment is processed by the treatment prediction system until the predicted drilling fluid properties and the set of desired drilling fluid properties are sufficiently matched, where match quality may be quantified by an objective function and a checked against a user-specified threshold. In Block 910, the treatment is applied to the drilling fluid. In one or more embodiments, the treatment is only applied to the drilling fluid if the predicted drilling fluid properties after treatment sufficiently match the set of desired drilling fluid properties. In one or more embodiments, the application of the treatment to the drilling fluid is facilitated by a drilling fluid processing system. In one or more embodiments, after application of the treatment, the properties of the drilling fluid are obtained and verified against the set of desired drilling fluid properties. In Block 912, the drilling fluid, after application of the treatment, is used in the drilling operation to drill a wellbore.
The computer (1002) can serve in a role as a client, network component, a server, a database or other persistency, or any other component (or a combination of roles) of a computer system for performing the subject matter described in the instant disclosure. In some implementations, one or more components of the computer (1002) may be configured to operate within environments, including cloud-computing-based, local, global, or other environment (or a combination of environments).
At a high level, the computer (1002) is an electronic computing device operable to receive, transmit, process, store, or manage data and information associated with the described subject matter. According to some implementations, the computer (1002) may also include or be communicably coupled with an application server, e-mail server, web server, caching server, streaming data server, business intelligence (BI) server, or other server (or a combination of servers).
The computer (1002) can receive requests over network (1030) from a client application (for example, executing on another computer (1002) and responding to the received requests by processing the said requests in an appropriate software application. In addition, requests may also be sent to the computer (1002) from internal users (for example, from a command console or by other appropriate access method), external or third-parties, other automated applications, as well as any other appropriate entities, individuals, systems, or computers.
Each of the components of the computer (1002) can communicate using a system bus (1003). In some implementations, any or all of the components of the computer (1002), both hardware or software (or a combination of hardware and software), may interface with each other or the interface (1004) (or a combination of both) over the system bus (1003) using an application programming interface (API) (1012) or a service layer (1013) (or a combination of the API (1012) and service layer (1013). The API (1012) may include specifications for routines, data structures, and object classes. The API (1012) may be either computer-language independent or dependent and refer to a complete interface, a single function, or even a set of APIs. The service layer (1013) provides software services to the computer (1002) or other components (whether or not illustrated) that are communicably coupled to the computer (1002). The functionality of the computer (1002) may be accessible for all service consumers using this service layer. Software services, such as those provided by the service layer (1013), provide reusable, defined business functionalities through a defined interface. For example, the interface may be software written in JAVA, C++, or other suitable language providing data in extensible markup language (XML) format or another suitable format. While illustrated as an integrated component of the computer (1002), alternative implementations may illustrate the API (1012) or the service layer (1013) as stand-alone components in relation to other components of the computer (1002) or other components (whether or not illustrated) that are communicably coupled to the computer (1002). Moreover, any or all parts of the API (1012) or the service layer (1013) may be implemented as child or sub-modules of another software module, enterprise application, or hardware module without departing from the scope of this disclosure.
The computer (1002) includes an interface (1004). Although illustrated as a single interface (1004) in
The computer (1002) includes at least one computer processor (1005). Although illustrated as a single computer processor (1005) in
The computer (1002) also includes a memory (1006) that holds data for the computer (1002) or other components (or a combination of both) that can be connected to the network (1030). The memory may be a non-transitory computer readable medium. For example, memory (1006) can be a database storing data consistent with this disclosure. Although illustrated as a single memory (1006) in
The application (1007) is an algorithmic software engine providing functionality according to particular needs, desires, or particular implementations of the computer (1002), particularly with respect to functionality described in this disclosure. For example, application (1007) can serve as one or more components, modules, applications, etc. Further, although illustrated as a single application (1007), the application (1007) may be implemented as multiple applications (1007) on the computer (1002). In addition, although illustrated as integral to the computer (1002), in alternative implementations, the application (1007) can be external to the computer (1002).
There may be any number of computers (1002) associated with, or external to, a computer system containing computer (1002), wherein each computer (1002) communicates over network (1030). Further, the term “client,” “user,” and other appropriate terminology may be used interchangeably as appropriate without departing from the scope of this disclosure. Moreover, this disclosure contemplates that many users may use one computer (1002), or that one user may use multiple computers (1002).
Although only a few example embodiments have been described in detail above, those skilled in the art will readily appreciate that many modifications are possible in the example embodiments without materially departing from this invention. Accordingly, all such modifications are intended to be included within the scope of this disclosure as defined in the following claims.