A collection of tools for machine learning research, including experiment management, Kubernetes utilities, and LaTeX processing.
Project description
ML Research Tools
A comprehensive toolkit for machine learning research workflows, designed to streamline common tasks in experimentation, documentation, and deployment processes.
Key Features
-
LaTeX Tools
- Grammar and style checker for LaTeX documents
- Automatic suggestions for improving technical writing
-
LLM Integration
- Easy interaction with OpenAI and compatible LLMs
- Chat and completion interfaces with robust error handling
- Automatic retries and caching to reduce API costs
- Support for multiple model presets and tiers
-
Document Tools
- Ask questions and get answers about documentation
-
Experiment Management
- Weights & Biases run logs downloader
-
Kubernetes Tools
- Pod port forwarding with automatic reconnection
-
Caching System
- Redis-based function result caching
- Transparent caching with decorators
Installation
From PyPI (Recommended)
pip install ml_research_tools
From Source
git clone https://github.com/alexdremov/ml_research_tools.git
cd ml_research_tools
poetry install
Configuration
The toolkit can be configured through multiple methods, with a cascading priority:
- Command-line arguments (highest priority)
- Configuration file
- Default values (lowest priority)
Configuration File
By default, the configuration is stored in ~/.config/ml_research_tools/config.yaml.
If this file doesn't exist, it will be created with default values when the tool is first run.
Example configuration file:
logging:
level: INFO
file: /path/to/log/file.log
redis:
host: localhost
port: 6379
db: 0
password: optional_password
enabled: true
ttl: 604800 # 7 days in seconds
llm:
default: "standard" # Default preset to use
presets:
standard:
base_url: https://api.openai.com/v1
model: gpt-3.5-turbo
max_tokens: 8000
temperature: 0.01
top_p: 1.0
retry_attempts: 3
retry_delay: 5
api_key: null
tier: standard
premium:
base_url: https://api.openai.com/v1
model: gpt-4o
max_tokens: 8000
temperature: 0.01
top_p: 1.0
retry_attempts: 3
retry_delay: 5
api_key: null
tier: premium
Command-line Arguments
Configuration can be overridden using command-line arguments:
ml_research_tools --log-level DEBUG --redis-host redis.example.com --llm-preset premium paper.tex latex-grammar paper.tex
Available configuration options:
| Option | Description | Default |
|---|---|---|
--config |
Path to configuration file | ~/.config/ml_research_tools/config.yaml |
--log-level |
Logging level | INFO |
--log-file |
Path to log file | None |
--verbose |
Enable verbose logging | False |
--redis-host |
Redis host | localhost |
--redis-port |
Redis port | 6379 |
--redis-db |
Redis database number | 0 |
--redis-password |
Redis password | None |
--redis-disable |
Disable Redis caching | Enabled |
--redis-recache |
Recache results | False |
--llm-preset |
LLM preset to use | standard |
--llm-tier |
LLM tier to use | None |
--list-presets |
List available LLM presets | False |
--list-tools |
List available tools | False |
Development
Development Workflow
- Clone the repository
- Install development dependencies:
poetry install --with dev
- Run tests:
poetry run pytest
- Code quality tools:
# Format code poetry run black . poetry run isort . # Check typing poetry run mypy . # Run linter poetry run ruff .
Adding a New Tool
- Create a new module in the appropriate directory
- Implement a class that inherits from
BaseTool - Register arguments in the
add_argumentsmethod - Implement the
executemethod - Import the module in
__init__.pyto ensure discovery
Example:
from ml_research_tools.core.base_tool import BaseTool
class MyNewTool(BaseTool):
name = "my-tool"
description = "Description of my new tool"
def add_arguments(self, parser):
parser.add_argument("--option", help="An option for my tool")
def execute(self, config, args):
# Implementation
return 0 # Success
License
This project is licensed under the MIT License - see the LICENSE file for details.
Documentation
The full documentation is available at https://alexdremov.github.io/ml_research_tools/.
To build the documentation locally:
poetry install --with docs
cd docs
poetry run make html
Then open docs/build/html/index.html in your browser.
Contributing
Contributions are welcome! Please feel free to submit a Pull Request.
- Fork the repository
- Create your feature branch (
git checkout -b feature/amazing-feature) - Commit your changes (
git commit -m 'Add some amazing feature') - Push to the branch (
git push origin feature/amazing-feature) - Open a Pull Request
LLM Disclosure
This project is wildly LLM-written (though, widely reviewed by me)
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 ml_research_tools-1.0.0.tar.gz.
File metadata
- Download URL: ml_research_tools-1.0.0.tar.gz
- Upload date:
- Size: 39.5 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: poetry/2.1.1 CPython/3.12.3 Linux/6.8.0-1021-azure
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
da169c5c750f9c47e374f79a4d10ab0763ece5cfe69a8dd70a8aa4bd5220b7b1
|
|
| MD5 |
fb665e7ba3382ecfbf570db42012cb6a
|
|
| BLAKE2b-256 |
bde9bbdf63e996cd5ecaa3e9592c8c8b4bf6bc483fc039b7583aa6a6b152ba3b
|
File details
Details for the file ml_research_tools-1.0.0-py3-none-any.whl.
File metadata
- Download URL: ml_research_tools-1.0.0-py3-none-any.whl
- Upload date:
- Size: 47.7 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: poetry/2.1.1 CPython/3.12.3 Linux/6.8.0-1021-azure
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
d246aa6ec3408f6d8154a4312ac1156f2df57aa4c0b970e841f209fb400bb09e
|
|
| MD5 |
38aaf71d78221aa5c3667ccdb25ccf1d
|
|
| BLAKE2b-256 |
d8603b7179f4d1d06f555bd6914e30cf724fa6946fb02ad1745772bd17a4a1d0
|