IP Library Granted Patent US 9,864,589
Granted Patent B2
US 9,864,589 · App. 15/499,656 · Granted Jan 9, 2018

Decision tree ensemble compilation

View Patent ↗
Loading inventors, assignments & file history…
Monitor This Case
Get email alerts when status or documents change.
Order Certified Copies
Most orders are placed with the USPTO same day — all within 24 business hours.
Order via The Patent Place →
Pre-filled with this patent's details
Quick Facts
Patent No.
US 9,864,589
App. No.
15/499,656
Granted
Jan 9, 2018
Kind
B2
Abstract

In one embodiment, a method includes generating an executable version of a decision tree by compiling source code into executable code and verifying the executable code by comparing a result of executing the executable code with a result of evaluating the decision tree in interpreted mode. The method further includes replacing the decision tree evaluated in the interpreted mode with the executable code if the executable code is verified or discarding the executable code otherwise.

Claims (43)

1. A method comprising:

by one or more computing devices, generating an executable version of a decision tree by compiling source code into executable code, wherein the decision tree is represented in the source code;

by one or more of the computing devices, verifying the executable code by comparing a result of executing the executable code with a result of evaluating the decision tree in interpreted mode;

by one or more of the computing devices,

if the executable code is verified, replacing the decision tree evaluated in the interpreted mode with the executable code,

else, discarding the executable code;

by one or more of the computing devices, modifying the decision tree by annotating each decision in the decision tree with instructions determined based on statistics collected during evaluation of the decision tree; and

by one or more of the computing devices, optimizing the executable code based on the instructions.

2. The method of claim 1 , further comprising:

evaluating an original version of the decision tree in interpreted mode; and

collecting the statistics while the decision tree is evaluated in interpreted mode.

3. The method of claim 2 , wherein the collected statistics comprise, for each decision in the decision tree having a plurality of possible outcomes, a probability that each possible outcome of the decision is actually realized while the decision tree is evaluated in interpreted mode.

4. The method of claim 1 , wherein the decision tree is a part of a decision tree ensemble comprising a plurality of decision trees.

5. The method of claim 1 , wherein the compiling the source code into the executable code is performed dynamically at the time the decision tree is used.

6. The method of claim 1 , wherein each decision in the decision tree is represented as a separate jump instruction in the executable code.

7. One or more computer-readable non-transitory storage media embodying software that is operable when executed to:

generate an executable version of a decision tree by compiling source code into executable code, wherein the decision tree is represented in the source code;

verify the executable code by comparing a result of executing the executable code with a result of evaluating the decision tree in interpreted mode;

if the executable code is verified, replace the decision tree evaluated in the interpreted mode with the executable code,

else, discard the executable code;

modify the decision tree by annotating each decision in the decision tree with instructions determined based on statistics collected during evaluation of the decision tree; and

optimize the executable code based on the instructions.

8. The media of claim 7 , wherein the software is further operable when executed to:

evaluate an original version of the decision tree in interpreted mode; and

collect the statistics while the decision tree is evaluated in interpreted mode.

9. The media of claim 8 , wherein the collected statistics comprise, for each decision in the decision tree having a plurality of possible outcomes, a probability that each possible outcome of the decision is actually realized while the decision tree is evaluated in interpreted mode.

10. The media of claim 7 , wherein the decision tree is a part of a decision tree ensemble comprising a plurality of decision trees.

11. The media of claim 7 , wherein the compiling the source code into the executable code is performed dynamically at the time the decision tree is used.

12. The media of claim 7 , wherein each decision in the decision tree is represented as a separate jump instruction in the executable code.

13. A system comprising: one or more processors; and a memory coupled to the processors comprising instructions executable by the processors, the processors being operable when executing the instructions to:

generate an executable version of a decision tree by compiling source code into executable code, wherein the decision tree is represented in the source code;

verify the executable code by comparing a result of executing the executable code with a result of evaluating the decision tree in interpreted mode;

if the executable code is verified, replace the decision tree evaluated in the interpreted mode with the executable code,

else, discard the executable code;

modify the decision tree by annotating each decision in the decision tree with instructions determined based on statistics collected during evaluation of the decision tree; and

optimize the executable code based on the instructions.

14. The system of claim 13 , wherein the processors are further operable when executing the instructions to:

evaluate an original version of the decision tree in interpreted mode; and

collect the statistics while the decision tree is evaluated in interpreted mode.

15. The system of claim 14 , wherein the collected statistics comprise, for each decision in the decision tree having a plurality of possible outcomes, a probability that each possible outcome of the decision is actually realized while the decision tree is evaluated in interpreted mode.

16. The system of claim 13 , wherein the decision tree is a part of a decision tree ensemble comprising a plurality of decision trees.

17. The system of claim 13 , wherein the compiling the source code into the executable code is performed dynamically at the time the decision tree is used.

18. The system of claim 13 , wherein each decision in the decision tree is represented as a separate jump instruction in the executable code.

Assignments (1)
CHANGE OF NAME Recorded Dec 20, 2021
From: FACEBOOK, INC.
To: META PLATFORMS, INC.
Reel/Frame 058553/0802 →