Package for managing research experiments text results.
Project description
ExpKit
ExpKit is a flexible experiment management framework for machine learning projects, providing easy storage, retrieval, and evaluation of experimental results.
Features
- Multiple storage backends (Disk, Zip, Memory, Mongo)
- Caching support with ROCache
- Flexible metadata management
- Batch processing of inputs/outputs
- Evaluation metrics computation
- Query interface for experiment retrieval
Installation
pip install expkit-core
Quick Start
Creating an Experiment
from expkit import Exp, DiskStorage
# Configure experiment metadata
meta = {
"steps": 1000,
"temperature": 0.7,
"n": 5,
"model_path": "path/to/model",
"batch_size": 32,
}
# Create experiment with disk storage
experiment = Exp(
storage=DiskStorage(save_path, "rw"),
meta=meta
)
Adding Data
# Add input/output instances
experiment.add_instances(
inputs=["input1", "input2", "input3"],
outputs=["output1", "output2", "output3"]
)
# Add evaluation scores
experiment.add_eval("accuracy", [0.85, 0.92, 0.88])
Loading and Querying Experiments
from expkit import ZipStorage, ExpSetup
# Initialize storage
storage = ZipStorage(base_dir="path/to/outputs", mode="r")
# Create experiment setup
setup = ExpSetup(storage=storage)
# Query experiments
results = setup.query({
"split":"test",
})
Working with Results
# Access experiment metadata
model_path = exp.get("model_path")
# Get instances
data = exp.instances()
# Get evaluation results
values = exp.get_eval(key)
Storage Backends
ExpKit supports multiple storage backends:
- DiskStorage: Stores experiments as files on disk
- ZipStorage: Stores experiments in zip archives
- MongoStorage: Stores experiments in mongo server
- MemoryStorage: Keeps experiments in memory
- ROCache: Caching layer that can wrap other storage backends
Evaluation Operations
You can define custom evaluation operations:
setup = ExpSetup(
storage=storage,
ops={
"mean-reward-1": EvalTotalMean(
entry_key="scores",
eval_key=eval_key,
n=1
)
}
)
# Run evaluation operations
setup.run_ops()
# Access results
first_exp_reward = setup[0].get("mean-reward-1")
# Transform experiments
mapped_results = setup.map(lambda exp: {
"reward": exp.get("mean-reward-1"),
"model": exp.get("model_path")
})
# Filter experiments
filtered = setup.filter(lambda exp: exp.get("temperature") > 0.5)
# Sort experiments
sorted_exps = setup.sort("temperature") # ascending order
Contributing
Contributions are welcome! Please read our contributing guidelines and submit pull requests to our repository.
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
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file expkit_core-1.0.7.tar.gz.
File metadata
- Download URL: expkit_core-1.0.7.tar.gz
- Upload date:
- Size: 22.2 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.10.15
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
8455ca6c698e542d80013d7a1df7c7026707757663f6e6d173a1e44820185200
|
|
| MD5 |
4a03486214c8ee0b2b33cf49915a00e0
|
|
| BLAKE2b-256 |
ae7d91f9a8f8a5d4b3764bd0697479212616754b0a35859f08ff062ed11488c1
|
File details
Details for the file expkit_core-1.0.7-py3-none-any.whl.
File metadata
- Download URL: expkit_core-1.0.7-py3-none-any.whl
- Upload date:
- Size: 31.7 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.10.15
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
d879b9de3a96569b363bccb00ed45bf3457b34483b46a1c0cd07932bd5d700d3
|
|
| MD5 |
77c3cb6be102d5daf5d9c95151afd7a2
|
|
| BLAKE2b-256 |
ed411ecb7957e4f5d6f720da84129b0a36e8f4b1ec14a9dc56d76d4e97ff045b
|