Trace File Formats
Many trace files are formatted in ways that need to be specially handled to create an accurate replay. This guide covers all trace file formats currently supported by GuideLLM, along with the format-agnostic and format-specific data arguments.
Detailed use of the replay profile and file-based datasets as a whole is explained in Trace Replay Benchmarking.
Supported Formats
These are passed to the --data argument as kind=format:
trace_synthetic: A trace format that does the bare minimum needed to complete a fully functioning trace replay benchmark with synthetic prompt generationmooncake: The trace format used by the serving platform Mooncake, as defined in https://doi.org/10.48550/arXiv.2407.00079
Format-Agnostic Data Arguments
All trace formats can accept the following optional data arguments:
| Argument | Default | Description |
|---|---|---|
timestamp_column | "timestamp" | Column name for timestamps in the trace file |
prompt_tokens_column | "input_length" | Column name for prompt token counts in the trace file |
output_tokens_column | "output_length" | Column name for output token counts in the trace file |
These are passed through the --data argument like below:
guidellm benchmark \
--target http://localhost:8000 \
--profile kind=replay \
--data "kind=trace_synthetic,path=replay.jsonl,timestamp_column=ts,prompt_tokens_column=input_tokens,output_tokens_column=generated_tokens"
trace_synthetic can be thought of as the format-agnostic option, only looking for the timestamp, prompt token count and output token count columns and ignoring all other features contained in a dataset. While primarily used for testing, trace_synthetic may be used as a fallback for trace formats not currently supported by GuideLLM.
Format-Specific Data Arguments
mooncake
The Mooncake format expects an additional column for hash IDs. During prompt generation, hash IDs sharing the same previous ID are required to represent distinct blocks of token ids.
| Argument | Default | Description |
|---|---|---|
hash_ids_column | "hash_ids" | Column name for lists of hash IDs in the trace file |
hash_id_block_size | 512 | Amount of tokens represented by one hash ID |