Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Inconsistent definition of a valid solution node #13

Open
YanSong97 opened this issue Oct 26, 2024 · 4 comments
Open

Inconsistent definition of a valid solution node #13

YanSong97 opened this issue Oct 26, 2024 · 4 comments

Comments

@YanSong97
Copy link

YanSong97 commented Oct 26, 2024

Hi there,

Thank you for the excellent work on this project!

While reviewing the code, I noticed an inconsistency in how valid solution nodes are defined within the Reasoning_MCTS_Node class. Specifically, in the is_valid_solution_node() function, a valid solution node includes types SUBQUESTION, DIRECT_ANSWER, or OST_STEP. However, in the extract_solution_from_node() function finding the best solution, the OST_STEP type is excluded.

Is there any reason for this exclusion?

Many thanks

@beishangeyu
Copy link

I have same question, and I've noticed that in the is_terminal function, the OST_STEP is excluded as well

@YanSong97
Copy link
Author

I have same question, and I've noticed that in the is_terminal function, the OST_STEP is excluded as well

Yeah, seems weird. FYI, we have re-implemented the reasoning part in this PR. After rough testing, I believe adding OST_STEP to is_terminal condition can slightly improve performance.

@beishangeyu
Copy link

Many thanks! I will try in my experiment.

@Thunderbeee
Copy link
Collaborator

Thanks so much for your contribution and your PR! :D Toward your question why OST_STEP is excluded in the solution extractor, tldr, it is our design choice to let DIRECT_ANSWER (chain of thought) etc to be the final node to answer the question.

The is_valid_solution_node() function is likely used to determine if a node can be considered a valid solution during the search process. This might include nodes that are intermediate steps (OST_STEP) because they contribute to the reasoning process and might be necessary for the overall solution path.

The extract_solution_from_node() function, on the other hand, is used to extract the final solution from a node. In this context, OST_STEP nodes might not directly provide a final answer or solution, which is why they are excluded.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

3 participants