Metadata-Version: 2.1
Name: aim
Version: 4.0.3
Summary: A super-easy way to record, search and compare AI experiments.
Classifier: License :: OSI Approved :: Apache Software License
Classifier: Programming Language :: Python
Classifier: Programming Language :: Python :: 3
Classifier: Programming Language :: Python :: 3.7
Classifier: Programming Language :: Python :: 3.8
Classifier: Programming Language :: Python :: 3.9
Classifier: Programming Language :: Python :: 3.10
Classifier: Programming Language :: Python :: 3.11
Classifier: Programming Language :: Python :: Implementation :: PyPy
Requires-Python: >=3.7.0
Description-Content-Type: text/markdown
License-File: LICENSE
Requires-Dist: aim-ui ==4.0.3
Requires-Dist: aimrocks ==0.5.1
Requires-Dist: khash ==0.5.0a5
Requires-Dist: cachetools >=4.0.0
Requires-Dist: click >=7.0
Requires-Dist: cryptography >=3.0
Requires-Dist: filelock <4,>=3.3.0
Requires-Dist: numpy <2,>=1.12.0
Requires-Dist: psutil >=5.6.7
Requires-Dist: RestrictedPython >=5.1
Requires-Dist: tqdm >=4.20.0
Requires-Dist: alembic <2,>=1.5.0
Requires-Dist: fastapi <1,>=0.69.0
Requires-Dist: jinja2 <4,>=2.10.0
Requires-Dist: SQLAlchemy >=1.4.1
Requires-Dist: uvicorn <1,>=0.12.0
Requires-Dist: Pillow >=8.0.0
Requires-Dist: packaging >=15.0
Requires-Dist: websockets
Requires-Dist: watchdog
Requires-Dist: requests
Requires-Dist: segment-analytics-python
Requires-Dist: importlib-metadata
Requires-Dist: tabulate

<div align="center">
  <table>
    <tbody>
      <tr>
        <td>Drop a star to support Aim ⭐</td>
        <td>
          <a href="https://community.aimstack.io/">Join Aim discord community</a>
          <img width="20px" src="https://user-images.githubusercontent.com/13848158/226759622-063b725d-8b3e-4c75-80c7-11fb04b7adf5.png">
        </td>
      </tr>
      <tr>
        <td colspan="2"><p align="center">⚡ ⚡ Aim 4.0 stable has been released! ⚡ ⚡ !!</p></td>
      </tr>
    </tbody>
  </table>
</div>

<br />

<div align="center">
  <img src="https://user-images.githubusercontent.com/13848158/225620298-9f9293e9-a138-41fd-bd77-21d53d0490b7.png">
  <h3>
    Open-source modular observability for AI Systems.
  </h3>
  
  Easily log, connect and observe any parts of your AI Systems from experiments to production to prompts to AI system monitoring.
  
</div>

<br/>

<div align="center">
  
  [![Discord Server](https://dcbadge.vercel.app/api/server/zXq2NfVdtF?compact=true&style=flat)](https://community.aimstack.io/)
  [![Twitter Follow](https://img.shields.io/twitter/follow/aimstackio?style=social)](https://twitter.com/aimstackio)
  [![Medium](https://img.shields.io/badge/Medium-12100E?style=flat&logo=medium&logoColor=white)](https://medium.com/aimstack)
  
  [![Platform Support](https://img.shields.io/badge/platform-Linux%20%7C%20macOS-blue)]()
  [![PyPI - Python Version](https://img.shields.io/badge/python-%3E%3D%203.7-blue)](https://pypi.org/project/aim/)
  [![PyPI Package](https://img.shields.io/pypi/v/aim?color=yellow)](https://pypi.org/project/aim/)
  [![License](https://img.shields.io/badge/License-Apache%202.0-orange.svg)](https://opensource.org/licenses/Apache-2.0)
  [![PyPI Downloads](https://img.shields.io/pypi/dw/aim?color=green)](https://pypi.org/project/aim/)
  [![Issues](https://img.shields.io/github/issues/aimhubio/aim)](http://github.com/aimhubio/aim/issues)
  
</div>

<div align="center">
  <br/>
  <kbd>
    <img src="https://github.com/aimhubio/aim/assets/13848158/f3b88aa5-2621-4b35-8541-dac3fd5c6f07"/>
  </kbd>
</div>

</br>

<div align="center">
  <sub><strong>SEAMLESSLY INTEGRATES WITH:</strong></sub>
  <br/>
  <br/>
  <img src="https://user-images.githubusercontent.com/97726819/225954732-2b263308-8ed8-4df3-810b-704840328e98.png" height="60" />
  <img src="https://user-images.githubusercontent.com/97726819/225954727-04eccf0e-51ed-4f2d-8f3b-c9a675ca8e8f.png" height="60" />
  <img src="https://user-images.githubusercontent.com/97726819/225954728-ca2f498d-51a7-487b-bd69-ffb5f0c2af58.png" height="60" />
  <img src="https://user-images.githubusercontent.com/97726819/225954689-1076998c-42f4-4e31-ab47-d9f39575fda1.png" height="60" />
  <img src="https://user-images.githubusercontent.com/97726819/225954739-0231d659-3202-4458-9c35-ba92d1f079b8.png" height="60" />
  <img src="https://user-images.githubusercontent.com/97726819/225954697-ef2c7091-b089-4b68-8543-80ce7275b683.png" height="60" />
  <img src="https://user-images.githubusercontent.com/97726819/225954743-dbfe1e98-7b9f-446a-9fe4-ad4fd562f3df.png" height="60" />
  <img src="https://user-images.githubusercontent.com/97726819/225954736-7c52ab5a-6780-4375-a6f8-b394dae3ad31.png" height="60" />
  <img src="https://user-images.githubusercontent.com/97726819/225954710-36551a71-b26d-4665-af20-44ee452dd5dd.png" height="60" />
  <img src="https://user-images.githubusercontent.com/97726819/225954707-4bc078b5-ae6f-4847-bc2c-3f81959accb2.png" height="60" />
  <img src="https://user-images.githubusercontent.com/97726819/225954725-a4d4c32c-75db-470a-b1da-698982faa23c.png" height="60" />
  <img src="https://user-images.githubusercontent.com/97726819/225954665-8d844747-a857-41b8-9104-7c27a8bdb81a.png" height="60" />
  <img src="https://user-images.githubusercontent.com/97726819/225954686-b9c8ec57-d4fc-44e1-a4b8-443db381a00f.png" height="60" />
  <img src="https://user-images.githubusercontent.com/97726819/225954693-94bc20b4-f51a-4130-8d5f-ddee30d81205.png" height="60" />
  <img src="https://user-images.githubusercontent.com/97726819/225954674-42fbfdb3-0351-492d-9ea3-1d3ab2b545f5.png" height="60" />
  <img src="https://user-images.githubusercontent.com/97726819/225954678-25f1b626-2cb1-4e7e-ad83-f7c8ab679c6f.png" height="60" />
  <img src="https://user-images.githubusercontent.com/97726819/225954702-d18d2706-dc87-4e09-a678-f010f6d95736.png" height="60" />
</div>

<br/>

<div align="center">
  <sub><strong>TRUSTED BY ML TEAMS FROM:</strong></sub>  
  <br/>
  <br/>
  <img src="https://user-images.githubusercontent.com/97726819/225952594-a21546f4-987f-42bd-9154-c22b50632b55.png" height="55" />
  <img src="https://user-images.githubusercontent.com/97726819/225953224-291fbb6d-e31a-4e36-90ba-92a1dc20bacc.png" height="55" />
  <img src="https://user-images.githubusercontent.com/97726819/225953339-4fcc3c99-dda2-4529-ac2a-29c8293be323.png" height="55" />
  <img src="https://user-images.githubusercontent.com/97726819/225953084-1d88325a-ad5f-49eb-aa67-f064c4b9f39c.png" height="55" />
  <img src="https://user-images.githubusercontent.com/97726819/225952955-397e0f26-f01e-4b25-bd70-9f292a6f77c2.png" height="55" />
  <img src="https://user-images.githubusercontent.com/97726819/225952682-a843827b-e870-429d-96d8-3b4fd45471cd.png" height="55" />
  <img src="https://user-images.githubusercontent.com/97726819/225952831-1c0e36aa-4120-4635-ab4e-bf1bc685477b.png" height="55" />
  <img src="https://user-images.githubusercontent.com/97726819/225953432-4b27653a-aa12-4fbf-897c-01349afa2ad0.png" height="55" />
</div>

<br/>

<p align="center">
  AimStack offers enterprise support that's beyond core Aim. Contact via <a href="mailto:hello@aimstack.io">hello@aimstack.io</a> e-mail.
</p>

---

<h3 align="center">
  <a href="#ℹ️-about"><b>About</b></a> &bull;
  <a href="#-demos"><b>Demos</b></a> &bull;
  <a href="#-default-logging-apps"><b>Default logging apps</b></a> &bull;
  <a href="#-quick-start"><b>Quick Start</b></a> &bull;
  <a href="https://github.com/aimhubio/aim/tree/main/examples"><b>Examples</b></a> &bull;
  <a href="https://aimstack.readthedocs.io/en/latest/"><b>Documentation</b></a> &bull;
  <a href="#-community"><b>Community</b></a> &bull;
  <a href="https://aimstack.io/blog"><b>Blog</b></a> &bull;
</h3>  

---

# ℹ️ About

Aim is an open-source operating system for logs. 
With Aim you can build, run and combine any kind of logging applications - experiment tracking, production monitoring, AI System (LLM-based) monitoring, usage monitoring etc.

The Logging applications are typically a combination of these components: 

- The types and relationships of the data being logged
- The observability UI over the data logged
- Automations over the data logged


Aim comes installed with a number of default logging apps:

- Base App - a basic generic log exploration and the logging primitives
- AI Experiment Tracking App - log and explore your machine learning experiments. Includes integrations with the majority of leading ML frameworks.
- AI Systems Tracing and Debugging Apps - a combination of variety of apps that log from langchain to llamaindex traces all in one place.

Apart from running the logging apps, Aim comes with explorers and reports.

- Explorers are advanced logs comparison tools for specific kind of logs - they allow to compare 1000s of sessions of metrics, images, text, audio and other types of data.
- Reports are embedded knowledge-base that operate with the apps and explorers seamlessly to enable capture the knowledge built on top of the logged  data from the observations through Aim apps and explorers.

With the rise of AI Systems and the challenges it brings forward, logging apps are going to be a crucial part of the software. 

Our mission is to democratize developer tools for building AI.

<div align="center">
  <img src="https://github.com/aimhubio/aim/assets/13848158/26422615-3b06-4085-a3b3-ed5e1731041d" height="140" />
  <img src="https://github.com/aimhubio/aim/assets/13848158/22d63c83-4b4e-431a-85cb-ff38064f8b55" height="140" />
  <img src="https://github.com/aimhubio/aim/assets/13848158/c36b0f67-3efe-49c4-ae01-695c987251c5" height="140" />
</div>

</br>

### Base App

A general observability over anything logged with Aim.

| Visualize all the logs ever logged with Aim for the given project 🗺️ |
| --- |
| Base types to log common artifacts such as Images, Audio objects, Figures, Metrics  |
| High-level overview of the logs, the types logged and the respective sessions/ containers  |
| Deep-dive into each type of the log |

### Experiment Tracking App

<div align="left">
  <table>
    <tbody>
      <tr>
        <th>Log Metadata Across Your ML Pipeline 💾</th>
        <th>Visualize & Compare Metadata via UI 📊</th>
      </tr>
      <tr>
        <td>
          <ul>
            <li>ML experiments and any metadata tracking</li>
            <li>Integration with popular ML frameworks</li>
            <li>Easy migration from other experiment trackers</li>
            </ul>
          </td>
        <td>
          <ul>
            <li>Metadata visualization via Aim Explorers</li>
            <li>Grouping and aggregation</li>
            <li>Querying using Python expressions</li>
          </ul>
        </td>
      </tr>
      <tr>
        <th>Run ML Trainings Effectively ⚡</th>
        <th>Organize Your Experiments 🗂️</th>
      </tr>
      <tr>
        <td>
          <ul>
            <li>System info and resource usage tracking</li>
            <li>Real-time alerting on training progress (upcoming)
          </ul>
        </td>
        <td>
          <ul>
            <li>Detailed run information for easy debugging</li>
            <li>Centralized dashboard for holistic view</li>
        </td>
      </tr>
    </tbody>
  </table>
</div>

### AI Systems Tracing Apps

<div align="left">
  <table>
    <tbody>
      <tr>
        <th>Log Inputs, Outputs and Actions of Executions 🤖</th>
        <th>Visualize & Compare Executions Steps via UI 🔍</th>
      </tr>
      <tr>
        <td>
          <ul>
            <li>Track all the prompts, generations of LLMs</li>
            <li>Track all the inputs, outputs of tools</li>
            <li>Capture chains metadata</li>
            </ul>
          </td>
        <td>
          <ul>
            <li>Deep dive into single execution steps</li>
            <li>Compare executions side-by-side</li>
          </ul>
        </td>
      </tr>
    </tbody>
  </table>
</div>

# 🎬 Demos

Check out live Aim demos NOW to see it in action.

<table>
    <tr>
        <td align="center">
            <h3>Tracing LangChain-based chatbot executions</h3>
            <a href="https://play-v4.aimstack.io/langchain-chatbot-ui/apps/langchain_debugger/traces.py">View Demo</a> &nbsp;|&nbsp; 
            <a href="https://github.com/aimhubio/awesome-aim-demos/tree/main/langchain-chatbot">View Code</a><br><br>
            <kbd><img src="https://github.com/aimhubio/aim/assets/13848158/26422615-3b06-4085-a3b3-ed5e1731041d" style="display: block; margin-left: auto; margin-right: auto;"></kbd>
        </td>
        <td align="center">
            <h3>Tracing LlamaIndex query executions</h3>
            <a href="https://play-v4.aimstack.io/llamaindex-retriever-ui/apps/llamaindex_observer/traces.py">View Demo</a> &nbsp;|&nbsp; 
            <a href="https://github.com/aimhubio/awesome-aim-demos/tree/main/llamaindex-retriever">View Code</a><br><br>
            <kbd><img src="https://github.com/aimhubio/aim/assets/13848158/75c859d0-8c20-4218-b418-d7e8cc8ba715" style="display: block; margin-left: auto; margin-right: auto;"></kbd>
        </td>
    </tr>
    <tr><td colspan="2"></td></tr>
    <tr>
        <td colspan="2" align="center" width="50%">
            <h3>Tracking PyTorch-based CNN trainings</h3>
            <a href="https://play-v4.aimstack.io/mnist-training-ui/apps/experiment_tracker/runs.py">View Demo</a> &nbsp;|&nbsp; 
            <a href="https://github.com/aimhubio/awesome-aim-demos/tree/main/mnist-training">View Code</a><br><br>
            <img src="https://github.com/aimhubio/aim/assets/13848158/22d63c83-4b4e-431a-85cb-ff38064f8b55" style="display: block; margin-left: auto; margin-right: auto;" width="50%">
        </td>
    </tr>
</table>

# 🌍 Default logging apps

Aim comes pre-installed with a wide variety of apps. Here is the full list:

| App Name             | Description                                                                                         | Category            | Docs     | Source  |
|----------------------|-----------------------------------------------------------------------------------------------------|----------------------|----------|---------|
| base                 | Base Aim app for general observability over anything logged with Aim. Includes base types to log common artifacts, such as Image, Audio object, Figure, Metric. | Base | [docs](https://aimstack.readthedocs.io/en/latest/apps/base_app.html) | [source](https://github.com/aimhubio/aim/tree/main/pkgs/aimstack/base) |
| docs                 | Use this Aim app to access Aim docs. | Docs | -        | [source](https://github.com/aimhubio/aim/tree/main/pkgs/aimstack/docs) |
| langchain_debugger   | Debugger for LangChain that logs LLMs prompts and generations, tools inputs/outputs, and chains metadata. | AI Systems Tracing  | [docs](https://aimstack.readthedocs.io/en/latest/apps/langchain_debugger.html) | [source](https://github.com/aimhubio/aim/tree/main/pkgs/aimstack/langchain_debugger) |
| llamaindex_observer  | Debugger and observer for LlamaIndex. Logs metadata like retrieval nodes, queries and responses, embeddings chunks, etc. | AI Systems Tracing  | [docs](https://aimstack.readthedocs.io/en/latest/apps/llamaindex_observer.html) | [source](https://github.com/aimhubio/aim/tree/main/pkgs/aimstack/llamaindex_observer) |
| experiment_tracker   | App for tracking and exploring ML experiments. Integrations with various ML libraries, including Acme, CatBoost, fastai, Hugging Face Transformers, Keras, Keras Tuner, LightGBM, MXNet, Optuna, PaddlePaddle, PyTorch Ignite, SDB3, and XGBoost. | Experiment Tracking | [docs](https://aimstack.readthedocs.io/en/latest/apps/experiment_tracker.html) | [source](https://github.com/aimhubio/aim/tree/main/pkgs/aimstack/experiment_tracker) |

# 🏁 Quick start

Follow the steps below to get started with Aim.

## 1. Install Aim on your training environment

```shell
pip3 install aim
```

## 2. Integrate Aim with your code

```python
from aimstack.base import Run, Metric

# Initialize a new run
run = Run()

# Log run parameters
run["hparams"] = {
    "learning_rate": 0.001,
    "batch_size": 32,
}

# Init a metric
metric = Metric(run, name='loss', context={'subset': 'training'})

for i in range(1000):
      metric.track(i, epoch=1)
```

## 3. Start Aim server

```shell
aim server
```

## 4. Start Aim UI

```shell
aim ui
```

# 🛣️ Roadmap
TODO:


# 👥 Community

## Aim README badge

Add Aim badge to your README, if you've enjoyed using Aim in your work:

[![Aim](https://img.shields.io/badge/powered%20by-Aim-%231473E6)](https://github.com/aimhubio/aim)

```
[![Aim](https://img.shields.io/badge/powered%20by-Aim-%231473E6)](https://github.com/aimhubio/aim)
```

## Cite Aim in your papers

In case you've found Aim helpful in your research journey, we'd be thrilled if you could acknowledge Aim's contribution:

```bibtex
@software{Arakelyan_Aim_2020,
  author = {Arakelyan, Gor and Soghomonyan, Gevorg and {The Aim team}},
  doi = {10.5281/zenodo.6536395},
  license = {Apache-2.0},
  month = {6},
  title = {{Aim}},
  url = {https://github.com/aimhubio/aim},
  version = {3.9.3},
  year = {2020}
}
```

## Contributing to Aim

Considering contibuting to Aim? 
To get started, please take a moment to read the [CONTRIBUTING.md](https://github.com/aimhubio/aim/blob/main/CONTRIBUTING.md) guide. 

Join Aim contributors by submitting your first pull request. Happy coding! 😊

<a href="https://github.com/aimhubio/aim/graphs/contributors">
  <img src="https://contrib.rocks/image?repo=aimhubio/aim" />
</a>

Made with [contrib.rocks](https://contrib.rocks).

## More questions?

1. [Read the docs](https://aimstack.readthedocs.io/en/latest/)
2. [Open a feature request or report a bug](https://github.com/aimhubio/aim/issues)
3. [Join Discord community server](https://community.aimstack.io/)
