Serving API
LLMEngine class
Main class for loading and serving models.
from atom import LLMEngine
llm = LLMEngine(model="meta-llama/Llama-2-7b-hf")
Parameters:
model (str) - HuggingFace model name or path
gpu_memory_utilization (float) - GPU memory usage (0.0-1.0). Default: 0.9
max_model_len (int) - Maximum sequence length
tensor_parallel_size (int) - Number of GPUs for tensor parallelism. Default: 1
Methods
generate()
sampling_params = SamplingParams(max_tokens=50, temperature=0.8)
outputs = llm.generate(prompts, sampling_params)
Generate text from prompts.
Parameters:
prompts (list[str]) - Input prompts (must be a list, even for single prompt)
sampling_params (SamplingParams | list[SamplingParams]) - Sampling configuration
Returns:
outputs (list[dict]) - One dict per prompt. Each dict contains at minimum a
"text"key with the generated string, plus"token_ids","latency","finish_reason","num_tokens_input","num_tokens_output","ttft", and"logprobs".
Note
generate() requires prompts to be a list. Access generated text via
outputs[i]["text"]. Parameters like max_tokens must be specified
via SamplingParams.
SamplingParams
from atom import SamplingParams
params = SamplingParams(
temperature=0.8,
max_tokens=100,
ignore_eos=False,
stop_strings=["</s>", "\n\n"]
)
Configuration for text generation.
Parameters:
temperature (float) - Controls randomness. Default: 1.0
max_tokens (int) - Maximum tokens to generate. Default: 64
ignore_eos (bool) - Whether to ignore EOS token. Default: False
stop_strings (list[str] | None) - Strings that stop generation. Default: None
Note
presence_penalty and frequency_penalty are not currently supported.
top_p and top_k are supported (top_k=-1 disables it;
top_p=1.0 disables it).
Return values
The generate() method returns a list[dict]. Access the generated
text via the "text" key:
outputs = llm.generate(["Hello, world!"], sampling_params)
print(outputs[0]["text"]) # e.g., "Hello, world! How are you today?"
Example
Complete example:
from atom import LLMEngine, SamplingParams
# Initialize model
llm = LLMEngine(
model="meta-llama/Llama-2-7b-hf",
tensor_parallel_size=2,
gpu_memory_utilization=0.9,
)
# Configure sampling
sampling_params = SamplingParams(
temperature=0.7,
top_p=0.9,
max_tokens=200,
)
# Generate
prompts = ["Tell me about AMD GPUs"]
outputs = llm.generate(prompts, sampling_params=sampling_params)
for prompt, output in zip(prompts, outputs):
print(f"Prompt: {prompt}")
print(f"Generated: {output['text']}")