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

Cache a model, rename genai target, fix Windows #14

Merged
merged 205 commits into from
Jun 4, 2024

Conversation

Wovchena
Copy link

No description provided.

yatarkan and others added 30 commits May 15, 2024 15:24
…inotoolkit#445)

I got an error running benchmarking on my working machine (python3.8,
ubuntu20) due to unsupported args for hashlib.
```
[ ERROR ] An exception occurred
[ INFO ] Traceback (most recent call last):
  File "benchmark.py", line 532, in main
    iter_data_list, pretrain_time = CASE_TO_BENCH[model_args['use_case']](model_path, framework, args.device, model_args, args.num_iters)
  File "benchmark.py", line 194, in run_text_generation_benchmark
    run_text_generation(input_text, num, model, tokenizer, args, iter_data_list, warmup_md5, prompt_idx, bench_hook, model_precision, proc_id)
  File "benchmark.py", line 131, in run_text_generation
    result_md5_list.append(hashlib.md5(result_text.encode(), usedforsecurity=False).hexdigest())
TypeError: openssl_md5() takes at most 1 argument (2 given)
```
Based on this [StackOverflow
issue](https://stackoverflow.com/questions/54717862/how-do-i-know-if-the-usedforsecurity-flag-is-supported-by-hashlib-md5),
not all clients support this argument and usage hashlib.new("md5") vs
hashlib.md5 should be safe for usage in both cases
)

Reverts openvinotoolkit#289 to unblock the release.
Since it causes the performance regression of some models. (WIP to
investigate the reason)
The minimum version of transformers to get 1st and 2nd tokens latency is
v4.40-release.
Co-authored-by: Chen Peter <peter.chen@intel.com>
cmake.build-type = "Release"
cmake.source-dir = "./"
cmake.targets = ["py_generate_pipeline"] # Adding genai would trigger a Release build and Debug build after it. py_generate_pipeline depends on genai and genai will be built anyway. It's not been investigated why both build types are triggered.

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

maybe because of ninja multi-config which builds several build types at the same time?
You can probably use the same openvinotoolkit/openvino_tokenizers#162

- run: call w_openvino_toolkit_windows_2024.2.0.dev20240524_x86_64\setupvars.bat && python -m pip install ./thirdparty/openvino_tokenizers/[transformers] -r ./requirements-build.txt -r ./tests/python_tests/requirements.txt --extra-index-url https://storage.openvinotoolkit.org/simple/wheels/pre-release
# cmd evaluates variables in a different way. Setting PYTHONPATH before setupvars.bat instead of doing that after solves that.
- run: set "PYTHONPATH=./build/" && call w_openvino_toolkit_windows_2024.2.0.dev20240524_x86_64\setupvars.bat && python -m pytest ./tests/python_tests/test_generate_api.py --exitfirst -m precommit
- run: call w_openvino_toolkit_windows_2024.2.0.dev20240524_x86_64\setupvars.bat && python -m pip install . --config-settings=build-dir="build" --verbose

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

each line calls w_openvino_toolkit_windows_2024.2.0.dev20240524_x86_64\setupvars.bat, which make readability worse
can we use multiline script mode? I mean - run: | which assumes multiple lines after it.

@@ -1,3 +1,5 @@
import pathlib

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

copyright header?

* and unsets in destructor. Does nothing if ENVIRONMENT_VARIABLE_NAME
* was already defined.
*/
class OPENVINO_GENAI_EXPORTS ScopedVar {

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

should not be a part of public API.
You can put it into src and include src from python API

Copy link
Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

If py_generate_pipeline is able to call tokenizers_relative_to_genai() from openvino_genai, it is a part of the API. Independently of having it in the public header.

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

but this header (inside src) will not be given to users, so they will not be able to use such API (at least easily).

Copy link
Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Why would we hide it?

@pavel-esir pavel-esir merged commit 2c2a34a into pavel-esir:generate_pipeline Jun 4, 2024
17 of 27 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

7 participants