From 11c579eaf88dec32c616fe3b30a9af1c601f3635 Mon Sep 17 00:00:00 2001 From: Philipp Guevorguian Date: Wed, 21 Feb 2024 09:26:47 +0400 Subject: [PATCH 01/21] remove test env file to prepare for dynamic test env generation --- test_environment.yml | 161 ------------------------------------------- 1 file changed, 161 deletions(-) delete mode 100644 test_environment.yml diff --git a/test_environment.yml b/test_environment.yml deleted file mode 100644 index c4c3ba1..0000000 --- a/test_environment.yml +++ /dev/null @@ -1,161 +0,0 @@ -name: test_cl11.8_t_4.37 -channels: - - pytorch - - nvidia - - conda-forge -dependencies: - - _libgcc_mutex=0.1=conda_forge - - _openmp_mutex=4.5=2_kmp_llvm - - blas=2.116=mkl - - blas-devel=3.9.0=16_linux64_mkl - - bzip2=1.0.8=hd590300_5 - - ca-certificates=2024.2.2=hbcca054_0 - - cuda-cudart=12.1.105=0 - - cuda-cupti=12.1.105=0 - - cuda-libraries=12.1.0=0 - - cuda-nvrtc=12.1.105=0 - - cuda-nvtx=12.1.105=0 - - cuda-opencl=12.3.101=0 - - cuda-runtime=12.1.0=0 - - filelock=3.13.1=pyhd8ed1ab_0 - - gmp=6.3.0=h59595ed_0 - - gmpy2=2.1.2=py310h3ec546c_1 - - icu=73.2=h59595ed_0 - - jinja2=3.1.3=pyhd8ed1ab_0 - - ld_impl_linux-64=2.40=h41732ed_0 - - libblas=3.9.0=16_linux64_mkl - - libcblas=3.9.0=16_linux64_mkl - - libcublas=12.1.0.26=0 - - libcufft=11.0.2.4=0 - - libcufile=1.8.1.2=0 - - libcurand=10.3.4.107=0 - - libcusolver=11.4.4.55=0 - - libcusparse=12.0.2.55=0 - - libffi=3.4.2=h7f98852_5 - - libgcc-ng=13.2.0=h807b86a_5 - - libgfortran-ng=13.2.0=h69a702a_5 - - libgfortran5=13.2.0=ha4646dd_5 - - libgomp=13.2.0=h807b86a_5 - - libhwloc=2.9.3=default_h554bfaf_1009 - - libiconv=1.17=hd590300_2 - - liblapack=3.9.0=16_linux64_mkl - - liblapacke=3.9.0=16_linux64_mkl - - libnpp=12.0.2.50=0 - - libnsl=2.0.1=hd590300_0 - - libnvjitlink=12.1.105=0 - - libnvjpeg=12.1.1.14=0 - - libsqlite=3.45.1=h2797004_0 - - libstdcxx-ng=13.2.0=h7e041cc_5 - - libuuid=2.38.1=h0b41bf4_0 - - libxcrypt=4.4.36=hd590300_1 - - libxml2=2.12.5=h232c23b_0 - - libzlib=1.2.13=hd590300_5 - - llvm-openmp=15.0.7=h0cdce71_0 - - markupsafe=2.1.5=py310h2372a71_0 - - mkl=2022.1.0=h84fe81f_915 - - mkl-devel=2022.1.0=ha770c72_916 - - mkl-include=2022.1.0=h84fe81f_915 - - mpc=1.3.1=hfe3b2da_0 - - mpfr=4.2.1=h9458935_0 - - mpmath=1.3.0=pyhd8ed1ab_0 - - ncurses=6.4=h59595ed_2 - - networkx=3.2.1=pyhd8ed1ab_0 - - openssl=3.2.1=hd590300_0 - - pip=24.0=pyhd8ed1ab_0 - - python=3.10.13=hd12c33a_1_cpython - - python_abi=3.10=4_cp310 - - pytorch=2.1.0=py3.10_cuda12.1_cudnn8.9.2_0 - - pytorch-cuda=12.1=ha16c6d3_5 - - pytorch-mutex=1.0=cuda - - pyyaml=6.0.1=py310h2372a71_1 - - readline=8.2=h8228510_1 - - setuptools=69.0.3=pyhd8ed1ab_0 - - sympy=1.12=pypyh9d50eac_103 - - tbb=2021.11.0=h00ab1b0_1 - - tk=8.6.13=noxft_h4845f30_101 - - torchtriton=2.1.0=py310 - - typing_extensions=4.9.0=pyha770c72_0 - - wheel=0.42.0=pyhd8ed1ab_0 - - xz=5.2.6=h166bdaf_0 - - yaml=0.2.5=h7f98852_2 - - pip: - - accelerate==0.26.1 - - aim==3.17.0 - - aim-ui==3.17.0 - - aimrecords==0.0.7 - - aimrocks==0.4.0 - - aiofiles==23.2.1 - - aiohttp==3.9.3 - - aiosignal==1.3.1 - - alembic==1.13.1 - - annotated-types==0.6.0 - - anyio==4.2.0 - - async-timeout==4.0.3 - - attrs==23.2.0 - - backoff==2.2.1 - - base58==2.0.1 - - bitsandbytes==0.42.0 - - cachetools==5.3.2 - - certifi==2024.2.2 - - cffi==1.16.0 - - charset-normalizer==3.3.2 - - click==8.1.7 - - cloudpickle==3.0.0 - - contourpy==1.2.0 - - cryptography==42.0.2 - - cycler==0.12.1 - - datasets==2.14.7 - - dill==0.3.7 - - exceptiongroup==1.2.0 - - fastapi==0.109.2 - - fonttools==4.48.1 - - frozenlist==1.4.1 - - fsspec==2023.10.0 - - greenlet==3.0.3 - - grpcio==1.60.1 - - h11==0.14.0 - - huggingface-hub==0.20.3 - - idna==3.6 - - kiwisolver==1.4.5 - - mako==1.3.2 - - matplotlib==3.8.2 - - multidict==6.0.5 - - multiprocess==0.70.15 - - numpy==1.26.4 - - packaging==23.2 - - pandas==2.2.0 - - pillow==10.2.0 - - protobuf==4.25.2 - - psutil==5.9.8 - - py3nvml==0.2.7 - - pyarrow==15.0.0 - - pyarrow-hotfix==0.6 - - pycparser==2.21 - - pydantic==2.6.1 - - pydantic-core==2.16.2 - - pyjwt==2.8.0 - - pyparsing==3.1.1 - - python-dateutil==2.8.2 - - pytz==2024.1 - - rdkit==2023.9.4 - - regex==2023.12.25 - - requests==2.31.0 - - restrictedpython==7.0 - - safetensors==0.4.2 - - scipy==1.12.0 - - segment-analytics-python==2.3.1 - - six==1.16.0 - - sniffio==1.3.0 - - sqlalchemy==1.4.51 - - starlette==0.36.3 - - submitit==1.5.1 - - tokenizers==0.15.1 - - tqdm==4.66.2 - - transformers==4.37.0 - - tzdata==2024.1 - - urllib3==2.2.0 - - uvicorn==0.27.1 - - xmltodict==0.13.0 - - xxhash==3.4.1 - - yarl==1.9.4 -prefix: /home/philipp/miniforge3/envs/test_cl11.8_t_4.37 From ae1995276d3c73a791fb04ca2320c096f3dfc106 Mon Sep 17 00:00:00 2001 From: Philipp Guevorguian Date: Wed, 21 Feb 2024 09:41:39 +0400 Subject: [PATCH 02/21] remove breaking flash attention and conda-pack deps --- .github/workflows/main.yml | 10 +++++++++- 1 file changed, 9 insertions(+), 1 deletion(-) diff --git a/.github/workflows/main.yml b/.github/workflows/main.yml index d0e24e8..695fedc 100644 --- a/.github/workflows/main.yml +++ b/.github/workflows/main.yml @@ -21,11 +21,19 @@ jobs: with: python-version: '3.10' + - name: Remove flash-attn dependency + run: | + sed -i '/flash-attn/d' environment.yml + + - name: Remove conda-pack dependency + run: | + sed -i '/conda-pack/d' environment.yml + - name: Set up Conda uses: conda-incubator/setup-miniconda@v2 with: auto-update-conda: true - environment-file: test_environment.yml + environment-file: environment.yml activate-environment: testenv - name: list commits on PR run: | From 5bc7dbb578a75de5b9684a7748e68c835d349ea4 Mon Sep 17 00:00:00 2001 From: Philipp Guevorguian Date: Wed, 21 Feb 2024 10:14:43 +0400 Subject: [PATCH 03/21] print test information --- confirm_tests.py | 24 ++++++++++++++++-------- 1 file changed, 16 insertions(+), 8 deletions(-) diff --git a/confirm_tests.py b/confirm_tests.py index d9be6f2..1c4622a 100644 --- a/confirm_tests.py +++ b/confirm_tests.py @@ -13,6 +13,19 @@ class TestType(enum.Enum): INTEGRATION = "integration" +def print_test_details(unit_test_result): + print(f"\nTotal Tests: {unit_test_result.testsRun}") + print(f"Failures: {len(unit_test_result.failures)}") + print(f"Errors: {len(unit_test_result.errors)}") + print(f"Skipped: {len(unit_test_result.skipped)}") + print(f"Successful: {unit_test_result.wasSuccessful()}") + if unit_test_result.failures or unit_test_result.errors: + print("\nDetails about failures and errors:") + for failure in unit_test_result.failures + unit_test_result.errors: + print(f"\nTest: {failure[0]}") + print(f"Details: {failure[1]}") + + def write_test_status( git_commit_hash: str, status: str = "FAIL", file_name: str = "test_status" ): @@ -31,16 +44,11 @@ def run_unit_tests(): loader = unittest.TestLoader() # Discover and load unit tests unit_test_suite = loader.discover("unit_tests", pattern="*test*") - for test in unit_test_suite: - print(test) # Run the unit tests - runner = unittest.TextTestRunner() + runner = unittest.TextTestRunner(failfast=False, verbosity=2) result = runner.run(unit_test_suite) - if result.wasSuccessful(): - print("All tests passed!") - else: - print("Some tests failed.") + print_test_details(result) if __name__ == "__main__": @@ -87,7 +95,7 @@ def run_unit_tests(): confirm = args.confirm gpus = args.gpus if run is not None: - match run: + match (run): case TestType.UNIT: run_unit_tests() case TestType.INTEGRATION: From 634a94c8b12aff434ca383348ba6cfc2eac163f2 Mon Sep 17 00:00:00 2001 From: Philipp Guevorguian Date: Fri, 23 Feb 2024 13:25:29 +0400 Subject: [PATCH 04/21] add linting for github actions to pre commit --- .pre-commit-config.yaml | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/.pre-commit-config.yaml b/.pre-commit-config.yaml index bbf10ba..26771b7 100644 --- a/.pre-commit-config.yaml +++ b/.pre-commit-config.yaml @@ -13,3 +13,8 @@ repos: rev: 6.0.0 hooks: - id: flake8 + +- repo: https://github.com/rhysd/actionlint + rev: v1.6.26 + hooks: + - id: actionlint From 6badeb799b02e36dca89d876cc518b9c67f6cb3c Mon Sep 17 00:00:00 2001 From: Philipp Guevorguian Date: Fri, 23 Feb 2024 13:40:47 +0400 Subject: [PATCH 05/21] run unit tests in CI via github actions --- .github/workflows/main.yml | 12 ++++++++++++ 1 file changed, 12 insertions(+) diff --git a/.github/workflows/main.yml b/.github/workflows/main.yml index 695fedc..994afad 100644 --- a/.github/workflows/main.yml +++ b/.github/workflows/main.yml @@ -29,12 +29,24 @@ jobs: run: | sed -i '/conda-pack/d' environment.yml + - name: Remove chemlactica dependency + run: | + sed -i '/chemlactica/d' environment.yml + - name: Set up Conda uses: conda-incubator/setup-miniconda@v2 with: auto-update-conda: true environment-file: environment.yml activate-environment: testenv + - name: install local chemlactica package + run: | + pip install . + + - name: Run unit tests + run: | + python3 confirm_tests.py --run unit + - name: list commits on PR run: | response=$(curl --request GET \ From a3dc04bcda5d31129860bdc3b50502549a9f24a8 Mon Sep 17 00:00:00 2001 From: Philipp Guevorguian Date: Fri, 23 Feb 2024 13:41:59 +0400 Subject: [PATCH 06/21] add error handling to json line loading --- chemlactica/utils/dataset_utils.py | 14 ++++++++------ 1 file changed, 8 insertions(+), 6 deletions(-) diff --git a/chemlactica/utils/dataset_utils.py b/chemlactica/utils/dataset_utils.py index 192b585..f18f049 100644 --- a/chemlactica/utils/dataset_utils.py +++ b/chemlactica/utils/dataset_utils.py @@ -10,12 +10,14 @@ def load_jsonl_line(jsonl_line): - _maybe_compound_dict = json.loads(jsonl_line) - if isinstance(_maybe_compound_dict, dict): - return _maybe_compound_dict - else: - return json.loads(_maybe_compound_dict) - return json.loads(jsonl_line) + try: + _maybe_compound_dict = json.loads(jsonl_line) + if isinstance(_maybe_compound_dict, dict): + return _maybe_compound_dict + else: + return json.loads(_maybe_compound_dict) + except json.JSONDecodeError as e: + raise ValueError(f"Error decoding JSON: {e}") def generate_assay_docs(examples, train_config): From 6933f2146561342af4238f14783758899b22d473 Mon Sep 17 00:00:00 2001 From: Philipp Guevorguian Date: Fri, 23 Feb 2024 13:52:39 +0400 Subject: [PATCH 07/21] expand example unit test coverage --- unit_tests/test_something.py | 50 +++++++++++++++++++++++++++++++++++- 1 file changed, 49 insertions(+), 1 deletion(-) diff --git a/unit_tests/test_something.py b/unit_tests/test_something.py index f53680c..909cfc2 100644 --- a/unit_tests/test_something.py +++ b/unit_tests/test_something.py @@ -1,7 +1,55 @@ import unittest +import torch +from chemlactica.utils.dataset_utils import load_jsonl_line +from chemlactica.utils.dataset_utils import group_texts +from unittest.mock import Mock class TestDataProcessing(unittest.TestCase): - def test_something(self): + def test_positive(self): result = 2 + 2 self.assertEqual(result, 4, "Expected result: 4") + + +class TestLoadJsonlLine(unittest.TestCase): + # Can load a valid JSONL line as a dictionary + def test_load_valid_jsonl_line_as_dict(self): + jsonl_line = """{"key": "value"}""" + loaded_line = load_jsonl_line(jsonl_line) + assert load_jsonl_line(jsonl_line) == loaded_line + + # Returns None when given an empty string + def test_raise_value_error_empyty_line(self): + jsonl_line = "" + with self.assertRaises(ValueError): + load_jsonl_line(jsonl_line) + + +class TestGroupTexts(unittest.TestCase): + def test_empty_attention_mask(self): + # Mock the get_tokenizer function + mocker = Mock() + mocker.eos_token_id = 0 + mocker.return_value = mocker + + # Create example input tensors + examples = {"input_ids": [torch.tensor([1, 2, 3])], "attention_mask": []} + + # Set train_config + train_config = {"tokenizer_path": "path/to/tokenizer", "block_size": 3} + + # Call the group_texts function + with self.assertRaises(Exception): + group_texts(examples, train_config) + + # def test_splits_into_correct_size_chunks(self): + # mocker = Mock() + # mocker.eos_token_id = 0 + # mocker.return_value = mocker + # train_config = {"block_size": 2037} + # examples = {"input_ids": [torch.tensor([1, 2, 3])], "attention_mask": []} + + # self.assertTrue(all(len(ids) == + # train_config["block_size"] for ids in result["input_ids"])) + # self.assertTrue(all(len(mask) == + # train_config["block_size"] for mask in result["attention_mask"])) From 8a36b75e0fb9c1fd6f16168d4a226334ae7ef165 Mon Sep 17 00:00:00 2001 From: Philipp Guevorguian Date: Fri, 23 Feb 2024 15:15:30 +0400 Subject: [PATCH 08/21] set output directory to correspond to experiment hash --- chemlactica/train.py | 1 + 1 file changed, 1 insertion(+) diff --git a/chemlactica/train.py b/chemlactica/train.py index 345e5b2..78cfe53 100644 --- a/chemlactica/train.py +++ b/chemlactica/train.py @@ -145,6 +145,7 @@ def train( broadcast_object_list(experiment_hash_list) print(f"Process {accelerator.process_index} aim hash: {experiment_hash_list[0]}") + experiment_hash = experiment_hash_list[0] if not valid_batch_size: valid_batch_size = train_batch_size From b8494bab379de0b492111ce8f3bdb14260f6c587 Mon Sep 17 00:00:00 2001 From: Philipp Guevorguian Date: Mon, 26 Feb 2024 09:57:33 +0400 Subject: [PATCH 09/21] remove redundant requirements file --- requirements.txt | 112 ----------------------------------------------- 1 file changed, 112 deletions(-) delete mode 100644 requirements.txt diff --git a/requirements.txt b/requirements.txt deleted file mode 100644 index 129c370..0000000 --- a/requirements.txt +++ /dev/null @@ -1,112 +0,0 @@ -accelerate==0.20.3 -aim==3.17.5 -aim-ui==3.17.5 -aimrecords==0.0.7 -aimrocks==0.4.0 -aiofiles==23.1.0 -tqdm -aiohttp==3.8.4 -aiosignal==1.3.1 -alembic==1.11.1 -anyio==3.7.0 -async-timeout==4.0.2 -attrs==23.1.0 -backoff==2.2.1 -base58==2.0.1 -brotlipy==0.7.0 -cachetools==5.3.1 -certifi==2023.7.22 -cfgv==3.3.1 -charset-normalizer==3.1.0 -click==8.1.3 -cmake==3.26.4 -coloredlogs==15.0.1 -cryptography==41.0.1 -datasets==2.13.0 -dill==0.3.6 -distlib==0.3.6 -evaluate==0.4.0 -exceptiongroup==1.1.2 -fastapi==0.98.0 -filelock==3.12.2 -frozenlist==1.3.3 -fsspec==2023.6.0 -greenlet==2.0.2 -grpcio==1.56.0 -h11==0.14.0 -huggingface-hub==0.15.1 -humanfriendly==10.0 -identify==2.5.24 -importlib-metadata==6.8.0 -importlib-resources==6.0.0 -Jinja2==3.1.2 -joblib==1.2.0 -jsonpatch==1.33 -jsonpointer==2.1 -lit==16.0.6 -Mako==1.2.4 -MarkupSafe==2.1.3 -monotonic==1.6 -mpmath==1.3.0 -multidict==6.0.4 -multiprocess==0.70.14 -networkx==3.1 -nodeenv==1.8.0 -numpy==1.24.4 -nvidia-cublas-cu11==11.10.3.66 -nvidia-cuda-cupti-cu11==11.7.101 -nvidia-cuda-nvrtc-cu11==11.7.99 -nvidia-cuda-runtime-cu11==11.7.99 -nvidia-cudnn-cu11==8.5.0.96 -nvidia-cufft-cu11==10.9.0.58 -nvidia-curand-cu11==10.2.10.91 -nvidia-cusolver-cu11==11.4.0.1 -nvidia-cusparse-cu11==11.7.4.91 -nvidia-nccl-cu11==2.14.3 -nvidia-nvtx-cu11==11.7.91 -optimum==1.9.1 -packaging==23.1 -pandas==2.0.2 -Pillow==9.5.0 -platformdirs==3.8.0 -pluggy==1.2.0 -pre-commit==3.3.3 -protobuf==3.20.3 -psutil==5.9.5 -py3nvml==0.2.7 -pyarrow==12.0.1 -pydantic==1.10.9 -pyOpenSSL==23.2.0 -python-dateutil==2.8.2 -pytz==2023.3 -PyYAML==6.0 -regex==2023.6.3 -responses==0.18.0 -RestrictedPython==6.0 -ruamel.yaml==0.17.32 -ruamel.yaml.clib==0.2.7 -safetensors==0.3.1 -scikit-learn==1.2.2 -scipy==1.10.1 -segment-analytics-python==2.2.3 -sentencepiece==0.1.99 -six==1.16.0 -sniffio==1.3.0 -SQLAlchemy==1.4.48 -starlette==0.27.0 -sympy==1.12 -threadpoolctl==3.1.0 -tokenizers==0.13.3 -torch==2.0.1 -transformers==4.30.2 -triton==2.0.0 -typing_extensions==4.6.3 -tzdata==2023.3 -urllib3==2.0.3 -uvicorn==0.22.0 -virtualenv==20.23.1 -xmltodict==0.13.0 -xxhash==3.2.0 -yarl==1.9.2 -zipp==3.16.2 -zstandard==0.21.0 From 5f823b4f19547ecdafa87464d8b8caf77c00d802 Mon Sep 17 00:00:00 2001 From: Philipp Guevorguian Date: Mon, 26 Feb 2024 11:29:38 +0400 Subject: [PATCH 10/21] add test status --- test_status.yaml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/test_status.yaml b/test_status.yaml index 02df6a0..1350802 100644 --- a/test_status.yaml +++ b/test_status.yaml @@ -1 +1 @@ -3fad7942cb631ed45c48c1be3c9b3992aaf312a7: PASS +b8494bab379de0b492111ce8f3bdb14260f6c587: PASS From c5197100649960f04c076a633aae28f58d42cb78 Mon Sep 17 00:00:00 2001 From: Philipp Guevorguian Date: Mon, 26 Feb 2024 11:37:06 +0400 Subject: [PATCH 11/21] add test status --- test_status.yaml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/test_status.yaml b/test_status.yaml index 46eadba..505d58a 100644 --- a/test_status.yaml +++ b/test_status.yaml @@ -1 +1 @@ -b8494bab379de0b492111ce8f3bdb14260f6c587: PASS \ No newline at end of file +3dbdc39ac468949a224d39adaec25abf5e47f25b: PASS From 86776271891f271861400052eddeb84e4a922ac9 Mon Sep 17 00:00:00 2001 From: Philipp Guevorguian Date: Mon, 26 Feb 2024 11:47:13 +0400 Subject: [PATCH 12/21] reintroduce separate test environment file --- .github/workflows/main.yml | 20 ++--- test_environment.yml | 161 +++++++++++++++++++++++++++++++++++++ 2 files changed, 171 insertions(+), 10 deletions(-) create mode 100644 test_environment.yml diff --git a/.github/workflows/main.yml b/.github/workflows/main.yml index 994afad..29a703f 100644 --- a/.github/workflows/main.yml +++ b/.github/workflows/main.yml @@ -21,23 +21,23 @@ jobs: with: python-version: '3.10' - - name: Remove flash-attn dependency - run: | - sed -i '/flash-attn/d' environment.yml + # - name: Remove flash-attn dependency + # run: | + # sed -i '/flash-attn/d' environment.yml - - name: Remove conda-pack dependency - run: | - sed -i '/conda-pack/d' environment.yml + # - name: Remove conda-pack dependency + # run: | + # sed -i '/conda-pack/d' environment.yml - - name: Remove chemlactica dependency - run: | - sed -i '/chemlactica/d' environment.yml + # - name: Remove chemlactica dependency + # run: | + # sed -i '/chemlactica/d' environment.yml - name: Set up Conda uses: conda-incubator/setup-miniconda@v2 with: auto-update-conda: true - environment-file: environment.yml + environment-file: test_environment.yml activate-environment: testenv - name: install local chemlactica package run: | diff --git a/test_environment.yml b/test_environment.yml new file mode 100644 index 0000000..c4c3ba1 --- /dev/null +++ b/test_environment.yml @@ -0,0 +1,161 @@ +name: test_cl11.8_t_4.37 +channels: + - pytorch + - nvidia + - conda-forge +dependencies: + - _libgcc_mutex=0.1=conda_forge + - _openmp_mutex=4.5=2_kmp_llvm + - blas=2.116=mkl + - blas-devel=3.9.0=16_linux64_mkl + - bzip2=1.0.8=hd590300_5 + - ca-certificates=2024.2.2=hbcca054_0 + - cuda-cudart=12.1.105=0 + - cuda-cupti=12.1.105=0 + - cuda-libraries=12.1.0=0 + - cuda-nvrtc=12.1.105=0 + - cuda-nvtx=12.1.105=0 + - cuda-opencl=12.3.101=0 + - cuda-runtime=12.1.0=0 + - filelock=3.13.1=pyhd8ed1ab_0 + - gmp=6.3.0=h59595ed_0 + - gmpy2=2.1.2=py310h3ec546c_1 + - icu=73.2=h59595ed_0 + - jinja2=3.1.3=pyhd8ed1ab_0 + - ld_impl_linux-64=2.40=h41732ed_0 + - libblas=3.9.0=16_linux64_mkl + - libcblas=3.9.0=16_linux64_mkl + - libcublas=12.1.0.26=0 + - libcufft=11.0.2.4=0 + - libcufile=1.8.1.2=0 + - libcurand=10.3.4.107=0 + - libcusolver=11.4.4.55=0 + - libcusparse=12.0.2.55=0 + - libffi=3.4.2=h7f98852_5 + - libgcc-ng=13.2.0=h807b86a_5 + - libgfortran-ng=13.2.0=h69a702a_5 + - libgfortran5=13.2.0=ha4646dd_5 + - libgomp=13.2.0=h807b86a_5 + - libhwloc=2.9.3=default_h554bfaf_1009 + - libiconv=1.17=hd590300_2 + - liblapack=3.9.0=16_linux64_mkl + - liblapacke=3.9.0=16_linux64_mkl + - libnpp=12.0.2.50=0 + - libnsl=2.0.1=hd590300_0 + - libnvjitlink=12.1.105=0 + - libnvjpeg=12.1.1.14=0 + - libsqlite=3.45.1=h2797004_0 + - libstdcxx-ng=13.2.0=h7e041cc_5 + - libuuid=2.38.1=h0b41bf4_0 + - libxcrypt=4.4.36=hd590300_1 + - libxml2=2.12.5=h232c23b_0 + - libzlib=1.2.13=hd590300_5 + - llvm-openmp=15.0.7=h0cdce71_0 + - markupsafe=2.1.5=py310h2372a71_0 + - mkl=2022.1.0=h84fe81f_915 + - mkl-devel=2022.1.0=ha770c72_916 + - mkl-include=2022.1.0=h84fe81f_915 + - mpc=1.3.1=hfe3b2da_0 + - mpfr=4.2.1=h9458935_0 + - mpmath=1.3.0=pyhd8ed1ab_0 + - ncurses=6.4=h59595ed_2 + - networkx=3.2.1=pyhd8ed1ab_0 + - openssl=3.2.1=hd590300_0 + - pip=24.0=pyhd8ed1ab_0 + - python=3.10.13=hd12c33a_1_cpython + - python_abi=3.10=4_cp310 + - pytorch=2.1.0=py3.10_cuda12.1_cudnn8.9.2_0 + - pytorch-cuda=12.1=ha16c6d3_5 + - pytorch-mutex=1.0=cuda + - pyyaml=6.0.1=py310h2372a71_1 + - readline=8.2=h8228510_1 + - setuptools=69.0.3=pyhd8ed1ab_0 + - sympy=1.12=pypyh9d50eac_103 + - tbb=2021.11.0=h00ab1b0_1 + - tk=8.6.13=noxft_h4845f30_101 + - torchtriton=2.1.0=py310 + - typing_extensions=4.9.0=pyha770c72_0 + - wheel=0.42.0=pyhd8ed1ab_0 + - xz=5.2.6=h166bdaf_0 + - yaml=0.2.5=h7f98852_2 + - pip: + - accelerate==0.26.1 + - aim==3.17.0 + - aim-ui==3.17.0 + - aimrecords==0.0.7 + - aimrocks==0.4.0 + - aiofiles==23.2.1 + - aiohttp==3.9.3 + - aiosignal==1.3.1 + - alembic==1.13.1 + - annotated-types==0.6.0 + - anyio==4.2.0 + - async-timeout==4.0.3 + - attrs==23.2.0 + - backoff==2.2.1 + - base58==2.0.1 + - bitsandbytes==0.42.0 + - cachetools==5.3.2 + - certifi==2024.2.2 + - cffi==1.16.0 + - charset-normalizer==3.3.2 + - click==8.1.7 + - cloudpickle==3.0.0 + - contourpy==1.2.0 + - cryptography==42.0.2 + - cycler==0.12.1 + - datasets==2.14.7 + - dill==0.3.7 + - exceptiongroup==1.2.0 + - fastapi==0.109.2 + - fonttools==4.48.1 + - frozenlist==1.4.1 + - fsspec==2023.10.0 + - greenlet==3.0.3 + - grpcio==1.60.1 + - h11==0.14.0 + - huggingface-hub==0.20.3 + - idna==3.6 + - kiwisolver==1.4.5 + - mako==1.3.2 + - matplotlib==3.8.2 + - multidict==6.0.5 + - multiprocess==0.70.15 + - numpy==1.26.4 + - packaging==23.2 + - pandas==2.2.0 + - pillow==10.2.0 + - protobuf==4.25.2 + - psutil==5.9.8 + - py3nvml==0.2.7 + - pyarrow==15.0.0 + - pyarrow-hotfix==0.6 + - pycparser==2.21 + - pydantic==2.6.1 + - pydantic-core==2.16.2 + - pyjwt==2.8.0 + - pyparsing==3.1.1 + - python-dateutil==2.8.2 + - pytz==2024.1 + - rdkit==2023.9.4 + - regex==2023.12.25 + - requests==2.31.0 + - restrictedpython==7.0 + - safetensors==0.4.2 + - scipy==1.12.0 + - segment-analytics-python==2.3.1 + - six==1.16.0 + - sniffio==1.3.0 + - sqlalchemy==1.4.51 + - starlette==0.36.3 + - submitit==1.5.1 + - tokenizers==0.15.1 + - tqdm==4.66.2 + - transformers==4.37.0 + - tzdata==2024.1 + - urllib3==2.2.0 + - uvicorn==0.27.1 + - xmltodict==0.13.0 + - xxhash==3.4.1 + - yarl==1.9.4 +prefix: /home/philipp/miniforge3/envs/test_cl11.8_t_4.37 From cc3f3f845f1a2161d755e0a1ddd7a4c471f8c2cc Mon Sep 17 00:00:00 2001 From: Philipp Guevorguian Date: Mon, 26 Feb 2024 11:47:52 +0400 Subject: [PATCH 13/21] add test status --- test_status.yaml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/test_status.yaml b/test_status.yaml index 505d58a..70a6c00 100644 --- a/test_status.yaml +++ b/test_status.yaml @@ -1 +1 @@ -3dbdc39ac468949a224d39adaec25abf5e47f25b: PASS +86776271891f271861400052eddeb84e4a922ac9: PASS From 0720d06ac3d61103b273ab557b5b07cd598f0157 Mon Sep 17 00:00:00 2001 From: Philipp Guevorguian Date: Mon, 26 Feb 2024 12:03:48 +0400 Subject: [PATCH 14/21] specify project name for pip install --- pyproject.toml | 3 +++ 1 file changed, 3 insertions(+) diff --git a/pyproject.toml b/pyproject.toml index c16193b..829eb62 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -5,3 +5,6 @@ description = "Language modelling for chemistry by YerevanN" readme = "README.md" requires-python = ">=3.8" license = {text = "MIT"} + +[tool.setuptools] +packages = ["chemlactica"] From a64289ffc5616f6f8672089907765ee9692ffbce Mon Sep 17 00:00:00 2001 From: Philipp Guevorguian Date: Mon, 26 Feb 2024 12:04:22 +0400 Subject: [PATCH 15/21] add test status --- test_status.yaml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/test_status.yaml b/test_status.yaml index 70a6c00..26b7fc4 100644 --- a/test_status.yaml +++ b/test_status.yaml @@ -1 +1 @@ -86776271891f271861400052eddeb84e4a922ac9: PASS +0720d06ac3d61103b273ab557b5b07cd598f0157: PASS From ebe98ea68867b6c782328dd4d9bcb7858cd87ee9 Mon Sep 17 00:00:00 2001 From: Philipp Guevorguian Date: Mon, 26 Feb 2024 12:20:24 +0400 Subject: [PATCH 16/21] update test environment name --- test_environment.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/test_environment.yml b/test_environment.yml index c4c3ba1..0bc2402 100644 --- a/test_environment.yml +++ b/test_environment.yml @@ -1,4 +1,4 @@ -name: test_cl11.8_t_4.37 +name: testenv channels: - pytorch - nvidia From a03d3a59cbda2abac65a866976d43621681a850f Mon Sep 17 00:00:00 2001 From: Philipp Guevorguian Date: Mon, 26 Feb 2024 12:20:58 +0400 Subject: [PATCH 17/21] add test status --- test_status.yaml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/test_status.yaml b/test_status.yaml index 26b7fc4..393a36e 100644 --- a/test_status.yaml +++ b/test_status.yaml @@ -1 +1 @@ -0720d06ac3d61103b273ab557b5b07cd598f0157: PASS +ebe98ea68867b6c782328dd4d9bcb7858cd87ee9: PASS From d079a8389a4b12c4172b72549601c5c46b3a554f Mon Sep 17 00:00:00 2001 From: Philipp Guevorguian Date: Mon, 26 Feb 2024 12:38:12 +0400 Subject: [PATCH 18/21] explicitly activate conda env before steps which require it --- .github/workflows/main.yml | 8 ++++++-- 1 file changed, 6 insertions(+), 2 deletions(-) diff --git a/.github/workflows/main.yml b/.github/workflows/main.yml index 29a703f..fbe857c 100644 --- a/.github/workflows/main.yml +++ b/.github/workflows/main.yml @@ -39,13 +39,17 @@ jobs: auto-update-conda: true environment-file: test_environment.yml activate-environment: testenv - - name: install local chemlactica package + - name: Install local chemlactica package within Conda environment run: | - pip install . + conda activate testenv # Activate the Conda environment + pip install . # Install dependencies within the Conda environment + conda deactivate # Deactivate the Conda environment after installation - name: Run unit tests run: | + conda activate testenv # Activate the Conda environment python3 confirm_tests.py --run unit + conda deactivate # Deactivate the Conda environment after installation - name: list commits on PR run: | From 6d7e41688bb7003cd41fb356cbe4d8697158ef8f Mon Sep 17 00:00:00 2001 From: Philipp Guevorguian Date: Mon, 26 Feb 2024 12:38:57 +0400 Subject: [PATCH 19/21] add test status --- test_status.yaml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/test_status.yaml b/test_status.yaml index 393a36e..c310aa8 100644 --- a/test_status.yaml +++ b/test_status.yaml @@ -1 +1 @@ -ebe98ea68867b6c782328dd4d9bcb7858cd87ee9: PASS +d079a8389a4b12c4172b72549601c5c46b3a554f: PASS From 86eb89a6651607c56835456eb9d2f0ae6cd222cc Mon Sep 17 00:00:00 2001 From: Philipp Guevorguian Date: Mon, 26 Feb 2024 12:52:29 +0400 Subject: [PATCH 20/21] add default shell --- .github/workflows/main.yml | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/.github/workflows/main.yml b/.github/workflows/main.yml index fbe857c..479d9a9 100644 --- a/.github/workflows/main.yml +++ b/.github/workflows/main.yml @@ -10,6 +10,9 @@ jobs: test: name: Test runs-on: ubuntu-latest + defaults: + run: + shell: bash -el {0} steps: - uses: actions/checkout@v4 @@ -36,20 +39,17 @@ jobs: - name: Set up Conda uses: conda-incubator/setup-miniconda@v2 with: - auto-update-conda: true environment-file: test_environment.yml activate-environment: testenv + auto-update-conda: true + - name: Install local chemlactica package within Conda environment run: | - conda activate testenv # Activate the Conda environment pip install . # Install dependencies within the Conda environment - conda deactivate # Deactivate the Conda environment after installation - name: Run unit tests run: | - conda activate testenv # Activate the Conda environment python3 confirm_tests.py --run unit - conda deactivate # Deactivate the Conda environment after installation - name: list commits on PR run: | From d18fb6cd4eabd823577f0b710be3653ada2927f7 Mon Sep 17 00:00:00 2001 From: Philipp Guevorguian Date: Mon, 26 Feb 2024 12:52:58 +0400 Subject: [PATCH 21/21] add test status --- test_status.yaml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/test_status.yaml b/test_status.yaml index c310aa8..7f1325b 100644 --- a/test_status.yaml +++ b/test_status.yaml @@ -1 +1 @@ -d079a8389a4b12c4172b72549601c5c46b3a554f: PASS +86eb89a6651607c56835456eb9d2f0ae6cd222cc: PASS