nip.trainers.malt_pure_text._PartialRolloutNode#
- class nip.trainers.malt_pure_text._PartialRolloutNode(current_env_state: ~nip.utils.nested_array_dict.NestedArrayDict, protocol_handler: ~nip.protocols.protocol_base.ProtocolHandler, ended: bool = False, padding: bool = False, trajectory_env_states: list[~nip.utils.nested_array_dict.NestedArrayDict] = <factory>, node_id: int = -1, parent_partial_rollout: ~nip.trainers.malt_pure_text._PartialRolloutNode | None = None, child_partial_rollouts: list[~nip.trainers.malt_pure_text._PartialRolloutNode] = <factory>, num_branches: int = 0, total_reward_per_agent: ~numpy.ndarray | float = 0.0)[source]#
A node in the tree of responses, which is a partially generated rollout.
Methods Summary
__eq__(other)Return self==value.
__init__(current_env_state, protocol_handler)__repr__()Return repr(self).
Get the next node ID and increment the counter.
Clone this node as a child of the current node.
has_agent_acted(agent_name)Check if the given agent has acted at this node.
visualise([include_messages, ...])Get a recursive string representation of the rollout tree.
Attributes
endedWhether the rollout has ended from this point onwards.
node_idThe ID of this node, which is unique in the forest of rollouts.
num_branchesThe number of branches passing through this node.
paddingWhether this node is a padding node.
parent_partial_rolloutThe parent node of this node, or None if this is the root node.
total_reward_per_agentThe total reward for each agent at this node and below.
current_env_stateThe state of the environment at this node.
protocol_handlerThe protocol handler for the experiment.
trajectory_env_statesA list of the environment states in the trajectory leading up to this node.
child_partial_rolloutsThe child nodes of this node, the one-step continuations of this node.
Methods
- __eq__(other)#
Return self==value.
- __init__(current_env_state: ~nip.utils.nested_array_dict.NestedArrayDict, protocol_handler: ~nip.protocols.protocol_base.ProtocolHandler, ended: bool = False, padding: bool = False, trajectory_env_states: list[~nip.utils.nested_array_dict.NestedArrayDict] = <factory>, node_id: int = -1, parent_partial_rollout: ~nip.trainers.malt_pure_text._PartialRolloutNode | None = None, child_partial_rollouts: list[~nip.trainers.malt_pure_text._PartialRolloutNode] = <factory>, num_branches: int = 0, total_reward_per_agent: ~numpy.ndarray | float = 0.0) None#
- __repr__()#
Return repr(self).
- async _get_next_node_id_and_increment() int[source]#
Get the next node ID and increment the counter.
This uses a class-level lock to ensure that the node IDs are unique across all nodes in the forest.
- Returns:
node_id (int) – The next node ID.
- async clone_as_child() Self[source]#
Clone this node as a child of the current node.
This creates a new node with the same environment state and adds it to the current node’s list of child nodes.
- Returns:
cloned_partial_rollout (_PartialRolloutNode) – The cloned node, which is a child of the current node.
- has_agent_acted(agent_name: str) bool[source]#
Check if the given agent has acted at this node.
An action means either sending a message or making a decision (for verifiers).
- Parameters:
agent_name (str) – The name of the agent to check.
- Returns:
has_acted (bool) – True if the agent has acted at this node, False otherwise.
- visualise(include_messages: bool = True, include_expected_reward: bool = True, include_pair_info: bool = True, include_padding_nodes: bool = False, tab_size: int = 2) str[source]#
Get a recursive string representation of the rollout tree.
- Returns:
tree_string (str) – A representation of the rollout tree starting from this node.
include_messages (bool, default=True) – Whether to include the messages and decisions sent be each agent at each node.
include_expected_reward (bool, default=True) – Whether to include the expected reward for each agent.
include_pair_info (bool, default=True) – Whether to indicate whether a node is the positive or negative example in a preference pair.
include_padding_nodes (bool, default=False) – Whether to include padding nodes in the output. Padding nodes are nodes which are not part of the tree, but are used to fill in the tree so that it has uniform depth.
tab_size (int, default=2) – The number of spaces to indent each level of the tree.