Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Add ML for synthesis prototype to repository #167

Merged
merged 217 commits into from
Jan 8, 2024

Commits on Jun 23, 2021

  1. Configuration menu
    Copy the full SHA
    e47251c View commit details
    Browse the repository at this point in the history

Commits on Aug 4, 2021

  1. Configuration menu
    Copy the full SHA
    a56fd16 View commit details
    Browse the repository at this point in the history
  2. Configuration menu
    Copy the full SHA
    b377853 View commit details
    Browse the repository at this point in the history
  3. Configuration menu
    Copy the full SHA
    63e245c View commit details
    Browse the repository at this point in the history
  4. Add hint for CLI smoke test.

    ryukzak committed Aug 4, 2021
    Configuration menu
    Copy the full SHA
    8a5df52 View commit details
    Browse the repository at this point in the history

Commits on Aug 31, 2021

  1. Add data crawling library and script

    May be needed in the future for NITTA profiling purpose.
    iburakov committed Aug 31, 2021
    Configuration menu
    Copy the full SHA
    823426f View commit details
    Browse the repository at this point in the history

Commits on Jul 1, 2022

  1. Configuration menu
    Copy the full SHA
    ee87e0c View commit details
    Browse the repository at this point in the history
  2. Configuration menu
    Copy the full SHA
    27986cd View commit details
    Browse the repository at this point in the history
  3. Configuration menu
    Copy the full SHA
    9b36b7b View commit details
    Browse the repository at this point in the history
  4. Revert adding unneeded explicit dependency

    Regex-posix now have their own dependency for regex-posix-clib on
    Windows.
    iburakov committed Jul 1, 2022
    Configuration menu
    Copy the full SHA
    d1abe93 View commit details
    Browse the repository at this point in the history

Commits on Jul 2, 2022

  1. Remove redundant command

    iburakov committed Jul 2, 2022
    Configuration menu
    Copy the full SHA
    702383b View commit details
    Browse the repository at this point in the history

Commits on Aug 17, 2022

  1. Configuration menu
    Copy the full SHA
    cdd98a0 View commit details
    Browse the repository at this point in the history

Commits on Aug 21, 2022

  1. Fix code style

    ryukzak committed Aug 21, 2022
    Configuration menu
    Copy the full SHA
    895f582 View commit details
    Browse the repository at this point in the history
  2. Configuration menu
    Copy the full SHA
    e26d1cc View commit details
    Browse the repository at this point in the history
  3. Configuration menu
    Copy the full SHA
    b2e5497 View commit details
    Browse the repository at this point in the history

Commits on Feb 24, 2023

  1. Implement Dockerfile development targets

    Related to #235
    iburakov committed Feb 24, 2023
    Configuration menu
    Copy the full SHA
    2c72895 View commit details
    Browse the repository at this point in the history
  2. Fix killing the parent process group instead of NITTA

    Due to some platform-specific peculiarities (I guess) exiting run_nitta
    context manager is killing the whole process group including the
    parent process of the Python interpreter itself.
    
    Python tests were killing JetBrains IDE components in Docker
    development environment because of this 😅
    iburakov committed Feb 24, 2023
    Configuration menu
    Copy the full SHA
    bb16441 View commit details
    Browse the repository at this point in the history
  3. Fix a typo

    iburakov committed Feb 24, 2023
    Configuration menu
    Copy the full SHA
    bffe337 View commit details
    Browse the repository at this point in the history
  4. Fix another typo >C

    iburakov committed Feb 24, 2023
    Configuration menu
    Copy the full SHA
    e3a6c9c View commit details
    Browse the repository at this point in the history

Commits on Mar 18, 2023

  1. Merge branch 'master' into ml-for-synthesis-prototype

    Updates haskell code to reformatted with recent fourmolu
    iburakov committed Mar 18, 2023
    Configuration menu
    Copy the full SHA
    ee14c3a View commit details
    Browse the repository at this point in the history

Commits on Mar 21, 2023

  1. Configuration menu
    Copy the full SHA
    7746f04 View commit details
    Browse the repository at this point in the history

Commits on Mar 29, 2023

  1. Configuration menu
    Copy the full SHA
    90405c8 View commit details
    Browse the repository at this point in the history
  2. Configuration menu
    Copy the full SHA
    fe46ddf View commit details
    Browse the repository at this point in the history

Commits on Mar 30, 2023

  1. Pass BackendCtx to handlers for ML backend server access

    Failed to do so via StateT monad at the moment due to rising problems
    with type constraints ("could not deduce...") in Main.hs or when
    synthesis methods were used outside of NITTA REST API.
    iburakov committed Mar 30, 2023
    Configuration menu
    Copy the full SHA
    286a011 View commit details
    Browse the repository at this point in the history

Commits on Mar 31, 2023

  1. Configuration menu
    Copy the full SHA
    95cede8 View commit details
    Browse the repository at this point in the history
  2. Configuration menu
    Copy the full SHA
    7471461 View commit details
    Browse the repository at this point in the history
  3. Configuration menu
    Copy the full SHA
    278e99d View commit details
    Browse the repository at this point in the history

Commits on Apr 10, 2023

  1. Configuration menu
    Copy the full SHA
    74b636a View commit details
    Browse the repository at this point in the history

Commits on Apr 12, 2023

  1. Configuration menu
    Copy the full SHA
    f07e455 View commit details
    Browse the repository at this point in the history

Commits on Apr 16, 2023

  1. Configuration menu
    Copy the full SHA
    58ecf53 View commit details
    Browse the repository at this point in the history
  2. Configuration menu
    Copy the full SHA
    062c7d0 View commit details
    Browse the repository at this point in the history
  3. Configuration menu
    Copy the full SHA
    adbabb2 View commit details
    Browse the repository at this point in the history

Commits on Apr 19, 2023

  1. Configuration menu
    Copy the full SHA
    a99a819 View commit details
    Browse the repository at this point in the history
  2. Configuration menu
    Copy the full SHA
    16fdb84 View commit details
    Browse the repository at this point in the history

Commits on Apr 20, 2023

  1. Fix problems and improve dx related to development docker image

    - omitting uid/gid
    - ghcup
    - unminimizing + man
    - gpg passphrases
    - fix PATH and .bashrc issue
    - move aliases to .bash_aliases
    - fourmolu 0.10.1.0
    iburakov committed Apr 20, 2023
    Configuration menu
    Copy the full SHA
    92f1f01 View commit details
    Browse the repository at this point in the history
  2. Configuration menu
    Copy the full SHA
    5b4af30 View commit details
    Browse the repository at this point in the history
  3. Configuration menu
    Copy the full SHA
    e5348ed View commit details
    Browse the repository at this point in the history
  4. Configuration menu
    Copy the full SHA
    e018cde View commit details
    Browse the repository at this point in the history
  5. Fix repetition in PYTHONPATH

    iburakov committed Apr 20, 2023
    Configuration menu
    Copy the full SHA
    c70dbdb View commit details
    Browse the repository at this point in the history
  6. Configuration menu
    Copy the full SHA
    1e760c4 View commit details
    Browse the repository at this point in the history

Commits on May 4, 2023

  1. Configuration menu
    Copy the full SHA
    c866cd2 View commit details
    Browse the repository at this point in the history
  2. Configuration menu
    Copy the full SHA
    4106c86 View commit details
    Browse the repository at this point in the history
  3. Configuration menu
    Copy the full SHA
    a9b097b View commit details
    Browse the repository at this point in the history
  4. Configuration menu
    Copy the full SHA
    a7c3a33 View commit details
    Browse the repository at this point in the history
  5. Configuration menu
    Copy the full SHA
    705e733 View commit details
    Browse the repository at this point in the history
  6. Get rid of dataclasses-json completely

    Refactor everything to Pydantic for consistency
    iburakov committed May 4, 2023
    Configuration menu
    Copy the full SHA
    818beab View commit details
    Browse the repository at this point in the history

Commits on May 6, 2023

  1. Reformat & tidy up the Python codebase

    - Python development was switched to VS Code since JetBrains Gateway
    is still too buggy and painful to use for remote development over SSH.
    - All Python code was reformatted with `black`.
    - All Python code was linted and made `mypy`-compatible.
    - All imports in Python code were regrouped and sorted with `isort`.
    - All unused imports were removed with `autoflake`.
    
    Besides:
    - Basics for tree sampling were implemented. Yes, this should've been
    a separate commit but things got messed up :c
    iburakov committed May 6, 2023
    Configuration menu
    Copy the full SHA
    4093db9 View commit details
    Browse the repository at this point in the history
  2. Fix early node children initialization (before async request)

    It's important in async scenaries when multiple coroutines are working on
    the same node. One might incorrectly consider it already loaded.
    iburakov committed May 6, 2023
    Configuration menu
    Copy the full SHA
    452f1e9 View commit details
    Browse the repository at this point in the history
  3. Configuration menu
    Copy the full SHA
    aa8bd91 View commit details
    Browse the repository at this point in the history

Commits on May 7, 2023

  1. Implement basic sampling results processing

    - Label calculation
    - DataFrame assembly
    - Saving to csv
    iburakov committed May 7, 2023
    Configuration menu
    Copy the full SHA
    58cf53a View commit details
    Browse the repository at this point in the history
  2. Implement label aggregation + fix running nitta + treecov

    - Implemented label aggregation and sampling results deduplication
    - NITTA was failing to start sometimes due to port conflicts - fixed
    - Implemented sampling tree coverage estimation (phew...)
    iburakov committed May 7, 2023
    Configuration menu
    Copy the full SHA
    e859781 View commit details
    Browse the repository at this point in the history
  3. Disable tree coverage estimation

    Doesn't work for other examples and I've run out of time for that :(
    iburakov committed May 7, 2023
    Configuration menu
    Copy the full SHA
    8f6b8c2 View commit details
    Browse the repository at this point in the history

Commits on May 8, 2023

  1. Configuration menu
    Copy the full SHA
    a557da3 View commit details
    Browse the repository at this point in the history

Commits on Jun 1, 2023

  1. Configuration menu
    Copy the full SHA
    2e52897 View commit details
    Browse the repository at this point in the history
  2. Parametrize depth_base, implement aggressive drops

    Aggressive drops jump straight to top-n node from the heap (instead
    of top-1) when synthesis is beating around the bush for too long. This
    was found to be helpful for huge synthesis cases.
    iburakov committed Jun 1, 2023
    Configuration menu
    Copy the full SHA
    02eaf4d View commit details
    Browse the repository at this point in the history

Commits on Jun 2, 2023

  1. Configuration menu
    Copy the full SHA
    ff74b2a View commit details
    Browse the repository at this point in the history
  2. Configuration menu
    Copy the full SHA
    d732752 View commit details
    Browse the repository at this point in the history
  3. Configuration menu
    Copy the full SHA
    757fc89 View commit details
    Browse the repository at this point in the history
  4. Configuration menu
    Copy the full SHA
    8ca4412 View commit details
    Browse the repository at this point in the history
  5. Configuration menu
    Copy the full SHA
    1a76c78 View commit details
    Browse the repository at this point in the history
  6. Improve model training

    iburakov committed Jun 2, 2023
    Configuration menu
    Copy the full SHA
    6cf9818 View commit details
    Browse the repository at this point in the history
  7. Configuration menu
    Copy the full SHA
    818f2dd View commit details
    Browse the repository at this point in the history
  8. Configuration menu
    Copy the full SHA
    902ce17 View commit details
    Browse the repository at this point in the history

Commits on Jun 3, 2023

  1. Configuration menu
    Copy the full SHA
    f614804 View commit details
    Browse the repository at this point in the history
  2. Configuration menu
    Copy the full SHA
    8b8e9f2 View commit details
    Browse the repository at this point in the history
  3. Fix timeout

    iburakov committed Jun 3, 2023
    Configuration menu
    Copy the full SHA
    eaf0d93 View commit details
    Browse the repository at this point in the history

Commits on Jun 14, 2023

  1. Configuration menu
    Copy the full SHA
    f910363 View commit details
    Browse the repository at this point in the history
  2. Configuration menu
    Copy the full SHA
    b4ebea2 View commit details
    Browse the repository at this point in the history
  3. Merge pull request #254 from ryukzak/ml-for-synthesis-prototype-v2

    ML for synthesis prototype v2 -> v1 branch
    iburakov committed Jun 14, 2023
    Configuration menu
    Copy the full SHA
    01822e4 View commit details
    Browse the repository at this point in the history
  4. Configuration menu
    Copy the full SHA
    d89143f View commit details
    Browse the repository at this point in the history
  5. Configuration menu
    Copy the full SHA
    48c2a24 View commit details
    Browse the repository at this point in the history
  6. Configuration menu
    Copy the full SHA
    b3caac2 View commit details
    Browse the repository at this point in the history

Commits on Jun 18, 2023

  1. Configuration menu
    Copy the full SHA
    ffa4493 View commit details
    Browse the repository at this point in the history
  2. Configuration menu
    Copy the full SHA
    cecd005 View commit details
    Browse the repository at this point in the history

Commits on Jun 19, 2023

  1. Configuration menu
    Copy the full SHA
    8cca13d View commit details
    Browse the repository at this point in the history

Commits on Jun 21, 2023

  1. Configuration menu
    Copy the full SHA
    f0f561c View commit details
    Browse the repository at this point in the history
  2. Fix the "random free port is already in use" problem with run_nitta

    It was rare but sometimes it happened
    iburakov committed Jun 21, 2023
    Configuration menu
    Copy the full SHA
    d99953c View commit details
    Browse the repository at this point in the history

Commits on Jun 26, 2023

  1. Configuration menu
    Copy the full SHA
    a349a30 View commit details
    Browse the repository at this point in the history
  2. Fix NITTA startup in Python (NITTA-side port selection)

    This is a fix for a "port is already in use" occasional problem with
    dynamic startup of NITTA API server in Python scripts. Before we've
    chosen a random port on Python side and passed it to NITTA via --port.
    Sometimes it was already occupied by another process. That caused
    random crashes.
    
    This could be fixed more easily by startup retries with port reselection
    if only we didn't need to support API server startup right after
    synthesis. Synthesis can take a long time, hence greater probability for
    chosen ports to become occupied and greater time cost of the retry.
    
    The only robust solution was to implement a NITTA-side free random port
    selection and its passing over to Python via inter-process communication.
    This commit implements it via Python-side NITTA stdout parsing as this is
    the simplest way to achieve the goal.
    iburakov committed Jun 26, 2023
    Configuration menu
    Copy the full SHA
    4d9f8fb View commit details
    Browse the repository at this point in the history
  3. Update behavior of evalute Python script (API-based metrics)

    The scripts now uses the updated behavior of NITTA itself (post-synthesis
    API server startup) and dynamic NITTA startup from Python (NITTA-side
    random port selection).
    
    Metrics gathering that was earlier implemented via NITTA stdout parsing
    is now fully `/treeInfo`-based.
    iburakov committed Jun 26, 2023
    Configuration menu
    Copy the full SHA
    7da19ad View commit details
    Browse the repository at this point in the history

Commits on Jun 27, 2023

  1. Configuration menu
    Copy the full SHA
    56af030 View commit details
    Browse the repository at this point in the history

Commits on Jun 30, 2023

  1. Configuration menu
    Copy the full SHA
    9ceb85e View commit details
    Browse the repository at this point in the history
  2. Configuration menu
    Copy the full SHA
    6857280 View commit details
    Browse the repository at this point in the history

Commits on Jul 13, 2023

  1. Configuration menu
    Copy the full SHA
    c8b5cd7 View commit details
    Browse the repository at this point in the history

Commits on Jul 17, 2023

  1. Fix bugs in evaluation results aggregation

    - sum/min/max/mean when len in (0, 1)
    - mistakenly taking columns only from results[0],
    although it can be a timeout (hence not a full dict).
    iburakov committed Jul 17, 2023
    Configuration menu
    Copy the full SHA
    553da95 View commit details
    Browse the repository at this point in the history
  2. Fix synthesis success detection and logging

    Successful leafs count wasn't checked, so non-timeout synthesis failure
    wasn't detected. NITTA API server was started anyway in those cases, so
    it was considered a success and led to stats evaluation errors and
    incorrect results.
    iburakov committed Jul 17, 2023
    Configuration menu
    Copy the full SHA
    35bb5e0 View commit details
    Browse the repository at this point in the history
  3. Increase default step limit for top-down synthesis so it's enough

    Evaluation showed that "STEP LIMIT REACHED" was sometimes happening even
    before a 60 seconds synthesis timeout was reached.
    iburakov committed Jul 17, 2023
    Configuration menu
    Copy the full SHA
    ba83a70 View commit details
    Browse the repository at this point in the history
  4. Remove redundant $

    iburakov committed Jul 17, 2023
    Configuration menu
    Copy the full SHA
    041244e View commit details
    Browse the repository at this point in the history
  5. Configuration menu
    Copy the full SHA
    1f571e5 View commit details
    Browse the repository at this point in the history
  6. Configuration menu
    Copy the full SHA
    1196def View commit details
    Browse the repository at this point in the history

Commits on Jul 18, 2023

  1. Configuration menu
    Copy the full SHA
    d982a8d View commit details
    Browse the repository at this point in the history

Commits on Jul 31, 2023

  1. Configuration menu
    Copy the full SHA
    4de9180 View commit details
    Browse the repository at this point in the history
  2. Remove current raw evaluation results from the repo

    They were uploaded just to get a permalink and are not actually needed
    in the repo.
    iburakov committed Jul 31, 2023
    Configuration menu
    Copy the full SHA
    a8f9a00 View commit details
    Browse the repository at this point in the history

Commits on Aug 17, 2023

  1. Remove old data crawling code, refactor the new one

    This change replaces the old full-tree approach of gathering model
    training data with the recently developed tree sampling algorithm.
    The old code is deleted, all its usages are now working with the new
    method.
    
    This commit also includes lots of minor changes and refactorings of the
    related code. Small bugs and inconsistencies were fixed, some TODOs left.
    Object names, documentation and comments should also be clearer now.
    iburakov committed Aug 17, 2023
    Configuration menu
    Copy the full SHA
    590f7c1 View commit details
    Browse the repository at this point in the history
  2. Configuration menu
    Copy the full SHA
    48743e8 View commit details
    Browse the repository at this point in the history
  3. Make NITTA stdout pipe reading not to stop on port

    This is important so passthrough NITTA logger continues to operate and:
    1) makes seeing NITTA logs easiser when debugging;
    2) helps to avoid NITTA process locking since pipe's buffer is full.
    iburakov committed Aug 17, 2023
    Configuration menu
    Copy the full SHA
    e98ec55 View commit details
    Browse the repository at this point in the history
  4. Configuration menu
    Copy the full SHA
    eb4ef43 View commit details
    Browse the repository at this point in the history

Commits on Aug 19, 2023

  1. Revamp Python tooling, add Ruff and mypy, fix errors

    - Reconfigured everything using basic version of pyproject.toml
    - Kept requirements.txt until poetry introduction
    - Found better VS code extensions, configured them
      (I should share this workspace config!)
    - Added type stubs for mypy's static type checking of some used libs
    - Fixed errors found by mypy (nothing useful so far...)
    - Fixed errors found by Ruff (cool!)
    - Fixed all formatting errors in the code with black
    
    Current suggested tooling:
    - VS code for editing and syntax highlighting
    - Microsoft's Pylance for an enchanced Python developer experience
      (syntax checking, autoimport, autocomplete, type inference, etc.)
    - black (formatting)
    - mypy (static type checking)
    - ruff (flake8-like style+idioms linting, imports optimizing/sorting)
    - Pytest for testing
    - Test Explorer UI VS code extension + Python adapter (tests summary)
      ^ replace with Pylance's?
    iburakov committed Aug 19, 2023
    Configuration menu
    Copy the full SHA
    790725d View commit details
    Browse the repository at this point in the history
  2. Configuration menu
    Copy the full SHA
    3bf8ac3 View commit details
    Browse the repository at this point in the history
  3. Refactor and fix crawling training data from many examples

    Refactored and fixed 2 scripts here:
    - train_evaluate_in_ci
    - crawl_data_by_tree_sampling_many
    
    Logic of crawling from many examples was taken from the 2nd script,
    generalized and reused in the 1st.
    
    Relevant refactorings were made.
    iburakov committed Aug 19, 2023
    Configuration menu
    Copy the full SHA
    23d7f65 View commit details
    Browse the repository at this point in the history
  4. Fix writing and reading input_columns from model's metadata

    Now input columns are always stored in the model's metadata, respected
    by input data preprocessing logic and, thus, can be completely dynamic.
    
    Thanks to this, old models will still work even if NITTA will start to give
    more node parameters in the future.
    iburakov committed Aug 19, 2023
    Configuration menu
    Copy the full SHA
    0e83ea2 View commit details
    Browse the repository at this point in the history
  5. Configuration menu
    Copy the full SHA
    4582ff5 View commit details
    Browse the repository at this point in the history
  6. Configuration menu
    Copy the full SHA
    6ed4333 View commit details
    Browse the repository at this point in the history
  7. Remove an obsolete TODO

    iburakov committed Aug 19, 2023
    Configuration menu
    Copy the full SHA
    f304514 View commit details
    Browse the repository at this point in the history
  8. Configuration menu
    Copy the full SHA
    ff1fa92 View commit details
    Browse the repository at this point in the history

Commits on Aug 20, 2023

  1. Remove comment about broken cache for compute_node_label

    Should we get rid of function calls caching in general?
    Is it useful anywhere at this point?
    iburakov committed Aug 20, 2023
    Configuration menu
    Copy the full SHA
    7991145 View commit details
    Browse the repository at this point in the history
  2. Configuration menu
    Copy the full SHA
    ce9e23a View commit details
    Browse the repository at this point in the history
  3. Configuration menu
    Copy the full SHA
    3244869 View commit details
    Browse the repository at this point in the history
  4. Configuration menu
    Copy the full SHA
    fcf6246 View commit details
    Browse the repository at this point in the history
  5. Configuration menu
    Copy the full SHA
    6437c31 View commit details
    Browse the repository at this point in the history
  6. Configuration menu
    Copy the full SHA
    a81d0b8 View commit details
    Browse the repository at this point in the history
  7. Configuration menu
    Copy the full SHA
    534f6f9 View commit details
    Browse the repository at this point in the history
  8. Configuration menu
    Copy the full SHA
    070b334 View commit details
    Browse the repository at this point in the history
  9. Configuration menu
    Copy the full SHA
    107bc9b View commit details
    Browse the repository at this point in the history
  10. Bump scikit-learn to fix build errors on Python 3.11

    Should upgrade all packages, perhaps, while we're at it...
    iburakov committed Aug 20, 2023
    Configuration menu
    Copy the full SHA
    f1cbea1 View commit details
    Browse the repository at this point in the history
  11. Use separate examples to validate a model instead of a random split

    It'll lead to worse validation metrics for now, but it's an important
    future problem to be solved. It's unclear what prevents the model from
    generalizing better. Not enough node (input) parameters?
    iburakov committed Aug 20, 2023
    Configuration menu
    Copy the full SHA
    2178f6c View commit details
    Browse the repository at this point in the history
  12. Configuration menu
    Copy the full SHA
    3461159 View commit details
    Browse the repository at this point in the history
  13. Configuration menu
    Copy the full SHA
    85dd429 View commit details
    Browse the repository at this point in the history

Commits on Aug 21, 2023

  1. Refactor model training and validation

    +implement train/val columns mismatch automatic fixing
    iburakov committed Aug 21, 2023
    Configuration menu
    Copy the full SHA
    99a626d View commit details
    Browse the repository at this point in the history
  2. Fix cyclic imports

    iburakov committed Aug 21, 2023
    Configuration menu
    Copy the full SHA
    7f2ab5e View commit details
    Browse the repository at this point in the history
  3. Configuration menu
    Copy the full SHA
    7fd47e3 View commit details
    Browse the repository at this point in the history
  4. Fix crawling summary saving

    iburakov committed Aug 21, 2023
    Configuration menu
    Copy the full SHA
    4382b73 View commit details
    Browse the repository at this point in the history
  5. Configuration menu
    Copy the full SHA
    e50bf74 View commit details
    Browse the repository at this point in the history
  6. Configuration menu
    Copy the full SHA
    9242384 View commit details
    Browse the repository at this point in the history
  7. Remove useless kwarg

    iburakov committed Aug 21, 2023
    Configuration menu
    Copy the full SHA
    1251305 View commit details
    Browse the repository at this point in the history
  8. Configuration menu
    Copy the full SHA
    dbdba19 View commit details
    Browse the repository at this point in the history

Commits on Aug 22, 2023

  1. Configuration menu
    Copy the full SHA
    42a32d9 View commit details
    Browse the repository at this point in the history
  2. Configuration menu
    Copy the full SHA
    8f87b64 View commit details
    Browse the repository at this point in the history
  3. Configuration menu
    Copy the full SHA
    f1a461a View commit details
    Browse the repository at this point in the history
  4. Configuration menu
    Copy the full SHA
    123a692 View commit details
    Browse the repository at this point in the history
  5. Merge branch 'master' into ml-for-synthesis-prototype

    Conflicts:
    - NITTA.Synthesis.Method (major, ctx argument addition basically)
    - NITTA.Synthesis.Types (minor, adding :: to changed defScore)
    iburakov committed Aug 22, 2023
    Configuration menu
    Copy the full SHA
    bf46ec2 View commit details
    Browse the repository at this point in the history
  6. Configuration menu
    Copy the full SHA
    3becc1c View commit details
    Browse the repository at this point in the history
  7. Configuration menu
    Copy the full SHA
    95ca917 View commit details
    Browse the repository at this point in the history
  8. Implement automatic column mapping based on dtype

    This is done to get rid of hardcoded column names in preprocessing logic.
    iburakov committed Aug 22, 2023
    Configuration menu
    Copy the full SHA
    4029ec1 View commit details
    Browse the repository at this point in the history
  9. Fix evaluation CLI was broken by postponed annotations eval

    field.type now had string "int" instead of type int
    iburakov committed Aug 22, 2023
    Configuration menu
    Copy the full SHA
    e81cc15 View commit details
    Browse the repository at this point in the history

Commits on Aug 23, 2023

  1. Fix tree info fields, add error runs counter

    /treeInfo fields were changed with the group bindings PR
    iburakov committed Aug 23, 2023
    Configuration menu
    Copy the full SHA
    d8c4819 View commit details
    Browse the repository at this point in the history
  2. Configuration menu
    Copy the full SHA
    b689be2 View commit details
    Browse the repository at this point in the history
  3. Configuration menu
    Copy the full SHA
    5927a08 View commit details
    Browse the repository at this point in the history
  4. Fix bool preprocessing (preseve missing as 0)

    This breaks backwards compatibility with previous models, but
    evaluation showed it improves ML-based synthesis performance
    significantly.
    iburakov committed Aug 23, 2023
    Configuration menu
    Copy the full SHA
    293a7b9 View commit details
    Browse the repository at this point in the history
  5. Try to make baseline model less prone to overfitting

    Training history showed that (proper) val metrics (evaluated on a
    different synthesis tree) behave better with this model version. A
    clear val_loss minimum is now seen (and I'm overtraining the model).
    iburakov committed Aug 23, 2023
    Configuration menu
    Copy the full SHA
    fbf96c5 View commit details
    Browse the repository at this point in the history
  6. Configuration menu
    Copy the full SHA
    1a819b8 View commit details
    Browse the repository at this point in the history

Commits on Aug 24, 2023

  1. Tweak default model hyperparams for better synthesis results

    This is the result of a series of experiments conducted to improve ML
    synthesis performance measured by recently implemented "rating" of
    all-experiments synthesis evaluation results. Room for improvement was
    noticed thanks to the recent update to validation dataset selecting
    (now it consists of completely new synthesis trees not used for
    training).
    
    A close look at new training history charts showed signs of serious
    overfitting hurting *cross-tree* model generalization abilities. Training
    converged very fast for training loss/mae, but that made the new
    validation mae/loss only worse, so that's no good.
    
    Lowering the learning rate, adding L2 regularization and strong dropout
    to simulate model batching helped "slow down" training convergence
    a lot, allowing to observe the behaviour of the new val loss in a more
    detailed way. A clear minimum was spotted, overfitting confirmed, and
    the chosen training epoch count / steps per epoch / batch size were
    adjusted.
    
    The resulting model showed a synthesis evaluation rating of 76/100,
    which is much better than the previous model's (60/100). For reference,
    default score + SOTA synthesis method has a rating of 77/100, so that's
    a pretty strong result.
    
    The new hyperparameters produce models that conduct ML synthesis
    much better, so they should be chosen as the default.
    iburakov committed Aug 24, 2023
    Configuration menu
    Copy the full SHA
    e16377c View commit details
    Browse the repository at this point in the history

Commits on Aug 26, 2023

  1. Configuration menu
    Copy the full SHA
    ed56c91 View commit details
    Browse the repository at this point in the history
  2. Configuration menu
    Copy the full SHA
    d219885 View commit details
    Browse the repository at this point in the history
  3. Add a preconfigured vscode workspace

    It's a multi-root workspace with:
    - "root" (haskell), "web" and "ml/synthesis" subfolders that help
    to deal with the project structure and configure tooling on a per-folder
    basis;
    - lists of recommended extensions, which were tested and preconfigured,
    and have the ultimate goal of providing a decent DX "out of the box";
    - some shared launch configs used during ML synthesis development.
    iburakov committed Aug 26, 2023
    Configuration menu
    Copy the full SHA
    0a1d4fd View commit details
    Browse the repository at this point in the history
  4. Configuration menu
    Copy the full SHA
    ca07745 View commit details
    Browse the repository at this point in the history
  5. Fix unwanted logs weren't silenced during tests

    Logger levels weren't initialized at import time, so recently introduced
    checks of them weren't working right. Using pytest hooks to defer them.
    iburakov committed Aug 26, 2023
    Configuration menu
    Copy the full SHA
    d8ea8c3 View commit details
    Browse the repository at this point in the history
  6. Configuration menu
    Copy the full SHA
    906a3fe View commit details
    Browse the repository at this point in the history
  7. Configuration menu
    Copy the full SHA
    fdfb994 View commit details
    Browse the repository at this point in the history
  8. Configuration menu
    Copy the full SHA
    6deff5e View commit details
    Browse the repository at this point in the history

Commits on Aug 27, 2023

  1. Remove outdated comment

    iburakov committed Aug 27, 2023
    Configuration menu
    Copy the full SHA
    4bd5a17 View commit details
    Browse the repository at this point in the history
  2. Configuration menu
    Copy the full SHA
    74c4635 View commit details
    Browse the repository at this point in the history
  3. Configuration menu
    Copy the full SHA
    38e9426 View commit details
    Browse the repository at this point in the history
  4. Fix markdownlint suggestions

    iburakov committed Aug 27, 2023
    Configuration menu
    Copy the full SHA
    4e9550e View commit details
    Browse the repository at this point in the history

Commits on Aug 29, 2023

  1. Revamp dev docker container README

    - update outdated info
    - clarify instructions, make them more detailed
    - make the readme easier to follow sequentially
    - describe more of possible problems with workarounds
    - fix typos, add some new ones to be found later :)
    iburakov committed Aug 29, 2023
    Configuration menu
    Copy the full SHA
    6b841f9 View commit details
    Browse the repository at this point in the history
  2. Update and improve the dev container Dockerfile

    - Update the Python tooling:
        - python installation is now managed by pyenv
        - dependencies are now managed by poetry
        - make pyenv, python, poetry, ruff, black, mypy and vulture
          available on PATH
    - Add markdownlint to the dev environment
    - Improve SSH security (forbid password auth by default)
    - Change SSH port to prevent conflicts and protect from bots if exposed
    - Remove tensorflow-gpu reinstall (obsolete for new versions)
    - Update the tensorflow version check to work with pyproject.toml
    - Extract stack/ghc/python versions and a resolver to more visible ARGs
    - Improve docker build layering to save some unnecessary rebuilds
    - Merge some of the fixes for aarch64, live tests pending
    - Fix some formatting and typos, clarify comments
    iburakov committed Aug 29, 2023
    Configuration menu
    Copy the full SHA
    206c20e View commit details
    Browse the repository at this point in the history
  3. Configuration menu
    Copy the full SHA
    c0f2215 View commit details
    Browse the repository at this point in the history
  4. Disable mypy in all vscode subroots but ml/synthesis

    So it doesn't produce meaningless errors
    iburakov committed Aug 29, 2023
    Configuration menu
    Copy the full SHA
    12493a4 View commit details
    Browse the repository at this point in the history
  5. Configuration menu
    Copy the full SHA
    a52fba6 View commit details
    Browse the repository at this point in the history

Commits on Aug 31, 2023

  1. Generalize siblings dict generation (breaking)

    Breaking compatibility with old models to make alternative sibilings
    dict generation more self-adjustable to new decision tags.
    iburakov committed Aug 31, 2023
    Configuration menu
    Copy the full SHA
    ffa27ff View commit details
    Browse the repository at this point in the history
  2. Fix node conversion tests

    iburakov committed Aug 31, 2023
    Configuration menu
    Copy the full SHA
    0369b28 View commit details
    Browse the repository at this point in the history
  3. Configuration menu
    Copy the full SHA
    2db4fa4 View commit details
    Browse the repository at this point in the history
  4. Configuration menu
    Copy the full SHA
    2af123a View commit details
    Browse the repository at this point in the history
  5. Configuration menu
    Copy the full SHA
    cf28057 View commit details
    Browse the repository at this point in the history
  6. Configuration menu
    Copy the full SHA
    9cd3b22 View commit details
    Browse the repository at this point in the history
  7. Make evaluation script write None for metrics if there's none

    ...instead of 0, which plays bad with time averaging and, to be frank,
    is quite unintuitive.
    iburakov committed Aug 31, 2023
    Configuration menu
    Copy the full SHA
    f997d96 View commit details
    Browse the repository at this point in the history
  8. Configuration menu
    Copy the full SHA
    e3a4868 View commit details
    Browse the repository at this point in the history
  9. Add argument defaults and help descriptions

    Defaults are added so configs can be kept shorter and more DRY.
    Also exposed config reading from JSON to reuse in CI script.
    iburakov committed Aug 31, 2023
    Configuration menu
    Copy the full SHA
    19093a5 View commit details
    Browse the repository at this point in the history
  10. Add macos hotkeys

    iburakov committed Aug 31, 2023
    Configuration menu
    Copy the full SHA
    ff53a3c View commit details
    Browse the repository at this point in the history
  11. Configuration menu
    Copy the full SHA
    102c3c0 View commit details
    Browse the repository at this point in the history
  12. Configuration menu
    Copy the full SHA
    39d78d5 View commit details
    Browse the repository at this point in the history
  13. Configuration menu
    Copy the full SHA
    8c5729e View commit details
    Browse the repository at this point in the history
  14. Configuration menu
    Copy the full SHA
    49c405d View commit details
    Browse the repository at this point in the history
  15. Configuration menu
    Copy the full SHA
    da02182 View commit details
    Browse the repository at this point in the history
  16. Configuration menu
    Copy the full SHA
    cc4892f View commit details
    Browse the repository at this point in the history
  17. Configuration menu
    Copy the full SHA
    949de64 View commit details
    Browse the repository at this point in the history
  18. Run "organize imports" for all tsx files so they're consistent

    ...with at least VS Code's default "organize import" action.
    Prettier doesn't enforce import order now (get a plugin?).
    iburakov committed Aug 31, 2023
    Configuration menu
    Copy the full SHA
    99dea29 View commit details
    Browse the repository at this point in the history

Commits on Sep 1, 2023

  1. Configuration menu
    Copy the full SHA
    606d067 View commit details
    Browse the repository at this point in the history
  2. Configuration menu
    Copy the full SHA
    a96bc2e View commit details
    Browse the repository at this point in the history

Commits on Sep 11, 2023

  1. Fix building errors.

    ryukzak committed Sep 11, 2023
    Configuration menu
    Copy the full SHA
    8f2d17b View commit details
    Browse the repository at this point in the history

Commits on Sep 23, 2023

  1. Merge pull request #257 from ryukzak/ml-for-synthesis-prototype-fix-b…

    …uild
    
    Fix building errors.
    iburakov committed Sep 23, 2023
    Configuration menu
    Copy the full SHA
    bceb842 View commit details
    Browse the repository at this point in the history
  2. Configuration menu
    Copy the full SHA
    50ab618 View commit details
    Browse the repository at this point in the history
  3. Adjust ci synthesis evaluation presets to speed it up

    Do not evaluate known-to-be-poor configurations so the synthesis
    evaluation fits under GitHub Actions job runtime limit (6 hours).
    iburakov committed Sep 23, 2023
    Configuration menu
    Copy the full SHA
    e6d4dd6 View commit details
    Browse the repository at this point in the history
  4. Configuration menu
    Copy the full SHA
    16c1a31 View commit details
    Browse the repository at this point in the history
  5. Update vulture whitelist

    iburakov committed Sep 23, 2023
    Configuration menu
    Copy the full SHA
    258473a View commit details
    Browse the repository at this point in the history

Commits on Dec 28, 2023

  1. Configuration menu
    Copy the full SHA
    513ecd0 View commit details
    Browse the repository at this point in the history
  2. Improve CLI documentation.

    ryukzak committed Dec 28, 2023
    Configuration menu
    Copy the full SHA
    7fec9b2 View commit details
    Browse the repository at this point in the history

Commits on Dec 29, 2023

  1. Web/UI safe upgrades

    ryukzak committed Dec 29, 2023
    Configuration menu
    Copy the full SHA
    6117beb View commit details
    Browse the repository at this point in the history
  2. Refactoring haskell code

    ryukzak committed Dec 29, 2023
    Configuration menu
    Copy the full SHA
    3f66495 View commit details
    Browse the repository at this point in the history
  3. Configuration menu
    Copy the full SHA
    44f471f View commit details
    Browse the repository at this point in the history

Commits on Dec 30, 2023

  1. Configuration menu
    Copy the full SHA
    71a01cb View commit details
    Browse the repository at this point in the history
  2. Rework CI and add Makefile

    ryukzak committed Dec 30, 2023
    Configuration menu
    Copy the full SHA
    de72eb9 View commit details
    Browse the repository at this point in the history

Commits on Jan 5, 2024

  1. Configuration menu
    Copy the full SHA
    f0b91ab View commit details
    Browse the repository at this point in the history
  2. Configuration menu
    Copy the full SHA
    fdd7ae6 View commit details
    Browse the repository at this point in the history
  3. Configuration menu
    Copy the full SHA
    69aef37 View commit details
    Browse the repository at this point in the history
  4. Fix CI/Makefile conflict

    ryukzak committed Jan 5, 2024
    Configuration menu
    Copy the full SHA
    174ad21 View commit details
    Browse the repository at this point in the history

Commits on Jan 6, 2024

  1. Configuration menu
    Copy the full SHA
    0636193 View commit details
    Browse the repository at this point in the history
  2. Configuration menu
    Copy the full SHA
    3945599 View commit details
    Browse the repository at this point in the history
  3. Update README.md

    Co-authored-by: Ilya Burakov <[email protected]>
    ryukzak and iburakov committed Jan 6, 2024
    Configuration menu
    Copy the full SHA
    f85e126 View commit details
    Browse the repository at this point in the history
  4. Update README.md

    Co-authored-by: Ilya Burakov <[email protected]>
    ryukzak and iburakov committed Jan 6, 2024
    Configuration menu
    Copy the full SHA
    3601755 View commit details
    Browse the repository at this point in the history
  5. Update TENSORFLOW_VER in dev image

    Co-authored-by: Ilya Burakov <[email protected]>
    ryukzak and iburakov committed Jan 6, 2024
    Configuration menu
    Copy the full SHA
    aeb2c04 View commit details
    Browse the repository at this point in the history
  6. Configuration menu
    Copy the full SHA
    f0941f3 View commit details
    Browse the repository at this point in the history

Commits on Jan 7, 2024

  1. Configuration menu
    Copy the full SHA
    c2d1de1 View commit details
    Browse the repository at this point in the history
  2. Configuration menu
    Copy the full SHA
    f268fb1 View commit details
    Browse the repository at this point in the history
  3. Configuration menu
    Copy the full SHA
    a93a304 View commit details
    Browse the repository at this point in the history
  4. Fix formatting.

    ryukzak committed Jan 7, 2024
    Configuration menu
    Copy the full SHA
    83c68ab View commit details
    Browse the repository at this point in the history
  5. Configuration menu
    Copy the full SHA
    ecd35f9 View commit details
    Browse the repository at this point in the history
  6. Configuration menu
    Copy the full SHA
    b2135a6 View commit details
    Browse the repository at this point in the history
  7. Configuration menu
    Copy the full SHA
    8e976f5 View commit details
    Browse the repository at this point in the history
  8. Sync the poetry.lock

    iburakov committed Jan 7, 2024
    Configuration menu
    Copy the full SHA
    6d73b06 View commit details
    Browse the repository at this point in the history
  9. Merge pull request #261 from ryukzak/ml-for-synthesis-prototype-wip-t…

    …f-fix
    
    Fix Tensorflow deps for Windows
    ryukzak committed Jan 7, 2024
    Configuration menu
    Copy the full SHA
    5cd88ac View commit details
    Browse the repository at this point in the history
  10. Fix Makefile: shell interaction for docker-build

    Co-authored-by: Ilya Burakov <[email protected]>
    ryukzak and iburakov committed Jan 7, 2024
    Configuration menu
    Copy the full SHA
    47c7497 View commit details
    Browse the repository at this point in the history
  11. Improve Makefile:ml-clean

    ryukzak committed Jan 7, 2024
    Configuration menu
    Copy the full SHA
    8a421b5 View commit details
    Browse the repository at this point in the history
  12. Configuration menu
    Copy the full SHA
    ffa9302 View commit details
    Browse the repository at this point in the history

Commits on Jan 8, 2024

  1. Configuration menu
    Copy the full SHA
    64edcc4 View commit details
    Browse the repository at this point in the history
  2. Fix formatting

    iburakov committed Jan 8, 2024
    Configuration menu
    Copy the full SHA
    8306454 View commit details
    Browse the repository at this point in the history
  3. Merge pull request #260 from ryukzak/ml-for-synthesis-prototype-wip

    Ml for synthesis prototype - Refactoring
    ryukzak committed Jan 8, 2024
    Configuration menu
    Copy the full SHA
    5966a6b View commit details
    Browse the repository at this point in the history