h2oai / h2ogpt

Private chat with local GPT with document, images, video, etc. 100% private, Apache 2.0. Supports oLLaMa, Mixtral, llama.cpp, and more. Demo: https://gpt.h2o.ai/ https://gpt-docs.h2o.ai/
http://h2o.ai
Apache License 2.0
11.47k stars 1.25k forks source link

Stable release schedule #315

Open yhyu13 opened 1 year ago

yhyu13 commented 1 year ago

Hi, maybe a stupid question, when would the first stable release be? Is there any schedule on that?

pseudotensor commented 1 year ago

Great question. @achraf-mer has strengthed our wheel building and CI and will soon release to pypi and docker images for public consumption.

pseudotensor commented 1 year ago

Let's keep it open for @achraf-mer

ChathurindaRanasinghe commented 1 year ago

@achraf-mer It is not possible to have direct dependencies when publishing to PYPI.

Screenshot 2023-06-27 at 18 37 56

We have to update these to get from PYPI. https://github.com/h2oai/h2ogpt/blob/15dda4a2f8f2631128e7f8edabd8cd894760bebd/requirements.txt#L22 https://github.com/h2oai/h2ogpt/blob/15dda4a2f8f2631128e7f8edabd8cd894760bebd/reqs_optional/requirements_optional_langchain.metrics.txt#L2 https://github.com/h2oai/h2ogpt/blob/15dda4a2f8f2631128e7f8edabd8cd894760bebd/reqs_optional/requirements_optional_langchain.metrics.txt#L8

pseudotensor commented 1 year ago

@achraf-mer @ChathurindaRanasinghe , the peft wheel is now on s3:

https://s3.console.aws.amazon.com/s3/object/h2o-release?region=us-east-1&prefix=h2ogpt/peft-0.4.0.dev0-py3-none-any.whl

I've changed requirements.txt file. Please make a release of h2ogpt. Thanks!

pseudotensor commented 1 year ago

FYI the build process is trivial for peft:

git clone https://github.com/h2oai/peft.git
cd peft
python setup.py bdist_wheel
#  dist/peft-0.4.0.dev0-py3-none-any.whl
pseudotensor commented 1 year ago

Stable release requires:

1) Only linux x86_64 for now for any artifacts or releases. I'll still manage windows installer for now, and @Mathanraj-Sharma is making mac installer.

2) pypi release with no s3, github, http or other such packages. Any packages mentioned in readme_linux.md that require http etc. are not required. Same for any s3, github, http stuff inside any requirements files, just drop those it's fine. E.g. migration chroma packages from our s3.

3) Also ignore extra stuff from readme_linux like nltk, playwrite, etc. Not required. Similarly for sudo stuff, not required for some usability. if they want full thing they need to use docker for x86_64, one click installer for windows, or follow full instructions in each readme.

4) All "optional" reqs should be installed, EXCEPT the gpl one so that the pypi release can be apache2.0 still.

5) Still allow them to do pip install h2ogpt[GPU] so it adds the --extra-index https://download.pytorch.org/whl/cu117

6) for pypi [GPU] we will assume CUDA only.

7) For h2ogpt[CPU] llama_cpp_python should be plainly installed. For [GPU] see https://llama-cpp-python.readthedocs.io/en/latest/ -- pre-append CMAKE_ARGS="-DLLAMA_CUBLAS=on" if possible. If not possible, then it's ok for now.

Minimal Stable release workflow:

1) Build docker with released version and store (so not just nightly) 2) Build pypi release and push to pypi 3) Iterate release number

Future additional components:

1) full GPU asset, which is like docker but comes as pip installable package 2) MacOS one-click installer built in our jenkins as nightly and release 3) Windows one-click installer built in our jenkins as nightly and release