Utilities for experiment-centric AI Red Teaming workflows
Project description
airt_utils
For research-centric AI Red Teaming operations, there are best practices we can borrow from the evolution of MLOps. For example, both workflows involve multiple researchers focused on optimizations against open-ended research questions. At some point, the work from these researchers must be compared, potentially aggregated, and the best solution iterated upon. Often there is also a reporting phase where stakeholders need to be able to access R&D artifacts.
airt_utils
is a collection of Python utilities for tracking AI Red Teaming experiments and operations, starting with the airt_run
decorator that seamlessly integrates your functions with MLflow. It provides automatic logging of parameters, metrics, and artifacts, supporting both synchronous and asynchronous functions. This makes it ideal for a wide range of machine learning and data science workflows.
Features
- 🚀 Easy integration with MLflow through the simple
airt_run
decorator - 🔄 Support for both synchronous and asynchronous functions
- ⏱️ Optional timeout functionality
- 📊 Automatic logging of function parameters and return values
- 📁 Artifact logging support
- 🏷️ Custom tagging for runs
- 📈 Support for custom and system metrics
- 🔁 Retry mechanism for improved reliability
- 🛠️ Highly configurable to suit various use cases
Installation
Install airt_utils
using pip:
pip install airt_utils
Quick Start
Here's a simple example of how to use the airt_run
decorator:
from airt_utils import airt_run
import random
@airt_run(
experiment_name="quick_start_example",
params=["n"],
artifacts=["output.txt"],
)
def generate_random_numbers(n):
numbers = [random.randint(1, 100) for _ in range(n)]
with open("output.txt", "w") as f:
f.write(str(numbers))
return sum(numbers)
result = generate_random_numbers(10)
print(f"Sum of generated numbers: {result}")
This example will:
- Create an MLflow experiment named "quick_start_example"
- Log the parameter
n
- Run the function and log its return value
- Log the generated "output.txt" file as an artifact
Advanced Usage
Asynchronous Functions
airt_run
supports async functions out of the box:
import asyncio
from airt_utils import airt_run
@airt_run(
experiment_name="async_example",
timeout_seconds=5
)
async def async_operation():
await asyncio.sleep(2)
return "Async operation completed"
result = async_operation()
print(result)
Custom Metrics
You can define custom metrics to be logged:
from airt_utils import airt_run
def mean_metric(result):
return sum(result) / len(result)
@airt_run(
experiment_name="custom_metrics_example",
custom_metrics={"mean": mean_metric}
)
def process_data(data):
return [x * 2 for x in data]
result = process_data([1, 2, 3, 4, 5])
This will log the mean of the processed data as a custom metric.
Configuration
airt_run
offers various configuration options:
experiment_name
: Name of the MLflow experimentparams
: List of function parameters to logartifacts
: List of files or directories to log as artifacts (protip: log entire configuration directories and debug logs for target applications)tracking_uri
: MLflow tracking server URItimeout_seconds
: Maximum execution time for the functiontags
: Dictionary of tags to apply to the runlog_system_metrics
: Whether to log system metricsretry_attempts
: Number of retry attempts for MLflow operationsretry_delay
: Delay between retry attemptscustom_metrics
: Dictionary of custom metrics to compute and log
Project details
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
File details
Details for the file airt_utils-0.1.0.tar.gz
.
File metadata
- Download URL: airt_utils-0.1.0.tar.gz
- Upload date:
- Size: 4.8 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/5.1.1 CPython/3.9.19
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | 8ada265ebc326207074a7404f5b3a34b73d387c95ee3476704f4512255752ad6 |
|
MD5 | 504e47ff32c867b952eae64993a3115d |
|
BLAKE2b-256 | 118ec2c8bf046fd89497bcd56be760fb5e0e7e54ef8131b515575f1a1abcc2b8 |
Provenance
File details
Details for the file airt_utils-0.1.0-py3-none-any.whl
.
File metadata
- Download URL: airt_utils-0.1.0-py3-none-any.whl
- Upload date:
- Size: 5.7 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/5.1.1 CPython/3.9.19
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | b47f3617a4137969798916ef186a92313c83d8d6d15fff27ca728ecb399f4514 |
|
MD5 | c4270105797798d7799129de05ae5810 |
|
BLAKE2b-256 | 5910b8b0cfa18e1bfc12065f870a1f413b737cf2bbee82e2113263f57b413165 |