Skip to content
Merged

V1 #25

Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
The table of contents is too big for display.
Diff view
Diff view
  •  
  •  
  •  
42 changes: 0 additions & 42 deletions .github/workflows/pages.yml

This file was deleted.

47 changes: 47 additions & 0 deletions .github/workflows/tests.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,47 @@
name: Tests

on:
push:
pull_request:
workflow_dispatch:

permissions:
contents: read

jobs:
# Ruff and mypy run inside every matrix entry rather than in a job of their own:
# mypy's result depends on the installed dependency versions, so a single
# environment cannot speak for the whole support range.
#
# The matrix lives in ci/matrix.json so that this workflow and
# `python scripts/run_matrix.py` cannot describe different environments.
matrix:
name: Load matrix
runs-on: ubuntu-latest
outputs:
include: ${{ steps.load.outputs.include }}
steps:
- uses: actions/checkout@v5
- id: load
run: echo "include=$(jq -c '.include' ci/matrix.json)" >> "$GITHUB_OUTPUT"

pytest:
name: ${{ matrix.name }}
needs: matrix
runs-on: ubuntu-latest
continue-on-error: ${{ matrix.allow_failure == true }}
strategy:
fail-fast: false
matrix:
include: ${{ fromJson(needs.matrix.outputs.include) }}

steps:
- uses: actions/checkout@v5
- name: Install uv and Python ${{ matrix.python }}
uses: astral-sh/setup-uv@c771a70e6277c0a99b617c7a806ffedaca235ff9 # v9.0.0
with:
python-version: ${{ matrix.python }}
# The same entry point a developer runs locally, so a green CI leg and a green
# local run mean the same thing.
- name: Run ${{ matrix.name }}
run: python scripts/run_matrix.py ${{ matrix.name }} --verbose
3 changes: 3 additions & 0 deletions .gitignore
Original file line number Diff line number Diff line change
Expand Up @@ -129,6 +129,9 @@ dmypy.json
.pyre/
*.onnx
*.falcon
*.fnnx
benchmark-results*.json
tmp.*
test.ipynb
falcon/dev_tmp.py
Untitled.ipynb
Expand Down
3 changes: 3 additions & 0 deletions .vscode/settings.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,3 @@
{
"python.analysis.typeCheckingMode": "off",
}
33 changes: 8 additions & 25 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -12,12 +12,7 @@ Falcon is a lightweight python library that allows to train production-ready mac

- Simplicity: With Falcon, training a comprehensive Machine Learning pipeline is as easy as writing a single line of code.
- Flexibility: Falcon offers a range of pre-set configurations, enabling swift interchangeability of internal components with just a minor parameter change.
- Extendability: Falcon's modular design, along with its extension registration procedure, allows seamless integration with virtually any framework.
- Portability: A standout feature of Falcon is its deep native support for [ONNX](https://onnx.ai/) models. This lets you export complex pipelines into a single ONNX graph, irrespective of the underlying frameworks. As a result, your model can be conveniently deployed on any platform or with almost any programming language, all without dependence on the training environment.

## Future Developments 🔮

Falcon ML is under active development. We've already implemented a robust and production-ready core functionality, but there's much more to come. We plan to introduce many new features by the end of the year, so stay tuned!
- Portability: A standout feature of Falcon is its deep native support for [FNNX](https://github.com/BeastByteAI/FNNX)/[ONNX](https://onnx.ai/) models. This lets you export complex pipelines into a single production-ready file, irrespective of the underlying frameworks. As a result, your model can be conveniently deployed without any dependency on the training environment.

⭐ If you liked the project, please support us with a star!

Expand Down Expand Up @@ -55,26 +50,14 @@ Latest version from [GitHub](https://github.com/OKUA1/falcon)
pip install git+https://github.com/OKUA1/falcon
```

Installing some of the dependencies on **Apple Silicon Macs** might not work, the workaround is to create an X86 environment using [Conda](https://docs.conda.io/en/latest/)
Optional extras add the FNNX runtime, the gradient boosting candidates and hyperparameter search.

```bash
conda create -n falcon_env
conda activate falcon_env
conda config --env --set subdir osx-64
conda install python=3.9
pip3 install falcon-ml
```bash
pip install "falcon-ml[runtime]"
pip install "falcon-ml[gbdt]"
pip install "falcon-ml[hpo]"
```

## Documentation 📚
You can find a more detailed guide as well as an API reference in our [official docs](https://beastbyteai.github.io/falcon/intro.html#).

## Authors & Contributors ✨
<table>
<tbody>
<tr>
<td align="center"><a href="https://www.linkedin.com/in/oleh-kostromin-b671a4157/"><img src="https://avatars.githubusercontent.com/u/48349467?v=4" width="100px;" alt=""/><br /><sub><b>Oleg Kostromin</b></sub></a><br /></td>
<td align="center"><a href="https://www.linkedin.com/in/iryna-kondrashchenko-673800155/"><img src="https://avatars.githubusercontent.com/u/72279145?v=4" width="100px;" alt=""/><br /><sub><b>Iryna Kondrashchenko</b></sub></a><br /></td>
<td align="center"><a href="https://www.linkedin.com/in/pasinimarco/"><img src="https://avatars.githubusercontent.com/u/50598094?v=4" width="100px;" alt=""/><br /><sub><b>Marco Pasini</b></sub></a><br /></td>
</tr>
</tbody>
</table>
The [user guide](docs/guide.md) covers configuration, evaluation, export and inference.

1 change: 1 addition & 0 deletions benchmarks/__init__.py
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@

Loading
Loading