trinity.explorer.explorer module#

The explorer module

class trinity.explorer.explorer.Explorer(config: Config)[source]#

Bases: object

Responsible for exploring the taskset.

__init__(config: Config)[source]#
async setup_weight_sync_group(master_address: str, master_port: int, world_size: int = None, group_name: str = None, timeout: int = None)[source]#
async set_state_dict_meta(state_dict_meta: List)[source]#

Set the state_dict meta on all model workers for NCCL weight sync.

Must be called after setup_weight_sync_group and before the first sync_model_weights call.

async teardown_weight_sync_group()[source]#

Destroy the NCCL process group on all model workers.

async setup_model_level_weight_sync_group()[source]#

Setup process group for each model, only used in serve mode.

async prepare() → None[source]#

Preparation before running.

async get_weight(name: str) → Tensor[source]#

Get the weight of the loaded model (For checkpoint weights update).

async explore() → str[source]#
The timeline of the exploration process:
<β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€” one period β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”-> |
explorer | <β€”β€”β€”β€”β€”- step_1 ————–> | |
| <β€”β€”β€”β€”β€”- step_2 ————–> | |
… |
| <β€”β€”β€”β€”β€”- step_n β€”β€”β€”β€”β€”> | |
| <β€”β€”β€”β€”β€”β€”β€”- eval ——————–> | <– sync –> |

|--------------------------------------------------------------------------------------|

trainer | <– idle –> | <– step_1 –> | <– step_2 –> | … | <– step_n –> | <– sync –> |

async explore_step() → bool[source]#
async finish_current_steps() → None[source]#
async need_sync() → bool[source]#
need_eval() → bool[source]#
async eval()[source]#

Evaluation on all evaluation data samples.

async benchmark() → bool[source]#

Benchmark the model checkpoints.

async save_checkpoint() → None[source]#
async sync_weight() → None[source]#

Synchronize model weights.

async shutdown() → None[source]#
async is_alive() → bool[source]#

Check if the explorer is alive.

async serve() → None[source]#

Run the explorer in serving mode.

In serving mode, the explorer starts an OpenAI compatible server to handle requests. Agent applications can be deployed separately and interact with the explorer via the API.

import openai


client = openai.OpenAI(
    base_url=f"{explorer_server_url}/v1",
    api_key="EMPTY",
)
response = client.chat.completions.create(
    model=config.model.model_path,
    messages=[{"role": "user", "content": "Hello!"}]
)
classmethod get_actor(config: Config)[source]#

Get a Ray actor for the explorer.