From 224a9c060ffe420e0a09bc3b8fd861f1bcdf277f Mon Sep 17 00:00:00 2001 From: Haojin Yang Date: Fri, 5 Apr 2024 23:13:54 +0200 Subject: [PATCH 001/125] Initial commit --- LICENSE | 201 ++++++++++++++++++++++++++++++++++++++++++++++++++++++ README.md | 2 + 2 files changed, 203 insertions(+) create mode 100644 LICENSE create mode 100644 README.md diff --git a/LICENSE b/LICENSE new file mode 100644 index 0000000..261eeb9 --- /dev/null +++ b/LICENSE @@ -0,0 +1,201 @@ + Apache License + Version 2.0, January 2004 + http://www.apache.org/licenses/ + + TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION + + 1. Definitions. + + "License" shall mean the terms and conditions for use, reproduction, + and distribution as defined by Sections 1 through 9 of this document. + + "Licensor" shall mean the copyright owner or entity authorized by + the copyright owner that is granting the License. + + "Legal Entity" shall mean the union of the acting entity and all + other entities that control, are controlled by, or are under common + control with that entity. For the purposes of this definition, + "control" means (i) the power, direct or indirect, to cause the + direction or management of such entity, whether by contract or + otherwise, or (ii) ownership of fifty percent (50%) or more of the + outstanding shares, or (iii) beneficial ownership of such entity. + + "You" (or "Your") shall mean an individual or Legal Entity + exercising permissions granted by this License. + + "Source" form shall mean the preferred form for making modifications, + including but not limited to software source code, documentation + source, and configuration files. + + "Object" form shall mean any form resulting from mechanical + transformation or translation of a Source form, including but + not limited to compiled object code, generated documentation, + and conversions to other media types. + + "Work" shall mean the work of authorship, whether in Source or + Object form, made available under the License, as indicated by a + copyright notice that is included in or attached to the work + (an example is provided in the Appendix below). + + "Derivative Works" shall mean any work, whether in Source or Object + form, that is based on (or derived from) the Work and for which the + editorial revisions, annotations, elaborations, or other modifications + represent, as a whole, an original work of authorship. For the purposes + of this License, Derivative Works shall not include works that remain + separable from, or merely link (or bind by name) to the interfaces of, + the Work and Derivative Works thereof. + + "Contribution" shall mean any work of authorship, including + the original version of the Work and any modifications or additions + to that Work or Derivative Works thereof, that is intentionally + submitted to Licensor for inclusion in the Work by the copyright owner + or by an individual or Legal Entity authorized to submit on behalf of + the copyright owner. For the purposes of this definition, "submitted" + means any form of electronic, verbal, or written communication sent + to the Licensor or its representatives, including but not limited to + communication on electronic mailing lists, source code control systems, + and issue tracking systems that are managed by, or on behalf of, the + Licensor for the purpose of discussing and improving the Work, but + excluding communication that is conspicuously marked or otherwise + designated in writing by the copyright owner as "Not a Contribution." + + "Contributor" shall mean Licensor and any individual or Legal Entity + on behalf of whom a Contribution has been received by Licensor and + subsequently incorporated within the Work. + + 2. Grant of Copyright License. Subject to the terms and conditions of + this License, each Contributor hereby grants to You a perpetual, + worldwide, non-exclusive, no-charge, royalty-free, irrevocable + copyright license to reproduce, prepare Derivative Works of, + publicly display, publicly perform, sublicense, and distribute the + Work and such Derivative Works in Source or Object form. + + 3. Grant of Patent License. Subject to the terms and conditions of + this License, each Contributor hereby grants to You a perpetual, + worldwide, non-exclusive, no-charge, royalty-free, irrevocable + (except as stated in this section) patent license to make, have made, + use, offer to sell, sell, import, and otherwise transfer the Work, + where such license applies only to those patent claims licensable + by such Contributor that are necessarily infringed by their + Contribution(s) alone or by combination of their Contribution(s) + with the Work to which such Contribution(s) was submitted. If You + institute patent litigation against any entity (including a + cross-claim or counterclaim in a lawsuit) alleging that the Work + or a Contribution incorporated within the Work constitutes direct + or contributory patent infringement, then any patent licenses + granted to You under this License for that Work shall terminate + as of the date such litigation is filed. + + 4. Redistribution. You may reproduce and distribute copies of the + Work or Derivative Works thereof in any medium, with or without + modifications, and in Source or Object form, provided that You + meet the following conditions: + + (a) You must give any other recipients of the Work or + Derivative Works a copy of this License; and + + (b) You must cause any modified files to carry prominent notices + stating that You changed the files; and + + (c) You must retain, in the Source form of any Derivative Works + that You distribute, all copyright, patent, trademark, and + attribution notices from the Source form of the Work, + excluding those notices that do not pertain to any part of + the Derivative Works; and + + (d) If the Work includes a "NOTICE" text file as part of its + distribution, then any Derivative Works that You distribute must + include a readable copy of the attribution notices contained + within such NOTICE file, excluding those notices that do not + pertain to any part of the Derivative Works, in at least one + of the following places: within a NOTICE text file distributed + as part of the Derivative Works; within the Source form or + documentation, if provided along with the Derivative Works; or, + within a display generated by the Derivative Works, if and + wherever such third-party notices normally appear. The contents + of the NOTICE file are for informational purposes only and + do not modify the License. You may add Your own attribution + notices within Derivative Works that You distribute, alongside + or as an addendum to the NOTICE text from the Work, provided + that such additional attribution notices cannot be construed + as modifying the License. + + You may add Your own copyright statement to Your modifications and + may provide additional or different license terms and conditions + for use, reproduction, or distribution of Your modifications, or + for any such Derivative Works as a whole, provided Your use, + reproduction, and distribution of the Work otherwise complies with + the conditions stated in this License. + + 5. Submission of Contributions. Unless You explicitly state otherwise, + any Contribution intentionally submitted for inclusion in the Work + by You to the Licensor shall be under the terms and conditions of + this License, without any additional terms or conditions. + Notwithstanding the above, nothing herein shall supersede or modify + the terms of any separate license agreement you may have executed + with Licensor regarding such Contributions. + + 6. Trademarks. This License does not grant permission to use the trade + names, trademarks, service marks, or product names of the Licensor, + except as required for reasonable and customary use in describing the + origin of the Work and reproducing the content of the NOTICE file. + + 7. Disclaimer of Warranty. Unless required by applicable law or + agreed to in writing, Licensor provides the Work (and each + Contributor provides its Contributions) on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or + implied, including, without limitation, any warranties or conditions + of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A + PARTICULAR PURPOSE. You are solely responsible for determining the + appropriateness of using or redistributing the Work and assume any + risks associated with Your exercise of permissions under this License. + + 8. Limitation of Liability. In no event and under no legal theory, + whether in tort (including negligence), contract, or otherwise, + unless required by applicable law (such as deliberate and grossly + negligent acts) or agreed to in writing, shall any Contributor be + liable to You for damages, including any direct, indirect, special, + incidental, or consequential damages of any character arising as a + result of this License or out of the use or inability to use the + Work (including but not limited to damages for loss of goodwill, + work stoppage, computer failure or malfunction, or any and all + other commercial damages or losses), even if such Contributor + has been advised of the possibility of such damages. + + 9. Accepting Warranty or Additional Liability. While redistributing + the Work or Derivative Works thereof, You may choose to offer, + and charge a fee for, acceptance of support, warranty, indemnity, + or other liability obligations and/or rights consistent with this + License. However, in accepting such obligations, You may act only + on Your own behalf and on Your sole responsibility, not on behalf + of any other Contributor, and only if You agree to indemnify, + defend, and hold each Contributor harmless for any liability + incurred by, or claims asserted against, such Contributor by reason + of your accepting any such warranty or additional liability. + + END OF TERMS AND CONDITIONS + + APPENDIX: How to apply the Apache License to your work. + + To apply the Apache License to your work, attach the following + boilerplate notice, with the fields enclosed by brackets "[]" + replaced with your own identifying information. (Don't include + the brackets!) The text should be enclosed in the appropriate + comment syntax for the file format. We also recommend that a + file or class name and description of purpose be included on the + same "printed page" as the copyright notice for easier + identification within third-party archives. + + Copyright [yyyy] [name of copyright owner] + + Licensed under the Apache License, Version 2.0 (the "License"); + you may not use this file except in compliance with the License. + You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + + Unless required by applicable law or agreed to in writing, software + distributed under the License is distributed on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + See the License for the specific language governing permissions and + limitations under the License. diff --git a/README.md b/README.md new file mode 100644 index 0000000..58e77fa --- /dev/null +++ b/README.md @@ -0,0 +1,2 @@ +# green-bit-llm +A toolkit for fine-tuning, inference, and evaluating GreenBitAI's LLMs. From bf308895e5ccfd1f3e3256fdbbcf4bdb5c12fb1c Mon Sep 17 00:00:00 2001 From: Haojin Yang Date: Sun, 7 Apr 2024 22:34:56 +0200 Subject: [PATCH 002/125] added dirs and other files --- .gitignore | 147 +++++++++++++++++++++++++++++++++++++++++ environment.yml | 12 ++++ evaluation/__init__.py | 0 inference/__init__.py | 0 load.py | 0 models/__init__.py | 0 requirements.txt | 7 ++ sft/__init__.py | 0 version.py | 1 + 9 files changed, 167 insertions(+) create mode 100644 .gitignore create mode 100644 environment.yml create mode 100644 evaluation/__init__.py create mode 100644 inference/__init__.py create mode 100644 load.py create mode 100644 models/__init__.py create mode 100644 requirements.txt create mode 100644 sft/__init__.py create mode 100644 version.py diff --git a/.gitignore b/.gitignore new file mode 100644 index 0000000..388b30d --- /dev/null +++ b/.gitignore @@ -0,0 +1,147 @@ +# Byte-compiled / optimized / DLL files +__pycache__/ +*.py[cod] +*$py.class + +# C extensions +*.so + +# Distribution / packaging +.Python +build/ +develop-eggs/ +dist/ +downloads/ +eggs/ +.eggs/ +lib/ +lib64/ +parts/ +sdist/ +var/ +wheels/ +share/python-wheels/ +*.egg-info/ +.installed.cfg +*.egg +MANIFEST + +# PyInstaller +# Usually these files are written by a python script from a template +# before PyInstaller builds the exe, so as to inject date/other infos into it. +*.manifest +*.spec + +# Installer logs +pip-log.txt +pip-delete-this-directory.txt + +# Unit test / coverage reports +htmlcov/ +.tox/ +.nox/ +.coverage +.coverage.* +.cache +nosetests.xml +coverage.xml +*.cover +*.py,cover +.hypothesis/ +.pytest_cache/ +cover/ + +# Translations +*.mo +*.pot + +# Django stuff: +*.log +local_settings.py +db.sqlite3 +db.sqlite3-journal + +# Flask stuff: +instance/ +.webassets-cache + +# Scrapy stuff: +.scrapy + +# Sphinx documentation +docs/_build/ + +# PyBuilder +.pybuilder/ +target/ + +# Jupyter Notebook +.ipynb_checkpoints + +# IPython +profile_default/ +ipython_config.py + +# pyenv +# For a library or package, you might want to ignore these files since the code is +# intended to run in multiple environments; otherwise, check them in: +# .python-version + +# pipenv +# According to pypa/pipenv#598, it is recommended to include Pipfile.lock in version control. +# However, in case of collaboration, if having platform-specific dependencies or dependencies +# having no cross-platform support, pipenv may install dependencies that don't work, or not +# install all needed dependencies. +#Pipfile.lock + +# PEP 582; used by e.g. github.com/David-OConnor/pyflow +__pypackages__/ + +# Celery stuff +celerybeat-schedule +celerybeat.pid + +# SageMath parsed files +*.sage.py + +# Environments +.env +.venv +env/ +venv/ +ENV/ +env.bak/ +venv.bak/ + +# Spyder project settings +.spyderproject +.spyproject + +# Rope project settings +.ropeproject + +# mkdocs documentation +/site + +# mypy +.mypy_cache/ +.dmypy.json +dmypy.json + +# Pyre type checker +.pyre/ + +# pytype static type analyzer +.pytype/ + +# Cython debug symbols +cython_debug/ + +.coverage +.idea/ +.vscode/ +.mypy_cache + +# downloaded dataset files +train/ +test/ diff --git a/environment.yml b/environment.yml new file mode 100644 index 0000000..5b347cd --- /dev/null +++ b/environment.yml @@ -0,0 +1,12 @@ +name: gbai_cuda_lm +channels: + - conda-forge + - pytorch +dependencies: + - python=3.9 + - pip=24.0 + - pytorch::pytorch>=2.0 + - pip: + - sentencepiece + - huggingface_hub + - transformers>=4.38.0 diff --git a/evaluation/__init__.py b/evaluation/__init__.py new file mode 100644 index 0000000..e69de29 diff --git a/inference/__init__.py b/inference/__init__.py new file mode 100644 index 0000000..e69de29 diff --git a/load.py b/load.py new file mode 100644 index 0000000..e69de29 diff --git a/models/__init__.py b/models/__init__.py new file mode 100644 index 0000000..e69de29 diff --git a/requirements.txt b/requirements.txt new file mode 100644 index 0000000..84196aa --- /dev/null +++ b/requirements.txt @@ -0,0 +1,7 @@ +accelerate +colorama +datasets +torch>=2.0.0 +sentencepiece +transformers>=4.38.0 +huggingface_hub \ No newline at end of file diff --git a/sft/__init__.py b/sft/__init__.py new file mode 100644 index 0000000..e69de29 diff --git a/version.py b/version.py new file mode 100644 index 0000000..a68927d --- /dev/null +++ b/version.py @@ -0,0 +1 @@ +__version__ = "0.1.0" \ No newline at end of file From 95874361762916078da2bc2711a6e8f094e5c1f4 Mon Sep 17 00:00:00 2001 From: Haojin Yang Date: Sun, 7 Apr 2024 22:53:03 +0200 Subject: [PATCH 003/125] added content for readme --- README.md | 59 ++++++++++++++++++++++++++++++++++++++++++++++++++++++- 1 file changed, 58 insertions(+), 1 deletion(-) diff --git a/README.md b/README.md index 58e77fa..bd90b04 100644 --- a/README.md +++ b/README.md @@ -1,2 +1,59 @@ -# green-bit-llm +# Green-Bit-LLM + A toolkit for fine-tuning, inference, and evaluating GreenBitAI's LLMs. + +## Introduction + +This Python package uses the [Bitorch Engine](https://github.com/GreenBitAI/bitorch-engine) for efficient operations on [GreenBitAI's Low-bit Language Models (LLMs)](https://huggingface.co/GreenBitAI). +It enables high-performance inference on both cloud-based and consumer-level GPUs, and supports full-parameter fine-tuning directly using quantized LLMs. +Additionally, you can use our provided evaluation tools to validate the model's performance on mainstream benchmark datasets. + + +## Features + + +## Installation +To get started with this package, simply clone the repository and install the required dependencies (for Python >= 3.9): +```bash +git clone https://github.com/GreenBitAI/green-bit-llm.git +pip install -r requirements.txt +``` +Alternatively you can also use the prepared conda environment configuration: +```bash +conda env create -f environment.yml +conda activate gbai_cuda_lm +``` + +## Usage +### Inference + +```bash +``` + +### sft + +```bash + +``` + +## Requirements + +- Python 3.x +- See `requirements.txt` or `environment.yml` for a complete list of dependencies + +## Examples + +```bash + +``` + +```bash + +``` + +## License +The original code was released under its respective license and copyrights, i.e.: + +- ... +- We release our changes and additions to these files under the [Apache 2.0 License](LICENSE). + From 97ed8525a61e8348267f190d4fa7b0441606ec84 Mon Sep 17 00:00:00 2001 From: Haojin Yang Date: Mon, 8 Apr 2024 09:55:52 +0200 Subject: [PATCH 004/125] adapted project structure --- {models => green_bit_llm}/__init__.py | 0 load.py => green_bit_llm/load.py | 0 green_bit_llm/models/__init__.py | 0 green_bit_llm/utils/__init__.py | 0 4 files changed, 0 insertions(+), 0 deletions(-) rename {models => green_bit_llm}/__init__.py (100%) rename load.py => green_bit_llm/load.py (100%) create mode 100644 green_bit_llm/models/__init__.py create mode 100644 green_bit_llm/utils/__init__.py diff --git a/models/__init__.py b/green_bit_llm/__init__.py similarity index 100% rename from models/__init__.py rename to green_bit_llm/__init__.py diff --git a/load.py b/green_bit_llm/load.py similarity index 100% rename from load.py rename to green_bit_llm/load.py diff --git a/green_bit_llm/models/__init__.py b/green_bit_llm/models/__init__.py new file mode 100644 index 0000000..e69de29 diff --git a/green_bit_llm/utils/__init__.py b/green_bit_llm/utils/__init__.py new file mode 100644 index 0000000..e69de29 From c19328f2d73557db212861fba6c679288ea10149 Mon Sep 17 00:00:00 2001 From: Haojin Yang Date: Tue, 9 Apr 2024 18:42:02 +0200 Subject: [PATCH 005/125] added model loading --- green_bit_llm/__init__.py | 1 + green_bit_llm/load.py | 0 green_bit_llm/model.py | 224 +++++++++++++++++++++++++++++++ green_bit_llm/models/__init__.py | 0 green_bit_llm/utils.py | 195 +++++++++++++++++++++++++++ green_bit_llm/utils/__init__.py | 0 6 files changed, 420 insertions(+) delete mode 100644 green_bit_llm/load.py create mode 100644 green_bit_llm/model.py delete mode 100644 green_bit_llm/models/__init__.py create mode 100644 green_bit_llm/utils.py delete mode 100644 green_bit_llm/utils/__init__.py diff --git a/green_bit_llm/__init__.py b/green_bit_llm/__init__.py index e69de29..d2585c3 100644 --- a/green_bit_llm/__init__.py +++ b/green_bit_llm/__init__.py @@ -0,0 +1 @@ +from .model import load \ No newline at end of file diff --git a/green_bit_llm/load.py b/green_bit_llm/load.py deleted file mode 100644 index e69de29..0000000 diff --git a/green_bit_llm/model.py b/green_bit_llm/model.py new file mode 100644 index 0000000..1e748e8 --- /dev/null +++ b/green_bit_llm/model.py @@ -0,0 +1,224 @@ +from pathlib import Path +from typing import Optional, Tuple +import json + +import torch +import torch.nn as nn + +from transformers import PreTrainedTokenizer, AutoTokenizer +import accelerate + +from utils import get_layer_mode_from_name, LayerMode, get_packed_info, get_model_path, find_layers, apply_dtype_to +import time + +strategy_fn = "quant_strategy.json" + +ENGINE_AVAILABLE = True +try: + from bitorch_engine.layers.qlinear.nbit import MPQLinearBase + from bitorch_engine.layers.qlinear.nbit.cuda import MPQLinearCuda, MBWQLinearCuda + from bitorch_engine.layers.qlinear.nbit.mps import MPQLinearMlx +except ModuleNotFoundError as e: + ENGINE_AVAILABLE = False + print(f"Error: Module not found: {e}.") + +from colorama import init, Fore, Style +init(autoreset=True) + + +def engine_layer_prepare(model: torch.nn.Module): + """ + Define the function that prepares the engine layer. + + Args: + model (nn.Module): The PyTorch module will be operated. + """ + target_layer_name = '' + for n, m in model.named_modules(): + if issubclass(type(m), MPQLinearBase): + m.prepare_params() + if target_layer_name == '': target_layer_name = m.__class__.__name__ + print(Style.BRIGHT + Fore.GREEN + '{} parameter preparation finished.'.format(target_layer_name)) + + +def make_quant(module, names, layer_mode: LayerMode, name='', group_size: Optional[int] = None, bits: Optional[int] = None, + dtype: torch.dtype = torch.half, quant_strategy=None): + """ + Applies quantization to the specified layers of a PyTorch module according to the provided quantization strategy. + + Args: + module: The PyTorch module whose layers are to be quantized. + names: A list of layer names within the module that need to be quantized. + layer_mode: An enum (LayerMode) that specifies the quantization mode to be used. + name: A base name to prefix to attributes for unique identification (used in recursive calls). + group_size: The group size for quantization, affecting how weights are grouped during quantization. + bits: The number of bits to use for weight quantization. + dtype: The data type to be used for the quantized weights. + quant_strategy: A dictionary defining specific quantization strategies for different layers. + + This function modifies the module in-place by replacing specified layers with their quantized counterparts. + It supports different quantization modes and strategies, allowing fine-grained control over the quantization process. + """ + + if ENGINE_AVAILABLE and issubclass(type(module), MPQLinearBase): + return + + for attr in dir(module): + tmp = getattr(module, attr) + name_attr = name + '.' + attr if name != '' else attr + if name_attr in names: + if layer_mode == LayerMode.LEGENCY: + setattr( + module, attr, MPQLinearCuda(in_channels=tmp.in_features, out_channels=tmp.out_features, + w_bit=bits, dtype=dtype, group_size=group_size, dq_group_size=32, + use_gba_quant=True, asym=False, dq_mode=2, requires_grad=False) + ) + else: + groups = 64 + rows = 64 + if quant_strategy is not None: + for key in ['q_proj', 'k_proj', 'v_proj', 'o_proj', 'gate_proj', 'up_proj', 'down_proj']: + if key in name_attr: + strategy = quant_strategy[key] + break + + groups, rows = get_packed_info(tmp.in_features, strategy["bits"], strategy["bits_prop"], + strategy["group_size"]) + bits = strategy["bits"][0] + group_size = strategy["group_size"][str(bits)] + + if layer_mode == LayerMode.LAYER_MIX: + setattr( + module, attr, MBWQLinearCuda(in_channels=tmp.in_features, out_channels=tmp.out_features, + w_bit=bits, dtype=dtype, group_size=group_size, dq_group_size=32, use_gba_quant=True, + asym=False, dq_mode=2, requires_grad=False, use_mbw=False) + ) + elif layer_mode == LayerMode.CHANNEL_MIX: + setattr( + module, attr, MBWQLinearCuda(in_channels=tmp.in_features, out_channels=tmp.out_features, + w_bit=bits, dtype=dtype, group_size=group_size, dq_group_size=32, + use_gba_quant=True, asym=False, dq_mode=2, requires_grad=False, + use_mbw=True, groups=groups, rows_packed=rows) + ) + else: + raise NotImplementedError('Error: layer_mode: {} not implemented yet.'.format(layer_mode)) + + for name_attr, child in module.named_children(): + name_sub = name + '.' + name_attr if name != '' else name_attr + make_quant(child, names, layer_mode, name_sub, group_size=group_size, bits=bits, dtype=dtype, quant_strategy=quant_strategy) + + +def load_model(model_path: Path, layer_mode: LayerMode, bits: Optional[int]=None, group_size: Optional[int]=None, + dtype: torch.dtype = torch.half, device_map={"cuda:0"}, seqlen: int = 2048) -> nn.Module: + """ + Load and initialize the model from a given path. + + Args: + model_path (Path): The path to load the model from. + layer_mode (LayerMode): for choosing which engine layer should be used. + bits (int): bits for quantization + group_size (int): group size used in quantization + dtype (torch.dtype): data type to be used + device_map (int): device map defines how to distribute model on the gpus. + seqlen (int): sequence length + + Returns: + nn.Module: The loaded and initialized model. + + Raises: + FileNotFoundError: If the weight files (.safetensors) are not found. + ValueError: If the model class or args class are not found or cannot be instantiated. + """ + print(Style.BRIGHT + Fore.CYAN + "Info: Loading Model ...") + t0 = time.time() + + if layer_mode in (LayerMode.LAYER_MIX, LayerMode.CHANNEL_MIX): + try: + with open(model_path / strategy_fn, "r") as file: + strategy = json.load(file)["measurement"] + except FileNotFoundError: + raise Exception(f"Error: Strategy config file not found in {model_path}") + + with accelerate.init_empty_weights(): + config = AutoConfig.from_pretrained(model_path) + model = AutoModelForCausalLM.from_pretrained(model_path, config=config, torch_dtype=dtype, trust_remote_code=True) + model = model.eval() + + for i, layer in enumerate(model.model.layers): + layers = find_layers(layer) + + strategy_per_block = None + if layer_mode in (LayerMode.LAYER_MIX, LayerMode.CHANNEL_MIX): + strategy_per_block = strategy["model.layers.{}".format(i)] + + for name in ['lm_head']: + if name in layers: + del layers[name] + + make_quant(layer, layers, layer_mode=layer_mode, groupsize=group_size, bits=bits, dtype=dtype, + quant_strategy=strategy_per_block) + + model = accelerate.load_checkpoint_and_dispatch( + model=model, + checkpoint=model_path, + device_map=device_map, + no_split_module_classes=["LlamaDecoderLayer"] + ) + model.seqlen = seqlen + + # post model.init() preparation + engine_layer_prepare(model) + # use dtype + apply_dtype_to(model, dtype) + print(Style.BRIGHT + Fore.GREEN + f"Info: Apply dtype: {str(dtype)} to the model.") + + print(Style.BRIGHT + Fore.YELLOW + 'Total {:.2f} Gib VRAM used.'.format( + torch.cuda.memory_allocated() / 1024 / 1024 / 1024)) + + print(Style.BRIGHT + Fore.GREEN + f"Info: Loaded the model in {(time.time() - t0):.2f} seconds.") + + return model, config + + +def load( + path_or_hf_repo: str, + tokenizer_config={}, + dtype: torch.dtype = torch.half, + device_map = {"cuda:0"}, + seqlen: int = 2048, + adapter_file: Optional[str] = None +) -> Tuple[nn.Module, PreTrainedTokenizer]: + """ + Load the model and tokenizer from a given path or a huggingface repository. + + Args: + path_or_hf_repo (Path): The path or the huggingface repository to load the model from. + tokenizer_config (dict, optional): Configuration parameters specifically for the tokenizer. Defaults to an empty dictionary. + dtype (torch.dtype): data type to be used + device_map (int): device map defines how to distribute model on the gpus. + seqlen (int): sequence length + adapter_file (str, optional): Path to the adapter file. If provided, applies LoRA layers to the model. + Defaults to None. + Returns: + Tuple[nn.Module, PreTrainedTokenizer]: A tuple containing the loaded model and tokenizer. + + Raises: + FileNotFoundError: If config file or safetensors are not found. + ValueError: If model class or args class are not found. + """ + # check if Bitorch Engine avaliable + if not ENGINE_AVAILABLE: + raise Exception(f"Error: Bitorch Engine layers will not be available.") + + # parse model name pattern + layer_mode, bits, group_size = get_layer_mode_from_name(path_or_hf_repo) + model_path = get_model_path(path_or_hf_repo) + + model, config = load_model(model_path, layer_mode, bits, group_size, dtype, device_map, seqlen) + + tokenizer = AutoTokenizer.from_pretrained(model_path, **tokenizer_config) + + if adapter_file is not None: + raise NotImplementedError('Error: LoRA layers not implemented yet.') + + return model, tokenizer, config \ No newline at end of file diff --git a/green_bit_llm/models/__init__.py b/green_bit_llm/models/__init__.py deleted file mode 100644 index e69de29..0000000 diff --git a/green_bit_llm/utils.py b/green_bit_llm/utils.py new file mode 100644 index 0000000..409b357 --- /dev/null +++ b/green_bit_llm/utils.py @@ -0,0 +1,195 @@ +from pathlib import Path +from enum import Enum +import re +import torch.nn as nn +import torch + +from huggingface_hub import snapshot_download + + +class LayerMode(Enum): + LAYER_MIX = 1 + CHANNEL_MIX = 2 + LEGENCY = 3 + + +def check_engine_available()-> bool: + """ + Checks if the required modules for Bitorch Engine are available. + Returns True if the modules are found, False otherwise. + """ + try: + from bitorch_engine.layers.qlinear.nbit import MPQLinearBase + from bitorch_engine.layers.qlinear.nbit.cuda import MPQLinearCuda, MBWQLinearCuda + except ModuleNotFoundError as e: + print(f"Error: Module not found: {e}.") + return True + + +def match_model_pattern(model_name: str) -> tuple: + """ + Matches the model name against known patterns and extracts relevant details. + + Args: + model_name (str): The name of the model. + + Returns: + tuple: A tuple containing the layer mode, weight bits, and group size. + + Raises: + ValueError: If the model name does not match any known pattern. + """ + if model_name.endswith('-mlx'): + raise ValueError("Model name ends with '-mlx', which is not supported.") + + patterns = { + r'channel-mix': LayerMode.CHANNEL_MIX, + r'layer-mix': LayerMode.LAYER_MIX, + r'B-(\d+)bit-groupsize(\d+)': LayerMode.LEGENCY, + r'w(\d+)a\d+g(\d+)': LayerMode.LEGENCY, + } + + for pattern, mode in patterns.items(): + match = re.search(pattern, model_name) + if match: + groups = match.groups() + if mode == LayerMode.LEGENCY and groups: + return mode, int(groups[0]), int(groups[1]) + return mode, None, None + + raise ValueError(f"Invalid or unsupported model name pattern: {model_name}") + + +def get_layer_mode_from_name(model_name: str) -> tuple: + """ + Determines the layer mode from the model name and extracts weight bits and group size if present. + + Args: + model_name (str): The name of the model. + + Returns: + tuple: The layer mode, weight bits, and group size. + + Raises: + ValueError: If the model name is invalid or unsupported. + """ + return match_model_pattern(model_name) + + +def get_packed_info(channels, n_bits, bits_prop, bits_group_size): + """ + Calculate the distribution of channels into groups and rows based on their bit properties. + + Parameters: + - channels (int): Total number of channels to be packed. + - n_bits (list of int): Number of bits per channel for each group. + - bits_prop (list of float): Proportion of channels to be allocated to each bit type. + - bits_group_size (dict): Mapping of group index to the minimal number of channels in a group. + + Returns: + Tuple[int, int]: A tuple containing the total number of groups and rows needed. + """ + groups = 0 + rows = 0 + bits_channel = [] + for idx in range(len(bits_prop)): + if idx < len(bits_prop) - 1: + minimal_channels = list(bits_group_size.values())[idx] + channel_pre_pack = max(1, int(channels * (bits_prop[idx])) // minimal_channels) * minimal_channels + bits_channel.append(channel_pre_pack) + groups += channel_pre_pack // minimal_channels + rows += channel_pre_pack // 32 * n_bits[idx] + else: + minimal_channels = list(bits_group_size.values())[idx] + channel_pre_pack = channels - sum(bits_channel) + bits_channel.append(channel_pre_pack) + groups += channel_pre_pack // minimal_channels + rows += channel_pre_pack // 32 * n_bits[idx] + return groups, rows + + + +def find_layers(module: nn.Module, layers=[nn.Conv2d, nn.Linear], name=''): + """ + Recursively searches and returns a dictionary of layers within a given PyTorch model + (or module) that match the specified types. + + Args: + - module (nn.Module): The model or module to search within. + - layers (list): A list of layer classes (e.g., nn.Conv2d, nn.Linear) to look for within the model. + Default is [nn.Conv2d, nn.Linear]. + - name (str): The namespace (hierarchical path) leading to the current module being searched. + This is used internally for recursive calls to build the full path names of layers. + + Returns: + - dict: A dictionary where each key is the hierarchical name of the layer (showing its path within + the model) and each value is the corresponding layer module itself. + """ + if type(module) in layers: + return {name: module} + res = {} + for name1, child in module.named_children(): + res.update(find_layers( + child, layers=layers, name=name + '.' + name1 if name != '' else name1 + )) + return res + + +def get_model_path(path_or_hf_repo: str, token=None) -> Path: + """ + Ensures the model is available locally. If the path does not exist locally, + it is downloaded from the Hugging Face Hub. + + Args: + path_or_hf_repo (str): The local path or Hugging Face repository ID of the model. + token (Optional): user token to access HF repo. + + Returns: + Path: The path to the model. + """ + model_path = Path(path_or_hf_repo) + if not model_path.exists(): + model_path = Path( + snapshot_download( + repo_id=path_or_hf_repo, + allow_patterns=[ + "*.json", + "*.safetensors", + "*.py", + "tokenizer.model", + "*.tiktoken", + "*.txt", + ], + token=token + ) + ) + return model_path + + +def apply_dtype_to(model: nn.Module, dtype: torch.dtype): + """ + Applies a specified data type to the given PyTorch model. This function + is useful for model conversion in mixed precision training, where different + parts of the model may benefit from different precision levels for efficiency + and speed. + + Parameters: + - model: The PyTorch model to modify. + - dtype: The target data type to apply to the model. Supported types are + torch.float, torch.half, and torch.bfloat16. + Returns: + - None. The model is modified in-place. + """ + + # Check if the specified dtype is torch.half, and if so, convert the model to half precision. + if dtype is torch.half: + model.half() + # Check if the specified dtype is torch.bfloat16, and if so, convert the model to bfloat16 precision. + elif dtype is torch.bfloat16: + model.bfloat16() + # Additional condition for full precision (float32). + elif dtype is torch.float: + model.float() + else: + # If the dtype is not supported, raise an error. + raise ValueError("Unsupported dtype specified. Supported dtypes are torch.float, torch.half, and torch.bfloat16.") \ No newline at end of file diff --git a/green_bit_llm/utils/__init__.py b/green_bit_llm/utils/__init__.py deleted file mode 100644 index e69de29..0000000 From c9033a13fcb06dfd31e464b6ea318db0eda095b4 Mon Sep 17 00:00:00 2001 From: Haojin Yang Date: Wed, 10 Apr 2024 18:02:28 +0200 Subject: [PATCH 006/125] added inference codes --- green_bit_llm/model.py | 296 ++++++++++++++++--------- green_bit_llm/utils.py | 26 +-- version.py => green_bit_llm/version.py | 0 inference/generation.py | 153 +++++++++++++ 4 files changed, 357 insertions(+), 118 deletions(-) rename version.py => green_bit_llm/version.py (100%) create mode 100644 inference/generation.py diff --git a/green_bit_llm/model.py b/green_bit_llm/model.py index 1e748e8..7e07303 100644 --- a/green_bit_llm/model.py +++ b/green_bit_llm/model.py @@ -1,17 +1,19 @@ from pathlib import Path -from typing import Optional, Tuple +from typing import Optional, Tuple, Dict import json import torch import torch.nn as nn -from transformers import PreTrainedTokenizer, AutoTokenizer +from transformers import PreTrainedTokenizer, AutoTokenizer, AutoConfig, AutoModelForCausalLM, PreTrainedModel, logging import accelerate from utils import get_layer_mode_from_name, LayerMode, get_packed_info, get_model_path, find_layers, apply_dtype_to + import time +from transformers import logging -strategy_fn = "quant_strategy.json" +STRATEGY_FILE_NAME = "quant_strategy.json" ENGINE_AVAILABLE = True try: @@ -41,6 +43,18 @@ def engine_layer_prepare(model: torch.nn.Module): print(Style.BRIGHT + Fore.GREEN + '{} parameter preparation finished.'.format(target_layer_name)) +def apply_quant_strategy(name_attr, quant_strategy): + """ + Apply quantization strategy based on the layer's name and the provided strategy. + """ + strategy = None + for key in ['q_proj', 'k_proj', 'v_proj', 'o_proj', 'gate_proj', 'up_proj', 'down_proj']: + if key in name_attr: + strategy = quant_strategy[key] + break + return strategy + + def make_quant(module, names, layer_mode: LayerMode, name='', group_size: Optional[int] = None, bits: Optional[int] = None, dtype: torch.dtype = torch.half, quant_strategy=None): """ @@ -59,166 +73,238 @@ def make_quant(module, names, layer_mode: LayerMode, name='', group_size: Option This function modifies the module in-place by replacing specified layers with their quantized counterparts. It supports different quantization modes and strategies, allowing fine-grained control over the quantization process. """ - if ENGINE_AVAILABLE and issubclass(type(module), MPQLinearBase): return for attr in dir(module): tmp = getattr(module, attr) - name_attr = name + '.' + attr if name != '' else attr + name_attr = f'{name}.{attr}' if name else attr if name_attr in names: + strategy = apply_quant_strategy(name_attr, quant_strategy) if quant_strategy else None + if strategy: + groups, rows = get_packed_info(tmp.in_features, strategy["bits"], strategy["bits_prop"], strategy["group_size"]) + bits = strategy["bits"][0] + group_size = strategy["group_size"][str(bits)] + + common_params = { + "in_channels": tmp.in_features, "out_channels": tmp.out_features, + "w_bit": bits, "dtype": dtype, "group_size": group_size, "dq_group_size": 32, + "use_gba_quant": True, "asym": False, "dq_mode": 2, "requires_grad": True + } + if layer_mode == LayerMode.LEGENCY: - setattr( - module, attr, MPQLinearCuda(in_channels=tmp.in_features, out_channels=tmp.out_features, - w_bit=bits, dtype=dtype, group_size=group_size, dq_group_size=32, - use_gba_quant=True, asym=False, dq_mode=2, requires_grad=False) - ) + quantized_layer = MPQLinearCuda(**common_params) + elif layer_mode == LayerMode.LAYER_MIX: + quantized_layer = MBWQLinearCuda(use_mbw=False, **common_params) + elif layer_mode == LayerMode.CHANNEL_MIX: + quantized_layer = MBWQLinearCuda(use_mbw=True, groups=groups, rows_packed=rows, **common_params) else: - groups = 64 - rows = 64 - if quant_strategy is not None: - for key in ['q_proj', 'k_proj', 'v_proj', 'o_proj', 'gate_proj', 'up_proj', 'down_proj']: - if key in name_attr: - strategy = quant_strategy[key] - break - - groups, rows = get_packed_info(tmp.in_features, strategy["bits"], strategy["bits_prop"], - strategy["group_size"]) - bits = strategy["bits"][0] - group_size = strategy["group_size"][str(bits)] - - if layer_mode == LayerMode.LAYER_MIX: - setattr( - module, attr, MBWQLinearCuda(in_channels=tmp.in_features, out_channels=tmp.out_features, - w_bit=bits, dtype=dtype, group_size=group_size, dq_group_size=32, use_gba_quant=True, - asym=False, dq_mode=2, requires_grad=False, use_mbw=False) - ) - elif layer_mode == LayerMode.CHANNEL_MIX: - setattr( - module, attr, MBWQLinearCuda(in_channels=tmp.in_features, out_channels=tmp.out_features, - w_bit=bits, dtype=dtype, group_size=group_size, dq_group_size=32, - use_gba_quant=True, asym=False, dq_mode=2, requires_grad=False, - use_mbw=True, groups=groups, rows_packed=rows) - ) - else: - raise NotImplementedError('Error: layer_mode: {} not implemented yet.'.format(layer_mode)) + raise NotImplementedError(f'Error: layer_mode: {layer_mode} not implemented yet.') + + setattr(module, attr, quantized_layer) for name_attr, child in module.named_children(): - name_sub = name + '.' + name_attr if name != '' else name_attr - make_quant(child, names, layer_mode, name_sub, group_size=group_size, bits=bits, dtype=dtype, quant_strategy=quant_strategy) + name_sub = f'{name}.{name_attr}' if name else name_attr + make_quant(child, names, layer_mode, name_sub, group_size, bits, dtype, quant_strategy) -def load_model(model_path: Path, layer_mode: LayerMode, bits: Optional[int]=None, group_size: Optional[int]=None, - dtype: torch.dtype = torch.half, device_map={"cuda:0"}, seqlen: int = 2048) -> nn.Module: +def load_model(model_path: Path, layer_mode: LayerMode, bits: Optional[int] = None, group_size: Optional[int] = None, + dtype: torch.dtype = torch.half, device_map: set = {"cuda:0"}, seqlen: int = 2048, + model_config: Dict = {}) -> Tuple[nn.Module, AutoConfig]: """ - Load and initialize the model from a given path. + Load and initialize a model from the given path with options for quantization and device distribution. + + This function loads a model, applies quantization based on the provided layer mode, bits, and group size, + and distributes the model across specified devices. It returns both the model and its configuration. Args: - model_path (Path): The path to load the model from. - layer_mode (LayerMode): for choosing which engine layer should be used. - bits (int): bits for quantization - group_size (int): group size used in quantization - dtype (torch.dtype): data type to be used - device_map (int): device map defines how to distribute model on the gpus. - seqlen (int): sequence length + model_path (Path): Path to the model. + layer_mode (LayerMode): Layer mode for quantization. + bits (Optional[int]): Number of bits for quantization. + group_size (Optional[int]): Group size for quantization. + dtype (torch.dtype): Data type for model tensors. + device_map (set): Devices to distribute the model. + seqlen (int): Sequence length for the model. Returns: - nn.Module: The loaded and initialized model. - - Raises: - FileNotFoundError: If the weight files (.safetensors) are not found. - ValueError: If the model class or args class are not found or cannot be instantiated. + Tuple[nn.Module, AutoConfig]: A tuple containing the loaded and initialized model and its configuration. """ + start_time = time.time() print(Style.BRIGHT + Fore.CYAN + "Info: Loading Model ...") - t0 = time.time() + # Load quantization strategy if applicable + strategy = {} if layer_mode in (LayerMode.LAYER_MIX, LayerMode.CHANNEL_MIX): + strategy_path = model_path / STRATEGY_FILE_NAME try: - with open(model_path / strategy_fn, "r") as file: + with open(strategy_path, "r") as file: strategy = json.load(file)["measurement"] except FileNotFoundError: - raise Exception(f"Error: Strategy config file not found in {model_path}") + raise FileNotFoundError(f"Error: Strategy config file not found in {model_path}") + # Initialize model with empty weights and load configuration with accelerate.init_empty_weights(): config = AutoConfig.from_pretrained(model_path) - model = AutoModelForCausalLM.from_pretrained(model_path, config=config, torch_dtype=dtype, trust_remote_code=True) - model = model.eval() + model = AutoModelForCausalLM.from_pretrained(model_path, config=config, torch_dtype=dtype, **model_config).eval() + # Quantize layers as necessary for i, layer in enumerate(model.model.layers): layers = find_layers(layer) + layers_to_quantize = {name: layer for name, layer in layers.items() if name != 'lm_head'} - strategy_per_block = None - if layer_mode in (LayerMode.LAYER_MIX, LayerMode.CHANNEL_MIX): - strategy_per_block = strategy["model.layers.{}".format(i)] - - for name in ['lm_head']: - if name in layers: - del layers[name] + strategy_per_block = strategy.get(f"model.layers.{i}") if strategy else None - make_quant(layer, layers, layer_mode=layer_mode, groupsize=group_size, bits=bits, dtype=dtype, - quant_strategy=strategy_per_block) + make_quant(layer, layers_to_quantize, layer_mode=layer_mode, group_size=group_size, bits=bits, dtype=dtype, + quant_strategy=strategy_per_block) - model = accelerate.load_checkpoint_and_dispatch( - model=model, - checkpoint=model_path, - device_map=device_map, - no_split_module_classes=["LlamaDecoderLayer"] - ) + # Load checkpoint, dispatch model, and apply post-initialization configurations + model = accelerate.load_checkpoint_and_dispatch(model=model, checkpoint=model_path, device_map=device_map, + no_split_module_classes=["LlamaDecoderLayer"]) model.seqlen = seqlen + engine_layer_prepare(model) # Assuming this prepares the model's engine layers post-initialization + apply_dtype_to(model, dtype) # Assuming this function applies the dtype to all model parameters - # post model.init() preparation - engine_layer_prepare(model) - # use dtype - apply_dtype_to(model, dtype) - print(Style.BRIGHT + Fore.GREEN + f"Info: Apply dtype: {str(dtype)} to the model.") - - print(Style.BRIGHT + Fore.YELLOW + 'Total {:.2f} Gib VRAM used.'.format( - torch.cuda.memory_allocated() / 1024 / 1024 / 1024)) - - print(Style.BRIGHT + Fore.GREEN + f"Info: Loaded the model in {(time.time() - t0):.2f} seconds.") + print(Style.BRIGHT + Fore.GREEN + f"Info: Apply dtype: {dtype} to the model.") + print(Style.BRIGHT + Fore.YELLOW + f'Total {torch.cuda.memory_allocated() / 1024**3:.2f} GiB VRAM used.') + print(Style.BRIGHT + Fore.GREEN + f"Info: Loaded the model in {time.time() - start_time:.2f} seconds.") return model, config def load( path_or_hf_repo: str, - tokenizer_config={}, + tokenizer_config: Dict = {}, dtype: torch.dtype = torch.half, - device_map = {"cuda:0"}, + device_map: set = {"cuda:0"}, seqlen: int = 2048, - adapter_file: Optional[str] = None + model_config: Dict = {}, ) -> Tuple[nn.Module, PreTrainedTokenizer]: """ Load the model and tokenizer from a given path or a huggingface repository. Args: - path_or_hf_repo (Path): The path or the huggingface repository to load the model from. - tokenizer_config (dict, optional): Configuration parameters specifically for the tokenizer. Defaults to an empty dictionary. - dtype (torch.dtype): data type to be used - device_map (int): device map defines how to distribute model on the gpus. - seqlen (int): sequence length + path_or_hf_repo (str): The path or the huggingface repository to load the model from. + tokenizer_config (dict, optional): Configuration parameters specifically for the tokenizer. + Defaults to an empty dictionary. + dtype (torch.dtype): Data type to be used. + device_map (set): Device map defines how to distribute model on the GPUs. + seqlen (int): Sequence length. adapter_file (str, optional): Path to the adapter file. If provided, applies LoRA layers to the model. - Defaults to None. + Defaults to None. + Returns: - Tuple[nn.Module, PreTrainedTokenizer]: A tuple containing the loaded model and tokenizer. + Tuple[nn.Module, PreTrainedTokenizer, AutoConfig]: A tuple containing the loaded model and tokenizer. Raises: - FileNotFoundError: If config file or safetensors are not found. - ValueError: If model class or args class are not found. + FileNotFoundError: If the config file or safetensors are not found. + ValueError: If the model class or args class are not found. + NotImplementedError: If the LoRA layers functionality is not implemented. """ - # check if Bitorch Engine avaliable if not ENGINE_AVAILABLE: - raise Exception(f"Error: Bitorch Engine layers will not be available.") + raise Exception("Error: Bitorch Engine layers are not available.") - # parse model name pattern layer_mode, bits, group_size = get_layer_mode_from_name(path_or_hf_repo) model_path = get_model_path(path_or_hf_repo) - model, config = load_model(model_path, layer_mode, bits, group_size, dtype, device_map, seqlen) + model, config = load_model(model_path, layer_mode, bits, group_size, dtype, device_map, seqlen, model_config) + + tokenizer = AutoTokenizer.from_pretrained(path_or_hf_repo, **tokenizer_config) + + return model, tokenizer, config + + generate( + model, + tokenizer, + prompt, + args.temp, + args.max_tokens, + True, + top_p=args.top_p, + ) + + +def generate( + model: PreTrainedModel, + tokenizer: PreTrainedTokenizer, + prompt: str, + temp: float = 0.8, + max_tokens: int = 100, + verbose: bool = False, + top_p: float = 0.95, + repetition_penalty: float = 1.5, + top_k: int = 20, + output_scores: bool = False, + return_dict_in_generate: bool = True, + output_attentions: bool = False, + output_hidden_states: bool = False +) -> str: + """ + Generates text from a given model and tokenizer with customizable generation settings. + + Args: + model (PreTrainedModel): The pre-trained model from Hugging Face's Transformers. + tokenizer (PreTrainedTokenizer): The tokenizer corresponding to the model. + prompt (str): The initial text to begin generation. + temp (float): The temperature for controlling creativity. Higher values generate more varied text. + max_tokens (int): The maximum number of tokens to generate. + verbose (bool): If True, additional information such as generation speed will be printed. + top_p (float): The nucleus (top-p) sampling probability threshold for filtering tokens. + repetition_penalty (float): The penalty for token repetition. Values >1 discourage repetition. + top_k (int): The top-k sampling value. Limits generation to the top k probable tokens. + output_scores (bool): Whether to return the generation scores. + return_dict_in_generate (bool): Whether to return a dictionary in the `.generate()` method. + output_attentions (bool): Whether to return attentions weights. + output_hidden_states (bool): Whether to return hidden states. + + Returns: + str: The generated text. + """ + device = torch.device("cuda") + model = model.to(device) + model.eval() + + # Encode the prompt text to tensor + input_ids = tokenizer.encode(prompt, return_tensors="pt", add_special_tokens=False).to(device) + + # Generation settings + eos_token_id = tokenizer.eos_token_id + prompt_length = len(input_ids[0]) + + if verbose: + logging.set_verbosity_info() + print("=" * 50) + print(f"Prompt: {prompt}") + start_time = time.time() + else: + logging.set_verbosity_error() + + output_sequences = model.generate( + input_ids=input_ids, + temperature=temp, + top_p=top_p, + repetition_penalty=repetition_penalty, + eos_token_id=eos_token_id, + pad_token_id=eos_token_id, + use_cache=True, + max_new_tokens=max_tokens, + top_k=top_k, + output_scores=output_scores, + return_dict_in_generate=return_dict_in_generate, + output_attentions=output_attentions, + output_hidden_states=output_hidden_states + ) + + # Decode generated sequence + generated_sequence = tokenizer.decode(output_sequences[0], clean_up_tokenization_spaces=True) - tokenizer = AutoTokenizer.from_pretrained(model_path, **tokenizer_config) + # Remove the prompt at the beginning of the sequence + generated_sequence = generated_sequence[len(tokenizer.decode(input_ids[0], clean_up_tokenization_spaces=True)):] - if adapter_file is not None: - raise NotImplementedError('Error: LoRA layers not implemented yet.') + if verbose: + end_time = time.time() + duration = end_time - start_time + tokens_per_second = (prompt_length + max_tokens) / duration + print(f"Generated text: {generated_sequence}") + print(f"Duration: {duration:.2f}s, Tokens per second: {tokens_per_second:.2f}") - return model, tokenizer, config \ No newline at end of file + return generated_sequence \ No newline at end of file diff --git a/green_bit_llm/utils.py b/green_bit_llm/utils.py index 409b357..2a4b13b 100644 --- a/green_bit_llm/utils.py +++ b/green_bit_llm/utils.py @@ -80,11 +80,11 @@ def get_packed_info(channels, n_bits, bits_prop, bits_group_size): """ Calculate the distribution of channels into groups and rows based on their bit properties. - Parameters: - - channels (int): Total number of channels to be packed. - - n_bits (list of int): Number of bits per channel for each group. - - bits_prop (list of float): Proportion of channels to be allocated to each bit type. - - bits_group_size (dict): Mapping of group index to the minimal number of channels in a group. + Args: + channels (int): Total number of channels to be packed. + n_bits (list of int): Number of bits per channel for each group. + bits_prop (list of float): Proportion of channels to be allocated to each bit type. + bits_group_size (dict): Mapping of group index to the minimal number of channels in a group. Returns: Tuple[int, int]: A tuple containing the total number of groups and rows needed. @@ -115,14 +115,14 @@ def find_layers(module: nn.Module, layers=[nn.Conv2d, nn.Linear], name=''): (or module) that match the specified types. Args: - - module (nn.Module): The model or module to search within. - - layers (list): A list of layer classes (e.g., nn.Conv2d, nn.Linear) to look for within the model. + module (nn.Module): The model or module to search within. + layers (list): A list of layer classes (e.g., nn.Conv2d, nn.Linear) to look for within the model. Default is [nn.Conv2d, nn.Linear]. - - name (str): The namespace (hierarchical path) leading to the current module being searched. + name (str): The namespace (hierarchical path) leading to the current module being searched. This is used internally for recursive calls to build the full path names of layers. Returns: - - dict: A dictionary where each key is the hierarchical name of the layer (showing its path within + dict: A dictionary where each key is the hierarchical name of the layer (showing its path within the model) and each value is the corresponding layer module itself. """ if type(module) in layers: @@ -173,12 +173,12 @@ def apply_dtype_to(model: nn.Module, dtype: torch.dtype): parts of the model may benefit from different precision levels for efficiency and speed. - Parameters: - - model: The PyTorch model to modify. - - dtype: The target data type to apply to the model. Supported types are + Args: + model: The PyTorch model to modify. + dtype: The target data type to apply to the model. Supported types are torch.float, torch.half, and torch.bfloat16. Returns: - - None. The model is modified in-place. + None. The model is modified in-place. """ # Check if the specified dtype is torch.half, and if so, convert the model to half precision. diff --git a/version.py b/green_bit_llm/version.py similarity index 100% rename from version.py rename to green_bit_llm/version.py diff --git a/inference/generation.py b/inference/generation.py new file mode 100644 index 0000000..15f43e6 --- /dev/null +++ b/inference/generation.py @@ -0,0 +1,153 @@ +import argparse +import sys + +import torch +import torch.nn as nn + +from transformers import PreTrainedTokenizer + +from green_bit_llm.model import load, generate + +# default value for arguments +DEFAULT_MODEL_PATH = "GreenBitAI/Qwen-1.5-0.5B-layer-mix-bpw-2.2" +DEFAULT_PROMPT = None +DEFAULT_MAX_TOKENS = 100 +DEFAULT_TEMP = 0.8 +DEFAULT_TOP_P = 0.95 +DEFAULT_SEQLEN = 2048 +DTYPE = torch.half + + +def setup_arg_parser(): + """Set up and return the argument parser.""" + parser = argparse.ArgumentParser(description="green-bit-llm inference script") + parser.add_argument( + "--model", + type=str, + default=DEFAULT_MODEL_PATH, + help="The path to the local model directory or Hugging Face repo.", + ) + parser.add_argument( + "--cuda-device-id", + type=str, + default="0", + help="CUDA device IDs", + ) + parser.add_argument( + "--trust-remote-code", + action="store_true", + help="Enable trusting remote code for tokenizer", + ) + parser.add_argument( + "--use-flash-attention-2", + action="store_true", + help="Enable using flash attention v2", + ) + parser.add_argument( + "--eos-token", + type=str, + default="<|im_end|>", + help="End of sequence token for tokenizer", + ) + parser.add_argument( + "--max-tokens", + type=int, + default=DEFAULT_MAX_TOKENS, + help="Maximum number of tokens to generate", + ) + parser.add_argument( + "--prompt", default=DEFAULT_PROMPT, help="Message to be processed by the model" + ) + parser.add_argument( + "--temp", type=float, default=DEFAULT_TEMP, help="Sampling temperature" + ) + parser.add_argument( + "--top-p", type=float, default=DEFAULT_TOP_P, help="Sampling top-p" + ) + parser.add_argument( + "--seqlen", type=int, default=DEFAULT_SEQLEN, help="Sequence length" + ) + parser.add_argument( + "--ignore-chat-template", + action="store_true", + help="Use the raw prompt without the tokenizer's chat template.", + ) + parser.add_argument( + "--use-default-chat-template", + action="store_true", + help="Use the default chat template", + ) + return parser + + +def create_device_map(cuda_device_id): + ids = cuda_device_id.split(',') + # Create strings in the format "cuda:x" for each ID and put them into the collection + device_map = {f"cuda:{id}" for id in ids} + return device_map + + +def do_generate(args, model: nn.Module, tokenizer: PreTrainedTokenizer, prompt: str): + if not args.ignore_chat_template and ( + hasattr(tokenizer, "apply_chat_template") + and tokenizer.chat_template is not None + ): + messages = [{"role": "user", "content": prompt}] + prompt = tokenizer.apply_chat_template( + messages, tokenize=False, add_generation_prompt=True + ) + else: + prompt = prompt + + generate( + model, + tokenizer, + prompt, + args.temp, + args.max_tokens, + True, + top_p=args.top_p, + ) + + +def main(args): + + # Building configs + tokenizer_config = {"trust_remote_code": True if args.trust_remote_code else None} + pretrain_model_config = { + "trust_remote_code": True if args.trust_remote_code else None, + "use_flash_attention_2": True if args.use_flash_attention_2 else None + } + + if args.eos_token is not None: + tokenizer_config["eos_token"] = args.eos_token + + model, tokenizer, config = load( + args.model, tokenizer_config=tokenizer_config, dtype=DTYPE, + device_map=create_device_map(args.cuda_device_id), + seqlen=args.seqlen, model_config=pretrain_model_config + ) + + if args.use_default_chat_template: + if tokenizer.chat_template is None: + tokenizer.chat_template = tokenizer.default_chat_template + + if args.prompt is None: + while True: + user_input = input("Input prompt or type 'exit' to quit): ") + if user_input.lower() in ['exit', 'quit']: + break + do_generate(args, model, tokenizer, user_input) + else: + do_generate(args, model, tokenizer, args.prompt) + + +if __name__ == "__main__": + if not torch.cuda.is_available(): + print("Warning: CUDA is needed to run the model.") + sys.exit(0) + + parser = setup_arg_parser() + args = parser.parse_args() + + main(args) \ No newline at end of file From 292836b6fac972359f6f55a225dc02daedd7b3ed Mon Sep 17 00:00:00 2001 From: Haojin Yang Date: Thu, 11 Apr 2024 00:54:35 +0200 Subject: [PATCH 007/125] created simple generation --- green_bit_llm/model.py | 102 ++++++++++++++++++++++++---------------- inference/generation.py | 30 ++++++++---- requirements.txt | 3 +- 3 files changed, 85 insertions(+), 50 deletions(-) diff --git a/green_bit_llm/model.py b/green_bit_llm/model.py index 7e07303..e4cf5e4 100644 --- a/green_bit_llm/model.py +++ b/green_bit_llm/model.py @@ -8,7 +8,7 @@ from transformers import PreTrainedTokenizer, AutoTokenizer, AutoConfig, AutoModelForCausalLM, PreTrainedModel, logging import accelerate -from utils import get_layer_mode_from_name, LayerMode, get_packed_info, get_model_path, find_layers, apply_dtype_to +from .utils import get_layer_mode_from_name, LayerMode, get_packed_info, get_model_path, find_layers, apply_dtype_to import time from transformers import logging @@ -19,7 +19,6 @@ try: from bitorch_engine.layers.qlinear.nbit import MPQLinearBase from bitorch_engine.layers.qlinear.nbit.cuda import MPQLinearCuda, MBWQLinearCuda - from bitorch_engine.layers.qlinear.nbit.mps import MPQLinearMlx except ModuleNotFoundError as e: ENGINE_AVAILABLE = False print(f"Error: Module not found: {e}.") @@ -40,7 +39,7 @@ def engine_layer_prepare(model: torch.nn.Module): if issubclass(type(m), MPQLinearBase): m.prepare_params() if target_layer_name == '': target_layer_name = m.__class__.__name__ - print(Style.BRIGHT + Fore.GREEN + '{} parameter preparation finished.'.format(target_layer_name)) + print(Style.BRIGHT + Fore.CYAN + 'Info: {} parameter preparation finished.'.format(target_layer_name)) def apply_quant_strategy(name_attr, quant_strategy): @@ -129,6 +128,8 @@ def load_model(model_path: Path, layer_mode: LayerMode, bits: Optional[int] = No Returns: Tuple[nn.Module, AutoConfig]: A tuple containing the loaded and initialized model and its configuration. """ + logging.set_verbosity_error() + start_time = time.time() print(Style.BRIGHT + Fore.CYAN + "Info: Loading Model ...") @@ -157,6 +158,8 @@ def load_model(model_path: Path, layer_mode: LayerMode, bits: Optional[int] = No make_quant(layer, layers_to_quantize, layer_mode=layer_mode, group_size=group_size, bits=bits, dtype=dtype, quant_strategy=strategy_per_block) + # model.tie_weights() + # print(model) # Load checkpoint, dispatch model, and apply post-initialization configurations model = accelerate.load_checkpoint_and_dispatch(model=model, checkpoint=model_path, device_map=device_map, no_split_module_classes=["LlamaDecoderLayer"]) @@ -164,9 +167,9 @@ def load_model(model_path: Path, layer_mode: LayerMode, bits: Optional[int] = No engine_layer_prepare(model) # Assuming this prepares the model's engine layers post-initialization apply_dtype_to(model, dtype) # Assuming this function applies the dtype to all model parameters - print(Style.BRIGHT + Fore.GREEN + f"Info: Apply dtype: {dtype} to the model.") - print(Style.BRIGHT + Fore.YELLOW + f'Total {torch.cuda.memory_allocated() / 1024**3:.2f} GiB VRAM used.') - print(Style.BRIGHT + Fore.GREEN + f"Info: Loaded the model in {time.time() - start_time:.2f} seconds.") + print(Style.BRIGHT + Fore.CYAN + f"Info: Apply dtype: {dtype} to the model.") + print(Style.BRIGHT + Fore.CYAN + f'Info: Total {torch.cuda.memory_allocated() / 1024**3:.2f} GiB VRAM used.') + print(Style.BRIGHT + Fore.CYAN + f"Info: Loaded the model in {time.time() - start_time:.2f} seconds.") return model, config @@ -231,7 +234,7 @@ def generate( max_tokens: int = 100, verbose: bool = False, top_p: float = 0.95, - repetition_penalty: float = 1.5, + repetition_penalty: Optional[float] = 1.5, top_k: int = 20, output_scores: bool = False, return_dict_in_generate: bool = True, @@ -263,48 +266,67 @@ def generate( model = model.to(device) model.eval() + generate_string = [] + if verbose: + print("=" * 50) + print(f"Prompt: {prompt}") + tic = time.perf_counter() + # Encode the prompt text to tensor - input_ids = tokenizer.encode(prompt, return_tensors="pt", add_special_tokens=False).to(device) + input_ids = tokenizer.encode(prompt, return_tensors="pt", add_special_tokens=True).to(device) # Generation settings - eos_token_id = tokenizer.eos_token_id prompt_length = len(input_ids[0]) - if verbose: - logging.set_verbosity_info() - print("=" * 50) - print(f"Prompt: {prompt}") - start_time = time.time() - else: - logging.set_verbosity_error() - - output_sequences = model.generate( - input_ids=input_ids, - temperature=temp, - top_p=top_p, - repetition_penalty=repetition_penalty, - eos_token_id=eos_token_id, - pad_token_id=eos_token_id, - use_cache=True, - max_new_tokens=max_tokens, - top_k=top_k, - output_scores=output_scores, - return_dict_in_generate=return_dict_in_generate, - output_attentions=output_attentions, - output_hidden_states=output_hidden_states - ) + with torch.no_grad(): + # prompt time + output_sequences = model.generate( + input_ids=input_ids, + temperature=temp, + top_p=top_p, + repetition_penalty=repetition_penalty, + use_cache=True, + do_sample=True, + max_new_tokens=1, + top_k=top_k, + output_scores=output_scores, + return_dict_in_generate=return_dict_in_generate, + output_attentions=output_attentions, + output_hidden_states=output_hidden_states + ) + + if verbose: + prompt_duration = time.perf_counter() - tic + print(f"generating ... ") + tic = time.perf_counter() + + # Update input_ids for next iteration + input_ids = output_sequences['sequences'] + + output_sequences = model.generate( + input_ids=input_ids, + temperature=temp, + top_p=top_p, + repetition_penalty=repetition_penalty, + use_cache=True, + do_sample=True, + max_new_tokens=max_tokens, + top_k=top_k, + output_scores=output_scores, + return_dict_in_generate=return_dict_in_generate, + output_attentions=output_attentions, + output_hidden_states=output_hidden_states + ) # Decode generated sequence - generated_sequence = tokenizer.decode(output_sequences[0], clean_up_tokenization_spaces=True) - - # Remove the prompt at the beginning of the sequence - generated_sequence = generated_sequence[len(tokenizer.decode(input_ids[0], clean_up_tokenization_spaces=True)):] + generated_sequence = tokenizer.decode(output_sequences['sequences'].tolist()[0], clean_up_tokenization_spaces=True) if verbose: - end_time = time.time() - duration = end_time - start_time - tokens_per_second = (prompt_length + max_tokens) / duration + gen_duration = time.perf_counter() - tic + prompt_tps = prompt_length / prompt_duration + gen_tps = max_tokens / gen_duration print(f"Generated text: {generated_sequence}") - print(f"Duration: {duration:.2f}s, Tokens per second: {tokens_per_second:.2f}") + print(f"prompt: {prompt_tps:.2f} token/s") + print(f"generation: {gen_tps:.2f} token/s") return generated_sequence \ No newline at end of file diff --git a/inference/generation.py b/inference/generation.py index 15f43e6..491574e 100644 --- a/inference/generation.py +++ b/inference/generation.py @@ -4,8 +4,18 @@ import torch import torch.nn as nn +import warnings +warnings.filterwarnings("ignore", category=UserWarning, module='torch.nn.modules.module') + from transformers import PreTrainedTokenizer +from pathlib import Path + +# Add the parent directory to sys.path +parent_dir = str(Path(__file__).parent.parent) +if parent_dir not in sys.path: + sys.path.append(parent_dir) + from green_bit_llm.model import load, generate # default value for arguments @@ -46,7 +56,7 @@ def setup_arg_parser(): parser.add_argument( "--eos-token", type=str, - default="<|im_end|>", + default=None, help="End of sequence token for tokenizer", ) parser.add_argument( @@ -81,10 +91,9 @@ def setup_arg_parser(): def create_device_map(cuda_device_id): - ids = cuda_device_id.split(',') - # Create strings in the format "cuda:x" for each ID and put them into the collection - device_map = {f"cuda:{id}" for id in ids} - return device_map + # TODO: create device map strategy + #return device_map + raise NotImplementedError('device map strategy not implemented yet!') def do_generate(args, model: nn.Module, tokenizer: PreTrainedTokenizer, prompt: str): @@ -116,16 +125,19 @@ def main(args): tokenizer_config = {"trust_remote_code": True if args.trust_remote_code else None} pretrain_model_config = { "trust_remote_code": True if args.trust_remote_code else None, - "use_flash_attention_2": True if args.use_flash_attention_2 else None + "attn_implementation": "flash_attention_2" if args.use_flash_attention_2 else None } if args.eos_token is not None: tokenizer_config["eos_token"] = args.eos_token model, tokenizer, config = load( - args.model, tokenizer_config=tokenizer_config, dtype=DTYPE, - device_map=create_device_map(args.cuda_device_id), - seqlen=args.seqlen, model_config=pretrain_model_config + args.model, + tokenizer_config=tokenizer_config, + dtype=DTYPE, + device_map='auto', + seqlen=args.seqlen, + model_config=pretrain_model_config ) if args.use_default_chat_template: diff --git a/requirements.txt b/requirements.txt index 84196aa..cf918b5 100644 --- a/requirements.txt +++ b/requirements.txt @@ -4,4 +4,5 @@ datasets torch>=2.0.0 sentencepiece transformers>=4.38.0 -huggingface_hub \ No newline at end of file +huggingface_hub +flash-attn \ No newline at end of file From 45a0bef120a685e6df509b8b7c344c31adc025fc Mon Sep 17 00:00:00 2001 From: Haojin Yang Date: Thu, 11 Apr 2024 14:04:59 +0200 Subject: [PATCH 008/125] move enum to a separated file. --- green_bit_llm/enum.py | 6 ++++++ green_bit_llm/utils.py | 8 +------- 2 files changed, 7 insertions(+), 7 deletions(-) create mode 100644 green_bit_llm/enum.py diff --git a/green_bit_llm/enum.py b/green_bit_llm/enum.py new file mode 100644 index 0000000..27255f8 --- /dev/null +++ b/green_bit_llm/enum.py @@ -0,0 +1,6 @@ +from enum import Enum + +class LayerMode(Enum): + LAYER_MIX = 1 + CHANNEL_MIX = 2 + LEGENCY = 3 \ No newline at end of file diff --git a/green_bit_llm/utils.py b/green_bit_llm/utils.py index 2a4b13b..ed255e3 100644 --- a/green_bit_llm/utils.py +++ b/green_bit_llm/utils.py @@ -1,17 +1,11 @@ from pathlib import Path -from enum import Enum import re import torch.nn as nn import torch from huggingface_hub import snapshot_download - -class LayerMode(Enum): - LAYER_MIX = 1 - CHANNEL_MIX = 2 - LEGENCY = 3 - +from .enum import LayerMode def check_engine_available()-> bool: """ From 97aff25c5a216e32932d9937109426c75fac370c Mon Sep 17 00:00:00 2001 From: Haojin Yang Date: Thu, 11 Apr 2024 14:06:27 +0200 Subject: [PATCH 009/125] fixed issue in loading Qwen2 models --- green_bit_llm/model.py | 54 +++++++++++++++++++++++++---------------- inference/generation.py | 4 ++- 2 files changed, 36 insertions(+), 22 deletions(-) diff --git a/green_bit_llm/model.py b/green_bit_llm/model.py index e4cf5e4..2cbcba9 100644 --- a/green_bit_llm/model.py +++ b/green_bit_llm/model.py @@ -13,8 +13,6 @@ import time from transformers import logging -STRATEGY_FILE_NAME = "quant_strategy.json" - ENGINE_AVAILABLE = True try: from bitorch_engine.layers.qlinear.nbit import MPQLinearBase @@ -26,6 +24,9 @@ from colorama import init, Fore, Style init(autoreset=True) +STRATEGY_FILE_NAME = "quant_strategy.json" +MODEL_TYPE_QWEN2 = "qwen2" + def engine_layer_prepare(model: torch.nn.Module): """ @@ -42,7 +43,7 @@ def engine_layer_prepare(model: torch.nn.Module): print(Style.BRIGHT + Fore.CYAN + 'Info: {} parameter preparation finished.'.format(target_layer_name)) -def apply_quant_strategy(name_attr, quant_strategy): +def apply_quant_strategy(name_attr: str, quant_strategy: Dict): """ Apply quantization strategy based on the layer's name and the provided strategy. """ @@ -54,8 +55,18 @@ def apply_quant_strategy(name_attr, quant_strategy): return strategy +def get_disable_bias(name_attr: str, model_type) -> bool: + """ + Usually the linear layer of llm disables bias. The three components 'q_proj', 'k_proj', and 'v_proj' in the qwen2 model attention module are exceptions. + """ + for key in ['q_proj', 'k_proj', 'v_proj']: + if key in name_attr and model_type == MODEL_TYPE_QWEN2: + return False + return True + + def make_quant(module, names, layer_mode: LayerMode, name='', group_size: Optional[int] = None, bits: Optional[int] = None, - dtype: torch.dtype = torch.half, quant_strategy=None): + dtype: torch.dtype = torch.half, quant_strategy = None, model_type = None, requires_grad: bool = False): """ Applies quantization to the specified layers of a PyTorch module according to the provided quantization strategy. @@ -85,10 +96,13 @@ def make_quant(module, names, layer_mode: LayerMode, name='', group_size: Option bits = strategy["bits"][0] group_size = strategy["group_size"][str(bits)] + disable_bias = get_disable_bias(name_attr, model_type) + common_params = { "in_channels": tmp.in_features, "out_channels": tmp.out_features, "w_bit": bits, "dtype": dtype, "group_size": group_size, "dq_group_size": 32, - "use_gba_quant": True, "asym": False, "dq_mode": 2, "requires_grad": True + "use_gba_quant": True, "asym": False, "dq_mode": 2, "requires_grad": requires_grad, + "disable_bias": disable_bias } if layer_mode == LayerMode.LEGENCY: @@ -104,12 +118,12 @@ def make_quant(module, names, layer_mode: LayerMode, name='', group_size: Option for name_attr, child in module.named_children(): name_sub = f'{name}.{name_attr}' if name else name_attr - make_quant(child, names, layer_mode, name_sub, group_size, bits, dtype, quant_strategy) + make_quant(child, names, layer_mode, name_sub, group_size, bits, dtype, quant_strategy, model_type, requires_grad) def load_model(model_path: Path, layer_mode: LayerMode, bits: Optional[int] = None, group_size: Optional[int] = None, dtype: torch.dtype = torch.half, device_map: set = {"cuda:0"}, seqlen: int = 2048, - model_config: Dict = {}) -> Tuple[nn.Module, AutoConfig]: + model_config: Dict = {}, requires_grad: bool = False) -> Tuple[nn.Module, AutoConfig]: """ Load and initialize a model from the given path with options for quantization and device distribution. @@ -156,7 +170,7 @@ def load_model(model_path: Path, layer_mode: LayerMode, bits: Optional[int] = No strategy_per_block = strategy.get(f"model.layers.{i}") if strategy else None make_quant(layer, layers_to_quantize, layer_mode=layer_mode, group_size=group_size, bits=bits, dtype=dtype, - quant_strategy=strategy_per_block) + quant_strategy=strategy_per_block, model_type=config.model_type, requires_grad=requires_grad) # model.tie_weights() # print(model) @@ -181,6 +195,7 @@ def load( device_map: set = {"cuda:0"}, seqlen: int = 2048, model_config: Dict = {}, + requires_grad: bool = False ) -> Tuple[nn.Module, PreTrainedTokenizer]: """ Load the model and tokenizer from a given path or a huggingface repository. @@ -209,22 +224,12 @@ def load( layer_mode, bits, group_size = get_layer_mode_from_name(path_or_hf_repo) model_path = get_model_path(path_or_hf_repo) - model, config = load_model(model_path, layer_mode, bits, group_size, dtype, device_map, seqlen, model_config) + model, config = load_model(model_path, layer_mode, bits, group_size, dtype, device_map, seqlen, model_config, requires_grad) tokenizer = AutoTokenizer.from_pretrained(path_or_hf_repo, **tokenizer_config) return model, tokenizer, config - generate( - model, - tokenizer, - prompt, - args.temp, - args.max_tokens, - True, - top_p=args.top_p, - ) - def generate( model: PreTrainedModel, @@ -292,7 +297,9 @@ def generate( output_scores=output_scores, return_dict_in_generate=return_dict_in_generate, output_attentions=output_attentions, - output_hidden_states=output_hidden_states + output_hidden_states=output_hidden_states, + pad_token_id=tokenizer.eos_token_id, + eos_token_id=tokenizer.eos_token_id ) if verbose: @@ -315,12 +322,17 @@ def generate( output_scores=output_scores, return_dict_in_generate=return_dict_in_generate, output_attentions=output_attentions, - output_hidden_states=output_hidden_states + output_hidden_states=output_hidden_states, + pad_token_id=tokenizer.eos_token_id, + eos_token_id=tokenizer.eos_token_id ) # Decode generated sequence generated_sequence = tokenizer.decode(output_sequences['sequences'].tolist()[0], clean_up_tokenization_spaces=True) + # Remove the prompt at the beginning of the sequence + generated_sequence = generated_sequence[len(tokenizer.decode(input_ids[0], clean_up_tokenization_spaces=True)):] + if verbose: gen_duration = time.perf_counter() - tic prompt_tps = prompt_length / prompt_duration diff --git a/inference/generation.py b/inference/generation.py index 491574e..266b27e 100644 --- a/inference/generation.py +++ b/inference/generation.py @@ -116,6 +116,7 @@ def do_generate(args, model: nn.Module, tokenizer: PreTrainedTokenizer, prompt: args.max_tokens, True, top_p=args.top_p, + stepgen_mode= ) @@ -137,7 +138,8 @@ def main(args): dtype=DTYPE, device_map='auto', seqlen=args.seqlen, - model_config=pretrain_model_config + model_config=pretrain_model_config, + requires_grad=False ) if args.use_default_chat_template: From 796e9feee95f69b7a51bb33889f02dbf75394b98 Mon Sep 17 00:00:00 2001 From: Haojin Yang Date: Thu, 11 Apr 2024 14:39:29 +0200 Subject: [PATCH 010/125] added token by token generation simple example. The performance needs to be optimized. --- green_bit_llm/enum.py | 6 ++- green_bit_llm/model.py | 89 +++++++++++++++++++++++++++++------------ inference/generation.py | 8 +++- 3 files changed, 75 insertions(+), 28 deletions(-) diff --git a/green_bit_llm/enum.py b/green_bit_llm/enum.py index 27255f8..926886e 100644 --- a/green_bit_llm/enum.py +++ b/green_bit_llm/enum.py @@ -3,4 +3,8 @@ class LayerMode(Enum): LAYER_MIX = 1 CHANNEL_MIX = 2 - LEGENCY = 3 \ No newline at end of file + LEGENCY = 3 + +class TextGenMode(Enum): + SEQUENCE = 1 + TOKEN = 2 \ No newline at end of file diff --git a/green_bit_llm/model.py b/green_bit_llm/model.py index 2cbcba9..429c117 100644 --- a/green_bit_llm/model.py +++ b/green_bit_llm/model.py @@ -9,6 +9,7 @@ import accelerate from .utils import get_layer_mode_from_name, LayerMode, get_packed_info, get_model_path, find_layers, apply_dtype_to +from .enum import LayerMode, TextGenMode import time from transformers import logging @@ -79,6 +80,8 @@ def make_quant(module, names, layer_mode: LayerMode, name='', group_size: Option bits: The number of bits to use for weight quantization. dtype: The data type to be used for the quantized weights. quant_strategy: A dictionary defining specific quantization strategies for different layers. + model_type: This attribute information has been read from config.json. E.g. "qwen2" for Qwen-model + requires_grad (bool): Set if the model requires gradient. It can be set to True for training. This function modifies the module in-place by replacing specified layers with their quantized counterparts. It supports different quantization modes and strategies, allowing fine-grained control over the quantization process. @@ -138,6 +141,8 @@ def load_model(model_path: Path, layer_mode: LayerMode, bits: Optional[int] = No dtype (torch.dtype): Data type for model tensors. device_map (set): Devices to distribute the model. seqlen (int): Sequence length for the model. + model_config (str, optional): Model configurations for "AutoModelForCausalLM.from_pretrained". + requires_grad (bool): Set if the model requires gradient. It can be set to True for training. Returns: Tuple[nn.Module, AutoConfig]: A tuple containing the loaded and initialized model and its configuration. @@ -207,8 +212,8 @@ def load( dtype (torch.dtype): Data type to be used. device_map (set): Device map defines how to distribute model on the GPUs. seqlen (int): Sequence length. - adapter_file (str, optional): Path to the adapter file. If provided, applies LoRA layers to the model. - Defaults to None. + model_config (str, optional): Model configurations for "AutoModelForCausalLM.from_pretrained". + requires_grad (bool): Set if the model requires gradient. It can be set to True for training. Returns: Tuple[nn.Module, PreTrainedTokenizer, AutoConfig]: A tuple containing the loaded model and tokenizer. @@ -239,6 +244,7 @@ def generate( max_tokens: int = 100, verbose: bool = False, top_p: float = 0.95, + gen_mode: TextGenMode = TextGenMode.SEQUENCE, repetition_penalty: Optional[float] = 1.5, top_k: int = 20, output_scores: bool = False, @@ -257,6 +263,7 @@ def generate( max_tokens (int): The maximum number of tokens to generate. verbose (bool): If True, additional information such as generation speed will be printed. top_p (float): The nucleus (top-p) sampling probability threshold for filtering tokens. + top_p (TextGenMode): Indicates if generate text sequence or token by token generation. repetition_penalty (float): The penalty for token repetition. Values >1 discourage repetition. top_k (int): The top-k sampling value. Limits generation to the top k probable tokens. output_scores (bool): Whether to return the generation scores. @@ -271,7 +278,6 @@ def generate( model = model.to(device) model.eval() - generate_string = [] if verbose: print("=" * 50) print(f"Prompt: {prompt}") @@ -310,34 +316,65 @@ def generate( # Update input_ids for next iteration input_ids = output_sequences['sequences'] - output_sequences = model.generate( - input_ids=input_ids, - temperature=temp, - top_p=top_p, - repetition_penalty=repetition_penalty, - use_cache=True, - do_sample=True, - max_new_tokens=max_tokens, - top_k=top_k, - output_scores=output_scores, - return_dict_in_generate=return_dict_in_generate, - output_attentions=output_attentions, - output_hidden_states=output_hidden_states, - pad_token_id=tokenizer.eos_token_id, - eos_token_id=tokenizer.eos_token_id - ) - - # Decode generated sequence - generated_sequence = tokenizer.decode(output_sequences['sequences'].tolist()[0], clean_up_tokenization_spaces=True) - - # Remove the prompt at the beginning of the sequence - generated_sequence = generated_sequence[len(tokenizer.decode(input_ids[0], clean_up_tokenization_spaces=True)):] + if gen_mode == TextGenMode.SEQUENCE: + output_sequences = model.generate( + input_ids=input_ids, + temperature=temp, + top_p=top_p, + repetition_penalty=repetition_penalty, + use_cache=True, + do_sample=True, + max_new_tokens=max_tokens, + top_k=top_k, + output_scores=output_scores, + return_dict_in_generate=return_dict_in_generate, + output_attentions=output_attentions, + output_hidden_states=output_hidden_states, + pad_token_id=tokenizer.eos_token_id, + eos_token_id=tokenizer.eos_token_id + ) + # Decode generated sequence + generated_sequence = tokenizer.decode(output_sequences['sequences'].tolist()[0], clean_up_tokenization_spaces=True) + # Remove the prompt at the beginning of the sequence + generated_sequence = generated_sequence[len(tokenizer.decode(input_ids[0], clean_up_tokenization_spaces=True)):] + + if verbose: + print(f"Generated text: {generated_sequence}") + + elif gen_mode == TextGenMode.TOKEN: + generated_tokens = [] + for _ in range(max_tokens): + output_sequences = model.generate( + input_ids=input_ids, + temperature=temp, + top_p=top_p, + repetition_penalty=repetition_penalty, + use_cache=True, + do_sample=True, + max_new_tokens=1, # Generate one token at a time + top_k=top_k, + output_scores=output_scores, + return_dict_in_generate=return_dict_in_generate, + output_attentions=output_attentions, + output_hidden_states=output_hidden_states, + pad_token_id=tokenizer.eos_token_id, + eos_token_id=tokenizer.eos_token_id + ) + # Decode generated token + s = tokenizer.decode(output_sequences['sequences'].tolist()[0][-1], + clean_up_tokenization_spaces=True) + generated_tokens.append(s) + input_ids = output_sequences['sequences'] # Update input_ids for next iteration + + # Print the generated token + if verbose: + print(s + ' ', end='', flush=True) + generated_sequence = "".join(generated_tokens) if verbose: gen_duration = time.perf_counter() - tic prompt_tps = prompt_length / prompt_duration gen_tps = max_tokens / gen_duration - print(f"Generated text: {generated_sequence}") print(f"prompt: {prompt_tps:.2f} token/s") print(f"generation: {gen_tps:.2f} token/s") diff --git a/inference/generation.py b/inference/generation.py index 266b27e..bd67472 100644 --- a/inference/generation.py +++ b/inference/generation.py @@ -17,6 +17,7 @@ sys.path.append(parent_dir) from green_bit_llm.model import load, generate +from green_bit_llm.enum import TextGenMode # default value for arguments DEFAULT_MODEL_PATH = "GreenBitAI/Qwen-1.5-0.5B-layer-mix-bpw-2.2" @@ -87,6 +88,11 @@ def setup_arg_parser(): action="store_true", help="Use the default chat template", ) + parser.add_argument( + "--gen-token-by-token", + action="store_true", + help="Generate token by token, otherwise generate the whole sequence.", + ) return parser @@ -116,7 +122,7 @@ def do_generate(args, model: nn.Module, tokenizer: PreTrainedTokenizer, prompt: args.max_tokens, True, top_p=args.top_p, - stepgen_mode= + gen_mode=TextGenMode.TOKEN if args.gen_token_by_token else TextGenMode.SEQUENCE ) From a31cb4d389bce8062314e7ab73bb4aa77afb4281 Mon Sep 17 00:00:00 2001 From: Haojin Yang Date: Thu, 11 Apr 2024 15:51:36 +0200 Subject: [PATCH 011/125] simplified the simple generation demo. --- green_bit_llm/model.py | 2 +- inference/generation.py | 31 +++++++++++++++++-------------- 2 files changed, 18 insertions(+), 15 deletions(-) diff --git a/green_bit_llm/model.py b/green_bit_llm/model.py index 429c117..736a691 100644 --- a/green_bit_llm/model.py +++ b/green_bit_llm/model.py @@ -375,7 +375,7 @@ def generate( gen_duration = time.perf_counter() - tic prompt_tps = prompt_length / prompt_duration gen_tps = max_tokens / gen_duration - print(f"prompt: {prompt_tps:.2f} token/s") + print(f"\nprompt: {prompt_tps:.2f} token/s") print(f"generation: {gen_tps:.2f} token/s") return generated_sequence \ No newline at end of file diff --git a/inference/generation.py b/inference/generation.py index bd67472..87f3dcb 100644 --- a/inference/generation.py +++ b/inference/generation.py @@ -1,5 +1,6 @@ import argparse import sys +import os import torch import torch.nn as nn @@ -38,11 +39,12 @@ def setup_arg_parser(): default=DEFAULT_MODEL_PATH, help="The path to the local model directory or Hugging Face repo.", ) + parser.add_argument("--num-gpus", type=int, default=1) parser.add_argument( - "--cuda-device-id", + "--gpus", type=str, - default="0", - help="CUDA device IDs", + default='0', + help="A single GPU like 1 or multiple GPUs like 0,2", ) parser.add_argument( "--trust-remote-code", @@ -88,11 +90,6 @@ def setup_arg_parser(): action="store_true", help="Use the default chat template", ) - parser.add_argument( - "--gen-token-by-token", - action="store_true", - help="Generate token by token, otherwise generate the whole sequence.", - ) return parser @@ -121,13 +118,23 @@ def do_generate(args, model: nn.Module, tokenizer: PreTrainedTokenizer, prompt: args.temp, args.max_tokens, True, - top_p=args.top_p, - gen_mode=TextGenMode.TOKEN if args.gen_token_by_token else TextGenMode.SEQUENCE + top_p=args.top_p ) def main(args): + if args.gpus: + if len(args.gpus.split(",")) < args.num_gpus: + raise ValueError( + f"Larger --num-gpus ({args.num_gpus}) than --gpus {args.gpus}!" + ) + os.environ["CUDA_VISIBLE_DEVICES"] = args.gpus + + if not torch.cuda.is_available(): + print("Warning: CUDA is needed to run the model.") + sys.exit(0) + # Building configs tokenizer_config = {"trust_remote_code": True if args.trust_remote_code else None} pretrain_model_config = { @@ -163,10 +170,6 @@ def main(args): if __name__ == "__main__": - if not torch.cuda.is_available(): - print("Warning: CUDA is needed to run the model.") - sys.exit(0) - parser = setup_arg_parser() args = parser.parse_args() From a5530cedd1c128cb2f2a86848eab220e6192ca0a Mon Sep 17 00:00:00 2001 From: NicoNico6 <1751277309@qq.com> Date: Thu, 11 Apr 2024 20:32:19 +0000 Subject: [PATCH 012/125] add ppl evaluation and few-shot evaluation --- evaluation/datautils.py | 168 +++++++++++++ evaluation/lmclass.py | 105 ++++++++ evaluation/utils.py | 546 ++++++++++++++++++++++++++++++++++++++++ requirements.txt | 3 +- 4 files changed, 821 insertions(+), 1 deletion(-) create mode 100644 evaluation/datautils.py create mode 100644 evaluation/lmclass.py create mode 100644 evaluation/utils.py diff --git a/evaluation/datautils.py b/evaluation/datautils.py new file mode 100644 index 0000000..db037ca --- /dev/null +++ b/evaluation/datautils.py @@ -0,0 +1,168 @@ +import pdb +from transformers import AutoTokenizer +from datasets import load_dataset +import numpy as np +import torch +import random + +def get_wikitext2(nsamples, seed, seqlen, model): + print("get_wikitext2") + traindata = load_dataset('wikitext', 'wikitext-2-raw-v1', split='train', cache_dir="./cache/") + testdata = load_dataset('wikitext', 'wikitext-2-raw-v1', split='test', cache_dir="./cache/") + + tokenizer = AutoTokenizer.from_pretrained(model, use_fast=False, trust_remote_code=True) + trainenc = tokenizer("\n\n".join(traindata['text']), return_tensors='pt') + testenc = tokenizer("\n\n".join(testdata['text']), return_tensors='pt') + + random.seed(seed) + trainloader = [] + for _ in range(nsamples): + i = random.randint(0, trainenc.input_ids.shape[1] - seqlen - 1) + j = i + seqlen + inp = trainenc.input_ids[:, i:j] + tar = inp.clone() + tar[:, :-1] = -100 + trainloader.append((inp, tar)) + + return trainloader, testenc + +def get_ptb(nsamples, seed, seqlen, model): + print("get_ptb") + traindata = load_dataset('ptb_text_only', 'penn_treebank', split='train', cache_dir="./cache/") + valdata = load_dataset('ptb_text_only', 'penn_treebank', split='validation', cache_dir="./cache/") + + tokenizer = AutoTokenizer.from_pretrained(model, use_fast=False, trust_remote_code=True) + + trainenc = tokenizer("\n\n".join(traindata['sentence']), return_tensors='pt') + testenc = tokenizer("\n\n".join(valdata['sentence']), return_tensors='pt') + + random.seed(seed) + trainloader = [] + for _ in range(nsamples): + i = random.randint(0, trainenc.input_ids.shape[1] - seqlen - 1) + j = i + seqlen + inp = trainenc.input_ids[:, i:j] + tar = inp.clone() + tar[:, :-1] = -100 + trainloader.append((inp, tar)) + + return trainloader, testenc + +def get_c4(nsamples, seed, seqlen, model): + print("get_c4") + traindata = load_dataset( + 'allenai/c4', 'allenai--c4', + data_files={'train': 'en/c4-train.00000-of-01024.json.gz'}, + split='train', + cache_dir="./cache/" + ) + valdata = load_dataset( + 'allenai/c4', 'allenai--c4', + data_files={'validation': 'en/c4-validation.00000-of-00008.json.gz'}, + split='validation', + cache_dir="./cache/" + ) + + tokenizer = AutoTokenizer.from_pretrained(model, use_fast=False, trust_remote_code=True) + + random.seed(seed) + trainloader = [] + for _ in range(nsamples): + + while True: + i = random.randint(0, len(traindata) - 1) + trainenc = tokenizer(traindata[i]['text'], return_tensors='pt') + if trainenc.input_ids.shape[1] > seqlen + 2: + break + + i = random.randint(0, trainenc.input_ids.shape[1] - seqlen - 1) + j = i + seqlen + inp = trainenc.input_ids[:, i:j] + tar = inp.clone() + tar[:, :-1] = -100 + trainloader.append((inp, tar)) + + random.seed(0) + valenc = [] + for _ in range(256): + while True: + i = random.randint(0, len(valdata) - 1) + tmp = tokenizer(valdata[i]['text'], return_tensors='pt') + if tmp.input_ids.shape[1] >= seqlen: + break + i = random.randint(0, tmp.input_ids.shape[1] - seqlen - 1) + j = i + seqlen + valenc.append(tmp.input_ids[:, i:j]) + valenc = torch.hstack(valenc) + + return trainloader, valenc + +def get_ptb_new(nsamples, seed, seqlen, model): + print("get_ptb_new") + traindata = load_dataset('ptb_text_only', 'penn_treebank', split='train') + testdata = load_dataset('ptb_text_only', 'penn_treebank', split='test') + + tokenizer = AutoTokenizer.from_pretrained(model, use_fast=False, trust_remote_code=True) + + trainenc = tokenizer(" ".join(traindata["sentence"]), return_tensors="pt") + testenc = tokenizer(" ".join(testdata["sentence"]), return_tensors="pt") + + random.seed(seed) + trainloader = [] + for _ in range(nsamples): + i = random.randint(0, trainenc.input_ids.shape[1] - seqlen - 1) + j = i + seqlen + inp = trainenc.input_ids[:, i:j] + tar = inp.clone() + tar[:, :-1] = -100 + trainloader.append((inp, tar)) + + return trainloader, testenc + +def get_c4_new(nsamples, seed, seqlen, model): + print("get_c4_new") + traindata = load_dataset( + 'allenai/c4', data_files={'train': 'en/c4-train.00000-of-01024.json.gz'}, split='train' + ) + valdata = load_dataset( + 'allenai/c4', data_files={'validation': 'en/c4-validation.00000-of-00008.json.gz'}, split='validation' + ) + + tokenizer = AutoTokenizer.from_pretrained(model, use_fast=False, trust_remote_code=True) + + random.seed(seed) + trainloader = [] + for _ in range(nsamples): + while True: + i = random.randint(0, len(traindata) - 1) + trainenc = tokenizer(traindata[i]["text"], return_tensors="pt") + if trainenc.input_ids.shape[1] >= seqlen: + break + i = random.randint(0, trainenc.input_ids.shape[1] - seqlen - 1) + j = i + seqlen + inp = trainenc.input_ids[:, i:j] + tar = inp.clone() + tar[:, :-1] = -100 + trainloader.append((inp, tar)) + + valenc = tokenizer(" ".join(valdata[:1100]["text"]), return_tensors="pt") + valenc = valenc.input_ids[:, : (256 * seqlen)] + + return trainloader, valenc + + +def get_loaders(name, nsamples=128, seed=0, seqlen=2048, model=''): + if 'wikitext2' in name: + return get_wikitext2(nsamples, seed, seqlen, model) + elif 'ptb' in name: + if 'new' in name: + return get_ptb_new(nsamples, seed, seqlen, model) + else: + return get_ptb(nsamples, seed, seqlen, model) + elif 'c4' in name: + if 'new' in name: + return get_c4_new(nsamples, seed, seqlen, model) + else: + return get_c4(nsamples, seed, seqlen, model) + else: + raise ValueError(f"Only support wikitext2, c4, c4_new, ptb, ptb_new currently, but get {name}") diff --git a/evaluation/lmclass.py b/evaluation/lmclass.py new file mode 100644 index 0000000..2284cfb --- /dev/null +++ b/evaluation/lmclass.py @@ -0,0 +1,105 @@ +import torch +from .utils import BaseLM +import torch.nn.functional as F +from torch import nn +import torch +from tqdm import tqdm + +class LMClass(BaseLM): + """ + Warp the model to LMClass format for lm_eval + + Args: + model_name (str): The LLM name + batch_size (int): The per device batch. + config (dict): Configuration parameters specifically for the LLM. + model (nn.Module): The pretrained model from GreenBitAI model zoo. + """ + def __init__(self, model_name, batch_size, config, tokenizer, model): + + super().__init__() + + self._device = torch.device("cuda" if torch.cuda.is_available() else "cpu") + self.model_name = model_name + self.batch_size_per_gpu = batch_size + + self.model_config = config + self.tokenizer = tokenizer + self.model = model + self.initial() + + def initial(self): + self.seqlen = self.model.config.max_position_embeddings + self.model.eval() + self.vocab_size = self.tokenizer.vocab_size + print("vocab size: ", self.vocab_size) + + @property + def eot_token(self) -> str: + return self.tokenizer.eos_token + + @property + def eot_token_id(self): + # we use EOT because end of *text* is more accurate for what we're doing than end of *sentence* + return self.tokenizer.eos_token_id + + @property + def max_length(self): + try: + return self.gpt2.config.n_ctx + except AttributeError: + # gptneoconfig doesn't have n_ctx apparently + return self.model.config.max_position_embeddings + + @property + def max_gen_toks(self): + print("max_gen_toks fn") + return 256 + + @property + def batch_size(self): + # TODO: fix multi-gpu + return self.batch_size_per_gpu # * gpus + + @property + def device(self): + # TODO: fix multi-gpu + return self._device + + def tok_encode(self, string: str): + return self.tokenizer.encode(string, add_special_tokens=False) + + def tok_encode_batch(self, strings): + return self.tokenizer( + strings, + padding=True, + add_special_tokens=False, + return_tensors="pt", + ) + + def tok_decode(self, tokens): + return self.tokenizer.batch_decode(tokens, skip_special_tokens=True) + + def _model_call(self, inps): + """ + inps: a torch tensor of shape [batch, sequence] + the size of sequence may vary from call to call + returns: a torch tensor of shape [batch, sequence, vocab] with the + logits returned from the model + """ + with torch.no_grad(): + return self.model(inps)["logits"] + + def model_batched_set(self, inps): + dataset_logits = [] + for batch in inps: + multi_logits = F.log_softmax( + self._model_call(batch), dim=-1 + ).cpu() # [batch, padding_length, vocab] + dataset_logits.append(multi_logits) + return dataset_logits + + def _model_generate(self, context, max_length, eos_token_id): + return self.model.generate( + context, max_length=max_length, eos_token_id=eos_token_id, do_sample=False + ) diff --git a/evaluation/utils.py b/evaluation/utils.py new file mode 100644 index 0000000..ba5f98a --- /dev/null +++ b/evaluation/utils.py @@ -0,0 +1,546 @@ +import os +import sys +import abc +import torch +import json +import time +import hashlib +import logging +import collections +from tqdm import tqdm +from typing import Iterable +from abc import abstractmethod +from torch import nn +import transformers +import fnmatch +from typing import List, Literal +from typing import List, Optional, Tuple, Type, TypeVar + +import torch.nn.functional as F +from termcolor import colored +from lm_eval.api.model import LM as LM + +from lm_eval.api.instance import Instance +from lm_eval.api.model import LM +from lm_eval.api.registry import register_model +from lm_eval.models.utils import Collator +from lm_eval.utils import ( + eval_logger, + get_rolling_token_windows, + make_disjoint_window, + simple_parse_args_string, +) +from lm_eval.api.model import LM + +def pattern_match(patterns, source_list): + task_names = set() + for pattern in patterns: + task_names.add(pattern) + return list(task_names) + +def add_dict_to_json_file(file_path, new_data): + """ + Update a JSON file based on the top-level keys in new_data. If the key exists, it replaces the existing content + under that key. If it doesn't exist, it adds the new key with its value. + + :param file_path: Path to the JSON file. + :param new_data: Dictionary to add or update in the file. + """ + # Initialize or load existing data + if os.path.exists(file_path) and os.stat(file_path).st_size > 0: + with open(file_path, 'r') as file: + existing_data = json.load(file) + else: + existing_data = {} + + # Merge new data into existing data based on the top-level keys + existing_data.update(new_data) + + # Write the updated data back to the file + with open(file_path, 'w') as file: + json.dump(existing_data, file, indent=4) + +def create_logger(output_dir, dist_rank=0, name=''): + # create logger + logger = logging.getLogger(name) + logger.setLevel(logging.INFO) + logger.propagate = False + + # create formatter + fmt = '[%(asctime)s %(name)s] (%(filename)s %(lineno)d): %(levelname)s %(message)s' + color_fmt = colored('[%(asctime)s %(name)s]', 'green') + \ + colored('(%(filename)s %(lineno)d)', 'yellow') + ': %(levelname)s %(message)s' + + # create console handlers for master process + if dist_rank == 0: + console_handler = logging.StreamHandler(sys.stdout) + console_handler.setLevel(logging.DEBUG) + console_handler.setFormatter( + logging.Formatter(fmt=color_fmt, datefmt='%Y-%m-%d %H:%M:%S')) + logger.addHandler(console_handler) + + # create file handlers + file_handler = logging.FileHandler(os.path.join(output_dir, f'log_rank{dist_rank}_{int(time.time())}.txt'), mode='a') + file_handler.setLevel(logging.DEBUG) + file_handler.setFormatter(logging.Formatter(fmt=fmt, datefmt='%Y-%m-%d %H:%M:%S')) + logger.addHandler(file_handler) + + return logger + + +class TruncateFunction(torch.autograd.Function): + @staticmethod + def forward(ctx, input, threshold): + truncated_tensor = input.clone() + truncated_tensor[truncated_tensor.abs() < threshold] = truncated_tensor[truncated_tensor.abs() < threshold].sign() * threshold + + return truncated_tensor + + @staticmethod + def backward(ctx, grad_output): + grad_input = grad_output.clone() + return grad_input, None + + +def truncate_number(number, threshold=1e-3): + # clamping scale to avoid overflow in the AMP training + return TruncateFunction.apply(number, threshold) + + +def find_layers(module, layers=[nn.Conv2d, nn.Linear, transformers.Conv1D], name=""): + if type(module) in layers: + return {name: module} + res = {} + for name1, child in module.named_children(): + res.update( + find_layers( + child, layers=layers, name=name + "." + name1 if name != "" else name1 + ) + ) + return res + + +class CacheHook: + def __init__(self, cachinglm): + if cachinglm is None: + self.dbdict = None + return + + self.dbdict = cachinglm.dbdict + + def add_partial(self, attr, req, res): + if self.dbdict is None: + return + hsh = hash_args(attr, req) + self.dbdict[hsh] = res + +class BaseLM(LM): + @property + @abstractmethod + def eot_token_id(self): + pass + + @property + @abstractmethod + def max_length(self): + pass + + @property + @abstractmethod + def max_gen_toks(self): + pass + + @property + @abstractmethod + def batch_size(self): + pass + + @property + @abstractmethod + def device(self): + pass + + @abstractmethod + def tok_encode(self, string: str): + pass + + @abstractmethod + def tok_decode(self, tokens: Iterable[int]): + pass + + @abstractmethod + def _model_generate(self, context, max_length, eos_token_id): + pass + + @abstractmethod + def _model_call(self, inps): + """ + inps: a torch tensor of shape [batch, sequence] + the size of sequence may vary from call to call + + returns: a torch tensor of shape [batch, sequence, vocab] with the + logits returned from the model + """ + pass + + # subclass must implement properties vocab_size, eot_token_id, max_gen_toks, batch_size, device, max_length. + # TODO: enforce this somehow + + def tok_encode(self, string: str): + return self.tokenizer.text_to_ids(string) + + def tok_decode(self, tokens): + return self.tokenizer.ids_to_text(tokens) + + def _encode_pair(self, context, continuation): + n_spaces = len(context) - len(context.rstrip()) + if n_spaces > 0: + continuation = context[-n_spaces:] + continuation + context = context[:-n_spaces] + + model_class = getattr(self, "AUTO_MODEL_CLASS", None) + + if model_class == transformers.AutoModelForSeq2SeqLM: + context_enc = self.tok_encode(context) + continuation_enc = self.tok_encode(continuation, add_special_tokens=False) + else: + whole_enc = self.tok_encode(context + continuation) + context_enc = self.tok_encode(context) + + context_enc_len = len(context_enc) + continuation_enc = whole_enc[context_enc_len:] + + return context_enc, continuation_enc + + def loglikelihood( + self, requests, disable_tqdm: bool = False + ) -> List[Tuple[float, bool]]: + new_reqs = [] + for context, continuation in [req.args for req in requests]: + if context == "": + # BOS or EOS as context + context_enc, continuation_enc = ( + [self.prefix_token_id], + self.tok_encode(continuation), + ) + else: + context_enc, continuation_enc = self._encode_pair(context, continuation) + + new_reqs.append(((context, continuation), context_enc, continuation_enc)) + + return self._loglikelihood_tokens(new_reqs, disable_tqdm=disable_tqdm) + + def loglikelihood_rolling(self, requests): + # TODO: Implement caching once we've confirmed the perplexity implementation + # TODO: automatic batch size detection for vectorization + + loglikelihoods = [] + for (string,) in tqdm(requests): + rolling_token_windows = list( + map( + make_disjoint_window, + get_rolling_token_windows( + token_list=self.tok_encode(string), + prefix_token=self.eot_token_id, + max_seq_len=self.max_length, + context_len=1, + ), + ) + ) + + rolling_token_windows = [(None,) + x for x in rolling_token_windows] + + # TODO: extract out this call so it only gets called once and also somehow figure out partial caching for + # that + string_nll = self._loglikelihood_tokens( + rolling_token_windows, disable_tqdm=True + ) + + # discard is_greedy + string_nll = [x[0] for x in string_nll] + + string_nll = sum(string_nll) + loglikelihoods.append(string_nll) + + return loglikelihoods + + def _loglikelihood_tokens(self, requests, disable_tqdm=False): + # TODO: implement some kind of efficient-request-middleware that lumps together requests with the same context + res = [] + dataset_inps = [] + + def _collate(x): + # the negative sign on len(toks) sorts descending - this has a few advantages: + # - time estimates will always be over not underestimates, which is more useful for planning + # - to know the size of a batch when going through the list, you know the first one is always the batch + # padded context length. this is useful to simplify the batching logic and more importantly to make + # automatic adaptive batches much much easier to implement + # - any OOMs will happen right away rather than near the end + + toks = x[1] + x[2] + return -len(toks), tuple(toks) + + # TODO: automatic (variable) batch size detection for vectorization + re_ord = Reorderer(requests, _collate) + for chunk in chunks( + tqdm(re_ord.get_reordered(), disable=disable_tqdm), self.batch_size + ): + inps = [] + cont_toks_list = [] + inplens = [] + + padding_length = None + + # because vectorizing is annoying, we first convert each (context, continuation) pair to padded + # tensors, then we pack them together into a batch, call the model, and then pick it all apart + # again because vectorizing is annoying + + for _, context_enc, continuation_enc in chunk: + # sanity check + assert len(context_enc) > 0 + assert len(continuation_enc) > 0 + assert len(continuation_enc) <= self.max_length + + # how this all works: + # CTX CONT + # inp 0 1 2 3|4 5 6 7 8 9 <- last token is deleted by inp[:, :-1] + # gpt2 \ \ + # logits 1 2 3|4 5 6 7 8 9 <- the ctx half gets tossed out by the + # cont_toks 4 5 6 7 8 9 [:, -len(continuation_enc):, :self.vocab_size] slice + + # when too long to fit in context, truncate from the left + inp = torch.tensor( + (context_enc + continuation_enc)[-(self.max_length + 1):][:-1], + dtype=torch.long, + ).to(self.device) + (inplen,) = inp.shape + + cont = continuation_enc + + # since in _collate we make sure length is descending, the longest is always the first one. + padding_length = ( + padding_length if padding_length is not None else inplen + ) + + # pad length from seq to padding_length + inp = torch.cat( + [ + inp, # [seq] + torch.zeros(padding_length - inplen, dtype=torch.long).to( + inp.device + ), # [padding_length - seq] + ], + dim=0, + ) + + inps.append(inp.unsqueeze(0)) # [1, padding_length] + cont_toks_list.append(cont) + inplens.append(inplen) + # import pdb; pdb.set_trace() + batched_inps = torch.cat(inps, dim=0).to( + self.device + ) # [batch, padding_length + + # self.model = self.model.to(self.device) + multi_logits = F.log_softmax( + self._model_call(batched_inps), dim=-1 + ).cpu() # [batch, padding_length, vocab] + + for (cache_key, _, _), logits, inp, inplen, cont_toks in zip( + chunk, multi_logits, inps, inplens, cont_toks_list + ): + + # Slice to original seq length + contlen = len(cont_toks) + logits = logits[inplen - contlen: inplen].unsqueeze( + 0 + ) # [1, seq, vocab] + + # Check if per-token argmax is exactly equal to continuation + greedy_tokens = logits.argmax(dim=-1) + cont_toks = torch.tensor(cont_toks, dtype=torch.long).unsqueeze( + 0 + ) # [1, seq] + # import pdb; pdb.set_trace() + max_equal = (greedy_tokens == cont_toks).all() + + # Obtain log-probs at the corresponding continuation token indices + # last_token_slice = logits[:, -1, :].squeeze(0).tolist() + logits = torch.gather(logits, 2, cont_toks.unsqueeze(-1)).squeeze( + -1 + ) # [1, seq] + + # Answer: (log prob, is-exact-match) + answer = (float(logits.sum()), bool(max_equal)) + + # partial caching + if cache_key is not None: + self.cache_hook.add_partial("loglikelihood", cache_key, answer) + res.append(answer) + + return re_ord.get_original(res) + + def greedy_until(self, requests): + print("greedy utils in base...") + # TODO: implement fully general `until` that handles until that are + # multiple tokens or that span multiple tokens correctly + + # TODO: extract to TokenizedLM? + res = [] + + def _collate(x): + toks = self.tok_encode(x[0]) + return len(toks), x[0] + + re_ord = Reorderer(requests, _collate) + + for context, until in tqdm(re_ord.get_reordered()): + if isinstance(until, str): + until = [until] + + (primary_until,) = self.tok_encode(until[0]) + + context_enc = torch.tensor( + [self.tok_encode(context)[self.max_gen_toks - self.max_length:]] + ).to(self.device) + + cont = self._model_generate( + context_enc, context_enc.shape[1] + self.max_gen_toks, primary_until + ) + + s = self.tok_decode(cont[0].tolist()[context_enc.shape[1]:]) + + for term in until: + s = s.split(term)[0] + + # partial caching + self.cache_hook.add_partial("greedy_until", (context, until), s) + + res.append(s) + + return re_ord.get_original(res) + + def generate_until(self, requests): + pass + + +def make_disjoint_window(pair): + """Takes output from get_rolling_token_windows and makes the context not overlap with the continuation""" + a, b = pair + return a[: len(a) - (len(b) - 1)], b + + +def hash_args(attr, args): + dat = json.dumps([attr] + list(args)) + return hashlib.sha256(dat.encode("utf-8")).hexdigest() + + +def simple_parse_args_string(args_string): + """ + Parses something like + args1=val1,arg2=val2 + Into a dictionary + """ + args_string = args_string.strip() + if not args_string: + return {} + arg_list = args_string.split(",") + args_dict = {} + for arg in arg_list: + k, v = arg.split("=") + args_dict[k] = v + return args_dict + + +def get_rolling_token_windows(token_list, prefix_token, max_seq_len, context_len): + """ + - context_len allows for a rolling window context, allowing each prediction window to potentially + condition on some context + + :param token_list: list + List of tokens to be PREDICTED + :param max_seq_len: int + max_seq_len of model (or max_seq_len we want to use) + :param context_len: int + Amount of desired token context for prediction. Needs to be at least 1. + :param prefix_token: token + Dummy token like so the first token has something to condition on + :return: generator + Generator of tuples + (input_tokens, pred_tokens) + Note: Score only the last len(pred_tokens) logits of the LM + """ + assert 1 <= context_len <= max_seq_len + if not token_list: + return + # +1 offset, going from input->preds + pred_len = max_seq_len - context_len + 1 + predicted = 0 + + # Special handling for first window: predict all tokens + first_seq_len = min(max_seq_len, len(token_list)) + yield ([prefix_token] + token_list[: first_seq_len - 1], token_list[:first_seq_len]) + predicted += first_seq_len + + while predicted < len(token_list): + window_pred_len = min(len(token_list) - predicted, pred_len) + window_end = predicted + window_pred_len + + yield ( + token_list[window_end - max_seq_len - 1: window_end - 1], + token_list[window_end - window_pred_len: window_end], + ) + predicted += window_pred_len + + +class Reorderer: + def __init__(self, arr, fn): + self.size = len(arr) + arr = list(enumerate(arr)) + arr = group(arr, lambda x: fn(x[1])) + arr = [([y[0] for y in x], x[0][1]) for x in arr] + arr.sort(key=lambda x: fn(x[1])) + + self.arr = arr + + def get_reordered(self): + return [x[1] for x in self.arr] + + def get_original(self, newarr): + res = [None] * self.size + cov = [False] * self.size + + for (inds, _), v in zip(self.arr, newarr): + for ind in inds: + res[ind] = v + cov[ind] = True + + assert all(cov) + + return res + + +def join_iters(iters): + for iter in iters: + yield from iter + + +def chunks(iter, n): + arr = [] + for x in iter: + arr.append(x) + if len(arr) == n: + yield arr + arr = [] + + if arr: + yield arr + + +def group(arr, fn): + res = collections.defaultdict(list) + + for ob in arr: + res[fn(ob)].append(ob) + + return list(res.values()) diff --git a/requirements.txt b/requirements.txt index cf918b5..f84b931 100644 --- a/requirements.txt +++ b/requirements.txt @@ -5,4 +5,5 @@ torch>=2.0.0 sentencepiece transformers>=4.38.0 huggingface_hub -flash-attn \ No newline at end of file +flash-attn +lm_eval From 3071f15556ee5d0baf2228df7994a0f5eed36ed7 Mon Sep 17 00:00:00 2001 From: NicoNico6 <1751277309@qq.com> Date: Thu, 11 Apr 2024 20:34:54 +0000 Subject: [PATCH 013/125] update --- evaluation/evaluate.py | 263 +++++++++++++++++++++++++++++++++++++++++ 1 file changed, 263 insertions(+) create mode 100644 evaluation/evaluate.py diff --git a/evaluation/evaluate.py b/evaluation/evaluate.py new file mode 100644 index 0000000..ecc8c5f --- /dev/null +++ b/evaluation/evaluate.py @@ -0,0 +1,263 @@ +import os +import argparse +import sys +import json +import pprint + +import torch +import torch.nn as nn + +from transformers import PreTrainedTokenizer +from tqdm import tqdm + +from .lmclass import LMClass +from .utils import create_logger, add_dict_to_json_file, pattern_match +from .datautils import get_loaders + +from green_bit_llm.model import load +from pathlib import Path + +from lm_eval.api.registry import ALL_TASKS +from lm_eval import evaluator + +import warnings + +warnings.filterwarnings('ignore') + +# default value for arguments +DEFAULT_MODEL_PATH = "GreenBitAI/Qwen-1.5-1.8B-layer-mix-bpw-2.2" +DEFAULT_SEQLEN = 2048 +DEFAULT_RANDOM_SEED = 0 +DTYPE = torch.half + + +@torch.no_grad() +def lm_evaluate(lm, args, logger): + results = {} + lm.model = lm.model.to(lm.device) + + if args.eval_ppl: + for dataset in args.ppl_tasks.split(","): + dataloader, testloader = get_loaders( + dataset, + seed=args.seed, + model=args.model, + seqlen=args.seqlen, + ) + if "c4" in dataset: + testenc = testloader + else: + testenc = testloader.input_ids + + nsamples = testenc.numel() // lm.seqlen + use_cache = lm.model.config.use_cache + lm.model.config.use_cache = False + lm.model.eval() + nlls = [] + + for i in tqdm(range(nsamples)): + batch = testenc[:, (i * lm.seqlen): ((i + 1) * lm.seqlen)].to(lm.device) + with torch.no_grad(): + outputs = lm.model.model(batch) + hidden_states = outputs[0] + logits = lm.model.lm_head(hidden_states) + shift_logits = logits[:, :-1, :] + shift_labels = testenc[:, (i * lm.seqlen): ((i + 1) * lm.seqlen)][ + :, 1: + ].to(lm.model.lm_head.weight.device) + loss_fct = nn.CrossEntropyLoss() + loss = loss_fct( + shift_logits.view(-1, shift_logits.size(-1)), + shift_labels.view(-1), + ) + neg_log_likelihood = loss.float() * lm.seqlen + nlls.append(neg_log_likelihood) + + ppl = torch.exp(torch.stack(nlls).sum() / (nsamples * lm.seqlen)) + logger.info(f'{dataset} : {ppl.item()}') + lm.model.config.use_cache = use_cache + results[dataset] = ppl.item() + + if args.eval_few_shot != "": + few_shot_tasks = pattern_match(args.few_shot_tasks.split(","), ALL_TASKS) + + eval_results = evaluator.simple_evaluate( + lm, + tasks=few_shot_tasks, + num_fewshot=args.num_fewshot, + limit = None, + ) + + eval_results = eval_results["results"] + + results.update(eval_results) + logger.info(results) + + # for test of MMLU + if 'hendrycksTest' in args.few_shot_tasks: + all_cors = [] + all_cors_norm = [] + subcat_cors = {subcat: [] for subcat_lists in subcategories.values() for subcat in subcat_lists} + cat_cors = {cat: [] for cat in categories} + cat_cors_norm = {cat: [] for cat in categories} + for key in t_results['results'].keys(): + if not 'hendrycksTest' in key: + continue + subject = key.split('-')[-1] + cors = t_results['results'][key]['acc'] + cors_norm = t_results['results'][key]['acc_norm'] + subcats = subcategories[subject] + for subcat in subcats: + subcat_cors[subcat].append(cors) + for key in categories.keys(): + if subcat in categories[key]: + cat_cors[key].append(cors) + cat_cors_norm[key].append(cors_norm) + all_cors.append(cors) + all_cors_norm.append(cors_norm) + + for cat in cat_cors: + cat_acc = np.mean(cat_cors[cat]) + logger.info("Average accuracy {:.4f} - {}".format(cat_acc, cat)) + weighted_acc = np.mean(all_cors) + logger.info("Average accuracy: {:.4f}".format(weighted_acc)) + + return results + +def setup_arg_parser(): + """Set up and return the argument parser.""" + parser = argparse.ArgumentParser(description="green-bit-llm evaluate script") + parser.add_argument( + "--seed", + type=int, + default=DEFAULT_RANDOM_SEED, + help="The random seed for data loader.", + ) + parser.add_argument( + "--model", + type=str, + default=DEFAULT_MODEL_PATH, + help="The path to the local model directory or Hugging Face repo.", + ) + parser.add_argument( + "--cuda-device-id", + type=str, + default="0", + help="CUDA device IDs", + ) + parser.add_argument( + "--trust-remote-code", + action="store_true", + help="Enable trusting remote code for tokenizer", + ) + parser.add_argument( + "--use-flash-attention-2", + action="store_true", + help="Enable using flash attention v2", + ) + parser.add_argument( + "--eos-token", + type=str, + default="<|im_end|>", + help="End of sequence token for tokenizer", + ) + parser.add_argument( + "--seqlen", + type=int, + default=DEFAULT_SEQLEN, + help="Sequence length" + ) + parser.add_argument( + "--eval-ppl", + action="store_true", + help="evaluate LLM prediction perplexity", + ) + parser.add_argument( + "--ppl-tasks", + type=str, + default="c4_new, ptb", + help="Specify ppl evaluation task", + ) + parser.add_argument( + "--eval-few-shot", + action="store_true", + help="Evaluate LLM few-shot learning ability", + ) + parser.add_argument( + "--num-fewshot", + type=int, + default=0, + help="Specify num of few shot examples for evaluation", + ) + parser.add_argument( + "--few-shot-tasks", + type=str, + default="openbookqa,arc_easy,winogrande,hellaswag,arc_challenge,piqa,boolq,race,truthfulqa,anli_r1,anli_r2,anli_r3,wic", + help="Few-shot learning ability evaluation tasks", + ) + parser.add_argument( + "--batch-size", + type=int, + default=16, + help="batch size for few-shot evaluation", + ) + parser.add_argument( + "--save-dir", + type=str, + default="log/", + help="Specify save dir for eval results.", + ) + return parser + + +def create_device_map(cuda_device_id): + ids = cuda_device_id.split(',') + # Create strings in the format "cuda:x" for each ID and put them into the collection + device_map = {f"cuda:{id}" for id in ids} + return device_map + +def main(args): + if not os.path.exists(Path(args.save_dir)): + os.mkdir(Path(args.save_dir)) + + # Building configs + tokenizer_config = {"trust_remote_code": True if args.trust_remote_code else None} + pretrain_model_config = { + "trust_remote_code": True if args.trust_remote_code else None, + "use_flash_attention_2": True if args.use_flash_attention_2 else None + } + + if args.eos_token is not None: + tokenizer_config["eos_token"] = args.eos_token + + model, tokenizer, config = load( + args.model, + tokenizer_config=tokenizer_config, + dtype=DTYPE, + device_map='auto', + seqlen=args.seqlen, + model_config=pretrain_model_config, + requires_grad=False + ) + + + lm = LMClass(args.model, batch_size=args.batch_size, config=config, tokenizer=tokenizer, model=model) + lm.seqlen = args.seqlen + + logger = create_logger(Path(args.save_dir)) + + eval_results = lm_evaluate(lm=lm, args=args, logger=logger) + + eval_results = {"{}".format(args.model): eval_results} + + add_dict_to_json_file(file_path="{}".format(args.save_dir + "eval_results.json"), new_data=eval_results) + +if __name__ == "__main__": + if not torch.cuda.is_available(): + print("Warning: CUDA is needed to run the model.") + sys.exit(0) + + parser = setup_arg_parser() + args = parser.parse_args() + + main(args) From 6f62461fa7cf485ec28dc0abc607295bb35aa129 Mon Sep 17 00:00:00 2001 From: NicoNico6 <1751277309@qq.com> Date: Thu, 11 Apr 2024 20:44:46 +0000 Subject: [PATCH 014/125] update --- evaluation/evaluate.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/evaluation/evaluate.py b/evaluation/evaluate.py index ecc8c5f..d193f35 100644 --- a/evaluation/evaluate.py +++ b/evaluation/evaluate.py @@ -175,7 +175,7 @@ def setup_arg_parser(): parser.add_argument( "--ppl-tasks", type=str, - default="c4_new, ptb", + default="wikitext2, c4_new, ptb", help="Specify ppl evaluation task", ) parser.add_argument( From bc390b413dd83ae571838847387496082f6c0f6c Mon Sep 17 00:00:00 2001 From: NicoNico6 <1751277309@qq.com> Date: Fri, 12 Apr 2024 10:42:03 +0000 Subject: [PATCH 015/125] update --- evaluation/README.md | 28 +++ evaluation/evaluate.py | 68 ++---- evaluation/lmclass.py | 2 +- evaluation/utils.py | 484 ----------------------------------------- requirements.txt | 2 +- 5 files changed, 49 insertions(+), 535 deletions(-) create mode 100644 evaluation/README.md diff --git a/evaluation/README.md b/evaluation/README.md new file mode 100644 index 0000000..f8cc23e --- /dev/null +++ b/evaluation/README.md @@ -0,0 +1,28 @@ +## Evaluation + +Example evaluation scripts for the GreenBitAI family of low-bit models. +- `evaluate.py` contains code to evaluate model ppl performance on `wikitext2,c4_new,ptb` tasks, and few shot ability using `lm_eval` library. + - `--seed` The random seed for data loader. + - `--model` The path to the local model directory or Hugging Face repo. + - `--cuda-device-id` CUDA device IDs. + - `--trust-remote-code` Enable trusting remote code for tokenize. + - `--use-flash-attention-2` Enable using flash attention v2. + - `--eos-token` End of sequence token for tokenizer. + - `--seqlen` Sequence length. + - `--eval-ppl` Evaluate LLM prediction perplexity. + - `--ppl-tasks` Specify ppl evaluation task. + - `--eval-few-shot` Evaluate LLM few-shot learning ability. + - `--num-fewshot` Specify num of few shot examples for evaluation. + - `--few-shot-tasks` Few-shot learning ability evaluation tasks. + - `--batch-size` Batch size for few-shot evaluation. + - `--save-dir` Specify save dir for eval results. + +### PPL Evaluation +```bash +python -m evaluation.evaluate --model GreenBitAI/Qwen-1.5-4B-layer-mix-bpw-3.0 --trust-remote-code --eval-ppl -ppl-tasks wikitext2,c4_new,ptb +``` + +### Few-Shot Evaluation +```bash +python -m evaluation.evaluate --model GreenBitAI/Qwen-1.5-4B-layer-mix-bpw-3.0 --trust-remote-code --batch-size 16 --few-shot-tasks wic,boolq --eval-few-shot +``` diff --git a/evaluation/evaluate.py b/evaluation/evaluate.py index d193f35..1635dea 100644 --- a/evaluation/evaluate.py +++ b/evaluation/evaluate.py @@ -16,8 +16,7 @@ from green_bit_llm.model import load from pathlib import Path - -from lm_eval.api.registry import ALL_TASKS + from lm_eval import evaluator import warnings @@ -78,49 +77,20 @@ def lm_evaluate(lm, args, logger): lm.model.config.use_cache = use_cache results[dataset] = ppl.item() - if args.eval_few_shot != "": - few_shot_tasks = pattern_match(args.few_shot_tasks.split(","), ALL_TASKS) + if args.eval_few_shot and args.eval_few_shot != "": + few_shot_tasks = args.few_shot_tasks.split(",") eval_results = evaluator.simple_evaluate( lm, tasks=few_shot_tasks, + batch_size=args.batch_size, num_fewshot=args.num_fewshot, - limit = None, + no_cache=True ) - eval_results = eval_results["results"] - - results.update(eval_results) - logger.info(results) - - # for test of MMLU - if 'hendrycksTest' in args.few_shot_tasks: - all_cors = [] - all_cors_norm = [] - subcat_cors = {subcat: [] for subcat_lists in subcategories.values() for subcat in subcat_lists} - cat_cors = {cat: [] for cat in categories} - cat_cors_norm = {cat: [] for cat in categories} - for key in t_results['results'].keys(): - if not 'hendrycksTest' in key: - continue - subject = key.split('-')[-1] - cors = t_results['results'][key]['acc'] - cors_norm = t_results['results'][key]['acc_norm'] - subcats = subcategories[subject] - for subcat in subcats: - subcat_cors[subcat].append(cors) - for key in categories.keys(): - if subcat in categories[key]: - cat_cors[key].append(cors) - cat_cors_norm[key].append(cors_norm) - all_cors.append(cors) - all_cors_norm.append(cors_norm) - - for cat in cat_cors: - cat_acc = np.mean(cat_cors[cat]) - logger.info("Average accuracy {:.4f} - {}".format(cat_acc, cat)) - weighted_acc = np.mean(all_cors) - logger.info("Average accuracy: {:.4f}".format(weighted_acc)) + results.update({"results": eval_results["results"]}) + results.update({"versions": eval_results["versions"]}) + logger.info(evaluator.make_table(results)) return results @@ -143,63 +113,63 @@ def setup_arg_parser(): "--cuda-device-id", type=str, default="0", - help="CUDA device IDs", + help="CUDA device IDs.", ) parser.add_argument( "--trust-remote-code", action="store_true", - help="Enable trusting remote code for tokenizer", + help="Enable trusting remote code for tokenizer.", ) parser.add_argument( "--use-flash-attention-2", action="store_true", - help="Enable using flash attention v2", + help="Enable using flash attention v2.", ) parser.add_argument( "--eos-token", type=str, default="<|im_end|>", - help="End of sequence token for tokenizer", + help="End of sequence token for tokenizer.", ) parser.add_argument( "--seqlen", type=int, default=DEFAULT_SEQLEN, - help="Sequence length" + help="Sequence length." ) parser.add_argument( "--eval-ppl", action="store_true", - help="evaluate LLM prediction perplexity", + help="Evaluate LLM prediction perplexity.", ) parser.add_argument( "--ppl-tasks", type=str, default="wikitext2, c4_new, ptb", - help="Specify ppl evaluation task", + help="Specify ppl evaluation task.", ) parser.add_argument( "--eval-few-shot", action="store_true", - help="Evaluate LLM few-shot learning ability", + help="Evaluate LLM few-shot learning ability.", ) parser.add_argument( "--num-fewshot", type=int, default=0, - help="Specify num of few shot examples for evaluation", + help="Specify num of few shot examples for evaluation.", ) parser.add_argument( "--few-shot-tasks", type=str, default="openbookqa,arc_easy,winogrande,hellaswag,arc_challenge,piqa,boolq,race,truthfulqa,anli_r1,anli_r2,anli_r3,wic", - help="Few-shot learning ability evaluation tasks", + help="Few-shot learning ability evaluation tasks.", ) parser.add_argument( "--batch-size", type=int, default=16, - help="batch size for few-shot evaluation", + help="Batch size for few-shot evaluation.", ) parser.add_argument( "--save-dir", diff --git a/evaluation/lmclass.py b/evaluation/lmclass.py index 2284cfb..2dd02d8 100644 --- a/evaluation/lmclass.py +++ b/evaluation/lmclass.py @@ -1,5 +1,5 @@ import torch -from .utils import BaseLM +from lm_eval.base import BaseLM import torch.nn.functional as F from torch import nn import torch diff --git a/evaluation/utils.py b/evaluation/utils.py index ba5f98a..ef2b0ae 100644 --- a/evaluation/utils.py +++ b/evaluation/utils.py @@ -1,36 +1,9 @@ import os import sys -import abc -import torch import json import time -import hashlib import logging -import collections -from tqdm import tqdm -from typing import Iterable -from abc import abstractmethod -from torch import nn -import transformers -import fnmatch -from typing import List, Literal -from typing import List, Optional, Tuple, Type, TypeVar - -import torch.nn.functional as F from termcolor import colored -from lm_eval.api.model import LM as LM - -from lm_eval.api.instance import Instance -from lm_eval.api.model import LM -from lm_eval.api.registry import register_model -from lm_eval.models.utils import Collator -from lm_eval.utils import ( - eval_logger, - get_rolling_token_windows, - make_disjoint_window, - simple_parse_args_string, -) -from lm_eval.api.model import LM def pattern_match(patterns, source_list): task_names = set() @@ -87,460 +60,3 @@ def create_logger(output_dir, dist_rank=0, name=''): return logger - -class TruncateFunction(torch.autograd.Function): - @staticmethod - def forward(ctx, input, threshold): - truncated_tensor = input.clone() - truncated_tensor[truncated_tensor.abs() < threshold] = truncated_tensor[truncated_tensor.abs() < threshold].sign() * threshold - - return truncated_tensor - - @staticmethod - def backward(ctx, grad_output): - grad_input = grad_output.clone() - return grad_input, None - - -def truncate_number(number, threshold=1e-3): - # clamping scale to avoid overflow in the AMP training - return TruncateFunction.apply(number, threshold) - - -def find_layers(module, layers=[nn.Conv2d, nn.Linear, transformers.Conv1D], name=""): - if type(module) in layers: - return {name: module} - res = {} - for name1, child in module.named_children(): - res.update( - find_layers( - child, layers=layers, name=name + "." + name1 if name != "" else name1 - ) - ) - return res - - -class CacheHook: - def __init__(self, cachinglm): - if cachinglm is None: - self.dbdict = None - return - - self.dbdict = cachinglm.dbdict - - def add_partial(self, attr, req, res): - if self.dbdict is None: - return - hsh = hash_args(attr, req) - self.dbdict[hsh] = res - -class BaseLM(LM): - @property - @abstractmethod - def eot_token_id(self): - pass - - @property - @abstractmethod - def max_length(self): - pass - - @property - @abstractmethod - def max_gen_toks(self): - pass - - @property - @abstractmethod - def batch_size(self): - pass - - @property - @abstractmethod - def device(self): - pass - - @abstractmethod - def tok_encode(self, string: str): - pass - - @abstractmethod - def tok_decode(self, tokens: Iterable[int]): - pass - - @abstractmethod - def _model_generate(self, context, max_length, eos_token_id): - pass - - @abstractmethod - def _model_call(self, inps): - """ - inps: a torch tensor of shape [batch, sequence] - the size of sequence may vary from call to call - - returns: a torch tensor of shape [batch, sequence, vocab] with the - logits returned from the model - """ - pass - - # subclass must implement properties vocab_size, eot_token_id, max_gen_toks, batch_size, device, max_length. - # TODO: enforce this somehow - - def tok_encode(self, string: str): - return self.tokenizer.text_to_ids(string) - - def tok_decode(self, tokens): - return self.tokenizer.ids_to_text(tokens) - - def _encode_pair(self, context, continuation): - n_spaces = len(context) - len(context.rstrip()) - if n_spaces > 0: - continuation = context[-n_spaces:] + continuation - context = context[:-n_spaces] - - model_class = getattr(self, "AUTO_MODEL_CLASS", None) - - if model_class == transformers.AutoModelForSeq2SeqLM: - context_enc = self.tok_encode(context) - continuation_enc = self.tok_encode(continuation, add_special_tokens=False) - else: - whole_enc = self.tok_encode(context + continuation) - context_enc = self.tok_encode(context) - - context_enc_len = len(context_enc) - continuation_enc = whole_enc[context_enc_len:] - - return context_enc, continuation_enc - - def loglikelihood( - self, requests, disable_tqdm: bool = False - ) -> List[Tuple[float, bool]]: - new_reqs = [] - for context, continuation in [req.args for req in requests]: - if context == "": - # BOS or EOS as context - context_enc, continuation_enc = ( - [self.prefix_token_id], - self.tok_encode(continuation), - ) - else: - context_enc, continuation_enc = self._encode_pair(context, continuation) - - new_reqs.append(((context, continuation), context_enc, continuation_enc)) - - return self._loglikelihood_tokens(new_reqs, disable_tqdm=disable_tqdm) - - def loglikelihood_rolling(self, requests): - # TODO: Implement caching once we've confirmed the perplexity implementation - # TODO: automatic batch size detection for vectorization - - loglikelihoods = [] - for (string,) in tqdm(requests): - rolling_token_windows = list( - map( - make_disjoint_window, - get_rolling_token_windows( - token_list=self.tok_encode(string), - prefix_token=self.eot_token_id, - max_seq_len=self.max_length, - context_len=1, - ), - ) - ) - - rolling_token_windows = [(None,) + x for x in rolling_token_windows] - - # TODO: extract out this call so it only gets called once and also somehow figure out partial caching for - # that - string_nll = self._loglikelihood_tokens( - rolling_token_windows, disable_tqdm=True - ) - - # discard is_greedy - string_nll = [x[0] for x in string_nll] - - string_nll = sum(string_nll) - loglikelihoods.append(string_nll) - - return loglikelihoods - - def _loglikelihood_tokens(self, requests, disable_tqdm=False): - # TODO: implement some kind of efficient-request-middleware that lumps together requests with the same context - res = [] - dataset_inps = [] - - def _collate(x): - # the negative sign on len(toks) sorts descending - this has a few advantages: - # - time estimates will always be over not underestimates, which is more useful for planning - # - to know the size of a batch when going through the list, you know the first one is always the batch - # padded context length. this is useful to simplify the batching logic and more importantly to make - # automatic adaptive batches much much easier to implement - # - any OOMs will happen right away rather than near the end - - toks = x[1] + x[2] - return -len(toks), tuple(toks) - - # TODO: automatic (variable) batch size detection for vectorization - re_ord = Reorderer(requests, _collate) - for chunk in chunks( - tqdm(re_ord.get_reordered(), disable=disable_tqdm), self.batch_size - ): - inps = [] - cont_toks_list = [] - inplens = [] - - padding_length = None - - # because vectorizing is annoying, we first convert each (context, continuation) pair to padded - # tensors, then we pack them together into a batch, call the model, and then pick it all apart - # again because vectorizing is annoying - - for _, context_enc, continuation_enc in chunk: - # sanity check - assert len(context_enc) > 0 - assert len(continuation_enc) > 0 - assert len(continuation_enc) <= self.max_length - - # how this all works: - # CTX CONT - # inp 0 1 2 3|4 5 6 7 8 9 <- last token is deleted by inp[:, :-1] - # gpt2 \ \ - # logits 1 2 3|4 5 6 7 8 9 <- the ctx half gets tossed out by the - # cont_toks 4 5 6 7 8 9 [:, -len(continuation_enc):, :self.vocab_size] slice - - # when too long to fit in context, truncate from the left - inp = torch.tensor( - (context_enc + continuation_enc)[-(self.max_length + 1):][:-1], - dtype=torch.long, - ).to(self.device) - (inplen,) = inp.shape - - cont = continuation_enc - - # since in _collate we make sure length is descending, the longest is always the first one. - padding_length = ( - padding_length if padding_length is not None else inplen - ) - - # pad length from seq to padding_length - inp = torch.cat( - [ - inp, # [seq] - torch.zeros(padding_length - inplen, dtype=torch.long).to( - inp.device - ), # [padding_length - seq] - ], - dim=0, - ) - - inps.append(inp.unsqueeze(0)) # [1, padding_length] - cont_toks_list.append(cont) - inplens.append(inplen) - # import pdb; pdb.set_trace() - batched_inps = torch.cat(inps, dim=0).to( - self.device - ) # [batch, padding_length - - # self.model = self.model.to(self.device) - multi_logits = F.log_softmax( - self._model_call(batched_inps), dim=-1 - ).cpu() # [batch, padding_length, vocab] - - for (cache_key, _, _), logits, inp, inplen, cont_toks in zip( - chunk, multi_logits, inps, inplens, cont_toks_list - ): - - # Slice to original seq length - contlen = len(cont_toks) - logits = logits[inplen - contlen: inplen].unsqueeze( - 0 - ) # [1, seq, vocab] - - # Check if per-token argmax is exactly equal to continuation - greedy_tokens = logits.argmax(dim=-1) - cont_toks = torch.tensor(cont_toks, dtype=torch.long).unsqueeze( - 0 - ) # [1, seq] - # import pdb; pdb.set_trace() - max_equal = (greedy_tokens == cont_toks).all() - - # Obtain log-probs at the corresponding continuation token indices - # last_token_slice = logits[:, -1, :].squeeze(0).tolist() - logits = torch.gather(logits, 2, cont_toks.unsqueeze(-1)).squeeze( - -1 - ) # [1, seq] - - # Answer: (log prob, is-exact-match) - answer = (float(logits.sum()), bool(max_equal)) - - # partial caching - if cache_key is not None: - self.cache_hook.add_partial("loglikelihood", cache_key, answer) - res.append(answer) - - return re_ord.get_original(res) - - def greedy_until(self, requests): - print("greedy utils in base...") - # TODO: implement fully general `until` that handles until that are - # multiple tokens or that span multiple tokens correctly - - # TODO: extract to TokenizedLM? - res = [] - - def _collate(x): - toks = self.tok_encode(x[0]) - return len(toks), x[0] - - re_ord = Reorderer(requests, _collate) - - for context, until in tqdm(re_ord.get_reordered()): - if isinstance(until, str): - until = [until] - - (primary_until,) = self.tok_encode(until[0]) - - context_enc = torch.tensor( - [self.tok_encode(context)[self.max_gen_toks - self.max_length:]] - ).to(self.device) - - cont = self._model_generate( - context_enc, context_enc.shape[1] + self.max_gen_toks, primary_until - ) - - s = self.tok_decode(cont[0].tolist()[context_enc.shape[1]:]) - - for term in until: - s = s.split(term)[0] - - # partial caching - self.cache_hook.add_partial("greedy_until", (context, until), s) - - res.append(s) - - return re_ord.get_original(res) - - def generate_until(self, requests): - pass - - -def make_disjoint_window(pair): - """Takes output from get_rolling_token_windows and makes the context not overlap with the continuation""" - a, b = pair - return a[: len(a) - (len(b) - 1)], b - - -def hash_args(attr, args): - dat = json.dumps([attr] + list(args)) - return hashlib.sha256(dat.encode("utf-8")).hexdigest() - - -def simple_parse_args_string(args_string): - """ - Parses something like - args1=val1,arg2=val2 - Into a dictionary - """ - args_string = args_string.strip() - if not args_string: - return {} - arg_list = args_string.split(",") - args_dict = {} - for arg in arg_list: - k, v = arg.split("=") - args_dict[k] = v - return args_dict - - -def get_rolling_token_windows(token_list, prefix_token, max_seq_len, context_len): - """ - - context_len allows for a rolling window context, allowing each prediction window to potentially - condition on some context - - :param token_list: list - List of tokens to be PREDICTED - :param max_seq_len: int - max_seq_len of model (or max_seq_len we want to use) - :param context_len: int - Amount of desired token context for prediction. Needs to be at least 1. - :param prefix_token: token - Dummy token like so the first token has something to condition on - :return: generator - Generator of tuples - (input_tokens, pred_tokens) - Note: Score only the last len(pred_tokens) logits of the LM - """ - assert 1 <= context_len <= max_seq_len - if not token_list: - return - # +1 offset, going from input->preds - pred_len = max_seq_len - context_len + 1 - predicted = 0 - - # Special handling for first window: predict all tokens - first_seq_len = min(max_seq_len, len(token_list)) - yield ([prefix_token] + token_list[: first_seq_len - 1], token_list[:first_seq_len]) - predicted += first_seq_len - - while predicted < len(token_list): - window_pred_len = min(len(token_list) - predicted, pred_len) - window_end = predicted + window_pred_len - - yield ( - token_list[window_end - max_seq_len - 1: window_end - 1], - token_list[window_end - window_pred_len: window_end], - ) - predicted += window_pred_len - - -class Reorderer: - def __init__(self, arr, fn): - self.size = len(arr) - arr = list(enumerate(arr)) - arr = group(arr, lambda x: fn(x[1])) - arr = [([y[0] for y in x], x[0][1]) for x in arr] - arr.sort(key=lambda x: fn(x[1])) - - self.arr = arr - - def get_reordered(self): - return [x[1] for x in self.arr] - - def get_original(self, newarr): - res = [None] * self.size - cov = [False] * self.size - - for (inds, _), v in zip(self.arr, newarr): - for ind in inds: - res[ind] = v - cov[ind] = True - - assert all(cov) - - return res - - -def join_iters(iters): - for iter in iters: - yield from iter - - -def chunks(iter, n): - arr = [] - for x in iter: - arr.append(x) - if len(arr) == n: - yield arr - arr = [] - - if arr: - yield arr - - -def group(arr, fn): - res = collections.defaultdict(list) - - for ob in arr: - res[fn(ob)].append(ob) - - return list(res.values()) diff --git a/requirements.txt b/requirements.txt index f84b931..4e988b6 100644 --- a/requirements.txt +++ b/requirements.txt @@ -6,4 +6,4 @@ sentencepiece transformers>=4.38.0 huggingface_hub flash-attn -lm_eval +lm_eval=0.3.0 From 61021462af9afa6dbcc936fb633381c019e7c658 Mon Sep 17 00:00:00 2001 From: NicoNico6 <1751277309@qq.com> Date: Fri, 12 Apr 2024 10:53:54 +0000 Subject: [PATCH 016/125] fix args issue --- evaluation/README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/evaluation/README.md b/evaluation/README.md index f8cc23e..c22262c 100644 --- a/evaluation/README.md +++ b/evaluation/README.md @@ -19,7 +19,7 @@ Example evaluation scripts for the GreenBitAI family of low-bit models. ### PPL Evaluation ```bash -python -m evaluation.evaluate --model GreenBitAI/Qwen-1.5-4B-layer-mix-bpw-3.0 --trust-remote-code --eval-ppl -ppl-tasks wikitext2,c4_new,ptb +python -m evaluation.evaluate --model GreenBitAI/Qwen-1.5-4B-layer-mix-bpw-3.0 --trust-remote-code --eval-ppl --ppl-tasks wikitext2,c4_new,ptb ``` ### Few-Shot Evaluation From d5e95bbcbe786359ce235b5267e6342c8a42e71a Mon Sep 17 00:00:00 2001 From: NicoNico6 <1751277309@qq.com> Date: Fri, 12 Apr 2024 11:51:41 +0000 Subject: [PATCH 017/125] fix few-shot task naming issue --- evaluation/evaluate.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/evaluation/evaluate.py b/evaluation/evaluate.py index 1635dea..56db084 100644 --- a/evaluation/evaluate.py +++ b/evaluation/evaluate.py @@ -162,7 +162,7 @@ def setup_arg_parser(): parser.add_argument( "--few-shot-tasks", type=str, - default="openbookqa,arc_easy,winogrande,hellaswag,arc_challenge,piqa,boolq,race,truthfulqa,anli_r1,anli_r2,anli_r3,wic", + default="openbookqa,arc_easy,winogrande,hellaswag,arc_challenge,piqa,boolq,race,truthfulqa_mc,anli_r1,anli_r2,anli_r3,wic", help="Few-shot learning ability evaluation tasks.", ) parser.add_argument( From 27718918f0a04f87d60d4a2aad111a84a84f9b90 Mon Sep 17 00:00:00 2001 From: Haojin Yang Date: Fri, 12 Apr 2024 14:11:26 +0200 Subject: [PATCH 018/125] created simple tool for chat demo using commandline with fastchat cli --- README.md | 12 +- green_bit_llm/version.py | 2 +- inference/README.md | 21 ++ inference/chat_base.py | 486 ++++++++++++++++++++++++++++++++++++++ inference/chat_cli.py | 320 +++++++++++++++++++++++++ inference/conversation.py | 449 +++++++++++++++++++++++++++++++++++ inference/generation.py | 1 - inference/utils.py | 112 +++++++++ 8 files changed, 1395 insertions(+), 8 deletions(-) create mode 100644 inference/README.md create mode 100644 inference/chat_base.py create mode 100644 inference/chat_cli.py create mode 100644 inference/conversation.py create mode 100644 inference/utils.py diff --git a/README.md b/README.md index bd90b04..2e6a024 100644 --- a/README.md +++ b/README.md @@ -11,7 +11,6 @@ Additionally, you can use our provided evaluation tools to validate the model's ## Features - ## Installation To get started with this package, simply clone the repository and install the required dependencies (for Python >= 3.9): ```bash @@ -27,14 +26,15 @@ conda activate gbai_cuda_lm ## Usage ### Inference -```bash -``` +TODO: link to readme file in the sub-directory -### sft +### Evaluation -```bash +TODO: link to readme file in the sub-directory -``` +### sft + +TODO: link to readme file in the sub-directory ## Requirements diff --git a/green_bit_llm/version.py b/green_bit_llm/version.py index a68927d..b3c06d4 100644 --- a/green_bit_llm/version.py +++ b/green_bit_llm/version.py @@ -1 +1 @@ -__version__ = "0.1.0" \ No newline at end of file +__version__ = "0.0.1" \ No newline at end of file diff --git a/inference/README.md b/inference/README.md new file mode 100644 index 0000000..61f44cc --- /dev/null +++ b/inference/README.md @@ -0,0 +1,21 @@ +# Inference + +## Overview + +This project demonstrates a quick setup for a chat interface using [GreenBitAI's low-bit models](https://huggingface.co/collections/GreenBitAI/) and [FastChat](https://github.com/lm-sys/FastChat)-CLI tool. +It enables conversations using a local model creating an efficient and accessible environment for deploying chat applications. + +## Installation + + +```bash +pip install pillow requests prompt_toolkit rich +``` +Installation involves two main steps: setting up the gbx_lm package and installing FastChat along with its dependencies. + + +Upon completing these steps, the worker should be operational and accessible via a local URL: http://0.0.0.0:7860. Open this URL in your preferred web browser to begin interacting with your local MLX LLM. Enjoy your conversations! + +## License +- `conversation.py`, `chat_base.py` and `chat_cli.py` released under the [Apache 2.0 License](https://github.com/lm-sys/FastChat/tree/main/LICENSE) in [FastChat-serve](https://github.com/lm-sys/FastChat/tree/main/fastchat/serve). +- We release our changes and additions to these files under the [Apache 2.0 License](../LICENSE). \ No newline at end of file diff --git a/inference/chat_base.py b/inference/chat_base.py new file mode 100644 index 0000000..34e119a --- /dev/null +++ b/inference/chat_base.py @@ -0,0 +1,486 @@ +import gc +import sys +import abc +import json +import os +import time +from pathlib import Path +from typing import Optional, Dict, Iterable + +# Add the parent directory to sys.path +parent_dir = str(Path(__file__).parent.parent) +if parent_dir not in sys.path: + sys.path.append(parent_dir) + +from green_bit_llm.model import load +from inference.conversation import get_conv_template +from inference.utils import is_partial_stop, is_sentence_complete, get_context_length, prepare_logits_processor, get_conversation_template + +import torch + + +class ChatIO(abc.ABC): + @abc.abstractmethod + def prompt_for_input(self, role: str) -> str: + """Prompt for input from a role.""" + + @abc.abstractmethod + def prompt_for_output(self, role: str): + """Prompt for output from a role.""" + + @abc.abstractmethod + def stream_output(self, output_stream): + """Stream output.""" + + @abc.abstractmethod + def print_output(self, text: str): + """Print output.""" + + +@torch.inference_mode() +def generate_stream( + model, + tokenizer, + params: Dict, + device: str, + context_len: int, + stream_interval: int = 2, + judge_sent_end: bool = False, +): + if hasattr(model, "device"): + device = model.device + + # Read parameters + prompt = params["prompt"] + len_prompt = len(prompt) + temperature = float(params.get("temperature", 1.0)) + repetition_penalty = float(params.get("repetition_penalty", 1.0)) + top_p = float(params.get("top_p", 1.0)) + top_k = int(params.get("top_k", -1)) # -1 means disable + max_new_tokens = int(params.get("max_new_tokens", 256)) + logprobs = params.get("logprobs", None) # FIXME: Support logprobs>1. + echo = bool(params.get("echo", True)) + stop_str = params.get("stop", None) + stop_token_ids = params.get("stop_token_ids", None) or [] + if tokenizer.eos_token_id not in stop_token_ids: + stop_token_ids.append(tokenizer.eos_token_id) + + logits_processor = prepare_logits_processor( + temperature, repetition_penalty, top_p, top_k + ) + input_ids = tokenizer(prompt).input_ids + + if model.config.is_encoder_decoder: + max_src_len = context_len + else: # truncate + max_src_len = context_len - max_new_tokens - 1 + + input_ids = input_ids[-max_src_len:] + output_ids = list(input_ids) + input_echo_len = len(input_ids) + + if model.config.is_encoder_decoder: + if logprobs is not None: # FIXME: Support logprobs for encoder-decoder models. + raise NotImplementedError + encoder_output = model.encoder( + input_ids=torch.as_tensor([input_ids], device=device) + )[0] + start_ids = torch.as_tensor( + [[model.generation_config.decoder_start_token_id]], + dtype=torch.int64, + device=device, + ) + else: + start_ids = torch.as_tensor([input_ids], device=device) + + past_key_values = out = None + token_logprobs = [None] # The first token has no logprobs. + sent_interrupt = False + finish_reason = None + stopped = False + for i in range(max_new_tokens): + if i == 0: # prefill + if model.config.is_encoder_decoder: + out = model.decoder( + input_ids=start_ids, + encoder_hidden_states=encoder_output, + use_cache=True, + ) + logits = model.lm_head(out[0]) + else: + out = model(input_ids=start_ids, use_cache=True) + logits = out.logits + past_key_values = out.past_key_values + + if logprobs is not None: + # Prefull logprobs for the prompt. + shift_input_ids = start_ids[..., 1:].contiguous() + shift_logits = logits[..., :-1, :].contiguous() + shift_logits = torch.log_softmax(shift_logits, dim=-1).tolist() + for label_id, logit in zip( + shift_input_ids[0].tolist(), shift_logits[0] + ): + token_logprobs.append(logit[label_id]) + else: # decoding + if model.config.is_encoder_decoder: + out = model.decoder( + input_ids=torch.as_tensor( + [[token] if not sent_interrupt else output_ids], + device=device, + ), + encoder_hidden_states=encoder_output, + use_cache=True, + past_key_values=past_key_values if not sent_interrupt else None, + ) + sent_interrupt = False + + logits = model.lm_head(out[0]) + else: + out = model( + input_ids=torch.as_tensor( + [[token] if not sent_interrupt else output_ids], + device=device, + ), + use_cache=True, + past_key_values=past_key_values if not sent_interrupt else None, + ) + sent_interrupt = False + logits = out.logits + past_key_values = out.past_key_values + + if logits_processor: + if repetition_penalty > 1.0: + tmp_output_ids = torch.as_tensor([output_ids], device=logits.device) + else: + tmp_output_ids = None + last_token_logits = logits_processor(tmp_output_ids, logits[:, -1, :])[0] + else: + last_token_logits = logits[0, -1, :] + + if temperature < 1e-5 or top_p < 1e-8: # greedy + _, indices = torch.topk(last_token_logits, 2) + tokens = [int(index) for index in indices.tolist()] + else: + probs = torch.softmax(last_token_logits, dim=-1) + indices = torch.multinomial(probs, num_samples=2) + tokens = [int(token) for token in indices.tolist()] + token = tokens[0] + output_ids.append(token) + if logprobs is not None: + # Cannot use last_token_logits because logprobs is based on raw logits. + token_logprobs.append( + torch.log_softmax(logits[0, -1, :], dim=-1)[token].tolist() + ) + + if token in stop_token_ids: + stopped = True + else: + stopped = False + + # Yield the output tokens + if i % stream_interval == 0 or i == max_new_tokens - 1 or stopped: + if echo: + tmp_output_ids = output_ids + rfind_start = len_prompt + else: + tmp_output_ids = output_ids[input_echo_len:] + rfind_start = 0 + + output = tokenizer.decode( + tmp_output_ids, + skip_special_tokens=True, + spaces_between_special_tokens=False, + clean_up_tokenization_spaces=True, + ) + ret_logprobs = None + if logprobs is not None: + ret_logprobs = { + "text_offset": [], + "tokens": [ + tokenizer.decode(token) + for token in ( + output_ids if echo else output_ids[input_echo_len:] + ) + ], + "token_logprobs": token_logprobs + if echo + else token_logprobs[input_echo_len:], + "top_logprobs": [{}] + * len(token_logprobs if echo else token_logprobs[input_echo_len:]), + } + # Compute text_offset + curr_pos = 0 + for text in ret_logprobs["tokens"]: + ret_logprobs["text_offset"].append(curr_pos) + curr_pos += len(text) + + # TODO: For the issue of incomplete sentences interrupting output, apply a patch and others can also modify it to a more elegant way + if judge_sent_end and stopped and not is_sentence_complete(output): + if len(tokens) > 1: + token = tokens[1] + output_ids[-1] = token + else: + output_ids.pop() + stopped = False + sent_interrupt = True + + partially_stopped = False + if stop_str: + if isinstance(stop_str, str): + pos = output.rfind(stop_str, rfind_start) + if pos != -1: + output = output[:pos] + stopped = True + else: + partially_stopped = is_partial_stop(output, stop_str) + elif isinstance(stop_str, Iterable): + for each_stop in stop_str: + pos = output.rfind(each_stop, rfind_start) + if pos != -1: + output = output[:pos] + stopped = True + break + else: + partially_stopped = is_partial_stop(output, each_stop) + if partially_stopped: + break + else: + raise ValueError("Invalid stop field type.") + + # Prevent yielding partial stop sequence + if not partially_stopped: + yield { + "text": output, + "logprobs": ret_logprobs, + "usage": { + "prompt_tokens": input_echo_len, + "completion_tokens": i, + "total_tokens": input_echo_len + i, + }, + "finish_reason": None, + } + + if stopped: + break + + # Finish stream event, which contains finish reason + else: + finish_reason = "length" + + if stopped: + finish_reason = "stop" + + yield { + "text": output, + "logprobs": ret_logprobs, + "usage": { + "prompt_tokens": input_echo_len, + "completion_tokens": i, + "total_tokens": input_echo_len + i, + }, + "finish_reason": finish_reason, + } + + # Clean + del past_key_values, out + gc.collect() + torch.cuda.empty_cache() + + +def chat_loop( + model_path: str, + tokenizer_config: Dict = {}, + model_config: Dict = {}, + seqlen: int = 2048, + device: str = "cuda", + dtype: Optional[torch.dtype] = torch.float16, + conv_template: Optional[str] = None, + conv_system_msg: Optional[str] = None, + temperature: float = 0.7, + repetition_penalty: float = 1.0, + max_new_tokens: int = 256, + chatio: ChatIO = None, + judge_sent_end: bool = True, + debug: bool = True, + history: bool = True, +): + # load Model + model, tokenizer, config = load( + model_path, + tokenizer_config=tokenizer_config, + dtype=dtype, + device_map='auto', + seqlen=seqlen, + model_config=model_config, + requires_grad=False + ) + + # stream function + generate_stream_func = generate_stream + + # Set context length + context_len = get_context_length(model.config) + + # Chat + def new_chat(): + if conv_template: + conv = get_conv_template(conv_template) + else: + conv = get_conversation_template(model_path) + if conv_system_msg is not None: + conv.set_system_message(conv_system_msg) + return conv + + def reload_conv(conv): + """ + Reprints the conversation from the start. + """ + for message in conv.messages[conv.offset :]: + chatio.prompt_for_output(message[0]) + chatio.print_output(message[1]) + + conv = None + + while True: + if not history or not conv: + conv = new_chat() + + try: + inp = chatio.prompt_for_input(conv.roles[0]) + except EOFError: + inp = "" + + if inp == "!!exit" or not inp: + print("exit...") + break + elif inp == "!!reset": + print("resetting...") + conv = new_chat() + continue + elif inp == "!!remove": + print("removing last message...") + if len(conv.messages) > conv.offset: + # Assistant + if conv.messages[-1][0] == conv.roles[1]: + conv.messages.pop() + # User + if conv.messages[-1][0] == conv.roles[0]: + conv.messages.pop() + reload_conv(conv) + else: + print("No messages to remove.") + continue + elif inp == "!!regen": + print("regenerating last message...") + if len(conv.messages) > conv.offset: + # Assistant + if conv.messages[-1][0] == conv.roles[1]: + conv.messages.pop() + # User + if conv.messages[-1][0] == conv.roles[0]: + reload_conv(conv) + # Set inp to previous message + inp = conv.messages.pop()[1] + else: + # Shouldn't happen in normal circumstances + print("No user message to regenerate from.") + continue + else: + print("No messages to regenerate.") + continue + elif inp.startswith("!!save"): + args = inp.split(" ", 1) + + if len(args) != 2: + print("usage: !!save ") + continue + else: + filename = args[1] + + # Add .json if extension not present + if not "." in filename: + filename += ".json" + + print("saving...", filename) + with open(filename, "w") as outfile: + json.dump(conv.dict(), outfile) + continue + elif inp.startswith("!!load"): + args = inp.split(" ", 1) + + if len(args) != 2: + print("usage: !!load ") + continue + else: + filename = args[1] + + # Check if file exists and add .json if needed + if not os.path.exists(filename): + if (not filename.endswith(".json")) and os.path.exists( + filename + ".json" + ): + filename += ".json" + else: + print("file not found:", filename) + continue + + print("loading...", filename) + with open(filename, "r") as infile: + new_conv = json.load(infile) + + conv = get_conv_template(new_conv["template_name"]) + conv.set_system_message(new_conv["system_message"]) + conv.messages = new_conv["messages"] + reload_conv(conv) + continue + + conv.append_message(conv.roles[0], inp) + conv.append_message(conv.roles[1], None) + prompt = conv.get_prompt() + + gen_params = { + "model": model_path, + "prompt": prompt, + "temperature": temperature, + "repetition_penalty": repetition_penalty, + "max_new_tokens": max_new_tokens, + "stop": conv.stop_str, + "stop_token_ids": conv.stop_token_ids, + "echo": False, + } + + try: + chatio.prompt_for_output(conv.roles[1]) + output_stream = generate_stream_func( + model, + tokenizer, + gen_params, + device, + context_len=context_len, + judge_sent_end=judge_sent_end, + ) + t = time.time() + outputs = chatio.stream_output(output_stream) + duration = time.time() - t + conv.update_last_message(outputs.strip()) + + if debug: + num_tokens = len(tokenizer.encode(outputs)) + msg = { + "conv_template": conv.name, + "prompt": prompt, + "outputs": outputs, + "speed (token/s)": round(num_tokens / duration, 2), + } + print(f"\n{msg}\n") + + except KeyboardInterrupt: + print("stopped generation.") + # If generation didn't finish + if conv.messages[-1][1] is None: + conv.messages.pop() + # Remove last user message, so there isn't a double up + if conv.messages[-1][0] == conv.roles[0]: + conv.messages.pop() + + reload_conv(conv) \ No newline at end of file diff --git a/inference/chat_cli.py b/inference/chat_cli.py new file mode 100644 index 0000000..b08da36 --- /dev/null +++ b/inference/chat_cli.py @@ -0,0 +1,320 @@ +import argparse +import os +import re +import sys +from pathlib import Path + +from prompt_toolkit import PromptSession +from prompt_toolkit.auto_suggest import AutoSuggestFromHistory +from prompt_toolkit.completion import WordCompleter +from prompt_toolkit.history import InMemoryHistory +from prompt_toolkit.key_binding import KeyBindings +from rich.console import Console +from rich.live import Live +from rich.markdown import Markdown + +# Add the parent directory to sys.path +parent_dir = str(Path(__file__).parent.parent) +if parent_dir not in sys.path: + sys.path.append(parent_dir) + +from inference.chat_base import ChatIO, chat_loop +from inference.utils import str_to_torch_dtype, is_chat_model + +DEFAULT_SEQLEN = 2048 + + +class SimpleChatIO(ChatIO): + def __init__(self, multiline: bool = False): + self._multiline = multiline + + def prompt_for_input(self, role) -> str: + if not self._multiline: + return input(f"{role}: ") + + prompt_data = [] + line = input(f"{role} [ctrl-d/z on empty line to end]: ") + while True: + prompt_data.append(line.strip()) + try: + line = input() + except EOFError as e: + break + return "\n".join(prompt_data) + + def prompt_for_output(self, role: str): + print(f"{role}: ", end="", flush=True) + + def stream_output(self, output_stream): + pre = 0 + for outputs in output_stream: + output_text = outputs["text"] + output_text = output_text.strip().split(" ") + now = len(output_text) - 1 + if now > pre: + print(" ".join(output_text[pre:now]), end=" ", flush=True) + pre = now + print(" ".join(output_text[pre:]), flush=True) + return " ".join(output_text) + + def print_output(self, text: str): + print(text) + + +class RichChatIO(ChatIO): + bindings = KeyBindings() + + @bindings.add("escape", "enter") + def _(event): + event.app.current_buffer.newline() + + def __init__(self, multiline: bool = False, mouse: bool = False): + self._prompt_session = PromptSession(history=InMemoryHistory()) + self._completer = WordCompleter( + words=["!!exit", "!!reset", "!!remove", "!!regen", "!!save", "!!load"], + pattern=re.compile("$"), + ) + self._console = Console() + self._multiline = multiline + self._mouse = mouse + + def prompt_for_input(self, role) -> str: + self._console.print(f"[bold]{role}:") + # TODO(suquark): multiline input has some issues. fix it later. + prompt_input = self._prompt_session.prompt( + completer=self._completer, + multiline=False, + mouse_support=self._mouse, + auto_suggest=AutoSuggestFromHistory(), + key_bindings=self.bindings if self._multiline else None, + ) + self._console.print() + return prompt_input + + def prompt_for_output(self, role: str): + self._console.print(f"[bold]{role.replace('/', '|')}:") + + def stream_output(self, output_stream): + """Stream output from a role.""" + # TODO(suquark): the console flickers when there is a code block + # above it. We need to cut off "live" when a code block is done. + + # Create a Live context for updating the console output + with Live(console=self._console, refresh_per_second=4) as live: + # Read lines from the stream + for outputs in output_stream: + if not outputs: + continue + text = outputs["text"] + # Render the accumulated text as Markdown + # NOTE: this is a workaround for the rendering "unstandard markdown" + # in rich. The chatbots output treat "\n" as a new line for + # better compatibility with real-world text. However, rendering + # in markdown would break the format. It is because standard markdown + # treat a single "\n" in normal text as a space. + # Our workaround is adding two spaces at the end of each line. + # This is not a perfect solution, as it would + # introduce trailing spaces (only) in code block, but it works well + # especially for console output, because in general the console does not + # care about trailing spaces. + lines = [] + for line in text.splitlines(): + lines.append(line) + if line.startswith("```"): + # Code block marker - do not add trailing spaces, as it would + # break the syntax highlighting + lines.append("\n") + else: + lines.append(" \n") + markdown = Markdown("".join(lines)) + # Update the Live console output + live.update(markdown) + self._console.print() + return text + + def print_output(self, text: str): + self.stream_output([{"text": text}]) + + +class ProgrammaticChatIO(ChatIO): + def prompt_for_input(self, role) -> str: + contents = "" + # `end_sequence` signals the end of a message. It is unlikely to occur in + # message content. + end_sequence = " __END_OF_A_MESSAGE_47582648__\n" + len_end = len(end_sequence) + while True: + if len(contents) >= len_end: + last_chars = contents[-len_end:] + if last_chars == end_sequence: + break + try: + char = sys.stdin.read(1) + contents = contents + char + except EOFError: + continue + contents = contents[:-len_end] + print(f"[!OP:{role}]: {contents}", flush=True) + return contents + + def prompt_for_output(self, role: str): + print(f"[!OP:{role}]: ", end="", flush=True) + + def stream_output(self, output_stream): + pre = 0 + for outputs in output_stream: + output_text = outputs["text"] + output_text = output_text.strip().split(" ") + now = len(output_text) - 1 + if now > pre: + print(" ".join(output_text[pre:now]), end=" ", flush=True) + pre = now + print(" ".join(output_text[pre:]), flush=True) + return " ".join(output_text) + + def print_output(self, text: str): + print(text) + + +def main(args): + # args setup + if args.gpus: + if len(args.gpus.split(",")) < args.num_gpus: + raise ValueError( + f"Larger --num-gpus ({args.num_gpus}) than --gpus {args.gpus}!" + ) + os.environ["CUDA_VISIBLE_DEVICES"] = args.gpus + if args.style == "simple": + chatio = SimpleChatIO(args.multiline) + elif args.style == "rich": + chatio = RichChatIO(args.multiline, args.mouse) + elif args.style == "programmatic": + chatio = ProgrammaticChatIO() + else: + raise ValueError(f"Invalid style for console: {args.style}") + + # check if a chat model selected? + if not is_chat_model(args.model_path.lower()): + raise Exception("Invalid model path: The provided model is not a chat model. " + "A valid chat model is required to establish the chat interface.") + + # Building configs + tokenizer_config = {"trust_remote_code": True if args.trust_remote_code else None} + pretrain_model_config = { + "trust_remote_code": True if args.trust_remote_code else None, + "attn_implementation": "flash_attention_2" if args.use_flash_attention_2 else None + } + + if args.eos_token is not None: + tokenizer_config["eos_token"] = args.eos_token + + # chat + try: + chat_loop( + args.model_path, + tokenizer_config, + pretrain_model_config, + args.seqlen, + args.device, + str_to_torch_dtype(args.dtype), + args.conv_template, + args.conv_system_msg, + args.temperature, + args.repetition_penalty, + args.max_new_tokens, + chatio, + judge_sent_end=args.judge_sent_end, + debug=args.debug, + history=not args.no_history, + ) + except KeyboardInterrupt: + print("exit...") + + +if __name__ == "__main__": + parser = argparse.ArgumentParser() + parser.add_argument( + "--model-path", + type=str, + default="lmsys/vicuna-7b-v1.5", + help="The path to the weights. This can be a local folder or a Hugging Face repo ID.", + ) + parser.add_argument( + "--device", + type=str, + choices=["cpu", "cuda"], + default="cuda", + help="The device type", + ) + parser.add_argument( + "--gpus", + type=str, + default=None, + help="A single GPU like 1 or multiple GPUs like 0,2", + ) + parser.add_argument("--num-gpus", type=int, default=1) + parser.add_argument( + "--max-gpu-memory", + type=str, + help="The maximum memory per GPU for storing model weights. Use a string like '13Gib'", + ) + parser.add_argument( + "--dtype", + type=str, + choices=["float32", "float16"], + help="Override the default dtype. If not set, it will use float16 on GPU and float32 on CPU.", + default=None, + ) + parser.add_argument( + "--conv-template", type=str, default=None, help="Conversation prompt template." + ) + parser.add_argument( + "--conv-system-msg", type=str, default=None, help="Conversation system message." + ) + parser.add_argument("--temperature", type=float, default=0.7) + parser.add_argument("--repetition_penalty", type=float, default=1.0) + parser.add_argument("--max-new-tokens", type=int, default=256) + parser.add_argument("--no-history", action="store_true") + parser.add_argument( + "--style", + type=str, + default="simple", + choices=["simple", "rich", "programmatic"], + help="Display style.", + ) + parser.add_argument( + "--multiline", + action="store_true", + help="Enable multiline input. Use ESC+Enter for newline.", + ) + parser.add_argument( + "--mouse", + action="store_true", + help="[Rich Style]: Enable mouse support for cursor positioning.", + ) + parser.add_argument( + "--judge-sent-end", + action="store_true", + help="Whether enable the correction logic that interrupts the output of sentences due to EOS.", + ) + parser.add_argument( + "--debug", + action="store_true", + help="Print useful debug information (e.g., prompts)", + ) + parser.add_argument( + "--eos-token", + type=str, + default=None, + help="End of sequence token for tokenizer", + ) + parser.add_argument( + "--trust-remote-code", + action="store_true", + help="Enable trusting remote code", + ) + parser.add_argument( + "--seqlen", type=int, default=DEFAULT_SEQLEN, help="Sequence length" + ) + args = parser.parse_args() + main(args) \ No newline at end of file diff --git a/inference/conversation.py b/inference/conversation.py new file mode 100644 index 0000000..8324d97 --- /dev/null +++ b/inference/conversation.py @@ -0,0 +1,449 @@ +""" +Conversation prompt templates. + +We kindly request that you import fastchat instead of copying this file if you wish to use it. +If you have any changes in mind, please contribute back so the community can benefit collectively and continue to maintain these valuable templates. +""" + +import base64 +import dataclasses +from enum import auto, IntEnum +from io import BytesIO +from typing import List, Any, Dict, Union, Tuple + + +class SeparatorStyle(IntEnum): + """Separator styles.""" + + ADD_COLON_SINGLE = auto() + ADD_COLON_TWO = auto() + ADD_COLON_SPACE_SINGLE = auto() + NO_COLON_SINGLE = auto() + NO_COLON_TWO = auto() + ADD_NEW_LINE_SINGLE = auto() + LLAMA2 = auto() + + +IMAGE_PLACEHOLDER_STR = "$$$$" + + +@dataclasses.dataclass +class Conversation: + """A class that manages prompt templates and keeps all conversation history.""" + + # The name of this template + name: str + # The template of the system prompt + system_template: str = "{system_message}" + # The system message + system_message: str = "" + # The names of two roles + roles: Tuple[str] = ("USER", "ASSISTANT") + # All messages. Each item is (role, message). + # Each message is either a string or a tuple of (string, List[image_url]). + messages: List[List[str]] = () + # The number of few shot examples + offset: int = 0 + # The separator style and configurations + sep_style: SeparatorStyle = SeparatorStyle.ADD_COLON_SINGLE + sep: str = "\n" + sep2: str = None + # Stop criteria (the default one is EOS token) + stop_str: Union[str, List[str]] = None + # Stops generation if meeting any token in this list + stop_token_ids: List[int] = None + + def get_prompt(self) -> str: + """Get the prompt for generation.""" + system_prompt = self.system_template.format(system_message=self.system_message) + if self.sep_style == SeparatorStyle.ADD_COLON_SINGLE: + ret = system_prompt + self.sep + for role, message in self.messages: + if message: + ret += role + ": " + message + self.sep + else: + ret += role + ":" + return ret + elif self.sep_style == SeparatorStyle.ADD_COLON_TWO: + seps = [self.sep, self.sep2] + ret = system_prompt + seps[0] + for i, (role, message) in enumerate(self.messages): + if message: + if type(message) is tuple: + message, images = message + message = IMAGE_PLACEHOLDER_STR * len(images) + message + ret += role + ": " + message + seps[i % 2] + else: + ret += role + ":" + return ret + elif self.sep_style == SeparatorStyle.ADD_COLON_SPACE_SINGLE: + ret = system_prompt + self.sep + for role, message in self.messages: + if message: + ret += role + ": " + message + self.sep + else: + ret += role + ": " # must be end with a space + return ret + elif self.sep_style == SeparatorStyle.ADD_NEW_LINE_SINGLE: + ret = "" if system_prompt == "" else system_prompt + self.sep + for role, message in self.messages: + if message: + ret += role + "\n" + message + self.sep + else: + ret += role + "\n" + return ret + elif self.sep_style == SeparatorStyle.NO_COLON_SINGLE: + ret = system_prompt + for role, message in self.messages: + if message: + ret += role + message + self.sep + else: + ret += role + return ret + elif self.sep_style == SeparatorStyle.NO_COLON_TWO: + seps = [self.sep, self.sep2] + ret = system_prompt + for i, (role, message) in enumerate(self.messages): + if message: + ret += role + message + seps[i % 2] + else: + ret += role + return ret + elif self.sep_style == SeparatorStyle.LLAMA2: + seps = [self.sep, self.sep2] + if self.system_message: + ret = system_prompt + else: + ret = "[INST] " + for i, (role, message) in enumerate(self.messages): + tag = self.roles[i % 2] + if message: + if i == 0: + ret += message + " " + else: + ret += tag + " " + message + seps[i % 2] + else: + ret += tag + return ret + else: + raise ValueError(f"Invalid style: {self.sep_style}") + + def get_images(self): + images = [] + for i, (role, msg) in enumerate(self.messages[self.offset :]): + if i % 2 == 0: + if type(msg) is tuple: + for image in msg[1]: + images.append(image) + + return images + + def set_system_message(self, system_message: str): + """Set the system message.""" + self.system_message = system_message + + def append_message(self, role: str, message: str): + """Append a new message.""" + self.messages.append([role, message]) + + def update_last_message(self, message: str): + """Update the last output. + + The last message is typically set to be None when constructing the prompt, + so we need to update it in-place after getting the response from a model. + """ + self.messages[-1][1] = message + + def convert_image_to_base64(self, image): + """Given an image, return the base64 encoded image string.""" + from PIL import Image + import requests + + # Load image if it has not been loaded in yet + if type(image) == str: + if image.startswith("http://") or image.startswith("https://"): + response = requests.get(image) + image = Image.open(BytesIO(response.content)).convert("RGB") + elif "base64" in image: + # OpenAI format is: data:image/jpeg;base64,{base64_encoded_image_str} + return image.split(",")[1] + else: + image = Image.open(image).convert("RGB") + + max_hw, min_hw = max(image.size), min(image.size) + aspect_ratio = max_hw / min_hw + max_len, min_len = 2048, 2048 + shortest_edge = int(min(max_len / aspect_ratio, min_len, min_hw)) + longest_edge = int(shortest_edge * aspect_ratio) + W, H = image.size + if longest_edge != max(image.size): + if H > W: + H, W = longest_edge, shortest_edge + else: + H, W = shortest_edge, longest_edge + image = image.resize((W, H)) + + buffered = BytesIO() + image.save(buffered, format="PNG") + img_b64_str = base64.b64encode(buffered.getvalue()).decode() + + return img_b64_str + + def to_gradio_chatbot(self): + """Convert the conversation to gradio chatbot format.""" + ret = [] + for i, (role, msg) in enumerate(self.messages[self.offset :]): + if i % 2 == 0: + if type(msg) is tuple: + msg, image = msg + img_b64_str = image[0] # Only one image on gradio at one time + img_str = f'user upload image' + msg = img_str + msg.replace("\n", "").strip() + + ret.append([msg, None]) + else: + ret[-1][-1] = msg + return ret + + def to_openai_api_messages(self): + """Convert the conversation to OpenAI chat completion format.""" + if self.system_message == "": + ret = [] + else: + ret = [{"role": "system", "content": self.system_message}] + + for i, (_, msg) in enumerate(self.messages[self.offset :]): + if i % 2 == 0: + ret.append({"role": "user", "content": msg}) + else: + if msg is not None: + ret.append({"role": "assistant", "content": msg}) + return ret + + def extract_text_from_messages(self): + return [ + (role, message[0]) if type(message) is tuple else (role, message) + for role, message in self.messages + ] + + def copy(self): + return Conversation( + name=self.name, + system_template=self.system_template, + system_message=self.system_message, + roles=self.roles, + messages=[[x, y] for x, y in self.messages], + offset=self.offset, + sep_style=self.sep_style, + sep=self.sep, + sep2=self.sep2, + stop_str=self.stop_str, + stop_token_ids=self.stop_token_ids, + ) + + def dict(self): + return { + "template_name": self.name, + "system_message": self.system_message, + "roles": self.roles, + "messages": self.extract_text_from_messages(), + "offset": self.offset, + } + + +# A global registry for all conversation templates +conv_templates: Dict[str, Conversation] = {} + + +def register_conv_template(template: Conversation, override: bool = False): + """Register a new conversation template.""" + if not override: + assert ( + template.name not in conv_templates + ), f"{template.name} has been registered." + + conv_templates[template.name] = template + + +def get_conv_template(name: str) -> Conversation: + """Get a conversation template.""" + return conv_templates[name].copy() + + +# An empty template for raw conversation. +register_conv_template( + Conversation( + name="raw", + system_message="", + roles=("", ""), + sep_style=SeparatorStyle.NO_COLON_SINGLE, + sep="", + ) +) + +# A template with a one-shot conversation example +register_conv_template( + Conversation( + name="one_shot", + system_message="A chat between a curious human and an artificial intelligence assistant. " + "The assistant gives helpful, detailed, and polite answers to the human's questions.", + roles=("Human", "Assistant"), + messages=( + ( + "Human", + "Got any creative ideas for a 10 year old’s birthday?", + ), + ( + "Assistant", + """Of course! Here are some creative ideas for a 10-year-old's birthday party: +1. Treasure Hunt: Organize a treasure hunt in your backyard or nearby park. Create clues and riddles for the kids to solve, leading them to hidden treasures and surprises. +2. Science Party: Plan a science-themed party where kids can engage in fun and interactive experiments. You can set up different stations with activities like making slime, erupting volcanoes, or creating simple chemical reactions. +3. Outdoor Movie Night: Set up a backyard movie night with a projector and a large screen or white sheet. Create a cozy seating area with blankets and pillows, and serve popcorn and snacks while the kids enjoy a favorite movie under the stars. +4. DIY Crafts Party: Arrange a craft party where kids can unleash their creativity. Provide a variety of craft supplies like beads, paints, and fabrics, and let them create their own unique masterpieces to take home as party favors. +5. Sports Olympics: Host a mini Olympics event with various sports and games. Set up different stations for activities like sack races, relay races, basketball shooting, and obstacle courses. Give out medals or certificates to the participants. +6. Cooking Party: Have a cooking-themed party where the kids can prepare their own mini pizzas, cupcakes, or cookies. Provide toppings, frosting, and decorating supplies, and let them get hands-on in the kitchen. +7. Superhero Training Camp: Create a superhero-themed party where the kids can engage in fun training activities. Set up an obstacle course, have them design their own superhero capes or masks, and organize superhero-themed games and challenges. +8. Outdoor Adventure: Plan an outdoor adventure party at a local park or nature reserve. Arrange activities like hiking, nature scavenger hunts, or a picnic with games. Encourage exploration and appreciation for the outdoors. +Remember to tailor the activities to the birthday child's interests and preferences. Have a great celebration!""", + ), + ), + offset=2, + sep_style=SeparatorStyle.ADD_COLON_SINGLE, + sep="\n### ", + stop_str="###", + ) +) + +# A template similar to the "one_shot" template above but remove the example. +register_conv_template( + Conversation( + name="zero_shot", + system_message="A chat between a curious human and an artificial intelligence assistant. " + "The assistant gives helpful, detailed, and polite answers to the human's questions.", + roles=("Human", "Assistant"), + sep_style=SeparatorStyle.ADD_COLON_SINGLE, + sep="\n### ", + stop_str="###", + ) +) + +# ChatGPT default template +register_conv_template( + Conversation( + name="chatgpt", + system_message="You are a helpful assistant.", + roles=("user", "assistant"), + sep_style=None, + sep=None, + ) +) + +# Claude default template +register_conv_template( + Conversation( + name="claude", + roles=("Human", "Assistant"), + sep_style=SeparatorStyle.ADD_COLON_SINGLE, + sep="\n\n", + ) +) + +register_conv_template( + Conversation( + name="gemini", + roles=("user", "model"), + sep_style=None, + sep=None, + ) +) + +# Mistral template +# source: https://docs.mistral.ai/llm/mistral-instruct-v0.1#chat-template +register_conv_template( + Conversation( + name="mistral", + system_template="[INST] {system_message}\n", + roles=("[INST]", "[/INST]"), + sep_style=SeparatorStyle.LLAMA2, + sep=" ", + sep2="", + ) +) + +# llama2 template +# reference: https://huggingface.co/blog/codellama#conversational-instructions +# reference: https://github.com/facebookresearch/llama/blob/1a240688810f8036049e8da36b073f63d2ac552c/llama/generation.py#L212 +register_conv_template( + Conversation( + name="llama-2", + system_template="[INST] <>\n{system_message}\n<>\n\n", + roles=("[INST]", "[/INST]"), + sep_style=SeparatorStyle.LLAMA2, + sep=" ", + sep2=" ", + ) +) + +# Qwen-chat default template +# source: https://huggingface.co/Qwen/Qwen-7B-Chat/blob/main/qwen_generation_utils.py#L130 +register_conv_template( + Conversation( + name="qwen-chat", + system_template="<|im_start|>system\n{system_message}", + system_message="You are a helpful assistant.", + roles=("<|im_start|>user", "<|im_start|>assistant"), + sep_style=SeparatorStyle.CHATML, + sep="<|im_end|>", + stop_token_ids=[ + 151643, + 151644, + 151645, + ], # "<|endoftext|>", "<|im_start|>", "<|im_end|>" + stop_str="<|endoftext|>", + ) +) + +# source: https://huggingface.co/01-ai/Yi-34B-Chat/blob/main/tokenizer_config.json#L60 +register_conv_template( + Conversation( + name="yi-chat", + roles=("<|im_start|>user", "<|im_start|>assistant"), + sep_style=SeparatorStyle.CHATML, + sep="<|im_end|>", + stop_token_ids=[ + 2, + 6, + 7, + 8, + ], # "<|endoftext|>", "<|im_start|>", "<|im_end|>", "<|im_sep|>" + stop_str="<|endoftext|>", + ) +) + +# TinyLlama template +# reference: https://huggingface.co/TinyLlama/TinyLlama-1.1B-Chat-v1.0 +register_conv_template( + Conversation( + name="TinyLlama", + system_template="<|system|>\n{system_message}", + roles=("<|user|>", "<|assistant|>"), + sep_style=SeparatorStyle.CHATML, + sep="", + stop_token_ids=[2], + stop_str="", + ) +) + +# Gemma +# reference: https://huggingface.co/google/gemma-7b-it?text=%3Cstart_of_turn%3Euser%0AHow+does+the+brain+work%3F%3Cend_of_turn%3E%0A%3Cstart_of_turn%3Emodel +register_conv_template( + Conversation( + name="gemma", + system_message="", + roles=("user\n", "model\n"), + sep_style=SeparatorStyle.NO_COLON_SINGLE, + sep="\n", + stop_str="", + ) +) + diff --git a/inference/generation.py b/inference/generation.py index 87f3dcb..49b9afd 100644 --- a/inference/generation.py +++ b/inference/generation.py @@ -18,7 +18,6 @@ sys.path.append(parent_dir) from green_bit_llm.model import load, generate -from green_bit_llm.enum import TextGenMode # default value for arguments DEFAULT_MODEL_PATH = "GreenBitAI/Qwen-1.5-0.5B-layer-mix-bpw-2.2" diff --git a/inference/utils.py b/inference/utils.py new file mode 100644 index 0000000..a59fa8b --- /dev/null +++ b/inference/utils.py @@ -0,0 +1,112 @@ +from pathlib import Path +import sys + +from transformers.generation.logits_process import ( + LogitsProcessorList, + RepetitionPenaltyLogitsProcessor, + TemperatureLogitsWarper, + TopKLogitsWarper, + TopPLogitsWarper, +) + +# Add the parent directory to sys.path +parent_dir = str(Path(__file__).parent.parent) +if parent_dir not in sys.path: + sys.path.append(parent_dir) + +from inference.conversation import Conversation, get_conv_template + +# value is the search term in model name, +# key is the name of conversation template +CONV_TEMP_DICT = { + "llama-2": "llama-2", + "qwen-chat": "qwen", + "yi-chat": "yi-", + "mistral": "mistral", + "gemma": "gemma", +} + +# Models don't use the same configuration key for determining the maximum +# sequence length. Store them here so we can sanely check them. +# NOTE: The ordering here is important. Some models have two of these and we +# have a preference for which value gets used. +SEQUENCE_LENGTH_KEYS = [ + "max_position_embeddings", + "max_sequence_length", + "seq_length", + "max_seq_len", + "model_max_length", +] + + +def is_partial_stop(output: str, stop_str: str): + """Check whether the output contains a partial stop str.""" + for i in range(0, min(len(output), len(stop_str))): + if stop_str.startswith(output[-i:]): + return True + return False + + +def is_sentence_complete(output: str): + """Check whether the output is a complete sentence.""" + end_symbols = (".", "?", "!", "...", "。", "?", "!", "…", '"', "'", "”") + return output.endswith(end_symbols) + + +def get_context_length(config): + """Get the context length of a model from a huggingface model config.""" + rope_scaling = getattr(config, "rope_scaling", None) + if rope_scaling: + rope_scaling_factor = config.rope_scaling["factor"] + else: + rope_scaling_factor = 1 + + for key in SEQUENCE_LENGTH_KEYS: + val = getattr(config, key, None) + if val is not None: + return int(rope_scaling_factor * val) + return 2048 + + +def get_conversation_template(model_path: str) -> Conversation: + for key, value in CONV_TEMP_DICT.items(): + # check if model path contains the value + if value in model_path.lower(): + return get_conv_template(key) + raise Exception("Invalid model path: The provided model is not supported yet.") + + +def prepare_logits_processor( + temperature: float, repetition_penalty: float, top_p: float, top_k: int +) -> LogitsProcessorList: + processor_list = LogitsProcessorList() + # TemperatureLogitsWarper doesn't accept 0.0, 1.0 makes it a no-op so we skip two cases. + if temperature >= 1e-5 and temperature != 1.0: + processor_list.append(TemperatureLogitsWarper(temperature)) + if repetition_penalty > 1.0: + processor_list.append(RepetitionPenaltyLogitsProcessor(repetition_penalty)) + if 1e-8 <= top_p < 1.0: + processor_list.append(TopPLogitsWarper(top_p)) + if top_k > 0: + processor_list.append(TopKLogitsWarper(top_k)) + return processor_list + + +def str_to_torch_dtype(dtype: str): + import torch + + if dtype is None: + return None + elif dtype == "float32": + return torch.float32 + elif dtype == "float16": + return torch.float16 + elif dtype == "bfloat16": + return torch.bfloat16 + else: + raise ValueError(f"Unrecognized dtype: {dtype}") + + +def is_chat_model(path): + substrings = ["-chat-", "-instruct-"] + return any(substring in path for substring in substrings) \ No newline at end of file From 72b97067754be881f2c34d8f81667545163649c4 Mon Sep 17 00:00:00 2001 From: Haojin Yang Date: Fri, 12 Apr 2024 15:22:28 +0200 Subject: [PATCH 019/125] created README.md for inference package --- green_bit_llm/__init__.py | 2 +- inference/README.md | 56 ++++++++++++++++++++++++++++++++++----- inference/chat_base.py | 11 +++++--- inference/chat_cli.py | 17 ++++++------ inference/conversation.py | 6 ++--- 5 files changed, 69 insertions(+), 23 deletions(-) diff --git a/green_bit_llm/__init__.py b/green_bit_llm/__init__.py index d2585c3..2e4b794 100644 --- a/green_bit_llm/__init__.py +++ b/green_bit_llm/__init__.py @@ -1 +1 @@ -from .model import load \ No newline at end of file +from .model import load, generate \ No newline at end of file diff --git a/inference/README.md b/inference/README.md index 61f44cc..d7a52a2 100644 --- a/inference/README.md +++ b/inference/README.md @@ -1,21 +1,65 @@ -# Inference +# Inference Package for GreenBitAI's Low-bit LLMs ## Overview -This project demonstrates a quick setup for a chat interface using [GreenBitAI's low-bit models](https://huggingface.co/collections/GreenBitAI/) and [FastChat](https://github.com/lm-sys/FastChat)-CLI tool. -It enables conversations using a local model creating an efficient and accessible environment for deploying chat applications. +This package demonstrates the capabilities of [GreenBitAI's low-bit large language models (LLMs)](https://huggingface.co/GreenBitAI) through two main features: +1. Simple generation with `generation.py` script. +2. A command-line interface (CLI) based chat demo using the `chat_cli.py` script. + +Both tools are designed for efficient natural language processing, enabling quick setups and responses using local models. ## Installation +### Prerequisites +Ensure you have Python installed on your machine. It's recommended to use a virtual environment for Python projects to manage dependencies efficiently. + +### Installing Dependencies + +Install green-bit-llm package using pip: + +```bash +pip install green-bit-llm +``` + +Or from source: + +```bash +git clone https://github.com/GreenBitAI/green-bit-llm.git +cd green-bit-llm +pip install -r requirements.txt +``` +Ensure your system has Python3 and pip installed before proceeding. + +For the CLI-based chat demo, install the following additional libraries: ```bash pip install pillow requests prompt_toolkit rich ``` -Installation involves two main steps: setting up the gbx_lm package and installing FastChat along with its dependencies. + +## Usage + +### Simple Generation + +Run the simple generation script as follows: + +```bash +python inference/generation.py --model GreenBitAI/Mistral-7B-v0.1-channel-mix-bpw-2.2 --gpus '0' --trust-remote-code --max-tokens 100 --use-flash-attention-2 --prompt 'The meaning of life is' --ignore-chat-template +``` + +This command generates text based on the provided prompt using the specified GreenBitAI model. + +### CLI-Based Chat Demo + +To start the chat interface: + +```bash +python inference/chat_cli.py --model-path GreenBitAI/Mistral-Instruct-7B-v0.2-layer-mix-bpw-2.2 --style rich --debug +``` + +This launches a rich command-line interface for interactive chatting. -Upon completing these steps, the worker should be operational and accessible via a local URL: http://0.0.0.0:7860. Open this URL in your preferred web browser to begin interacting with your local MLX LLM. Enjoy your conversations! ## License -- `conversation.py`, `chat_base.py` and `chat_cli.py` released under the [Apache 2.0 License](https://github.com/lm-sys/FastChat/tree/main/LICENSE) in [FastChat-serve](https://github.com/lm-sys/FastChat/tree/main/fastchat/serve). +- The scripts `conversation.py`, `chat_base.py`, and `chat_cli.py` have been modified from their original versions found in [FastChat-serve](https://github.com/lm-sys/FastChat/tree/main/fastchat/serve), which are released under the [Apache 2.0 License](https://github.com/lm-sys/FastChat/tree/main/LICENSE). - We release our changes and additions to these files under the [Apache 2.0 License](../LICENSE). \ No newline at end of file diff --git a/inference/chat_base.py b/inference/chat_base.py index 34e119a..57da60e 100644 --- a/inference/chat_base.py +++ b/inference/chat_base.py @@ -1,3 +1,8 @@ +""" +Base classes and functions for cli chat demo. +Code based on: https://github.com/yanghaojin/FastChat/blob/greenbit/fastchat/serve/inference.py +""" + import gc import sys import abc @@ -12,9 +17,9 @@ if parent_dir not in sys.path: sys.path.append(parent_dir) -from green_bit_llm.model import load -from inference.conversation import get_conv_template -from inference.utils import is_partial_stop, is_sentence_complete, get_context_length, prepare_logits_processor, get_conversation_template +from green_bit_llm import load +from .conversation import get_conv_template +from .utils import is_partial_stop, is_sentence_complete, get_context_length, prepare_logits_processor, get_conversation_template import torch diff --git a/inference/chat_cli.py b/inference/chat_cli.py index b08da36..0e410bd 100644 --- a/inference/chat_cli.py +++ b/inference/chat_cli.py @@ -1,8 +1,12 @@ +""" +cli chat demo. +Code based on: https://github.com/yanghaojin/FastChat/blob/greenbit/fastchat/serve/cli.py +""" + import argparse import os import re import sys -from pathlib import Path from prompt_toolkit import PromptSession from prompt_toolkit.auto_suggest import AutoSuggestFromHistory @@ -13,13 +17,8 @@ from rich.live import Live from rich.markdown import Markdown -# Add the parent directory to sys.path -parent_dir = str(Path(__file__).parent.parent) -if parent_dir not in sys.path: - sys.path.append(parent_dir) - -from inference.chat_base import ChatIO, chat_loop -from inference.utils import str_to_torch_dtype, is_chat_model +from .chat_base import ChatIO, chat_loop +from .utils import str_to_torch_dtype, is_chat_model DEFAULT_SEQLEN = 2048 @@ -236,7 +235,7 @@ def main(args): parser.add_argument( "--model-path", type=str, - default="lmsys/vicuna-7b-v1.5", + default="GreenBitAI/Mistral-Instruct-7B-v0.2-layer-mix-bpw-2.2", help="The path to the weights. This can be a local folder or a Hugging Face repo ID.", ) parser.add_argument( diff --git a/inference/conversation.py b/inference/conversation.py index 8324d97..6110f75 100644 --- a/inference/conversation.py +++ b/inference/conversation.py @@ -1,8 +1,6 @@ """ -Conversation prompt templates. - -We kindly request that you import fastchat instead of copying this file if you wish to use it. -If you have any changes in mind, please contribute back so the community can benefit collectively and continue to maintain these valuable templates. +Conversation prompt templates for cli chat demo. +code based on: https://github.com/yanghaojin/FastChat/blob/greenbit/fastchat/conversation.py """ import base64 From d2a1da4fac2ea2aeedfc9b6d76ecd59e7398ef41 Mon Sep 17 00:00:00 2001 From: Haojin Yang Date: Fri, 12 Apr 2024 18:33:32 +0200 Subject: [PATCH 020/125] created chat cli, improved simple generation script. --- green_bit_llm/model.py | 10 +- inference/README.md | 11 +- inference/chat_base.py | 131 ++++++++++++++- inference/chat_cli.py | 203 +++--------------------- inference/conversation.py | 12 ++ inference/{generation.py => sim_gen.py} | 7 +- inference/utils.py | 2 +- 7 files changed, 179 insertions(+), 197 deletions(-) rename inference/{generation.py => sim_gen.py} (97%) diff --git a/green_bit_llm/model.py b/green_bit_llm/model.py index 736a691..3ef3dad 100644 --- a/green_bit_llm/model.py +++ b/green_bit_llm/model.py @@ -1,6 +1,7 @@ from pathlib import Path from typing import Optional, Tuple, Dict import json +import sys import torch import torch.nn as nn @@ -8,8 +9,13 @@ from transformers import PreTrainedTokenizer, AutoTokenizer, AutoConfig, AutoModelForCausalLM, PreTrainedModel, logging import accelerate -from .utils import get_layer_mode_from_name, LayerMode, get_packed_info, get_model_path, find_layers, apply_dtype_to -from .enum import LayerMode, TextGenMode +# Add the parent directory to sys.path +parent_dir = str(Path(__file__).parent.parent) +if parent_dir not in sys.path: + sys.path.append(parent_dir) + +from green_bit_llm.utils import get_layer_mode_from_name, LayerMode, get_packed_info, get_model_path, find_layers, apply_dtype_to +from green_bit_llm.enum import LayerMode, TextGenMode import time from transformers import logging diff --git a/inference/README.md b/inference/README.md index d7a52a2..68060c2 100644 --- a/inference/README.md +++ b/inference/README.md @@ -3,7 +3,7 @@ ## Overview This package demonstrates the capabilities of [GreenBitAI's low-bit large language models (LLMs)](https://huggingface.co/GreenBitAI) through two main features: -1. Simple generation with `generation.py` script. +1. Simple generation with `sim_gen.py` script. 2. A command-line interface (CLI) based chat demo using the `chat_cli.py` script. Both tools are designed for efficient natural language processing, enabling quick setups and responses using local models. @@ -21,7 +21,7 @@ Install green-bit-llm package using pip: pip install green-bit-llm ``` -Or from source: +or from source: ```bash git clone https://github.com/GreenBitAI/green-bit-llm.git @@ -43,7 +43,7 @@ pip install pillow requests prompt_toolkit rich Run the simple generation script as follows: ```bash -python inference/generation.py --model GreenBitAI/Mistral-7B-v0.1-channel-mix-bpw-2.2 --gpus '0' --trust-remote-code --max-tokens 100 --use-flash-attention-2 --prompt 'The meaning of life is' --ignore-chat-template +CUDA_VISIBLE_DEVICES=0 python inference/sim_gen.py --model GreenBitAI/Qwen-1.5-1.8B-layer-mix-bpw-3.0 --max-tokens 100 --use-flash-attention-2 --ignore-chat-template ``` This command generates text based on the provided prompt using the specified GreenBitAI model. @@ -53,13 +53,10 @@ This command generates text based on the provided prompt using the specified Gre To start the chat interface: ```bash -python inference/chat_cli.py --model-path GreenBitAI/Mistral-Instruct-7B-v0.2-layer-mix-bpw-2.2 --style rich --debug +CUDA_VISIBLE_DEVICES=0 python inference/chat_cli.py --model-path GreenBitAI/yi-6b-chat-w4a16g256 --debug --use-flash-attention-2 --multiline --mouse ``` - This launches a rich command-line interface for interactive chatting. - - ## License - The scripts `conversation.py`, `chat_base.py`, and `chat_cli.py` have been modified from their original versions found in [FastChat-serve](https://github.com/lm-sys/FastChat/tree/main/fastchat/serve), which are released under the [Apache 2.0 License](https://github.com/lm-sys/FastChat/tree/main/LICENSE). - We release our changes and additions to these files under the [Apache 2.0 License](../LICENSE). \ No newline at end of file diff --git a/inference/chat_base.py b/inference/chat_base.py index 57da60e..feda8ad 100644 --- a/inference/chat_base.py +++ b/inference/chat_base.py @@ -2,7 +2,7 @@ Base classes and functions for cli chat demo. Code based on: https://github.com/yanghaojin/FastChat/blob/greenbit/fastchat/serve/inference.py """ - +import re import gc import sys import abc @@ -12,16 +12,25 @@ from pathlib import Path from typing import Optional, Dict, Iterable +from prompt_toolkit import PromptSession +from prompt_toolkit.auto_suggest import AutoSuggestFromHistory +from prompt_toolkit.completion import WordCompleter +from prompt_toolkit.history import InMemoryHistory +from prompt_toolkit.key_binding import KeyBindings +from rich.console import Console +from rich.live import Live +from rich.markdown import Markdown + +import torch + # Add the parent directory to sys.path parent_dir = str(Path(__file__).parent.parent) if parent_dir not in sys.path: sys.path.append(parent_dir) from green_bit_llm import load -from .conversation import get_conv_template -from .utils import is_partial_stop, is_sentence_complete, get_context_length, prepare_logits_processor, get_conversation_template - -import torch +from conversation import get_conv_template +from utils import is_partial_stop, is_sentence_complete, get_context_length, prepare_logits_processor, get_conversation_template class ChatIO(abc.ABC): @@ -42,6 +51,118 @@ def print_output(self, text: str): """Print output.""" +class SimpleChatIO(ChatIO): + def __init__(self, multiline: bool = False): + self._multiline = multiline + + def prompt_for_input(self, role) -> str: + if not self._multiline: + return input(f"{role}: ") + + prompt_data = [] + line = input(f"{role} [ctrl-d/z on empty line to end]: ") + while True: + prompt_data.append(line.strip()) + try: + line = input() + except EOFError as e: + break + return "\n".join(prompt_data) + + def prompt_for_output(self, role: str): + print(f"{role}: ", end="", flush=True) + + def stream_output(self, output_stream): + pre = 0 + for outputs in output_stream: + output_text = outputs["text"] + output_text = output_text.strip().split(" ") + now = len(output_text) - 1 + if now > pre: + print(" ".join(output_text[pre:now]), end=" ", flush=True) + pre = now + print(" ".join(output_text[pre:]), flush=True) + return " ".join(output_text) + + def print_output(self, text: str): + print(text) + + +class RichChatIO(ChatIO): + bindings = KeyBindings() + + @bindings.add("escape", "enter") + def _(event): + event.app.current_buffer.newline() + + def __init__(self, multiline: bool = False, mouse: bool = False): + self._prompt_session = PromptSession(history=InMemoryHistory()) + self._completer = WordCompleter( + words=["!!exit", "!!reset", "!!remove", "!!regen", "!!save", "!!load"], + pattern=re.compile("$"), + ) + self._console = Console() + self._multiline = multiline + self._mouse = mouse + + def prompt_for_input(self, role) -> str: + self._console.print(f"[bold]{role}:") + # TODO(suquark): multiline input has some issues. fix it later. + prompt_input = self._prompt_session.prompt( + completer=self._completer, + multiline=False, + mouse_support=self._mouse, + auto_suggest=AutoSuggestFromHistory(), + key_bindings=self.bindings if self._multiline else None, + ) + self._console.print() + return prompt_input + + def prompt_for_output(self, role: str): + self._console.print(f"[bold]{role.replace('/', '|')}:") + + def stream_output(self, output_stream): + """Stream output from a role.""" + # TODO(suquark): the console flickers when there is a code block + # above it. We need to cut off "live" when a code block is done. + + # Create a Live context for updating the console output + with Live(console=self._console, refresh_per_second=4) as live: + # Read lines from the stream + for outputs in output_stream: + if not outputs: + continue + text = outputs["text"] + # Render the accumulated text as Markdown + # NOTE: this is a workaround for the rendering "unstandard markdown" + # in rich. The chatbots output treat "\n" as a new line for + # better compatibility with real-world text. However, rendering + # in markdown would break the format. It is because standard markdown + # treat a single "\n" in normal text as a space. + # Our workaround is adding two spaces at the end of each line. + # This is not a perfect solution, as it would + # introduce trailing spaces (only) in code block, but it works well + # especially for console output, because in general the console does not + # care about trailing spaces. + lines = [] + for line in text.splitlines(): + lines.append(line) + if line.startswith("```"): + # Code block marker - do not add trailing spaces, as it would + # break the syntax highlighting + lines.append("\n") + else: + lines.append(" \n") + markdown = Markdown("".join(lines)) + # Update the Live console output + live.update(markdown) + self._console.print() + return text + + def print_output(self, text: str): + self.stream_output([{"text": text}]) + + @torch.inference_mode() def generate_stream( model, diff --git a/inference/chat_cli.py b/inference/chat_cli.py index 0e410bd..68404f4 100644 --- a/inference/chat_cli.py +++ b/inference/chat_cli.py @@ -5,174 +5,13 @@ import argparse import os -import re import sys +import warnings +warnings.filterwarnings("ignore", category=UserWarning, module='torch.nn.modules.module') -from prompt_toolkit import PromptSession -from prompt_toolkit.auto_suggest import AutoSuggestFromHistory -from prompt_toolkit.completion import WordCompleter -from prompt_toolkit.history import InMemoryHistory -from prompt_toolkit.key_binding import KeyBindings -from rich.console import Console -from rich.live import Live -from rich.markdown import Markdown +import torch -from .chat_base import ChatIO, chat_loop -from .utils import str_to_torch_dtype, is_chat_model - -DEFAULT_SEQLEN = 2048 - - -class SimpleChatIO(ChatIO): - def __init__(self, multiline: bool = False): - self._multiline = multiline - - def prompt_for_input(self, role) -> str: - if not self._multiline: - return input(f"{role}: ") - - prompt_data = [] - line = input(f"{role} [ctrl-d/z on empty line to end]: ") - while True: - prompt_data.append(line.strip()) - try: - line = input() - except EOFError as e: - break - return "\n".join(prompt_data) - - def prompt_for_output(self, role: str): - print(f"{role}: ", end="", flush=True) - - def stream_output(self, output_stream): - pre = 0 - for outputs in output_stream: - output_text = outputs["text"] - output_text = output_text.strip().split(" ") - now = len(output_text) - 1 - if now > pre: - print(" ".join(output_text[pre:now]), end=" ", flush=True) - pre = now - print(" ".join(output_text[pre:]), flush=True) - return " ".join(output_text) - - def print_output(self, text: str): - print(text) - - -class RichChatIO(ChatIO): - bindings = KeyBindings() - - @bindings.add("escape", "enter") - def _(event): - event.app.current_buffer.newline() - - def __init__(self, multiline: bool = False, mouse: bool = False): - self._prompt_session = PromptSession(history=InMemoryHistory()) - self._completer = WordCompleter( - words=["!!exit", "!!reset", "!!remove", "!!regen", "!!save", "!!load"], - pattern=re.compile("$"), - ) - self._console = Console() - self._multiline = multiline - self._mouse = mouse - - def prompt_for_input(self, role) -> str: - self._console.print(f"[bold]{role}:") - # TODO(suquark): multiline input has some issues. fix it later. - prompt_input = self._prompt_session.prompt( - completer=self._completer, - multiline=False, - mouse_support=self._mouse, - auto_suggest=AutoSuggestFromHistory(), - key_bindings=self.bindings if self._multiline else None, - ) - self._console.print() - return prompt_input - - def prompt_for_output(self, role: str): - self._console.print(f"[bold]{role.replace('/', '|')}:") - - def stream_output(self, output_stream): - """Stream output from a role.""" - # TODO(suquark): the console flickers when there is a code block - # above it. We need to cut off "live" when a code block is done. - - # Create a Live context for updating the console output - with Live(console=self._console, refresh_per_second=4) as live: - # Read lines from the stream - for outputs in output_stream: - if not outputs: - continue - text = outputs["text"] - # Render the accumulated text as Markdown - # NOTE: this is a workaround for the rendering "unstandard markdown" - # in rich. The chatbots output treat "\n" as a new line for - # better compatibility with real-world text. However, rendering - # in markdown would break the format. It is because standard markdown - # treat a single "\n" in normal text as a space. - # Our workaround is adding two spaces at the end of each line. - # This is not a perfect solution, as it would - # introduce trailing spaces (only) in code block, but it works well - # especially for console output, because in general the console does not - # care about trailing spaces. - lines = [] - for line in text.splitlines(): - lines.append(line) - if line.startswith("```"): - # Code block marker - do not add trailing spaces, as it would - # break the syntax highlighting - lines.append("\n") - else: - lines.append(" \n") - markdown = Markdown("".join(lines)) - # Update the Live console output - live.update(markdown) - self._console.print() - return text - - def print_output(self, text: str): - self.stream_output([{"text": text}]) - - -class ProgrammaticChatIO(ChatIO): - def prompt_for_input(self, role) -> str: - contents = "" - # `end_sequence` signals the end of a message. It is unlikely to occur in - # message content. - end_sequence = " __END_OF_A_MESSAGE_47582648__\n" - len_end = len(end_sequence) - while True: - if len(contents) >= len_end: - last_chars = contents[-len_end:] - if last_chars == end_sequence: - break - try: - char = sys.stdin.read(1) - contents = contents + char - except EOFError: - continue - contents = contents[:-len_end] - print(f"[!OP:{role}]: {contents}", flush=True) - return contents - - def prompt_for_output(self, role: str): - print(f"[!OP:{role}]: ", end="", flush=True) - - def stream_output(self, output_stream): - pre = 0 - for outputs in output_stream: - output_text = outputs["text"] - output_text = output_text.strip().split(" ") - now = len(output_text) - 1 - if now > pre: - print(" ".join(output_text[pre:now]), end=" ", flush=True) - pre = now - print(" ".join(output_text[pre:]), flush=True) - return " ".join(output_text) - - def print_output(self, text: str): - print(text) +from utils import str_to_torch_dtype, is_chat_model def main(args): @@ -182,13 +21,21 @@ def main(args): raise ValueError( f"Larger --num-gpus ({args.num_gpus}) than --gpus {args.gpus}!" ) + # NOTE that we need to set this before any other cuda operations. Otherwise will not work. os.environ["CUDA_VISIBLE_DEVICES"] = args.gpus + + if not torch.cuda.is_available(): + raise Exception("Warning: CUDA is needed to run the model.") + + try: + from chat_base import chat_loop, SimpleChatIO, RichChatIO + except Exception: + raise Exception("Error occurred when import chat loop, ChatIO classes.") + if args.style == "simple": chatio = SimpleChatIO(args.multiline) elif args.style == "rich": chatio = RichChatIO(args.multiline, args.mouse) - elif args.style == "programmatic": - chatio = ProgrammaticChatIO() else: raise ValueError(f"Invalid style for console: {args.style}") @@ -248,21 +95,16 @@ def main(args): parser.add_argument( "--gpus", type=str, - default=None, + default='0', help="A single GPU like 1 or multiple GPUs like 0,2", ) parser.add_argument("--num-gpus", type=int, default=1) - parser.add_argument( - "--max-gpu-memory", - type=str, - help="The maximum memory per GPU for storing model weights. Use a string like '13Gib'", - ) parser.add_argument( "--dtype", type=str, choices=["float32", "float16"], help="Override the default dtype. If not set, it will use float16 on GPU and float32 on CPU.", - default=None, + default="float16", ) parser.add_argument( "--conv-template", type=str, default=None, help="Conversation prompt template." @@ -273,12 +115,12 @@ def main(args): parser.add_argument("--temperature", type=float, default=0.7) parser.add_argument("--repetition_penalty", type=float, default=1.0) parser.add_argument("--max-new-tokens", type=int, default=256) - parser.add_argument("--no-history", action="store_true") + parser.add_argument("--no-history", action="store_true", help="Disables chat history.") parser.add_argument( "--style", type=str, - default="simple", - choices=["simple", "rich", "programmatic"], + default="rich", + choices=["simple", "rich"], help="Display style.", ) parser.add_argument( @@ -313,7 +155,12 @@ def main(args): help="Enable trusting remote code", ) parser.add_argument( - "--seqlen", type=int, default=DEFAULT_SEQLEN, help="Sequence length" + "--seqlen", type=int, default=2048, help="Sequence length" + ) + parser.add_argument( + "--use-flash-attention-2", + action="store_true", + help="Enable using flash attention v2", ) args = parser.parse_args() main(args) \ No newline at end of file diff --git a/inference/conversation.py b/inference/conversation.py index 6110f75..f146892 100644 --- a/inference/conversation.py +++ b/inference/conversation.py @@ -20,6 +20,7 @@ class SeparatorStyle(IntEnum): NO_COLON_TWO = auto() ADD_NEW_LINE_SINGLE = auto() LLAMA2 = auto() + CHATML = auto() IMAGE_PLACEHOLDER_STR = "$$$$" @@ -123,6 +124,17 @@ def get_prompt(self) -> str: else: ret += tag return ret + elif self.sep_style == SeparatorStyle.CHATML: + ret = "" if system_prompt == "" else system_prompt + self.sep + "\n" + for role, message in self.messages: + if message: + if type(message) is tuple: + message, images = message + message = IMAGE_PLACEHOLDER_STR * len(images) + message + ret += role + "\n" + message + self.sep + "\n" + else: + ret += role + "\n" + return ret else: raise ValueError(f"Invalid style: {self.sep_style}") diff --git a/inference/generation.py b/inference/sim_gen.py similarity index 97% rename from inference/generation.py rename to inference/sim_gen.py index 49b9afd..4f1b650 100644 --- a/inference/generation.py +++ b/inference/sim_gen.py @@ -17,8 +17,6 @@ if parent_dir not in sys.path: sys.path.append(parent_dir) -from green_bit_llm.model import load, generate - # default value for arguments DEFAULT_MODEL_PATH = "GreenBitAI/Qwen-1.5-0.5B-layer-mix-bpw-2.2" DEFAULT_PROMPT = None @@ -110,6 +108,7 @@ def do_generate(args, model: nn.Module, tokenizer: PreTrainedTokenizer, prompt: else: prompt = prompt + from green_bit_llm import generate generate( model, tokenizer, @@ -131,8 +130,7 @@ def main(args): os.environ["CUDA_VISIBLE_DEVICES"] = args.gpus if not torch.cuda.is_available(): - print("Warning: CUDA is needed to run the model.") - sys.exit(0) + raise Exception("Warning: CUDA is needed to run the model.") # Building configs tokenizer_config = {"trust_remote_code": True if args.trust_remote_code else None} @@ -144,6 +142,7 @@ def main(args): if args.eos_token is not None: tokenizer_config["eos_token"] = args.eos_token + from green_bit_llm import load model, tokenizer, config = load( args.model, tokenizer_config=tokenizer_config, diff --git a/inference/utils.py b/inference/utils.py index a59fa8b..821736f 100644 --- a/inference/utils.py +++ b/inference/utils.py @@ -100,7 +100,7 @@ def str_to_torch_dtype(dtype: str): elif dtype == "float32": return torch.float32 elif dtype == "float16": - return torch.float16 + return torch.half elif dtype == "bfloat16": return torch.bfloat16 else: From 640771eb9dd4a1c07fc5a2e2177f310f8b216764 Mon Sep 17 00:00:00 2001 From: NicoNico6 <1751277309@qq.com> Date: Fri, 12 Apr 2024 20:22:55 +0200 Subject: [PATCH 021/125] add lm_eval version --- evaluation/README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/evaluation/README.md b/evaluation/README.md index c22262c..020ecb2 100644 --- a/evaluation/README.md +++ b/evaluation/README.md @@ -1,7 +1,7 @@ ## Evaluation Example evaluation scripts for the GreenBitAI family of low-bit models. -- `evaluate.py` contains code to evaluate model ppl performance on `wikitext2,c4_new,ptb` tasks, and few shot ability using `lm_eval` library. +- `evaluate.py` contains code to evaluate model ppl performance on `wikitext2,c4_new,ptb` tasks, and few shot ability using `lm_eval=0.3.0` library. - `--seed` The random seed for data loader. - `--model` The path to the local model directory or Hugging Face repo. - `--cuda-device-id` CUDA device IDs. From b74227a18a075f295e4b3e24a582e44df4c98434 Mon Sep 17 00:00:00 2001 From: NicoNico6 <1751277309@qq.com> Date: Fri, 12 Apr 2024 20:27:12 +0200 Subject: [PATCH 022/125] fix lm_eval version issue --- evaluation/README.md | 2 +- requirements.txt | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/evaluation/README.md b/evaluation/README.md index 020ecb2..2dea069 100644 --- a/evaluation/README.md +++ b/evaluation/README.md @@ -1,7 +1,7 @@ ## Evaluation Example evaluation scripts for the GreenBitAI family of low-bit models. -- `evaluate.py` contains code to evaluate model ppl performance on `wikitext2,c4_new,ptb` tasks, and few shot ability using `lm_eval=0.3.0` library. +- `evaluate.py` contains code to evaluate model ppl performance on `wikitext2,c4_new,ptb` tasks, and few shot ability using `lm_eval==0.3.0` library. - `--seed` The random seed for data loader. - `--model` The path to the local model directory or Hugging Face repo. - `--cuda-device-id` CUDA device IDs. diff --git a/requirements.txt b/requirements.txt index 4e988b6..f2705f6 100644 --- a/requirements.txt +++ b/requirements.txt @@ -6,4 +6,4 @@ sentencepiece transformers>=4.38.0 huggingface_hub flash-attn -lm_eval=0.3.0 +lm_eval==0.3.0 From 3942946187ce64060fb589402cb65b26e34f7844 Mon Sep 17 00:00:00 2001 From: Haojin Yang Date: Sat, 13 Apr 2024 23:32:37 +0200 Subject: [PATCH 023/125] Added an additional library installation information and some minor modifications. --- evaluation/README.md | 10 ++++++++++ evaluation/datautils.py | 2 -- evaluation/evaluate.py | 5 +---- evaluation/lmclass.py | 4 +--- 4 files changed, 12 insertions(+), 9 deletions(-) diff --git a/evaluation/README.md b/evaluation/README.md index 2dea069..4d80f9d 100644 --- a/evaluation/README.md +++ b/evaluation/README.md @@ -1,5 +1,15 @@ ## Evaluation +### Installing Dependencies + +Ensure your system has Python3 and pip installed before proceeding and install the following additional libraries: + +```bash +pip install lm_eval==0.3.0 termcolor +``` + +### Command Details + Example evaluation scripts for the GreenBitAI family of low-bit models. - `evaluate.py` contains code to evaluate model ppl performance on `wikitext2,c4_new,ptb` tasks, and few shot ability using `lm_eval==0.3.0` library. - `--seed` The random seed for data loader. diff --git a/evaluation/datautils.py b/evaluation/datautils.py index db037ca..7e54a1d 100644 --- a/evaluation/datautils.py +++ b/evaluation/datautils.py @@ -1,7 +1,5 @@ -import pdb from transformers import AutoTokenizer from datasets import load_dataset -import numpy as np import torch import random diff --git a/evaluation/evaluate.py b/evaluation/evaluate.py index 56db084..2ee11dd 100644 --- a/evaluation/evaluate.py +++ b/evaluation/evaluate.py @@ -1,17 +1,14 @@ import os import argparse import sys -import json -import pprint import torch import torch.nn as nn -from transformers import PreTrainedTokenizer from tqdm import tqdm from .lmclass import LMClass -from .utils import create_logger, add_dict_to_json_file, pattern_match +from .utils import create_logger, add_dict_to_json_file from .datautils import get_loaders from green_bit_llm.model import load diff --git a/evaluation/lmclass.py b/evaluation/lmclass.py index 2dd02d8..1194289 100644 --- a/evaluation/lmclass.py +++ b/evaluation/lmclass.py @@ -1,9 +1,7 @@ -import torch from lm_eval.base import BaseLM import torch.nn.functional as F -from torch import nn import torch -from tqdm import tqdm + class LMClass(BaseLM): """ From faec58990b27e4dad508c42fd5eddf42c3f4a371 Mon Sep 17 00:00:00 2001 From: Haojin Yang Date: Sun, 14 Apr 2024 01:06:29 +0200 Subject: [PATCH 024/125] improved inference package, readme --- environment.yml | 5 +++++ green_bit_llm/model.py | 9 ++------- inference/README.md | 4 ++-- inference/chat_base.py | 10 +++------- inference/chat_cli.py | 6 +++--- inference/sim_gen.py | 5 ----- inference/utils.py | 7 +------ 7 files changed, 16 insertions(+), 30 deletions(-) diff --git a/environment.yml b/environment.yml index 5b347cd..6a22cbd 100644 --- a/environment.yml +++ b/environment.yml @@ -10,3 +10,8 @@ dependencies: - sentencepiece - huggingface_hub - transformers>=4.38.0 + - accelerate + - colorama + - flash-attn + - datasets + - lm_eval==0.3.0 diff --git a/green_bit_llm/model.py b/green_bit_llm/model.py index 3ef3dad..df3ed3a 100644 --- a/green_bit_llm/model.py +++ b/green_bit_llm/model.py @@ -9,13 +9,8 @@ from transformers import PreTrainedTokenizer, AutoTokenizer, AutoConfig, AutoModelForCausalLM, PreTrainedModel, logging import accelerate -# Add the parent directory to sys.path -parent_dir = str(Path(__file__).parent.parent) -if parent_dir not in sys.path: - sys.path.append(parent_dir) - -from green_bit_llm.utils import get_layer_mode_from_name, LayerMode, get_packed_info, get_model_path, find_layers, apply_dtype_to -from green_bit_llm.enum import LayerMode, TextGenMode +from .utils import get_layer_mode_from_name, get_packed_info, get_model_path, find_layers, apply_dtype_to +from .enum import LayerMode, TextGenMode import time from transformers import logging diff --git a/inference/README.md b/inference/README.md index 68060c2..b238870 100644 --- a/inference/README.md +++ b/inference/README.md @@ -43,7 +43,7 @@ pip install pillow requests prompt_toolkit rich Run the simple generation script as follows: ```bash -CUDA_VISIBLE_DEVICES=0 python inference/sim_gen.py --model GreenBitAI/Qwen-1.5-1.8B-layer-mix-bpw-3.0 --max-tokens 100 --use-flash-attention-2 --ignore-chat-template +CUDA_VISIBLE_DEVICES=0 python -m inference.sim_gen --model GreenBitAI/Qwen-1.5-1.8B-layer-mix-bpw-3.0 --max-tokens 100 --use-flash-attention-2 --ignore-chat-template ``` This command generates text based on the provided prompt using the specified GreenBitAI model. @@ -53,7 +53,7 @@ This command generates text based on the provided prompt using the specified Gre To start the chat interface: ```bash -CUDA_VISIBLE_DEVICES=0 python inference/chat_cli.py --model-path GreenBitAI/yi-6b-chat-w4a16g256 --debug --use-flash-attention-2 --multiline --mouse +CUDA_VISIBLE_DEVICES=0 python -m inference.chat_cli --model-path GreenBitAI/yi-6b-chat-w4a16g256 --debug --use-flash-attention-2 --multiline --mouse ``` This launches a rich command-line interface for interactive chatting. diff --git a/inference/chat_base.py b/inference/chat_base.py index feda8ad..7cf673a 100644 --- a/inference/chat_base.py +++ b/inference/chat_base.py @@ -23,14 +23,10 @@ import torch -# Add the parent directory to sys.path -parent_dir = str(Path(__file__).parent.parent) -if parent_dir not in sys.path: - sys.path.append(parent_dir) - from green_bit_llm import load -from conversation import get_conv_template -from utils import is_partial_stop, is_sentence_complete, get_context_length, prepare_logits_processor, get_conversation_template + +from .conversation import get_conv_template +from .utils import is_partial_stop, is_sentence_complete, get_context_length, prepare_logits_processor, get_conversation_template class ChatIO(abc.ABC): diff --git a/inference/chat_cli.py b/inference/chat_cli.py index 68404f4..790dc36 100644 --- a/inference/chat_cli.py +++ b/inference/chat_cli.py @@ -2,7 +2,6 @@ cli chat demo. Code based on: https://github.com/yanghaojin/FastChat/blob/greenbit/fastchat/serve/cli.py """ - import argparse import os import sys @@ -11,7 +10,8 @@ import torch -from utils import str_to_torch_dtype, is_chat_model +# Add the parent directory to sys.path +from .utils import str_to_torch_dtype, is_chat_model def main(args): @@ -28,7 +28,7 @@ def main(args): raise Exception("Warning: CUDA is needed to run the model.") try: - from chat_base import chat_loop, SimpleChatIO, RichChatIO + from .chat_base import chat_loop, SimpleChatIO, RichChatIO except Exception: raise Exception("Error occurred when import chat loop, ChatIO classes.") diff --git a/inference/sim_gen.py b/inference/sim_gen.py index 4f1b650..5fbb441 100644 --- a/inference/sim_gen.py +++ b/inference/sim_gen.py @@ -12,11 +12,6 @@ from pathlib import Path -# Add the parent directory to sys.path -parent_dir = str(Path(__file__).parent.parent) -if parent_dir not in sys.path: - sys.path.append(parent_dir) - # default value for arguments DEFAULT_MODEL_PATH = "GreenBitAI/Qwen-1.5-0.5B-layer-mix-bpw-2.2" DEFAULT_PROMPT = None diff --git a/inference/utils.py b/inference/utils.py index 821736f..37e73ed 100644 --- a/inference/utils.py +++ b/inference/utils.py @@ -9,12 +9,7 @@ TopPLogitsWarper, ) -# Add the parent directory to sys.path -parent_dir = str(Path(__file__).parent.parent) -if parent_dir not in sys.path: - sys.path.append(parent_dir) - -from inference.conversation import Conversation, get_conv_template +from .conversation import Conversation, get_conv_template # value is the search term in model name, # key is the name of conversation template From 32cf1e4e4487bd88aa2666d7af908c70b04633df Mon Sep 17 00:00:00 2001 From: Haojin Yang Date: Sun, 14 Apr 2024 01:06:56 +0200 Subject: [PATCH 025/125] added draft setup.py --- setup.py | 27 +++++++++++++++++++++++++++ 1 file changed, 27 insertions(+) create mode 100644 setup.py diff --git a/setup.py b/setup.py new file mode 100644 index 0000000..75398a0 --- /dev/null +++ b/setup.py @@ -0,0 +1,27 @@ +import sys +from pathlib import Path + +from setuptools import setup + +package_dir = Path(__file__).parent / "green_bit_llm" +with open(Path(__file__).parent / "requirements.txt") as fid: + requirements = [l.strip() for l in fid.readlines()] + +sys.path.append(str(package_dir)) +from version import __version__ + +setup( + name="green-bit-llm", + version=__version__, + description="A toolkit for fine-tuning, inference, and evaluating GreenBitAI's LLMs.", + long_description=open("README.md", encoding="utf-8").read(), + long_description_content_type="text/markdown", + readme="README.md", + author_email="team@greenbit.ai", + author="GreenBitAI Contributors", + url="https://github.com/GreenBitAI/green-bit-llm", + license="Apache-2.0", + install_requires=requirements, + packages=["green_bit_llm"], + python_requires=">=3.9", +) From 075adfd93d1968cfa1b3115a5da2b90633cb000f Mon Sep 17 00:00:00 2001 From: Haojin Yang Date: Mon, 15 Apr 2024 09:32:38 +0200 Subject: [PATCH 026/125] improved requirement and reame in project root --- README.md | 45 +++++++++++++++++++++++++++++------------- environment.yml | 5 +++++ green_bit_llm/model.py | 1 - requirements.txt | 5 +++++ 4 files changed, 41 insertions(+), 15 deletions(-) diff --git a/README.md b/README.md index 2e6a024..7bbe21d 100644 --- a/README.md +++ b/README.md @@ -5,18 +5,27 @@ A toolkit for fine-tuning, inference, and evaluating GreenBitAI's LLMs. ## Introduction This Python package uses the [Bitorch Engine](https://github.com/GreenBitAI/bitorch-engine) for efficient operations on [GreenBitAI's Low-bit Language Models (LLMs)](https://huggingface.co/GreenBitAI). -It enables high-performance inference on both cloud-based and consumer-level GPUs, and supports full-parameter fine-tuning directly using quantized LLMs. -Additionally, you can use our provided evaluation tools to validate the model's performance on mainstream benchmark datasets. +It enables **high-performance inference** on both cloud-based and consumer-level GPUs, and supports **full-parameter fine-tuning** directly **using quantized LLMs**. +Additionally, you can use our provided **evaluation tools** to validate the model's performance on mainstream benchmark datasets. +## Installation -## Features +### Using Pip -## Installation -To get started with this package, simply clone the repository and install the required dependencies (for Python >= 3.9): +```bash +pip install green-bit-llm +``` + +### From source + +simply clone the repository and install the required dependencies (for Python >= 3.9): ```bash git clone https://github.com/GreenBitAI/green-bit-llm.git pip install -r requirements.txt ``` + +### Conda + Alternatively you can also use the prepared conda environment configuration: ```bash conda env create -f environment.yml @@ -26,15 +35,15 @@ conda activate gbai_cuda_lm ## Usage ### Inference -TODO: link to readme file in the sub-directory +Please see the description of the [Inference package](inference/README.md) for details. ### Evaluation -TODO: link to readme file in the sub-directory +Please see the description of the [Evaluation package](evaluation/README.md) for details. ### sft -TODO: link to readme file in the sub-directory +Please see the description of the [sft package](sft/README.md) for details. ## Requirements @@ -42,18 +51,26 @@ TODO: link to readme file in the sub-directory - See `requirements.txt` or `environment.yml` for a complete list of dependencies ## Examples - -```bash +### Simple Generation + +Run the simple generation script as follows: + +```bash +CUDA_VISIBLE_DEVICES=0 python -m inference.sim_gen --model GreenBitAI/Qwen-1.5-1.8B-layer-mix-bpw-3.0 --max-tokens 100 --use-flash-attention-2 --ignore-chat-template ``` +### PPL Evaluation ```bash +CUDA_VISIBLE_DEVICES=0 python -m evaluation.evaluate --model GreenBitAI/Qwen-1.5-4B-layer-mix-bpw-3.0 --trust-remote-code --eval-ppl --ppl-tasks wikitext2,c4_new,ptb +``` + +### Run sft +```bash ``` ## License -The original code was released under its respective license and copyrights, i.e.: - -- ... -- We release our changes and additions to these files under the [Apache 2.0 License](LICENSE). +We release our codes under the [Apache 2.0 License](LICENSE). +Additionally, three packages are also partly based on third-party open-source codes. For detailed information, please refer to the description pages of the sub-projects. diff --git a/environment.yml b/environment.yml index 6a22cbd..6ae7ef1 100644 --- a/environment.yml +++ b/environment.yml @@ -15,3 +15,8 @@ dependencies: - flash-attn - datasets - lm_eval==0.3.0 + - termcolor + - pillow + - requests + - prompt_toolkit + - rich diff --git a/green_bit_llm/model.py b/green_bit_llm/model.py index df3ed3a..11a219b 100644 --- a/green_bit_llm/model.py +++ b/green_bit_llm/model.py @@ -1,7 +1,6 @@ from pathlib import Path from typing import Optional, Tuple, Dict import json -import sys import torch import torch.nn as nn diff --git a/requirements.txt b/requirements.txt index f2705f6..1f784ab 100644 --- a/requirements.txt +++ b/requirements.txt @@ -7,3 +7,8 @@ transformers>=4.38.0 huggingface_hub flash-attn lm_eval==0.3.0 +termcolor +pillow +requests +prompt_toolkit +rich \ No newline at end of file From 83c1edaabc6e20d97138f6ff4ee4d541c6a6f2cb Mon Sep 17 00:00:00 2001 From: Haojin Yang Date: Mon, 15 Apr 2024 09:41:04 +0200 Subject: [PATCH 027/125] added version information into package init. --- green_bit_llm/__init__.py | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/green_bit_llm/__init__.py b/green_bit_llm/__init__.py index 2e4b794..18093a6 100644 --- a/green_bit_llm/__init__.py +++ b/green_bit_llm/__init__.py @@ -1 +1,2 @@ -from .model import load, generate \ No newline at end of file +from .model import load, generate +from .version import __version__ \ No newline at end of file From a469b161788ac61a0e63aa69d17892d21b768340 Mon Sep 17 00:00:00 2001 From: Haojin Yang Date: Mon, 15 Apr 2024 11:10:03 +0200 Subject: [PATCH 028/125] added bitorch engine into the requirement section of the readme file. --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index 7bbe21d..fb50d90 100644 --- a/README.md +++ b/README.md @@ -48,6 +48,7 @@ Please see the description of the [sft package](sft/README.md) for details. ## Requirements - Python 3.x +- [Bitorch Engine](https://github.com/GreenBitAI/bitorch-engine) - See `requirements.txt` or `environment.yml` for a complete list of dependencies ## Examples From fc02c80f0140f8c689c63ba1c523becbaadb06f2 Mon Sep 17 00:00:00 2001 From: NicoNico6 <1751277309@qq.com> Date: Mon, 15 Apr 2024 11:31:50 +0200 Subject: [PATCH 029/125] add zero-shot results --- evaluation/README.md | 14 ++++++++++++++ 1 file changed, 14 insertions(+) diff --git a/evaluation/README.md b/evaluation/README.md index 4d80f9d..cbc9063 100644 --- a/evaluation/README.md +++ b/evaluation/README.md @@ -36,3 +36,17 @@ python -m evaluation.evaluate --model GreenBitAI/Qwen-1.5-4B-layer-mix-bpw-3.0 - ```bash python -m evaluation.evaluate --model GreenBitAI/Qwen-1.5-4B-layer-mix-bpw-3.0 --trust-remote-code --batch-size 16 --few-shot-tasks wic,boolq --eval-few-shot ``` + + +| HuggingFace Repository | Avg Accuracy | OpenBookQA | ARC Easy | Winogrande | HellaSWAG | ARC Challenge | PIQA | BoolQ | RACE | ANLI R1 | ANLI R2 | ANLI R3 | WiC | +|-------------------------------------------------|--------------|------------|----------|------------|-----------|---------------|-------|-------|-------|---------|---------|---------|-------| +| GreenBitAI/Qwen-1.5-1.8B-layer-mix-bpw-2.2 | 0.415 | 0.218 | 0.539 | 0.586 | 0.392 | 0.260 | 0.678 | 0.622 | 0.333 | 0.333 | 0.333 | 0.336 | 0.464 | +| GreenBitAI/Qwen-1.5-1.8B-layer-mix-bpw-2.5 | 0.423 | 0.222 | 0.592 | 0.585 | 0.406 | 0.267 | 0.695 | 0.629 | 0.336 | 0.314 | 0.339 | 0.361 | 0.507 | +| GreenBitAI/Qwen-1.5-1.8B-layer-mix-bpw-3.0 | 0.438 | 0.246 | 0.576 | 0.563 | 0.413 | 0.277 | 0.694 | 0.645 | 0.352 | 0.323 | 0.336 | 0.343 | 0.492 | +| GreenBitAI/Qwen-1.5-4B-layer-mix-bpw-2.2 | 0.480 | 0.254 | 0.663 | 0.623 | 0.463 | 0.339 | 0.712 | 0.718 | 0.349 | 0.326 | 0.355 | 0.384 | 0.513 | +| GreenBitAI/Qwen-1.5-4B-layer-mix-bpw-2.5 | 0.490 | 0.266 | 0.677 | 0.629 | 0.473 | 0.365 | 0.732 | 0.717 | 0.351 | 0.372 | 0.352 | 0.360 | 0.502 | +| GreenBitAI/Qwen-1.5-4B-layer-mix-bpw-3.0 | 0.502 | 0.268 | 0.678 | 0.642 | 0.494 | 0.358 | 0.755 | 0.757 | 0.380 | 0.395 | 0.395 | 0.392 | 0.519 | +| GreenBitAI/Qwen-1.5-7B-layer-mix-bpw-2.2 | 0.513 | 0.278 | 0.669 | 0.654 | 0.504 | 0.389 | 0.741 | 0.759 | 0.376 | 0.383 | 0.410 | 0.403 | 0.517 | +| GreenBitAI/Qwen-1.5-7B-layer-mix-bpw-2.5 | 0.520 | 0.294 | 0.705 | 0.650 | 0.520 | 0.387 | 0.750 | 0.769 | 0.371 | 0.445 | 0.424 | 0.398 | 0.564 | +| GreenBitAI/Qwen-1.5-7B-layer-mix-bpw-3.0 | 0.531 | 0.292 | 0.713 | 0.654 | 0.545 | 0.405 | 0.764 | 0.807 | 0.383 | 0.424 | 0.393 | 0.414 | 0.627 | + From d869f7306d5e9a5d25970b5827f187f6583a789f Mon Sep 17 00:00:00 2001 From: NicoNico6 <1751277309@qq.com> Date: Tue, 16 Apr 2024 23:21:39 +0200 Subject: [PATCH 030/125] support sft finetune.py --- sft/finetune.py | 144 ++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 144 insertions(+) create mode 100644 sft/finetune.py diff --git a/sft/finetune.py b/sft/finetune.py new file mode 100644 index 0000000..cedf771 --- /dev/null +++ b/sft/finetune.py @@ -0,0 +1,144 @@ +import argparse +import sys +import json + +import torch +import torch.nn as nn + +import transformers +from transformers import PreTrainedTokenizer, TrainingArguments +from datasets import load_dataset +from trl import SFTTrainer + +from green_bit_llm.model import load + +import warnings + +warnings.filterwarnings('ignore') + +ENGINE_AVAILABLE = True +try: + from bitorch_engine.optim import DiodeMix +except ModuleNotFoundError as e: + ENGINE_AVAILABLE = False + raise Exception("Error: Bitorch Engine optimizer (DiodeMix) are not available.") + +# default value for arguments +DEFAULT_MODEL_PATH = "GreenBitAI/Qwen-1.5-4B-layer-mix-bpw-2.2" +DEFAULT_SEQLEN = 2048 +DEFAULT_RANDOM_SEED = 0 +DTYPE = torch.half + +def setup_arg_parser(): + """Set up and return the argument parser.""" + parser = argparse.ArgumentParser(description="green-bit-llm finetune script") + parser.add_argument( + "--seed", + type=int, + default=DEFAULT_RANDOM_SEED, + help="The random seed for data loader.", + ) + parser.add_argument( + "--model", + type=str, + default=DEFAULT_MODEL_PATH, + help="The path to the local model directory or Hugging Face repo.", + ) + parser.add_argument( + "--cuda-device-id", + type=str, + default="0", + help="CUDA device IDs", + ) + parser.add_argument( + "--trust-remote-code", + action="store_true", + help="Enable trusting remote code for tokenizer", + ) + parser.add_argument( + "--use-flash-attention-2", + action="store_true", + help="Enable using flash attention v2", + ) + parser.add_argument( + "--eos-token", + type=str, + default="<|im_end|>", + help="End of sequence token for tokenizer", + ) + parser.add_argument( + "--seqlen", + type=int, + default=DEFAULT_SEQLEN, + help="Sequence length" + ) + parser.add_argument( + "--save-dir", + type=str, + default="../log/", + help="Specify save dir for eval results.", + ) + return parser + + +def create_device_map(cuda_device_id): + ids = cuda_device_id.split(',') + # Create strings in the format "cuda:x" for each ID and put them into the collection + device_map = {f"cuda:{id}" for id in ids} + return device_map + +def main(args): + + # Building configs + tokenizer_config = {"trust_remote_code": True if args.trust_remote_code else None} + pretrain_model_config = { + "trust_remote_code": True if args.trust_remote_code else None, + "use_flash_attention_2": True if args.use_flash_attention_2 else None + } + + if args.eos_token is not None: + tokenizer_config["eos_token"] = args.eos_token + + model, tokenizer, config = load( + args.model, + tokenizer_config=tokenizer_config, + dtype=DTYPE, + device_map='auto', + seqlen=args.seqlen, + model_config=pretrain_model_config, + requires_grad=True, + ) + + model.train() + + dataset = load_dataset("imdb", split="train") + + args = TrainingArguments(output_dir="./output", + gradient_checkpointing=True, + auto_find_batch_size=True, + ) + + optimizer = DiodeMix(model.parameters(), lr=5e-6) + + optimizers = (optimizer, None) + + trainer = SFTTrainer( + model=model, + args=args, + train_dataset=dataset, + dataset_text_field="text", + optimizers=optimizers, + #max_seq_length=args.seqlen, + ) + + trainer.train() + +if __name__ == "__main__": + if not torch.cuda.is_available(): + print("Warning: CUDA is needed to run the model.") + sys.exit(0) + + parser = setup_arg_parser() + args = parser.parse_args() + + main(args) From cbaa0b1484d187d29e6ce18fd1d56b8533630e5a Mon Sep 17 00:00:00 2001 From: Haojin Yang Date: Wed, 17 Apr 2024 15:45:26 +0200 Subject: [PATCH 031/125] added one constraint in the traing arguments --- sft/finetune.py | 1 + 1 file changed, 1 insertion(+) diff --git a/sft/finetune.py b/sft/finetune.py index cedf771..5ca4a26 100644 --- a/sft/finetune.py +++ b/sft/finetune.py @@ -116,6 +116,7 @@ def main(args): args = TrainingArguments(output_dir="./output", gradient_checkpointing=True, auto_find_batch_size=True, + max_grad_norm=0 # NOTE: max_grad_norm MUST < 0 or None, otherwise raise dtype error due to the Int dtype of qweight. ) optimizer = DiodeMix(model.parameters(), lr=5e-6) From 53401e8cac2f96f29aa6233e427099337f8d010b Mon Sep 17 00:00:00 2001 From: Haojin Yang Date: Thu, 18 Apr 2024 18:02:34 +0200 Subject: [PATCH 032/125] Added readme file (not finished). Added optional settings for Galore. --- requirements.txt | 2 +- sft/README.md | 59 +++++++++++++++++++++++++++++++++++ sft/finetune.py | 81 +++++++++++++++++++++++++++++++++++++++++++++--- 3 files changed, 136 insertions(+), 6 deletions(-) create mode 100644 sft/README.md diff --git a/requirements.txt b/requirements.txt index f2705f6..eed67ad 100644 --- a/requirements.txt +++ b/requirements.txt @@ -1,4 +1,4 @@ -accelerate +accelerate>=0.27.2 colorama datasets torch>=2.0.0 diff --git a/sft/README.md b/sft/README.md new file mode 100644 index 0000000..038fa8e --- /dev/null +++ b/sft/README.md @@ -0,0 +1,59 @@ +# Finetuning GreenBitAI's Low-bit LLMs + +## Overview + +This package demonstrates the capabilities of [GreenBitAI's low-bit large language models (LLMs)](https://huggingface.co/GreenBitAI) through two main features: +1. Full-parameter finetuning using quantized LLMs. +2. Parameter efficient finetuning + + +## Installation + +### Prerequisites +Ensure you have Python installed on your machine. It's recommended to use a virtual environment for Python projects to manage dependencies efficiently. + +### Installing Dependencies + +Install green-bit-llm package using pip: + +```bash +pip install green-bit-llm +``` + +or from source: + +```bash +git clone https://github.com/GreenBitAI/green-bit-llm.git +cd green-bit-llm +pip install -r requirements.txt +``` +Ensure your system has Python3 and pip installed before proceeding. + +Install the following additional libraries: + +```bash +pip install trl +pip install -U git+https://github.com/huggingface/peft.git +``` + +## Usage + +### Full-parameter finetuning + +Run the script as follows: + +```bash +CUDA_VISIBLE_DEVICES=0 python ... +``` + +This command ... using the specified GreenBitAI model. + +### Parameter efficient finetuning + +```bash +CUDA_VISIBLE_DEVICES=0 python ... +``` +... + +## License +We release our changes and additions to these files under the [Apache 2.0 License](../LICENSE). \ No newline at end of file diff --git a/sft/finetune.py b/sft/finetune.py index 5ca4a26..ab442cb 100644 --- a/sft/finetune.py +++ b/sft/finetune.py @@ -1,11 +1,9 @@ import argparse import sys -import json import torch import torch.nn as nn -import transformers from transformers import PreTrainedTokenizer, TrainingArguments from datasets import load_dataset from trl import SFTTrainer @@ -29,6 +27,7 @@ DEFAULT_RANDOM_SEED = 0 DTYPE = torch.half + def setup_arg_parser(): """Set up and return the argument parser.""" parser = argparse.ArgumentParser(description="green-bit-llm finetune script") @@ -78,6 +77,17 @@ def setup_arg_parser(): default="../log/", help="Specify save dir for eval results.", ) + + # GaLore parameters + parser.add_argument( + "--galore", + action="store_true", + help="Enable using galore", + ) + parser.add_argument("--rank", type=int, default=128) + parser.add_argument("--update_proj_gap", type=int, default=50) + parser.add_argument("--galore_scale", type=float, default=1.0) + parser.add_argument("--proj_type", type=str, default="std") return parser @@ -87,6 +97,65 @@ def create_device_map(cuda_device_id): device_map = {f"cuda:{id}" for id in ids} return device_map + +def create_param_groups(model:nn.Module, args: argparse.ArgumentParser): + """ + Create parameter groups based on the bit-width of quantized weights in the model. + This function categorizes parameters into groups with different learning rates and beta values + for optimizers. + + Args: + model (nn.Module): The neural network model. + args (argparse.ArgumentParser): Command line arguments for additional parameters. + + Returns: + List[dict]: A list of dictionaries where each dictionary contains a parameter group. + """ + params_2_bit = [] + params_4_bit = [] + + from bitorch_engine.layers.qlinear.nbit import MPQLinearBase + + for module_name, module in model.named_modules(): + if issubclass(type(module), MPQLinearBase): + if module.w_bit == 2: + params_2_bit.append(module.qweight) + elif module.w_bit == 4: + params_4_bit.append(module.qweight) + else: + raise Exception(f"Error: Invalid qweight bit width: '{module.w_bit}'.") + + id_2bit_params = [id(p) for p in params_2_bit] + id_4bit_params = [id(p) for p in params_4_bit] + # Concatenate IDs to form a single list + excluded_ids = id_2bit_params + id_4bit_params + + # Create list of regular parameters excluding 2-bit and 4-bit params + params_regular = [p for p in model.parameters() if id(p) not in excluded_ids] + + params_group_2bit = {'params': params_2_bit, 'lr': 2e-3, 'betas': (0.9, 0.999)} + params_group_4bit = {'params': params_4_bit, 'lr': 1e-3, 'betas': (0.9, 0.999)} + params_group_regular = {'params': params_regular, 'lr': 1e-5, 'betas': (0.9, 0.999)} + + # Optionally add extra settings from command line arguments + if args.galore: + galore_settings = { + 'rank': args.rank, + 'update_proj_gap': args.update_proj_gap, + 'scale': args.galore_scale, + 'proj_type': args.proj_type + } + params_group_2bit.update(galore_settings) + params_group_4bit.update(galore_settings) + + param_groups = [ + params_group_regular, + params_group_2bit, + params_group_4bit + ] + return param_groups + + def main(args): # Building configs @@ -113,19 +182,21 @@ def main(args): dataset = load_dataset("imdb", split="train") - args = TrainingArguments(output_dir="./output", + train_args = TrainingArguments(output_dir="./output", gradient_checkpointing=True, auto_find_batch_size=True, max_grad_norm=0 # NOTE: max_grad_norm MUST < 0 or None, otherwise raise dtype error due to the Int dtype of qweight. ) - optimizer = DiodeMix(model.parameters(), lr=5e-6) + param_groups = create_param_groups(model, args) + + optimizer = DiodeMix(param_groups) optimizers = (optimizer, None) trainer = SFTTrainer( model=model, - args=args, + args=train_args, train_dataset=dataset, dataset_text_field="text", optimizers=optimizers, From 91255185af9d2a38777ff006968adaef42ea6a52 Mon Sep 17 00:00:00 2001 From: Haojin Yang Date: Thu, 18 Apr 2024 22:47:43 +0200 Subject: [PATCH 033/125] fixed error params --- sft/finetune.py | 66 ++++++++++++++++++++++++------------------------- 1 file changed, 33 insertions(+), 33 deletions(-) diff --git a/sft/finetune.py b/sft/finetune.py index ab442cb..43a5056 100644 --- a/sft/finetune.py +++ b/sft/finetune.py @@ -98,7 +98,7 @@ def create_device_map(cuda_device_id): return device_map -def create_param_groups(model:nn.Module, args: argparse.ArgumentParser): +def create_param_groups(model, args: argparse.ArgumentParser): """ Create parameter groups based on the bit-width of quantized weights in the model. This function categorizes parameters into groups with different learning rates and beta values @@ -125,35 +125,35 @@ def create_param_groups(model:nn.Module, args: argparse.ArgumentParser): else: raise Exception(f"Error: Invalid qweight bit width: '{module.w_bit}'.") - id_2bit_params = [id(p) for p in params_2_bit] - id_4bit_params = [id(p) for p in params_4_bit] - # Concatenate IDs to form a single list - excluded_ids = id_2bit_params + id_4bit_params - - # Create list of regular parameters excluding 2-bit and 4-bit params - params_regular = [p for p in model.parameters() if id(p) not in excluded_ids] - - params_group_2bit = {'params': params_2_bit, 'lr': 2e-3, 'betas': (0.9, 0.999)} - params_group_4bit = {'params': params_4_bit, 'lr': 1e-3, 'betas': (0.9, 0.999)} - params_group_regular = {'params': params_regular, 'lr': 1e-5, 'betas': (0.9, 0.999)} - - # Optionally add extra settings from command line arguments - if args.galore: - galore_settings = { - 'rank': args.rank, - 'update_proj_gap': args.update_proj_gap, - 'scale': args.galore_scale, - 'proj_type': args.proj_type - } - params_group_2bit.update(galore_settings) - params_group_4bit.update(galore_settings) - - param_groups = [ - params_group_regular, - params_group_2bit, - params_group_4bit - ] - return param_groups + id_2bit_params = [id(p) for p in params_2_bit] + id_4bit_params = [id(p) for p in params_4_bit] + # Concatenate IDs to form a single list + excluded_ids = id_2bit_params + id_4bit_params + + # Create list of regular parameters excluding 2-bit and 4-bit params + params_regular = [p for p in model.parameters() if id(p) not in excluded_ids] + + params_group_2bit = {'params': params_2_bit, 'lr': 2e-3, 'betas': (0.9, 0.999)} + params_group_4bit = {'params': params_4_bit, 'lr': 1e-3, 'betas': (0.9, 0.999)} + params_group_regular = {'params': params_regular, 'lr': 1e-5, 'betas': (0.9, 0.999)} + + # Optionally add extra settings from command line arguments + if args.galore: + galore_settings = { + 'rank': args.rank, + 'update_proj_gap': args.update_proj_gap, + 'scale': args.galore_scale, + 'proj_type': args.proj_type + } + params_group_2bit.update(galore_settings) + params_group_4bit.update(galore_settings) + + param_groups = [ + params_group_regular, + params_group_2bit, + params_group_4bit + ] + return param_groups def main(args): @@ -177,7 +177,9 @@ def main(args): model_config=pretrain_model_config, requires_grad=True, ) - + + param_groups = create_param_groups(model, args) + model.train() dataset = load_dataset("imdb", split="train") @@ -188,8 +190,6 @@ def main(args): max_grad_norm=0 # NOTE: max_grad_norm MUST < 0 or None, otherwise raise dtype error due to the Int dtype of qweight. ) - param_groups = create_param_groups(model, args) - optimizer = DiodeMix(param_groups) optimizers = (optimizer, None) From 8842deefeb514f39df8a87ae0464f61e85c8c475 Mon Sep 17 00:00:00 2001 From: Haojin Yang Date: Thu, 18 Apr 2024 23:16:35 +0200 Subject: [PATCH 034/125] removed used debug code --- green_bit_llm/model.py | 2 -- 1 file changed, 2 deletions(-) diff --git a/green_bit_llm/model.py b/green_bit_llm/model.py index df3ed3a..917a3ea 100644 --- a/green_bit_llm/model.py +++ b/green_bit_llm/model.py @@ -178,8 +178,6 @@ def load_model(model_path: Path, layer_mode: LayerMode, bits: Optional[int] = No make_quant(layer, layers_to_quantize, layer_mode=layer_mode, group_size=group_size, bits=bits, dtype=dtype, quant_strategy=strategy_per_block, model_type=config.model_type, requires_grad=requires_grad) - # model.tie_weights() - # print(model) # Load checkpoint, dispatch model, and apply post-initialization configurations model = accelerate.load_checkpoint_and_dispatch(model=model, checkpoint=model_path, device_map=device_map, no_split_module_classes=["LlamaDecoderLayer"]) From bd8c67e48e24470b07d09b63b05c27a95b4fc61b Mon Sep 17 00:00:00 2001 From: Haojin Yang Date: Fri, 19 Apr 2024 01:18:31 +0200 Subject: [PATCH 035/125] Galore strategy integrated. --- sft/finetune.py | 26 ++++++++++++++++++++------ 1 file changed, 20 insertions(+), 6 deletions(-) diff --git a/sft/finetune.py b/sft/finetune.py index 43a5056..369697e 100644 --- a/sft/finetune.py +++ b/sft/finetune.py @@ -25,7 +25,6 @@ DEFAULT_MODEL_PATH = "GreenBitAI/Qwen-1.5-4B-layer-mix-bpw-2.2" DEFAULT_SEQLEN = 2048 DEFAULT_RANDOM_SEED = 0 -DTYPE = torch.half def setup_arg_parser(): @@ -77,7 +76,13 @@ def setup_arg_parser(): default="../log/", help="Specify save dir for eval results.", ) - + parser.add_argument( + "--dtype", + type=str, + choices=["float", "half"], + default="half", + help="Dtype used in optimizer.", + ) # GaLore parameters parser.add_argument( "--galore", @@ -90,6 +95,15 @@ def setup_arg_parser(): parser.add_argument("--proj_type", type=str, default="std") return parser +def str_to_torch_dtype(dtype: str): + if dtype is None: + return None + elif dtype == "float": + return torch.float + elif dtype == "half": + return torch.half + else: + raise ValueError(f"Unsupported dtype: {dtype}") def create_device_map(cuda_device_id): ids = cuda_device_id.split(',') @@ -171,7 +185,6 @@ def main(args): model, tokenizer, config = load( args.model, tokenizer_config=tokenizer_config, - dtype=DTYPE, device_map='auto', seqlen=args.seqlen, model_config=pretrain_model_config, @@ -186,11 +199,12 @@ def main(args): train_args = TrainingArguments(output_dir="./output", gradient_checkpointing=True, - auto_find_batch_size=True, - max_grad_norm=0 # NOTE: max_grad_norm MUST < 0 or None, otherwise raise dtype error due to the Int dtype of qweight. + # auto_find_batch_size=True, + per_device_train_batch_size=4, + max_grad_norm=0 # NOTE: max_grad_norm MUST be <= 0 or None, otherwise raise dtype error due to the Int dtype of qweight. ) - optimizer = DiodeMix(param_groups) + optimizer = DiodeMix(param_groups, dtype=str_to_torch_dtype(args.dtype)) optimizers = (optimizer, None) From ea42e6e03f419c73d733fc463417ca0eee889780 Mon Sep 17 00:00:00 2001 From: Haojin Yang Date: Fri, 19 Apr 2024 17:40:29 +0200 Subject: [PATCH 036/125] galore works with low bit qweights. --- sft/finetune.py | 77 ++++++++++++++++++++++++++++++++++++++++--------- 1 file changed, 63 insertions(+), 14 deletions(-) diff --git a/sft/finetune.py b/sft/finetune.py index 369697e..689d8b5 100644 --- a/sft/finetune.py +++ b/sft/finetune.py @@ -25,7 +25,9 @@ DEFAULT_MODEL_PATH = "GreenBitAI/Qwen-1.5-4B-layer-mix-bpw-2.2" DEFAULT_SEQLEN = 2048 DEFAULT_RANDOM_SEED = 0 - +DEFAULT_LR = 1e-5 +DEFAULT_LR_GALORE = 1e-4 +DEFAULT_BETAS = (0.9, 0.999) def setup_arg_parser(): """Set up and return the argument parser.""" @@ -90,11 +92,44 @@ def setup_arg_parser(): help="Enable using galore", ) parser.add_argument("--rank", type=int, default=128) - parser.add_argument("--update_proj_gap", type=int, default=50) - parser.add_argument("--galore_scale", type=float, default=1.0) + parser.add_argument("--update_proj_gap", type=int, default=200) + parser.add_argument("--galore_scale", type=float, default=0.25) parser.add_argument("--proj_type", type=str, default="std") + + parser.add_argument( + "--dataset", + type=str, + default="tatsu-lab/alpaca", + help="Dataset name for finetuning", + ) + # qweight related + parser.add_argument( + "--tune-qweight-only", + action="store_true", + help="Set whether to adjust only the low-bit qweight and keep the regular parameters unchanged during the training process.", + ) + parser.add_argument( + "--lr-2bit", + type=float, + default=-1.0, + help="Learning rate for 2-bit qweight." + ) + parser.add_argument( + "--lr-4bit", + type=float, + default=-1.0, + help="Learning rate for 4-bit qweight." + ) + parser.add_argument( + "--lr-fp", + type=float, + default=DEFAULT_LR, + help="Learning rate for full-precision weight." + ) + parser.add_argument("--optimizer", default="DiodeMix") return parser + def str_to_torch_dtype(dtype: str): if dtype is None: return None @@ -105,6 +140,7 @@ def str_to_torch_dtype(dtype: str): else: raise ValueError(f"Unsupported dtype: {dtype}") + def create_device_map(cuda_device_id): ids = cuda_device_id.split(',') # Create strings in the format "cuda:x" for each ID and put them into the collection @@ -112,6 +148,12 @@ def create_device_map(cuda_device_id): return device_map +def get_learning_rate(lr_bit, galore, default_lr_galore, default_lr): + if lr_bit > 0: + return lr_bit + return default_lr_galore if galore else default_lr + + def create_param_groups(model, args: argparse.ArgumentParser): """ Create parameter groups based on the bit-width of quantized weights in the model. @@ -147,9 +189,12 @@ def create_param_groups(model, args: argparse.ArgumentParser): # Create list of regular parameters excluding 2-bit and 4-bit params params_regular = [p for p in model.parameters() if id(p) not in excluded_ids] - params_group_2bit = {'params': params_2_bit, 'lr': 2e-3, 'betas': (0.9, 0.999)} - params_group_4bit = {'params': params_4_bit, 'lr': 1e-3, 'betas': (0.9, 0.999)} - params_group_regular = {'params': params_regular, 'lr': 1e-5, 'betas': (0.9, 0.999)} + lr_2 = get_learning_rate(args.lr_2bit, args.galore, DEFAULT_LR_GALORE, DEFAULT_LR) + lr_4 = get_learning_rate(args.lr_4bit, args.galore, DEFAULT_LR_GALORE, DEFAULT_LR) + + params_group_2bit = {'params': params_2_bit, 'lr': lr_2, 'betas': DEFAULT_BETAS} + params_group_4bit = {'params': params_4_bit, 'lr': lr_4, 'betas': DEFAULT_BETAS} + params_group_regular = {'params': params_regular, 'lr': args.lr_fp, 'betas': DEFAULT_BETAS} # Optionally add extra settings from command line arguments if args.galore: @@ -163,10 +208,12 @@ def create_param_groups(model, args: argparse.ArgumentParser): params_group_4bit.update(galore_settings) param_groups = [ - params_group_regular, params_group_2bit, params_group_4bit ] + if not args.tune_qweight_only: + param_groups.append(params_group_regular) + return param_groups @@ -195,14 +242,16 @@ def main(args): model.train() - dataset = load_dataset("imdb", split="train") + dataset = load_dataset(args.dataset, split="train") - train_args = TrainingArguments(output_dir="./output", - gradient_checkpointing=True, - # auto_find_batch_size=True, - per_device_train_batch_size=4, - max_grad_norm=0 # NOTE: max_grad_norm MUST be <= 0 or None, otherwise raise dtype error due to the Int dtype of qweight. - ) + train_args = TrainingArguments( + output_dir="./output", + gradient_checkpointing=True, + # auto_find_batch_size=True, + per_device_train_batch_size=4, + logging_steps=1, + max_grad_norm=0, # NOTE: max_grad_norm MUST be <= 0 or None, otherwise raise dtype error due to the Int dtype of qweight. + ) optimizer = DiodeMix(param_groups, dtype=str_to_torch_dtype(args.dtype)) From 438f96ee5d154ff99c66f463ae4053c7aeab2729 Mon Sep 17 00:00:00 2001 From: Haojin Yang Date: Sat, 20 Apr 2024 13:16:19 +0200 Subject: [PATCH 037/125] Improve readme file for sft package --- sft/README.md | 11 +++++++---- 1 file changed, 7 insertions(+), 4 deletions(-) diff --git a/sft/README.md b/sft/README.md index 038fa8e..70651a5 100644 --- a/sft/README.md +++ b/sft/README.md @@ -40,13 +40,16 @@ pip install -U git+https://github.com/huggingface/peft.git ### Full-parameter finetuning -Run the script as follows: +Run the script as follows to fine-tune the quantized weights of the model on the target dataset. +The '--tune-qweight-only' parameter determines whether to fine-tune only the quantized weights or all weights, including non-quantized ones. ```bash -CUDA_VISIBLE_DEVICES=0 python ... +CUDA_VISIBLE_DEVICES=0 python -m sft.finetune --model GreenBitAI/Qwen-1.5-1.8B-layer-mix-bpw-3.0 --dataset tatsu-lab/alpaca --galore --tune-qweight-only +``` +For more information about this parameter, please refer to: +```bash +python -m sft.finetune --help ``` - -This command ... using the specified GreenBitAI model. ### Parameter efficient finetuning From 9d80745986e48b74456aace8f723f08e6283df69 Mon Sep 17 00:00:00 2001 From: Haojin Yang Date: Sat, 20 Apr 2024 22:44:30 +0200 Subject: [PATCH 038/125] added modified bnb 8-bit optimizer nad galore support --- sft/README.md | 16 +- sft/finetune.py | 42 ++- sft/optim/__init__.py | 1 + sft/optim/adamw8bit.py | 109 +++++++ sft/optim/bnb_optimizer.py | 567 +++++++++++++++++++++++++++++++++++++ 5 files changed, 708 insertions(+), 27 deletions(-) create mode 100644 sft/optim/__init__.py create mode 100644 sft/optim/adamw8bit.py create mode 100644 sft/optim/bnb_optimizer.py diff --git a/sft/README.md b/sft/README.md index 70651a5..9c86f7f 100644 --- a/sft/README.md +++ b/sft/README.md @@ -36,6 +36,12 @@ pip install trl pip install -U git+https://github.com/huggingface/peft.git ``` +If you want to use a **8-bit customized optimizer** with the gradient low-rank projection for maximizing memory savings, you will also need to install the following package: + +```bash +pip install bitsandbytes, galore-torch +``` + ## Usage ### Full-parameter finetuning @@ -58,5 +64,13 @@ CUDA_VISIBLE_DEVICES=0 python ... ``` ... +### Current Limitations + +1. **placeholder a** +2. **placeholder b** + + ## License -We release our changes and additions to these files under the [Apache 2.0 License](../LICENSE). \ No newline at end of file +- The scripts 'adamw8bit.py' has been modified from [GaLore repository](https://github.com/jiaweizzhao/GaLore/blob/master/galore_torch/adamw8bit.py), which are released under the Apache 2.0 License. +- The scripts 'bnb_optimizer.py' has been modified from [bitsandbytes repository](https://github.com/TimDettmers/bitsandbytes/blob/main/bitsandbytes/optim/optimizer.py), which are released under the MIT License. +- We release our changes and additions to these files under the [Apache 2.0 License](../LICENSE). \ No newline at end of file diff --git a/sft/finetune.py b/sft/finetune.py index 689d8b5..2021f35 100644 --- a/sft/finetune.py +++ b/sft/finetune.py @@ -1,8 +1,8 @@ import argparse import sys +import os import torch -import torch.nn as nn from transformers import PreTrainedTokenizer, TrainingArguments from datasets import load_dataset @@ -14,13 +14,13 @@ warnings.filterwarnings('ignore') -ENGINE_AVAILABLE = True try: from bitorch_engine.optim import DiodeMix except ModuleNotFoundError as e: - ENGINE_AVAILABLE = False raise Exception("Error: Bitorch Engine optimizer (DiodeMix) are not available.") +from .optim import AdamW8bit + # default value for arguments DEFAULT_MODEL_PATH = "GreenBitAI/Qwen-1.5-4B-layer-mix-bpw-2.2" DEFAULT_SEQLEN = 2048 @@ -44,12 +44,6 @@ def setup_arg_parser(): default=DEFAULT_MODEL_PATH, help="The path to the local model directory or Hugging Face repo.", ) - parser.add_argument( - "--cuda-device-id", - type=str, - default="0", - help="CUDA device IDs", - ) parser.add_argument( "--trust-remote-code", action="store_true", @@ -60,12 +54,6 @@ def setup_arg_parser(): action="store_true", help="Enable using flash attention v2", ) - parser.add_argument( - "--eos-token", - type=str, - default="<|im_end|>", - help="End of sequence token for tokenizer", - ) parser.add_argument( "--seqlen", type=int, @@ -126,7 +114,13 @@ def setup_arg_parser(): default=DEFAULT_LR, help="Learning rate for full-precision weight." ) - parser.add_argument("--optimizer", default="DiodeMix") + parser.add_argument( + "--optimizer", + type=str, + default="DiodeMix", + help="Optimizer to use: 1. DiodeMix, 2. AdamW8bit" + ) + parser.add_argument("--weight_decay", type=float, default=0.0) return parser @@ -136,18 +130,11 @@ def str_to_torch_dtype(dtype: str): elif dtype == "float": return torch.float elif dtype == "half": - return torch.half + return torch.float16 else: raise ValueError(f"Unsupported dtype: {dtype}") -def create_device_map(cuda_device_id): - ids = cuda_device_id.split(',') - # Create strings in the format "cuda:x" for each ID and put them into the collection - device_map = {f"cuda:{id}" for id in ids} - return device_map - - def get_learning_rate(lr_bit, galore, default_lr_galore, default_lr): if lr_bit > 0: return lr_bit @@ -253,7 +240,10 @@ def main(args): max_grad_norm=0, # NOTE: max_grad_norm MUST be <= 0 or None, otherwise raise dtype error due to the Int dtype of qweight. ) - optimizer = DiodeMix(param_groups, dtype=str_to_torch_dtype(args.dtype)) + if 'adamw8bit' in args.optimizer.lower(): + optimizer = AdamW8bit(param_groups, lr=args.lr, weight_decay=args.weight_decay, dtype=str_to_torch_dtype(args.dtype)) + elif 'diodemix' in args.optimizer.lower(): + optimizer = DiodeMix(param_groups, dtype=str_to_torch_dtype(args.dtype)) optimizers = (optimizer, None) @@ -270,7 +260,7 @@ def main(args): if __name__ == "__main__": if not torch.cuda.is_available(): - print("Warning: CUDA is needed to run the model.") + print("Warning: CUDA is required to run the model.") sys.exit(0) parser = setup_arg_parser() diff --git a/sft/optim/__init__.py b/sft/optim/__init__.py new file mode 100644 index 0000000..7e103ec --- /dev/null +++ b/sft/optim/__init__.py @@ -0,0 +1 @@ +from .adamw8bit import AdamW8bit \ No newline at end of file diff --git a/sft/optim/adamw8bit.py b/sft/optim/adamw8bit.py new file mode 100644 index 0000000..b55223b --- /dev/null +++ b/sft/optim/adamw8bit.py @@ -0,0 +1,109 @@ +import torch + +from .bnb_optimizer import Optimizer2State + +try: + from galore_torch.galore_projector import GaLoreProjector +except ModuleNotFoundError as e: + raise Exception("Error: GaLoreProjector is not available. Make sure 'galore-torch' has been installed on you system.") + +try: + from bitorch_engine.layers.qlinear.nbit import MPQWeightParameter + from bitorch_engine.utils.quant_operators import gptq_stype_unpacking + from bitorch_engine.layers.qlinear.nbit.cuda.utils import pack_fp_weight +except ModuleNotFoundError as e: + raise Exception(f"Error occurred while importing Bitorch Engine module '{str(e)}'.") + + +class AdamW8bit(Optimizer2State): + def __init__(self, params, lr=1e-3, betas=(0.9, 0.999), eps=1e-8, weight_decay=1e-2, amsgrad=False, optim_bits=8, + args=None, min_8bit_size=4096, percentile_clipping=100, block_wise=True, is_paged=False, + dtype: torch.dtype = torch.float16): + self.dtype = dtype + super().__init__( "adam", params, lr, betas, eps, weight_decay, optim_bits, args, min_8bit_size, percentile_clipping, + block_wise, is_paged=is_paged ) + + @torch.no_grad() + def step(self, closure=None): + """Performs a single optimization step. + + Arguments: + closure (callable, optional): A closure that reevaluates the model + and returns the loss. + """ + loss = None + if closure is not None: + with torch.enable_grad(): + loss = closure() + + if not self.initialized: + self.check_overrides() + self.to_gpu() # needed for fairseq pure fp16 training + self.initialized = True + + #if self.is_paged: self.page_mng.prefetch_all() + for gindex, group in enumerate(self.param_groups): + for pindex, p in enumerate(group["params"]): + if p.grad is None: + continue + + state = self.state[p] + + if "step" not in state: + state["step"] = 0 + + w_unpacked = None + if isinstance(p, MPQWeightParameter): + grad = p.privileged_grad + # unpack qweight + w_unpacked = gptq_stype_unpacking(p).to(self.dtype) + else: + grad = p.grad + + # GaLore Projection + if "rank" in group: + if "projector" not in state: + state["projector"] = GaLoreProjector(group["rank"], update_proj_gap=group["update_proj_gap"], scale=group["scale"], proj_type=group["proj_type"]) + projector = state["projector"] + + grad = projector.project(grad, state["step"]) + + if 'weight_decay' in group and group['weight_decay'] > 0: + # ensure that the weight decay is not applied to the norm grad + group['weight_decay_saved'] = group['weight_decay'] + group['weight_decay'] = 0 + + if 'state1' not in state: + self.init_state(group, p, gindex, pindex, grad) + + self.prefetch_state(p) + + if w_unpacked is not None: + self.update_step(group, p, gindex, pindex, grad, w_unpacked) + else: + self.update_step(group, p, gindex, pindex) + + torch.cuda.synchronize() + + # GaLore Projection Back + if "rank" in group: + # apply weight decay + if 'weight_decay_saved' in group: + if w_unpacked is not None: + w_unpacked.add_(w_unpacked, alpha=-group['lr'] * group['weight_decay_saved']) + else: + p.data.add_(p.data, alpha=-group['lr'] * group['weight_decay_saved']) + group['weight_decay'] = group['weight_decay_saved'] + del group['weight_decay_saved'] + + # pack fp weight back to qweight + if w_unpacked is not None: + p.data = pack_fp_weight(w_unpacked, p) + + if self.is_paged: + # all paged operation are asynchronous, we need + # to sync to make sure all tensors are in the right state + torch.cuda.synchronize() + + + return loss \ No newline at end of file diff --git a/sft/optim/bnb_optimizer.py b/sft/optim/bnb_optimizer.py new file mode 100644 index 0000000..6a9ad2a --- /dev/null +++ b/sft/optim/bnb_optimizer.py @@ -0,0 +1,567 @@ +# Copyright (c) Facebook, Inc. and its affiliates. +# +# This source code is licensed under the MIT license found in the +# LICENSE file in the root directory of this source tree. +from collections import abc as container_abcs, defaultdict +from copy import deepcopy +from itertools import chain + +import torch + +try: + import bitsandbytes.functional as F +except ModuleNotFoundError as e: + raise Exception("Error: 'bitsandbytes' is not available. Make sure 'bitsandbytes' has been installed on you system.") + + +class MockArgs: + def __init__(self, initial_data): + for key in initial_data: + setattr(self, key, initial_data[key]) + + +class GlobalOptimManager: + """ + A global optimizer manager for enabling custom optimizer configs. + """ + + _instance = None + + def __init__(self): + raise RuntimeError("Call get_instance() instead") + + def initialize(self): + self.pid2config = {} + self.index2config = {} + self.optimizer = None + self.uses_config_override = False + self.module_weight_config_triple = [] + + @classmethod + def get_instance(cls): + if cls._instance is None: + cls._instance = cls.__new__(cls) + cls._instance.initialize() + return cls._instance + + def register_parameters(self, params): + param_groups = list(params) + if not isinstance(param_groups[0], dict): + param_groups = [{"params": param_groups}] + + for group_index, group in enumerate(param_groups): + for p_index, p in enumerate(group["params"]): + if id(p) in self.pid2config: + self.index2config[(group_index, p_index)] = self.pid2config[id(p)] + + def override_config(self, parameters, key=None, value=None, key_value_dict=None): + """ + Override initial optimizer config with specific hyperparameters. + + The key-values of the optimizer config for the input parameters are overridden + This can be both, optimizer parameters like `betas` or `lr`, or it can be + 8-bit specific parameters like `optim_bits` or `percentile_clipping`. + + Arguments: + parameters (`torch.Tensor` or `list(torch.Tensors)`): + The input parameters. + key (`str`): + The hyperparamter to override. + value: + The hyperparameter values. + key_value_dict (`dict`): + A dictionary with multiple key-values to override. + + Example: + + ```py + import torch + import bitsandbytes as bnb + + mng = bnb.optim.GlobalOptimManager.get_instance() + + model = MyModel() + mng.register_parameters(model.parameters()) # 1. register parameters while still on CPU + + model = model.cuda() + # use 8-bit optimizer states for all parameters + adam = bnb.optim.Adam(model.parameters(), lr=0.001, optim_bits=8) + + # 2. override: the parameter model.fc1.weight now uses 32-bit Adam + mng.override_config(model.fc1.weight, 'optim_bits', 32) + ``` + """ + self.uses_config_override = True + if isinstance(parameters, torch.nn.Parameter): + parameters = [parameters] + if isinstance(parameters, torch.Tensor): + parameters = [parameters] + if key is not None and value is not None: + assert key_value_dict is None + key_value_dict = {key: value} + + if key_value_dict is not None: + for p in parameters: + if id(p) in self.pid2config: + self.pid2config[id(p)].update(key_value_dict) + else: + self.pid2config[id(p)] = key_value_dict + + def register_module_override(self, module, param_name, config): + self.module_weight_config_triple.append((module, param_name, config)) + + +class Optimizer8bit(torch.optim.Optimizer): + def __init__(self, params, defaults, optim_bits=32, is_paged=False): + """ + Base 8-bit optimizer class. + + Arguments: + params (`torch.tensor`): + The input parameters to optimize. + optim_bits (`int`, defaults to 32): + The number of bits of the optimizer state. + is_paged (`bool`, defaults to `False`): + Whether the optimizer is a paged optimizer or not. + """ + super().__init__(params, defaults) + self.initialized = False + self.name2qmap = {} + self.is_paged = is_paged + self.page_mng = F.GlobalPageManager.get_instance() + + self.mng = GlobalOptimManager.get_instance() + self.non_castable_tensor_keys = { + "qmap1", + "qmap2", + "max1", + "max2", + "new_max1", + "new_max2", + "state1", + "state2", + "gnorm_vec", + "absmax1", + "absmax2", + "unorm_vec", + } + + if optim_bits == 8: + self.fill_qmap() + + def fill_qmap(self): + self.name2qmap["dynamic"] = F.create_dynamic_map(signed=True) + self.name2qmap["udynamic"] = F.create_dynamic_map(signed=False) + + def __setstate__(self, state): + super().__setstate__(state) + + def load_state_dict(self, state_dict): + """Load an optimizer state. + + Arguments: + state_dict (`dict`): + An optimizer state (should be returned from a call to `state_dict`) to load. + """ + # deepcopy, to be consistent with module API + state_dict = deepcopy(state_dict) + # Validate the state_dict + groups = self.param_groups + saved_groups = state_dict["param_groups"] + + if len(groups) != len(saved_groups): + raise ValueError("loaded state dict has a different number of parameter groups") + param_lens = (len(g["params"]) for g in groups) + saved_lens = (len(g["params"]) for g in saved_groups) + if any(p_len != s_len for p_len, s_len in zip(param_lens, saved_lens)): + raise ValueError( + "loaded state dict contains a parameter group that doesn't match the size of optimizer's group", + ) + + # Update the state + id_map = { + old_id: p + for old_id, p in zip( + chain.from_iterable(g["params"] for g in saved_groups), + chain.from_iterable(g["params"] for g in groups), + ) + } + + def cast(param, value): + r"""Make a deep copy of value, casting all tensors to device of param.""" + if isinstance(value, torch.Tensor): + # Floating-point types are a bit special here. They are the only ones + # that are assumed to always match the type of params. + if param.is_floating_point() and value.dtype != torch.uint8: + value = value.to(param.dtype) + return value + elif isinstance(value, dict): + for k, v in value.items(): + if k in self.non_castable_tensor_keys: + value[k] = v.to(param.device) + else: + value[k] = cast(param, v) + + return value + elif isinstance(value, container_abcs.Iterable): + return type(value)(cast(param, v) for v in value) + else: + return value + + # Copy state assigned to params (and cast tensors to appropriate types). + # State that is not assigned to params is copied as is (needed for + # backward compatibility). + state = defaultdict(dict) + for k, v in state_dict["state"].items(): + if k in id_map: + param = id_map[k] + state[param] = cast(param, v) + else: + state[k] = v + + # Update parameter groups, setting their 'params' value + def update_group(group, new_group): + new_group["params"] = group["params"] + return new_group + + param_groups = [update_group(g, ng) for g, ng in zip(groups, saved_groups)] + self.__setstate__({"state": state, "param_groups": param_groups}) + + def to_gpu(self): + for gindex, group in enumerate(self.param_groups): + for pindex, p in enumerate(group["params"]): + if p in self.state: + values = self.state[p] + for k, v in values.items(): + if isinstance(v, torch.Tensor): + is_paged = getattr(v, "is_paged", False) + if not is_paged: + self.state[p][k] = v.to(p.device) + + def check_overrides(self): + for module, attr, config in self.mng.module_weight_config_triple: + pmodule = getattr(module, attr) + assert pmodule is not None + assert isinstance(pmodule, torch.Tensor) or isinstance(pmodule, torch.Parameter) + found = False + for gindex, group in enumerate(self.param_groups): + if found: + break + for pindex, p in enumerate(group["params"]): + if found: + break + if id(p) == id(pmodule): + # found the matching parameter + # init override + self.mng.pid2config[id(p)] = config + self.mng.index2config[(gindex, pindex)] = self.mng.pid2config[id(p)] + found = True + + @torch.no_grad() + def step(self, closure=None): + """Perform a single optimization step. + + Arguments: + closure (`Callable`, *optional*, defaults to `None`): + A closure that reevaluates the model and returns the loss. + """ + loss = None + if closure is not None: + with torch.enable_grad(): + loss = closure() + + overflows = [] + + if not self.initialized: + self.check_overrides() + self.to_gpu() # needed for fairseq pure fp16 training + self.initialized = True + + # if self.is_paged: self.page_mng.prefetch_all() + for gindex, group in enumerate(self.param_groups): + for pindex, p in enumerate(group["params"]): + if p.grad is None: + continue + state = self.state[p] + if len(state) == 0: + self.init_state(group, p, gindex, pindex, p.grad) + + self.prefetch_state(p) + self.update_step(group, p, gindex, pindex) + torch.cuda.synchronize() + if self.is_paged: + # all paged operation are asynchronous, we need + # to sync to make sure all tensors are in the right state + torch.cuda.synchronize() + + return loss + + def get_config(self, gindex, pindex, group): + config = {} + config["betas"] = group["betas"] + config["eps"] = group["eps"] + config["weight_decay"] = group["weight_decay"] + config["lr"] = group["lr"] + config["optim_bits"] = self.args.optim_bits + config["min_8bit_size"] = self.args.min_8bit_size + config["percentile_clipping"] = self.args.percentile_clipping + config["block_wise"] = self.args.block_wise + config["max_unorm"] = self.args.max_unorm + config["skip_zeros"] = self.args.skip_zeros + + if (gindex, pindex) in self.mng.index2config: + config.update(self.mng.index2config[(gindex, pindex)]) + return config + + def init_state(self, group, p, gindex, pindex, grad): + raise NotImplementedError("init_state method needs to be overridden") + + def update_step(self, group, p, gindex, pindex, grad=None, w_unpacked=None): + raise NotImplementedError("The update_step method needs to be overridden") + + def get_state_buffer(self, p, dtype=torch.float32): + if not self.is_paged or p.numel() < 1e5: + return torch.zeros_like(p, dtype=dtype, device=p.device) + else: + # > 1 MB + buff = F.get_paged(*p.shape, dtype=dtype, device=p.device) + F.fill(buff, 0) + self.page_mng.paged_tensors.append(buff) + return buff + + def prefetch_state(self, p): + if self.is_paged: + state = self.state[p] + s1 = state["state1"] + is_paged = getattr(s1, "is_paged", False) + if is_paged: + F.prefetch_tensor(state["state1"]) + if "state2" in state: + F.prefetch_tensor(state["state2"]) + + +class Optimizer2State(Optimizer8bit): + def __init__( + self, + optimizer_name, + params, + lr=1e-3, + betas=(0.9, 0.999), + eps=1e-8, + weight_decay=0.0, + optim_bits=32, + args=None, + min_8bit_size=4096, + percentile_clipping=100, + block_wise=True, + max_unorm=0.0, + skip_zeros=False, + is_paged=False, + ): + """ + Base 2-state update optimizer class. + + Arguments: + optimizer_name (`str`): + The name of the optimizer. + params (`torch.tensor`): + The input parameters to optimize. + lr (`float`, defaults to 1e-3): + The learning rate. + betas (`tuple`, defaults to (0.9, 0.999)): + The beta values for the optimizer. + eps (`float`, defaults to 1e-8): + The epsilon value for the optimizer. + weight_decay (`float`, defaults to 0.0): + The weight decay value for the optimizer. + optim_bits (`int`, defaults to 32): + The number of bits of the optimizer state. + args (`object`, defaults to `None`): + An object with additional arguments. + min_8bit_size (`int`, defaults to 4096): + The minimum number of elements of the parameter tensors for 8-bit optimization. + percentile_clipping (`int`, defaults to 100): + Adapts clipping threshold automatically by tracking the last 100 gradient norms and clipping the gradient at a certain percentile to improve stability. + block_wise (`bool`, defaults to `True`): + Whether to independently quantize each block of tensors to reduce outlier effects and improve stability. + max_unorm (`float`, defaults to 0.0): + The maximum value to normalize each block with. + skip_zeros (`bool`, defaults to `False`): + Whether to skip zero values for sparse gradients and models to ensure correct updates. + is_paged (`bool`, defaults to `False`): + Whether the optimizer is a paged optimizer or not. + """ + if not 0.0 <= lr: + raise ValueError(f"Invalid learning rate: {lr}") + if not 0.0 <= eps: + raise ValueError(f"Invalid epsilon value: {eps}") + if isinstance(betas, str): + # format: '(beta1, beta2)' + betas = betas.replace("(", "").replace(")", "").strip().split(",") + betas = [float(b) for b in betas] + for i in range(len(betas)): + if not 0.0 <= betas[i] < 1.0: + raise ValueError(f"Invalid beta parameter at index {i}: {betas[i]}") + if not 0.0 <= weight_decay: + raise ValueError(f"Invalid weight_decay value: {weight_decay}") + defaults = dict(lr=lr, betas=betas, eps=eps, weight_decay=weight_decay) + super().__init__(params, defaults, optim_bits, is_paged) + + if args is None: + args = {} + args["optim_bits"] = optim_bits + args["percentile_clipping"] = 100 + args["min_8bit_size"] = min_8bit_size + args["percentile_clipping"] = percentile_clipping + args["block_wise"] = block_wise + args["max_unorm"] = max_unorm + args["skip_zeros"] = skip_zeros + + self.args = MockArgs(args) + else: + self.args = args + + self.optimizer_name = optimizer_name + + @torch.no_grad() + def init_state(self, group, p, gindex, pindex, grad): + config = self.get_config(gindex, pindex, group) + + if config["optim_bits"] == 32: + dtype = torch.float32 + elif config["optim_bits"] == 8: + dtype = torch.uint8 + else: + raise NotImplementedError(f'Amount of optimizer bits not supported: {config["optim_bits"]}') + + if p.numel() < config["min_8bit_size"]: + dtype = torch.float32 + + state = self.state[p] + state["step"] = 0 + + if dtype == torch.float32 or (dtype == torch.uint8 and p.numel() < 4096): + state["state1"] = self.get_state_buffer(grad, dtype=torch.float32) + state["state2"] = self.get_state_buffer(grad, dtype=torch.float32) + elif dtype == torch.uint8: + if state["step"] == 0: + if "dynamic" not in self.name2qmap: + self.fill_qmap() + self.name2qmap["dynamic"] = self.name2qmap["dynamic"].to(p.device) + self.name2qmap["udynamic"] = self.name2qmap["udynamic"].to(p.device) + + state["state1"] = self.get_state_buffer(grad, dtype=torch.uint8) + state["qmap1"] = self.name2qmap["dynamic"] + + state["state2"] = self.get_state_buffer(grad, dtype=torch.uint8) + state["qmap2"] = self.name2qmap["udynamic"] + + if config["block_wise"]: + n = p.numel() + blocks = n // 2048 + blocks += 1 if n % 2048 > 0 else 0 + + state["absmax1"] = torch.zeros((blocks,), dtype=torch.float32, device=p.device) + state["absmax2"] = torch.zeros((blocks,), dtype=torch.float32, device=p.device) + else: + state["max1"] = torch.zeros((1,), dtype=torch.float32, device=p.device) + state["new_max1"] = torch.zeros((1,), dtype=torch.float32, device=p.device) + state["max2"] = torch.zeros((1,), dtype=torch.float32, device=p.device) + state["new_max2"] = torch.zeros((1,), dtype=torch.float32, device=p.device) + + if config["percentile_clipping"] < 100: + state["gnorm_vec"] = torch.zeros((100,), device=p.device) + + if config["max_unorm"] > 0.0: + state["unorm_vec"] = torch.zeros((1,), device=p.device) + + @torch.no_grad() + def update_step(self, group, p, gindex, pindex, grad=None, w_unpacked=None): + state = self.state[p] + if grad is None: + grad = p.grad + + config = self.get_config(gindex, pindex, group) + + state["step"] += 1 + step = state["step"] + + if config["percentile_clipping"] < 100: + current_gnorm, clip_value, gnorm_scale = F.percentile_clipping( + grad, + state["gnorm_vec"], + step, + config["percentile_clipping"], + ) + else: + gnorm_scale = 1.0 + + # use unpacked weight for update + _p = w_unpacked if w_unpacked is not None else p + + if state["state1"].dtype == torch.float: + F.optimizer_update_32bit( + self.optimizer_name, + grad, + _p, + state["state1"], + config["betas"][0], + config["eps"], + step, + config["lr"], + state["state2"], + config["betas"][1], + config["weight_decay"], + gnorm_scale, + state["unorm_vec"] if config["max_unorm"] > 0.0 else None, + max_unorm=config["max_unorm"], + skip_zeros=config["skip_zeros"], + ) + + elif state["state1"].dtype == torch.uint8 and not config["block_wise"]: + F.optimizer_update_8bit( + self.optimizer_name, + grad, + _p, + state["state1"], + state["state2"], + config["betas"][0], + config["betas"][1], + config["eps"], + step, + config["lr"], + state["qmap1"], + state["qmap2"], + state["max1"], + state["max2"], + state["new_max1"], + state["new_max2"], + config["weight_decay"], + gnorm_scale=gnorm_scale, + unorm_vec=state["unorm_vec"] if config["max_unorm"] > 0.0 else None, + max_unorm=config["max_unorm"], + ) + + # swap maxes + state["max1"], state["new_max1"] = state["new_max1"], state["max1"] + state["max2"], state["new_max2"] = state["new_max2"], state["max2"] + elif state["state1"].dtype == torch.uint8 and config["block_wise"]: + F.optimizer_update_8bit_blockwise( + self.optimizer_name, + grad, + _p, + state["state1"], + state["state2"], + config["betas"][0], + config["betas"][1], + config["eps"], + step, + config["lr"], + state["qmap1"], + state["qmap2"], + state["absmax1"], + state["absmax2"], + config["weight_decay"], + gnorm_scale=gnorm_scale, + skip_zeros=config["skip_zeros"], + ) \ No newline at end of file From 2c75ce916b55cbf1cb841eab51ad25fb23d10d1a Mon Sep 17 00:00:00 2001 From: Haojin Yang Date: Sun, 21 Apr 2024 02:28:24 +0200 Subject: [PATCH 039/125] fixed issues in adamw8bit optim --- sft/finetune.py | 20 +++++++---- sft/optim/adamw8bit.py | 74 ++++++++++++++++++++++++++------------ sft/optim/bnb_optimizer.py | 13 +++---- 3 files changed, 71 insertions(+), 36 deletions(-) diff --git a/sft/finetune.py b/sft/finetune.py index 2021f35..6435843 100644 --- a/sft/finetune.py +++ b/sft/finetune.py @@ -27,6 +27,7 @@ DEFAULT_RANDOM_SEED = 0 DEFAULT_LR = 1e-5 DEFAULT_LR_GALORE = 1e-4 +DEFAULT_LR_ADAMW8BIT = 5e-3 DEFAULT_BETAS = (0.9, 0.999) def setup_arg_parser(): @@ -176,8 +177,16 @@ def create_param_groups(model, args: argparse.ArgumentParser): # Create list of regular parameters excluding 2-bit and 4-bit params params_regular = [p for p in model.parameters() if id(p) not in excluded_ids] - lr_2 = get_learning_rate(args.lr_2bit, args.galore, DEFAULT_LR_GALORE, DEFAULT_LR) - lr_4 = get_learning_rate(args.lr_4bit, args.galore, DEFAULT_LR_GALORE, DEFAULT_LR) + lr_2 = get_learning_rate( + args.lr_2bit, + args.galore, + DEFAULT_LR_ADAMW8BIT if 'adamw8bit' in args.optimizer else DEFAULT_LR_GALORE, + DEFAULT_LR) + lr_4 = get_learning_rate( + args.lr_4bit, + args.galore, + DEFAULT_LR_ADAMW8BIT if 'adamw8bit' in args.optimizer else DEFAULT_LR_GALORE, + DEFAULT_LR) params_group_2bit = {'params': params_2_bit, 'lr': lr_2, 'betas': DEFAULT_BETAS} params_group_4bit = {'params': params_4_bit, 'lr': lr_4, 'betas': DEFAULT_BETAS} @@ -213,9 +222,6 @@ def main(args): "use_flash_attention_2": True if args.use_flash_attention_2 else None } - if args.eos_token is not None: - tokenizer_config["eos_token"] = args.eos_token - model, tokenizer, config = load( args.model, tokenizer_config=tokenizer_config, @@ -240,13 +246,15 @@ def main(args): max_grad_norm=0, # NOTE: max_grad_norm MUST be <= 0 or None, otherwise raise dtype error due to the Int dtype of qweight. ) + # Optimizer if 'adamw8bit' in args.optimizer.lower(): - optimizer = AdamW8bit(param_groups, lr=args.lr, weight_decay=args.weight_decay, dtype=str_to_torch_dtype(args.dtype)) + optimizer = AdamW8bit(param_groups, weight_decay=args.weight_decay, dtype=str_to_torch_dtype(args.dtype)) elif 'diodemix' in args.optimizer.lower(): optimizer = DiodeMix(param_groups, dtype=str_to_torch_dtype(args.dtype)) optimizers = (optimizer, None) + # Trainer trainer = SFTTrainer( model=model, args=train_args, diff --git a/sft/optim/adamw8bit.py b/sft/optim/adamw8bit.py index b55223b..4486392 100644 --- a/sft/optim/adamw8bit.py +++ b/sft/optim/adamw8bit.py @@ -16,7 +16,7 @@ class AdamW8bit(Optimizer2State): - def __init__(self, params, lr=1e-3, betas=(0.9, 0.999), eps=1e-8, weight_decay=1e-2, amsgrad=False, optim_bits=8, + def __init__(self, params, lr=1e-3, betas=(0.9, 0.999), eps=1e-8, weight_decay=.0, amsgrad=False, optim_bits=8, args=None, min_8bit_size=4096, percentile_clipping=100, block_wise=True, is_paged=False, dtype: torch.dtype = torch.float16): self.dtype = dtype @@ -52,22 +52,27 @@ def step(self, closure=None): if "step" not in state: state["step"] = 0 - w_unpacked = None if isinstance(p, MPQWeightParameter): - grad = p.privileged_grad - # unpack qweight - w_unpacked = gptq_stype_unpacking(p).to(self.dtype) + grad = p.privileged_grad.to(self.dtype).to(p.grad.device) else: - grad = p.grad + grad = p.grad.to(self.dtype) # GaLore Projection if "rank" in group: if "projector" not in state: state["projector"] = GaLoreProjector(group["rank"], update_proj_gap=group["update_proj_gap"], scale=group["scale"], proj_type=group["proj_type"]) - projector = state["projector"] + projector = state["projector"] grad = projector.project(grad, state["step"]) + if "rank" in group or isinstance(p, MPQWeightParameter): + # suboptimal implementation + # In the implementation mentioned, the author sets the variable p (representing model parameters) to zero, + # meaning p does not change during the update step. Instead, only the gradient states are updated, + # and actual weight modifications are calculated manually later in the code. + saved_data = p.data.clone() + p.data = torch.zeros_like(grad) + if 'weight_decay' in group and group['weight_decay'] > 0: # ensure that the weight decay is not applied to the norm grad group['weight_decay_saved'] = group['weight_decay'] @@ -78,28 +83,53 @@ def step(self, closure=None): self.prefetch_state(p) - if w_unpacked is not None: - self.update_step(group, p, gindex, pindex, grad, w_unpacked) - else: - self.update_step(group, p, gindex, pindex) + self.update_step(group, p, gindex, pindex, grad) torch.cuda.synchronize() - + + if 'weight_decay_saved' in group: + group['weight_decay'] = group['weight_decay_saved'] + del group['weight_decay_saved'] + # GaLore Projection Back if "rank" in group: - # apply weight decay - if 'weight_decay_saved' in group: - if w_unpacked is not None: - w_unpacked.add_(w_unpacked, alpha=-group['lr'] * group['weight_decay_saved']) - else: - p.data.add_(p.data, alpha=-group['lr'] * group['weight_decay_saved']) - group['weight_decay'] = group['weight_decay_saved'] - del group['weight_decay_saved'] + # now the p.data is actually: -norm_grad*lr + norm_grad = projector.project_back(p.data) + + if isinstance(p, MPQWeightParameter): + # unpack qweight + p.data = saved_data + w_unpacked = gptq_stype_unpacking(p).to(self.dtype).to(saved_data.device) + w_unpacked.add_(norm_grad) + if group["weight_decay"] > 0.0: + w_unpacked.add_(w_unpacked, alpha=-group['lr'] * group['weight_decay']) + # pack fp weight back to Q-weight and update qweight data + p.data = pack_fp_weight(w_unpacked, p) + else: + p.data = saved_data.add_(norm_grad) + if group["weight_decay"] > 0.0: + p.data.add_(p.data, alpha=-group['lr'] * group['weight_decay']) + elif isinstance(p, MPQWeightParameter): + # now the p.data is actually: -norm_grad*lr + norm_grad = p.data.clone() + # unpack qweight + p.data = saved_data + w_unpacked = gptq_stype_unpacking(p).to(self.dtype).to(saved_data.device) + w_unpacked.add_(norm_grad) + if group["weight_decay"] > 0.0: + w_unpacked.add_(w_unpacked, alpha=-group['lr'] * group['weight_decay']) + # pack fp weight back to Q-weight and update qweight data + p.data = pack_fp_weight(w_unpacked, p) # pack fp weight back to qweight if w_unpacked is not None: - p.data = pack_fp_weight(w_unpacked, p) - + del w_unpacked + if saved_data is not None: + del saved_data + if torch.cuda.is_available(): + torch.cuda.empty_cache() + + if self.is_paged: # all paged operation are asynchronous, we need # to sync to make sure all tensors are in the right state diff --git a/sft/optim/bnb_optimizer.py b/sft/optim/bnb_optimizer.py index 6a9ad2a..3717dbf 100644 --- a/sft/optim/bnb_optimizer.py +++ b/sft/optim/bnb_optimizer.py @@ -316,7 +316,7 @@ def get_config(self, gindex, pindex, group): def init_state(self, group, p, gindex, pindex, grad): raise NotImplementedError("init_state method needs to be overridden") - def update_step(self, group, p, gindex, pindex, grad=None, w_unpacked=None): + def update_step(self, group, p, gindex, pindex, grad=None): raise NotImplementedError("The update_step method needs to be overridden") def get_state_buffer(self, p, dtype=torch.float32): @@ -476,7 +476,7 @@ def init_state(self, group, p, gindex, pindex, grad): state["unorm_vec"] = torch.zeros((1,), device=p.device) @torch.no_grad() - def update_step(self, group, p, gindex, pindex, grad=None, w_unpacked=None): + def update_step(self, group, p, gindex, pindex, grad=None): state = self.state[p] if grad is None: grad = p.grad @@ -496,14 +496,11 @@ def update_step(self, group, p, gindex, pindex, grad=None, w_unpacked=None): else: gnorm_scale = 1.0 - # use unpacked weight for update - _p = w_unpacked if w_unpacked is not None else p - if state["state1"].dtype == torch.float: F.optimizer_update_32bit( self.optimizer_name, grad, - _p, + p, state["state1"], config["betas"][0], config["eps"], @@ -522,7 +519,7 @@ def update_step(self, group, p, gindex, pindex, grad=None, w_unpacked=None): F.optimizer_update_8bit( self.optimizer_name, grad, - _p, + p, state["state1"], state["state2"], config["betas"][0], @@ -549,7 +546,7 @@ def update_step(self, group, p, gindex, pindex, grad=None, w_unpacked=None): F.optimizer_update_8bit_blockwise( self.optimizer_name, grad, - _p, + p, state["state1"], state["state2"], config["betas"][0], From 9b0ddbec2fdc5bc9fbeb0b538d130ec6295029c3 Mon Sep 17 00:00:00 2001 From: Haojin Yang Date: Mon, 22 Apr 2024 14:21:34 +0200 Subject: [PATCH 040/125] Adapted sft/README.md --- sft/README.md | 12 ++++-------- 1 file changed, 4 insertions(+), 8 deletions(-) diff --git a/sft/README.md b/sft/README.md index 9c86f7f..aa5da92 100644 --- a/sft/README.md +++ b/sft/README.md @@ -50,11 +50,7 @@ Run the script as follows to fine-tune the quantized weights of the model on the The '--tune-qweight-only' parameter determines whether to fine-tune only the quantized weights or all weights, including non-quantized ones. ```bash -CUDA_VISIBLE_DEVICES=0 python -m sft.finetune --model GreenBitAI/Qwen-1.5-1.8B-layer-mix-bpw-3.0 --dataset tatsu-lab/alpaca --galore --tune-qweight-only -``` -For more information about this parameter, please refer to: -```bash -python -m sft.finetune --help +CUDA_VISIBLE_DEVICES=0 python -m sft.finetune --model GreenBitAI/Qwen-1.5-1.8B-layer-mix-bpw-3.0 --dataset tatsu-lab/alpaca --optimizer DiodeMix --tune-qweight-only --galore ``` ### Parameter efficient finetuning @@ -62,7 +58,7 @@ python -m sft.finetune --help ```bash CUDA_VISIBLE_DEVICES=0 python ... ``` -... + ### Current Limitations @@ -71,6 +67,6 @@ CUDA_VISIBLE_DEVICES=0 python ... ## License -- The scripts 'adamw8bit.py' has been modified from [GaLore repository](https://github.com/jiaweizzhao/GaLore/blob/master/galore_torch/adamw8bit.py), which are released under the Apache 2.0 License. -- The scripts 'bnb_optimizer.py' has been modified from [bitsandbytes repository](https://github.com/TimDettmers/bitsandbytes/blob/main/bitsandbytes/optim/optimizer.py), which are released under the MIT License. +- The script 'optim/adamw8bit.py' has been modified from [GaLore repository](https://github.com/jiaweizzhao/GaLore/blob/master/galore_torch/adamw8bit.py), which is released under the Apache 2.0 License. +- The script 'optim/bnb_optimizer.py' has been modified from [bitsandbytes repository](https://github.com/TimDettmers/bitsandbytes/blob/main/bitsandbytes/optim/optimizer.py), which is released under the MIT License. - We release our changes and additions to these files under the [Apache 2.0 License](../LICENSE). \ No newline at end of file From 82e562d18d8f4da95f38e5516ad1df6241660f42 Mon Sep 17 00:00:00 2001 From: NicoNico6 <1751277309@qq.com> Date: Mon, 22 Apr 2024 14:22:22 +0000 Subject: [PATCH 041/125] support peft library --- sft/finetune.py | 13 ++- sft/peft_lora.py | 231 +++++++++++++++++++++++++++++++++++++ sft/peft_utils/gba_lora.py | 187 ++++++++++++++++++++++++++++++ sft/peft_utils/model.py | 40 +++++++ 4 files changed, 466 insertions(+), 5 deletions(-) create mode 100644 sft/peft_lora.py create mode 100644 sft/peft_utils/gba_lora.py create mode 100644 sft/peft_utils/model.py diff --git a/sft/finetune.py b/sft/finetune.py index 6435843..b2ceee5 100644 --- a/sft/finetune.py +++ b/sft/finetune.py @@ -22,8 +22,8 @@ from .optim import AdamW8bit # default value for arguments -DEFAULT_MODEL_PATH = "GreenBitAI/Qwen-1.5-4B-layer-mix-bpw-2.2" -DEFAULT_SEQLEN = 2048 +DEFAULT_MODEL_PATH = "GreenBitAI/Qwen-1.5-1.8B-layer-mix-bpw-3.0" +DEFAULT_SEQLEN = 512 DEFAULT_RANDOM_SEED = 0 DEFAULT_LR = 1e-5 DEFAULT_LR_GALORE = 1e-4 @@ -64,7 +64,7 @@ def setup_arg_parser(): parser.add_argument( "--save-dir", type=str, - default="../log/", + default="output/", help="Specify save dir for eval results.", ) parser.add_argument( @@ -236,13 +236,16 @@ def main(args): model.train() dataset = load_dataset(args.dataset, split="train") + + args.save_dir = args.save_dir + args.model train_args = TrainingArguments( - output_dir="./output", + output_dir=args.save_dir, gradient_checkpointing=True, # auto_find_batch_size=True, per_device_train_batch_size=4, logging_steps=1, + save_steps=50, max_grad_norm=0, # NOTE: max_grad_norm MUST be <= 0 or None, otherwise raise dtype error due to the Int dtype of qweight. ) @@ -261,7 +264,7 @@ def main(args): train_dataset=dataset, dataset_text_field="text", optimizers=optimizers, - #max_seq_length=args.seqlen, + max_seq_length=args.seqlen, ) trainer.train() diff --git a/sft/peft_lora.py b/sft/peft_lora.py new file mode 100644 index 0000000..19de203 --- /dev/null +++ b/sft/peft_lora.py @@ -0,0 +1,231 @@ +import argparse +import sys + +import torch +import torch.nn as nn + +from transformers import PreTrainedTokenizer, TrainingArguments +from datasets import load_dataset +from trl import SFTTrainer +from peft import PeftModel, LoraConfig, get_peft_model + +from green_bit_llm.model import load +from .peft_utils.model import * + +import warnings + +warnings.filterwarnings('ignore') + +ENGINE_AVAILABLE = True +try: + from bitorch_engine.optim import DiodeMix +except ModuleNotFoundError as e: + ENGINE_AVAILABLE = False + raise Exception("Error: Bitorch Engine optimizer (DiodeMix) are not available.") + +# default value for arguments +DEFAULT_MODEL_PATH = "GreenBitAI/Qwen-1.5-1.8B-layer-mix-bpw-3.0" +DEFAULT_SEQLEN = 512 +DEFAULT_RANDOM_SEED = 0 +DEFAULT_LR = 1e-5 +DEFAULT_LR_GALORE = 1e-4 +DEFAULT_LR_FP = 1e-6 +DEFAULT_BETAS = (0.9, 0.999) + +def setup_arg_parser(): + """Set up and return the argument parser.""" + parser = argparse.ArgumentParser(description="green-bit-llm finetune script") + parser.add_argument( + "--seed", + type=int, + default=DEFAULT_RANDOM_SEED, + help="The random seed for data loader.", + ) + parser.add_argument( + "--model", + type=str, + default=DEFAULT_MODEL_PATH, + help="The path to the local model directory or Hugging Face repo.", + ) + parser.add_argument( + "--cuda-device-id", + type=str, + default="0", + help="CUDA device IDs", + ) + parser.add_argument( + "--trust-remote-code", + action="store_true", + help="Enable trusting remote code for tokenizer", + ) + parser.add_argument( + "--use-flash-attention-2", + action="store_true", + help="Enable using flash attention v2", + ) + parser.add_argument( + "--eos-token", + type=str, + default="<|im_end|>", + help="End of sequence token for tokenizer", + ) + parser.add_argument( + "--seqlen", + type=int, + default=DEFAULT_SEQLEN, + help="Sequence length" + ) + parser.add_argument( + "--save-dir", + type=str, + default="output/", + help="Specify save dir for eval results.", + ) + parser.add_argument( + "--dtype", + type=str, + choices=["float", "half"], + default="half", + help="Dtype used in optimizer.", + ) + parser.add_argument( + "--dataset", + type=str, + default="tatsu-lab/alpaca", + help="Dataset name for finetuning", + ) + # qweight related + parser.add_argument( + "--lr-fp", + type=float, + default=DEFAULT_LR_FP, + help="Learning rate for full-precision weight." + ) + parser.add_argument("--optimizer", default="DiodeMix") + return parser + + +def str_to_torch_dtype(dtype: str): + if dtype is None: + return None + elif dtype == "float": + return torch.float + elif dtype == "half": + return torch.half + else: + raise ValueError(f"Unsupported dtype: {dtype}") + + +def create_device_map(cuda_device_id): + ids = cuda_device_id.split(',') + # Create strings in the format "cuda:x" for each ID and put them into the collection + device_map = {f"cuda:{id}" for id in ids} + return device_map + + +def create_param_groups(model, args: argparse.ArgumentParser): + """ + Create parameter groups for parameter efficient finetuning. + Args: + model (nn.Module): The neural network model. + args (argparse.ArgumentParser): Command line arguments for additional parameters. + + Returns: + List[dict]: A list of dictionaries where each dictionary contains a parameter group. + """ + params_groups = [] + + # Create list of peft parameters + params_lora = [p for n, p in model.named_parameters() if "lora" in n] + + params_group_lora = {'params': params_lora, 'lr': args.lr_fp, 'betas': DEFAULT_BETAS} + + params_groups.append(params_group_lora) + + return params_groups + + +def main(args): + + # Building configs + tokenizer_config = {"trust_remote_code": True if args.trust_remote_code else None} + pretrain_model_config = { + "trust_remote_code": True if args.trust_remote_code else None, + "use_flash_attention_2": True if args.use_flash_attention_2 else None + } + + if args.eos_token is not None: + tokenizer_config["eos_token"] = args.eos_token + + model, tokenizer, config = load( + args.model, + tokenizer_config=tokenizer_config, + device_map='auto', + seqlen=args.seqlen, + model_config=pretrain_model_config, + requires_grad=False, + ) + + config = LoraConfig( + r=64, + lora_alpha=32, + target_modules=["q_proj", "v_proj", "out_proj", "down_proj", "up_proj"], + lora_dropout=0.01, + bias="none", + task_type="CAUSAL_LM", + ) + + replace_peft_lora_model_with_gba_lora_model() + + model = get_peft_model(model, config) + + model.print_trainable_parameters() + + param_groups = create_param_groups(model, args) + + model.train() + + dataset = load_dataset(args.dataset, split="train") + + args.save_dir = args.save_dir + args.model + + train_args = TrainingArguments( + output_dir=args.save_dir, + gradient_checkpointing=True, + # auto_find_batch_size=True, + per_device_train_batch_size=4, + logging_steps=1, + save_steps=50, + max_grad_norm=0, # NOTE: max_grad_norm MUST be <= 0 or None, otherwise raise dtype error due to the Int dtype of qweight. + ) + + optimizer = DiodeMix(param_groups, dtype=str_to_torch_dtype(args.dtype)) + + optimizers = (optimizer, None) + + for name, param in model.named_parameters(): + if "qweight" not in name: + param.requires_grad = True + + trainer = SFTTrainer( + model=model, + args=train_args, + train_dataset=dataset, + dataset_text_field="text", + optimizers=optimizers, + max_seq_length=args.seqlen, + ) + + trainer.train() + + model.save_pretrained(args.save_dir) + +if __name__ == "__main__": + if not torch.cuda.is_available(): + print("Warning: CUDA is needed to run the model.") + sys.exit(0) + + parser = setup_arg_parser() + args = parser.parse_args() + + main(args) diff --git a/sft/peft_utils/gba_lora.py b/sft/peft_utils/gba_lora.py new file mode 100644 index 0000000..4f11ebb --- /dev/null +++ b/sft/peft_utils/gba_lora.py @@ -0,0 +1,187 @@ +# Copyright 2023-present the HuggingFace Inc. team. +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. +from __future__ import annotations + +import warnings +import copy +from typing import Any, Optional + +ENGINE_AVAILABLE = True +try: + from bitorch_engine.layers.qlinear.nbit import MPQLinearBase + from bitorch_engine.layers.qlinear.nbit.cuda import MPQLinearCuda, MBWQLinearCuda +except ModuleNotFoundError as e: + ENGINE_AVAILABLE = False + print(f"Error: Module not found: {e}.") + +import torch +import torch.nn as nn +import torch.nn.functional as F +from transformers.pytorch_utils import Conv1D + +from peft.tuners.tuners_utils import BaseTunerLayer, check_adapters_to_merge +from peft.utils.other import transpose +from peft.tuners.lora import LoraLayer + + +if ENGINE_AVAILABLE: + + class GBALoraLayer(LoraLayer): + # All names of layers that may contain (trainable) adapter weights + adapter_layer_names = ("lora_A", "lora_B", "lora_embedding_A", "lora_embedding_B") + # All names of other parameters that may contain adapter-related parameters + other_param_names = ("r", "lora_alpha", "scaling", "lora_dropout") + + def __init__(self, base_layer: nn.Module, **kwargs) -> None: + + self.base_layer = base_layer + self.r = {} + self.lora_alpha = {} + self.scaling = {} + self.lora_dropout = nn.ModuleDict({}) + self.lora_A = nn.ModuleDict({}) + self.lora_B = nn.ModuleDict({}) + # For Embedding layer + self.lora_embedding_A = nn.ParameterDict({}) + self.lora_embedding_B = nn.ParameterDict({}) + # Mark the weight as unmerged + self._disable_adapters = False + self.merged_adapters = [] + self.use_dora: dict[str, bool] = {} + self.lora_magnitude_vector: Optional[torch.nn.ParameterDict] = None # for DoRA + self._caches: dict[str, Any] = {} + self.kwargs = kwargs + + base_layer = self.get_base_layer() + if isinstance(base_layer, nn.Linear): + in_features, out_features = base_layer.in_features, base_layer.out_features + elif isinstance(base_layer, nn.Conv2d): + in_features, out_features = base_layer.in_channels, base_layer.out_channels + elif isinstance(base_layer, nn.Embedding): + in_features, out_features = base_layer.num_embeddings, base_layer.embedding_dim + elif isinstance(base_layer, Conv1D): + in_features, out_features = ( + base_layer.weight.ds_shape if hasattr(base_layer.weight, "ds_shape") else base_layer.weight.shape + ) + elif hasattr(base_layer, "infeatures") and hasattr(base_layer, "outfeatures"): + # QuantLinear + in_features, out_features = base_layer.infeatures, base_layer.outfeatures + elif hasattr(base_layer, "input_size") and hasattr(base_layer, "output_size"): + # Megatron ColumnParallelLinear,RowParallelLinear + in_features, out_features = base_layer.input_size, base_layer.output_size + elif hasattr(base_layer, "codebooks") and base_layer.__class__.__name__ == "QuantizedLinear": + # AQLM QuantLinear + in_features, out_features = base_layer.in_features, base_layer.out_features + elif hasattr(base_layer, "w_bit") and base_layer.__class__.__name__ == "WQLinear_GEMM": + # Awq layers + in_features, out_features = base_layer.in_features, base_layer.out_features + elif base_layer.__class__.__name__ == "MBWQLinearCuda": + in_features, out_features = base_layer.in_channels, base_layer.out_channels + elif base_layer.__class__.__name__ == "MPQLinearCuda": + in_features, out_features = base_layer.in_channels, base_layer.out_channels + else: + raise ValueError(f"Unsupported layer type {type(base_layer)}") + + self.in_features = in_features + self.out_features = out_features + + + class GBALoraLinear(torch.nn.Module, GBALoraLayer): + # Lora implemented in a dense layer + def __init__( + self, + base_layer: torch.nn.Module, + adapter_name: str, + r: int = 0, + lora_alpha: int = 1, + lora_dropout: float = 0.0, + init_lora_weights: bool = True, + use_rslora: bool = False, + use_dora: bool = False, + **kwargs, + ) -> None: + super().__init__() + GBALoraLayer.__init__(self, base_layer) + self.fan_in_fan_out = False + + self._active_adapter = adapter_name + self.update_layer( + adapter_name, + r, + lora_alpha=lora_alpha, + lora_dropout=lora_dropout, + init_lora_weights=init_lora_weights, + use_rslora=use_rslora, + use_dora=use_dora, + ) + + def forward(self, x: torch.Tensor, *args, **kwargs) -> torch.Tensor: + self._check_forward_args(x, *args, **kwargs) + adapter_names = kwargs.pop("adapter_names", None) + + result = self.base_layer(x, *args, **kwargs) + # As per Tim Dettmers, for 4bit, we need to defensively clone here. + # The reason is that in some cases, an error can occur that backprop + # does not work on a manipulated view. This issue may be solved with + # newer PyTorch versions but this would need extensive testing to be + # sure. + + for active_adapter in self.active_adapters: + if active_adapter not in self.lora_A.keys(): + continue + lora_A = self.lora_A[active_adapter] + lora_B = self.lora_B[active_adapter] + dropout = self.lora_dropout[active_adapter] + scaling = self.scaling[active_adapter] + + requires_conversion = not torch.is_autocast_enabled() + if requires_conversion: + expected_dtype = result.dtype + x = x.to(lora_A.weight.dtype) + + if not self.use_dora[active_adapter]: + output = lora_B(lora_A(dropout(x))) * scaling + else: + output = self._apply_dora(x, lora_A, lora_B, scaling, active_adapter) + if requires_conversion: + output = output.to(expected_dtype) + + result = result + output + + return result + + def __repr__(self) -> str: + rep = super().__repr__() + return "lora." + rep + + def dispatch_gba(target: torch.nn.Module, adapter_name: str, **kwargs): + new_module = None + + if isinstance(target, BaseTunerLayer): + target_base_layer = target.get_base_layer() + else: + target_base_layer = target + + ENGINE_AVAILABLE=True + try: + from bitorch_engine.layers.qlinear.nbit import MPQLinearBase + from bitorch_engine.layers.qlinear.nbit.cuda import MPQLinearCuda, MBWQLinearCuda + except ModuleNotFoundError as e: + ENGINE_AVAILABLE = False + print(f"Error: Module not found: {e}.") + + if ENGINE_AVAILABLE and (isinstance(target_base_layer, MBWQLinearCuda) or isinstance(target_base_layer, MPQLinearCuda)): + new_module = GBALoraLinear(target_base_layer, adapter_name, **kwargs) + + return new_module diff --git a/sft/peft_utils/model.py b/sft/peft_utils/model.py new file mode 100644 index 0000000..efb54ca --- /dev/null +++ b/sft/peft_utils/model.py @@ -0,0 +1,40 @@ +import torch +from torch import nn + +from peft.tuners import lora +from peft.tuners.lora import LoraLayer +from peft.utils import _get_submodules, PeftType + +from .gba_lora import dispatch_gba + +class GBALoraModel(lora.LoraModel): + @staticmethod + def _create_new_module(lora_config, adapter_name, target, **kwargs): + # Collect dispatcher functions to decide what backend to use for the replaced LoRA layer. The order matters, + # because the first match is always used. Therefore, the default layers should be checked last. + dispatchers = [] + + dispatchers.append(dispatch_gba) + + dispatchers.extend( + [dispatch_gba] + ) + + new_module = None + for dispatcher in dispatchers: + new_module = dispatcher(target, adapter_name, lora_config=lora_config, **kwargs) + if new_module is not None: # first match wins + break + + if new_module is None: + # no module could be matched + raise ValueError( + f"Target module {target} is not supported. Currently, only the following modules are supported: " + "`torch.nn.Linear`, `torch.nn.Embedding`, `torch.nn.Conv2d`, `transformers.pytorch_utils.Conv1D`." + ) + + return new_module + +def replace_peft_lora_model_with_gba_lora_model(): + import peft.peft_model + peft.peft_model.PEFT_TYPE_TO_MODEL_MAPPING[PeftType.LORA] = GBALoraModel From 265551c331d6bca936f5538f06b0b373c86bed1f Mon Sep 17 00:00:00 2001 From: NicoNico6 <1751277309@qq.com> Date: Mon, 22 Apr 2024 14:23:18 +0000 Subject: [PATCH 042/125] update peft lora command --- sft/README.md | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/sft/README.md b/sft/README.md index aa5da92..8272118 100644 --- a/sft/README.md +++ b/sft/README.md @@ -56,7 +56,7 @@ CUDA_VISIBLE_DEVICES=0 python -m sft.finetune --model GreenBitAI/Qwen-1.5-1.8B-l ### Parameter efficient finetuning ```bash -CUDA_VISIBLE_DEVICES=0 python ... +CUDA_VISIBLE_DEVICES=0 python -m sft.peft_lora --model GreenBitAI/Qwen-1.5-1.8B-layer-mix-bpw-3.0 --dataset tatsu-lab/alpaca --lr-fp 1e-6 ``` @@ -69,4 +69,4 @@ CUDA_VISIBLE_DEVICES=0 python ... ## License - The script 'optim/adamw8bit.py' has been modified from [GaLore repository](https://github.com/jiaweizzhao/GaLore/blob/master/galore_torch/adamw8bit.py), which is released under the Apache 2.0 License. - The script 'optim/bnb_optimizer.py' has been modified from [bitsandbytes repository](https://github.com/TimDettmers/bitsandbytes/blob/main/bitsandbytes/optim/optimizer.py), which is released under the MIT License. -- We release our changes and additions to these files under the [Apache 2.0 License](../LICENSE). \ No newline at end of file +- We release our changes and additions to these files under the [Apache 2.0 License](../LICENSE). From f5d36d6ba9a61329bb218039aef2582fc88caf45 Mon Sep 17 00:00:00 2001 From: NicoNico6 <1751277309@qq.com> Date: Mon, 22 Apr 2024 14:31:04 +0000 Subject: [PATCH 043/125] add __init__ --- sft/peft_utils/__init__.py | 0 1 file changed, 0 insertions(+), 0 deletions(-) create mode 100644 sft/peft_utils/__init__.py diff --git a/sft/peft_utils/__init__.py b/sft/peft_utils/__init__.py new file mode 100644 index 0000000..e69de29 From 2905ee6a9c674aa9a74a6cc22e6d063eee125295 Mon Sep 17 00:00:00 2001 From: Haojin Yang Date: Tue, 23 Apr 2024 08:49:29 +0200 Subject: [PATCH 044/125] Added a current limitation into readme. Added batch size arg into finetune.py --- sft/README.md | 2 +- sft/finetune.py | 8 +++++++- 2 files changed, 8 insertions(+), 2 deletions(-) diff --git a/sft/README.md b/sft/README.md index 8272118..ead7e19 100644 --- a/sft/README.md +++ b/sft/README.md @@ -62,7 +62,7 @@ CUDA_VISIBLE_DEVICES=0 python -m sft.peft_lora --model GreenBitAI/Qwen-1.5-1.8B- ### Current Limitations -1. **placeholder a** +1. **Gradient clipping** is currently **unavailable** due to PyTorch's restrictions on the dtype of gradient tensors. The integer tensor type we use for qweight is not supported. We plan to address this issue gradually in the future. 2. **placeholder b** diff --git a/sft/finetune.py b/sft/finetune.py index b2ceee5..a7c5b09 100644 --- a/sft/finetune.py +++ b/sft/finetune.py @@ -122,6 +122,12 @@ def setup_arg_parser(): help="Optimizer to use: 1. DiodeMix, 2. AdamW8bit" ) parser.add_argument("--weight_decay", type=float, default=0.0) + parser.add_argument( + "--batch-size", + type=int, + default=4, + help="Batch size" + ) return parser @@ -243,7 +249,7 @@ def main(args): output_dir=args.save_dir, gradient_checkpointing=True, # auto_find_batch_size=True, - per_device_train_batch_size=4, + per_device_train_batch_size=args.batch_size, logging_steps=1, save_steps=50, max_grad_norm=0, # NOTE: max_grad_norm MUST be <= 0 or None, otherwise raise dtype error due to the Int dtype of qweight. From becf37b60e13fa87375d396e22f18fedc7b6ac89 Mon Sep 17 00:00:00 2001 From: Haojin Yang Date: Tue, 23 Apr 2024 11:26:56 +0200 Subject: [PATCH 045/125] Added missing comments to the classes and functions. Simplified the args parser for sft and inference package. --- evaluation/datautils.py | 92 +++++++++- evaluation/evaluate.py | 14 ++ evaluation/lmclass.py | 36 ++-- evaluation/utils.py | 24 ++- green_bit_llm/__init__.py | 3 +- green_bit_llm/args_parser.py | 64 +++++++ inference/chat_base.py | 4 +- inference/conversation.py | 2 +- inference/sim_gen.py | 31 +--- inference/utils.py | 18 ++ sft/README.md | 2 +- sft/finetune.py | 97 ++-------- sft/peft_lora.py | 108 +++-------- sft/peft_utils/gba_lora.py | 339 +++++++++++++++++++---------------- sft/peft_utils/model.py | 29 ++- sft/utils.py | 20 +++ 16 files changed, 512 insertions(+), 371 deletions(-) create mode 100644 green_bit_llm/args_parser.py create mode 100644 sft/utils.py diff --git a/evaluation/datautils.py b/evaluation/datautils.py index 7e54a1d..cbe56b6 100644 --- a/evaluation/datautils.py +++ b/evaluation/datautils.py @@ -4,7 +4,19 @@ import random def get_wikitext2(nsamples, seed, seqlen, model): - print("get_wikitext2") + """ + Prepares data loaders for the Wikitext-2 dataset for training and testing. + + Args: + nsamples (int): Number of random samples to generate from the training data. + seed (int): Seed for random number generator to ensure reproducibility. + seqlen (int): Sequence length for each input sample. + model (str): Pretrained model identifier used for tokenization. + + Returns: + tuple: A tuple containing the training loader and tokenized test data. + """ + print("Info: get_wikitext2") traindata = load_dataset('wikitext', 'wikitext-2-raw-v1', split='train', cache_dir="./cache/") testdata = load_dataset('wikitext', 'wikitext-2-raw-v1', split='test', cache_dir="./cache/") @@ -24,8 +36,21 @@ def get_wikitext2(nsamples, seed, seqlen, model): return trainloader, testenc + def get_ptb(nsamples, seed, seqlen, model): - print("get_ptb") + """ + Load and prepare the Penn Treebank (PTB) dataset for training and validation. + + Args: + nsamples (int): The number of samples to generate for the training loader. + seed (int): The seed value for random number generation, ensuring reproducibility. + seqlen (int): The sequence length of each sample. + model (str): The model identifier used to load a pre-trained tokenizer. + + Returns: + tuple: A tuple containing the training loader and tokenized validation data. + """ + print("Info: get_ptb") traindata = load_dataset('ptb_text_only', 'penn_treebank', split='train', cache_dir="./cache/") valdata = load_dataset('ptb_text_only', 'penn_treebank', split='validation', cache_dir="./cache/") @@ -46,8 +71,20 @@ def get_ptb(nsamples, seed, seqlen, model): return trainloader, testenc + def get_c4(nsamples, seed, seqlen, model): - print("get_c4") + """ + Loads and preprocesses the C4 dataset for training and validation. + Args: + nsamples (int): Number of samples to generate for training. + seed (int): Random seed for reproducibility. + seqlen (int): The sequence length for each training sample. + model (str): Model identifier for tokenizer initialization. + + Returns: + tuple: A tuple containing training data loader and validation data tensor. + """ + print("Info: get_c4") traindata = load_dataset( 'allenai/c4', 'allenai--c4', data_files={'train': 'en/c4-train.00000-of-01024.json.gz'}, @@ -95,8 +132,22 @@ def get_c4(nsamples, seed, seqlen, model): return trainloader, valenc + def get_ptb_new(nsamples, seed, seqlen, model): - print("get_ptb_new") + """ + Generates training and testing data loaders for the Penn Treebank dataset using a specified model tokenizer. + + Args: + nsamples (int): Number of samples to generate in the training loader. + seed (int): Random seed for reproducibility of sample selection. + seqlen (int): Sequence length of each sample in the training data. + model (str): Model identifier for the tokenizer (e.g., a Hugging Face model name). + + Returns: + tuple: A tuple containing the training loader (list of tuples with input IDs and target IDs) and + the tokenized test data. + """ + print("Info: get_ptb_new") traindata = load_dataset('ptb_text_only', 'penn_treebank', split='train') testdata = load_dataset('ptb_text_only', 'penn_treebank', split='test') @@ -117,8 +168,23 @@ def get_ptb_new(nsamples, seed, seqlen, model): return trainloader, testenc + def get_c4_new(nsamples, seed, seqlen, model): - print("get_c4_new") + """ + Load and preprocess training and validation datasets from C4 dataset, and tokenize the data. + + Args: + nsamples (int): Number of samples to process for the training data. + seed (int): Random seed for reproducibility of sample selection. + seqlen (int): Length of the sequence for each input/output example. + model (str): Model identifier for the tokenizer, specifying which pretrained model to use. + + Returns: + tuple: A tuple containing two elements: + - trainloader (list of tuples): A list where each tuple contains input ids and target tensors for training. + - valenc (torch.Tensor): A tensor containing the tokenized validation data. + """ + print("Info: get_c4_new") traindata = load_dataset( 'allenai/c4', data_files={'train': 'en/c4-train.00000-of-01024.json.gz'}, split='train' ) @@ -150,6 +216,22 @@ def get_c4_new(nsamples, seed, seqlen, model): def get_loaders(name, nsamples=128, seed=0, seqlen=2048, model=''): + """ + Retrieves data loaders for different datasets based on the dataset name. + + Args: + name (str): The name of the dataset to load, which can include specific versions like 'new'. + nsamples (int): The number of samples to retrieve from the dataset. + seed (int): The random seed to ensure reproducibility. + seqlen (int): The sequence length of the samples. + model (str): The model specification that might influence data preprocessing. + + Returns: + DataLoader: A configured data loader for the specified dataset. + + Raises: + ValueError: If the dataset name is not recognized or supported. + """ if 'wikitext2' in name: return get_wikitext2(nsamples, seed, seqlen, model) elif 'ptb' in name: diff --git a/evaluation/evaluate.py b/evaluation/evaluate.py index 2ee11dd..d586720 100644 --- a/evaluation/evaluate.py +++ b/evaluation/evaluate.py @@ -29,6 +29,20 @@ @torch.no_grad() def lm_evaluate(lm, args, logger): + """ + Evaluates the language model (lm) according to the specified evaluation parameters in args. + This function handles both perplexity evaluation on various datasets and few-shot learning evaluation. + + Parameters: + lm: The language model object configured for evaluation. + args: An object containing all necessary parameters and flags for evaluation, such as which datasets to use, + whether to evaluate perplexity or few-shot performance, sequence length, etc. + logger: A logging object used to record evaluation results and other important messages. + + Returns: + A dictionary containing evaluation results, including perplexity values and few-shot evaluation metrics, + keyed by dataset or task name. + """ results = {} lm.model = lm.model.to(lm.device) diff --git a/evaluation/lmclass.py b/evaluation/lmclass.py index 1194289..5f17096 100644 --- a/evaluation/lmclass.py +++ b/evaluation/lmclass.py @@ -5,16 +5,18 @@ class LMClass(BaseLM): """ - Warp the model to LMClass format for lm_eval + Wraps a pretrained language model into a format suitable for evaluation tasks. + This class adapts a given model to be used with specific language modeling evaluation tools. Args: - model_name (str): The LLM name - batch_size (int): The per device batch. - config (dict): Configuration parameters specifically for the LLM. - model (nn.Module): The pretrained model from GreenBitAI model zoo. + model_name (str): Name of the language model. + batch_size (int): Batch size per GPU for processing. + config (dict): Configuration settings for the model. + tokenizer: Tokenizer associated with the model for text processing. + model (nn.Module): The pretrained neural network model. """ def __init__(self, model_name, batch_size, config, tokenizer, model): - + # Initializes the model wrapper class with specified model and configuration super().__init__() self._device = torch.device("cuda" if torch.cuda.is_available() else "cpu") @@ -27,6 +29,7 @@ def __init__(self, model_name, batch_size, config, tokenizer, model): self.initial() def initial(self): + # Initializes the model for inference, setting up necessary parameters such as sequence length and vocab size self.seqlen = self.model.config.max_position_embeddings self.model.eval() self.vocab_size = self.tokenizer.vocab_size @@ -34,6 +37,7 @@ def initial(self): @property def eot_token(self) -> str: + # Returns the end-of-text token as a string return self.tokenizer.eos_token @property @@ -43,6 +47,7 @@ def eot_token_id(self): @property def max_length(self): + # Returns the maximum length of sequences the model can handle, based on the model's configuration try: return self.gpt2.config.n_ctx except AttributeError: @@ -51,23 +56,28 @@ def max_length(self): @property def max_gen_toks(self): + # Returns the maximum number of tokens that can be generated in one go print("max_gen_toks fn") return 256 @property def batch_size(self): + # Returns the configured batch size per GPU # TODO: fix multi-gpu return self.batch_size_per_gpu # * gpus @property def device(self): + # Returns the computing device (CPU or GPU) that the model is using # TODO: fix multi-gpu return self._device def tok_encode(self, string: str): + # Encodes a string into its corresponding IDs using the tokenizer return self.tokenizer.encode(string, add_special_tokens=False) def tok_encode_batch(self, strings): + # Encodes a batch of strings into model inputs, handling padding and special tokens return self.tokenizer( strings, padding=True, @@ -76,19 +86,24 @@ def tok_encode_batch(self, strings): ) def tok_decode(self, tokens): + # Decodes a batch of token IDs back into strings return self.tokenizer.batch_decode(tokens, skip_special_tokens=True) def _model_call(self, inps): """ - inps: a torch tensor of shape [batch, sequence] - the size of sequence may vary from call to call - returns: a torch tensor of shape [batch, sequence, vocab] with the - logits returned from the model + Performs a forward pass through the model with the provided inputs and returns logits + + Args: + inps: a torch tensor of shape [batch, sequence] + the size of sequence may vary from call to call + returns: a torch tensor of shape [batch, sequence, vocab] with the + logits returned from the model """ with torch.no_grad(): return self.model(inps)["logits"] def model_batched_set(self, inps): + # Processes a set of inputs in batches and returns a list of logit tensors dataset_logits = [] for batch in inps: multi_logits = F.log_softmax( @@ -98,6 +113,7 @@ def model_batched_set(self, inps): return dataset_logits def _model_generate(self, context, max_length, eos_token_id): + # Generates text based on a given context up to a specified maximum length return self.model.generate( context, max_length=max_length, eos_token_id=eos_token_id, do_sample=False ) diff --git a/evaluation/utils.py b/evaluation/utils.py index ef2b0ae..115b896 100644 --- a/evaluation/utils.py +++ b/evaluation/utils.py @@ -5,7 +5,15 @@ import logging from termcolor import colored + def pattern_match(patterns, source_list): + """ + Function to find unique matching patterns from a source list. + Args: + patterns: list of pattern strings to match. + Returns: + list: list of task name + """ task_names = set() for pattern in patterns: task_names.add(pattern) @@ -16,8 +24,9 @@ def add_dict_to_json_file(file_path, new_data): Update a JSON file based on the top-level keys in new_data. If the key exists, it replaces the existing content under that key. If it doesn't exist, it adds the new key with its value. - :param file_path: Path to the JSON file. - :param new_data: Dictionary to add or update in the file. + Args: + file_path: Path to the JSON file. + new_data: Dictionary to add or update in the file. """ # Initialize or load existing data if os.path.exists(file_path) and os.stat(file_path).st_size > 0: @@ -34,6 +43,17 @@ def add_dict_to_json_file(file_path, new_data): json.dump(existing_data, file, indent=4) def create_logger(output_dir, dist_rank=0, name=''): + """ + Creates and configures a logger with console and file handlers. + + Args: + output_dir (str): Directory where the log files will be stored. + dist_rank (int): Rank of the process in distributed training. Only the master process (rank 0) will output to the console. + name (str): Name of the logger, used to differentiate output if multiple loggers are used. + + Returns: + logger: Configured logger object. + """ # create logger logger = logging.getLogger(name) logger.setLevel(logging.INFO) diff --git a/green_bit_llm/__init__.py b/green_bit_llm/__init__.py index 2e4b794..c31941e 100644 --- a/green_bit_llm/__init__.py +++ b/green_bit_llm/__init__.py @@ -1 +1,2 @@ -from .model import load, generate \ No newline at end of file +from .model import load, generate +from .args_parser import setup_shared_arg_parser \ No newline at end of file diff --git a/green_bit_llm/args_parser.py b/green_bit_llm/args_parser.py new file mode 100644 index 0000000..28f4e4c --- /dev/null +++ b/green_bit_llm/args_parser.py @@ -0,0 +1,64 @@ +import argparse + +DEFAULT_MODEL_PATH = "GreenBitAI/Qwen-1.5-0.5B-layer-mix-bpw-2.2" +DEFAULT_SEQLEN = 2048 + + +def setup_shared_arg_parser(parser_name="Shared argument parser for green-bit-llm scripts"): + """Set up and return the argument parser with shared arguments.""" + parser = argparse.ArgumentParser(description=parser_name) + parser.add_argument( + "--model", + type=str, + default=DEFAULT_MODEL_PATH, + help="The path to the local model directory or Hugging Face repo.", + ) + parser.add_argument( + "--trust-remote-code", + action="store_true", + help="Enable trusting remote code for tokenizer", + ) + parser.add_argument( + "--use-flash-attention-2", + action="store_true", + help="Enable using flash attention v2", + ) + parser.add_argument( + "--seqlen", + type=int, + default=DEFAULT_SEQLEN, + help="Sequence length" + ) + parser.add_argument( + "--save-dir", + type=str, + default="output/", + help="Specify save dir for eval results.", + ) + parser.add_argument( + "--dtype", + type=str, + choices=["float", "half"], + default="half", + help="Dtype used in optimizer.", + ) + parser.add_argument( + "--dataset", + type=str, + default="tatsu-lab/alpaca", + help="Dataset name for finetuning", + ) + parser.add_argument( + "--optimizer", + type=str, + default="DiodeMix", + help="Optimizer to use: 1. DiodeMix, 2. AdamW8bit" + ) + parser.add_argument( + "--batch-size", + type=int, + default=4, + help="Batch size" + ) + parser.add_argument("--weight_decay", type=float, default=0.0) + return parser diff --git a/inference/chat_base.py b/inference/chat_base.py index 7cf673a..3c57666 100644 --- a/inference/chat_base.py +++ b/inference/chat_base.py @@ -1,15 +1,13 @@ """ Base classes and functions for cli chat demo. -Code based on: https://github.com/yanghaojin/FastChat/blob/greenbit/fastchat/serve/inference.py +Code based on: https://github.com/lm-sys/FastChat/blob/main/fastchat/serve/inference.py """ import re import gc -import sys import abc import json import os import time -from pathlib import Path from typing import Optional, Dict, Iterable from prompt_toolkit import PromptSession diff --git a/inference/conversation.py b/inference/conversation.py index f146892..eec7363 100644 --- a/inference/conversation.py +++ b/inference/conversation.py @@ -1,6 +1,6 @@ """ Conversation prompt templates for cli chat demo. -code based on: https://github.com/yanghaojin/FastChat/blob/greenbit/fastchat/conversation.py +code based on: https://github.com/lm-sys/FastChat/blob/main/fastchat/conversation.py """ import base64 diff --git a/inference/sim_gen.py b/inference/sim_gen.py index 5fbb441..2486049 100644 --- a/inference/sim_gen.py +++ b/inference/sim_gen.py @@ -1,5 +1,4 @@ import argparse -import sys import os import torch @@ -10,27 +9,20 @@ from transformers import PreTrainedTokenizer -from pathlib import Path +from green_bit_llm import setup_shared_arg_parser # default value for arguments -DEFAULT_MODEL_PATH = "GreenBitAI/Qwen-1.5-0.5B-layer-mix-bpw-2.2" DEFAULT_PROMPT = None DEFAULT_MAX_TOKENS = 100 DEFAULT_TEMP = 0.8 DEFAULT_TOP_P = 0.95 -DEFAULT_SEQLEN = 2048 DTYPE = torch.half def setup_arg_parser(): """Set up and return the argument parser.""" - parser = argparse.ArgumentParser(description="green-bit-llm inference script") - parser.add_argument( - "--model", - type=str, - default=DEFAULT_MODEL_PATH, - help="The path to the local model directory or Hugging Face repo.", - ) + parser = setup_shared_arg_parser("green-bit-llm inference script") + parser.add_argument("--num-gpus", type=int, default=1) parser.add_argument( "--gpus", @@ -38,16 +30,6 @@ def setup_arg_parser(): default='0', help="A single GPU like 1 or multiple GPUs like 0,2", ) - parser.add_argument( - "--trust-remote-code", - action="store_true", - help="Enable trusting remote code for tokenizer", - ) - parser.add_argument( - "--use-flash-attention-2", - action="store_true", - help="Enable using flash attention v2", - ) parser.add_argument( "--eos-token", type=str, @@ -69,9 +51,6 @@ def setup_arg_parser(): parser.add_argument( "--top-p", type=float, default=DEFAULT_TOP_P, help="Sampling top-p" ) - parser.add_argument( - "--seqlen", type=int, default=DEFAULT_SEQLEN, help="Sequence length" - ) parser.add_argument( "--ignore-chat-template", action="store_true", @@ -92,6 +71,10 @@ def create_device_map(cuda_device_id): def do_generate(args, model: nn.Module, tokenizer: PreTrainedTokenizer, prompt: str): + """ + This function generates text based on a given prompt using a model and tokenizer. + It handles optional pre-processing with chat templates if specified in the arguments. + """ if not args.ignore_chat_template and ( hasattr(tokenizer, "apply_chat_template") and tokenizer.chat_template is not None diff --git a/inference/utils.py b/inference/utils.py index 37e73ed..8ff7e73 100644 --- a/inference/utils.py +++ b/inference/utils.py @@ -64,6 +64,7 @@ def get_context_length(config): def get_conversation_template(model_path: str) -> Conversation: + """Get and return a specific conversation template via checking its model path/model name.""" for key, value in CONV_TEMP_DICT.items(): # check if model path contains the value if value in model_path.lower(): @@ -74,6 +75,21 @@ def get_conversation_template(model_path: str) -> Conversation: def prepare_logits_processor( temperature: float, repetition_penalty: float, top_p: float, top_k: int ) -> LogitsProcessorList: + """ + Creates and initializes a list of logits processors based on the specified parameters. + Each processor applies a different modification to the logits during text generation, + such as adjusting the sampling temperature, applying repetition penalties, + or enforcing top-p and top-k constraints. + + Args: + temperature (float): Scaling factor for logits; a value of 1.0 means no scaling. + repetition_penalty (float): Penalty for repeated tokens to discourage repetition. + top_p (float): The cumulative probability threshold for nucleus sampling, filters out the smallest probabilities. + top_k (int): The number of highest probability logits to keep for top-k sampling. + + Returns: + LogitsProcessorList: A configured list of logits processors. + """ processor_list = LogitsProcessorList() # TemperatureLogitsWarper doesn't accept 0.0, 1.0 makes it a no-op so we skip two cases. if temperature >= 1e-5 and temperature != 1.0: @@ -88,6 +104,7 @@ def prepare_logits_processor( def str_to_torch_dtype(dtype: str): + """Get torch dtype via parsing the dtype string.""" import torch if dtype is None: @@ -103,5 +120,6 @@ def str_to_torch_dtype(dtype: str): def is_chat_model(path): + """Distinguish if the input model name contains keywords like '-chat-' or '-instrct-'""" substrings = ["-chat-", "-instruct-"] return any(substring in path for substring in substrings) \ No newline at end of file diff --git a/sft/README.md b/sft/README.md index ead7e19..7595488 100644 --- a/sft/README.md +++ b/sft/README.md @@ -62,7 +62,7 @@ CUDA_VISIBLE_DEVICES=0 python -m sft.peft_lora --model GreenBitAI/Qwen-1.5-1.8B- ### Current Limitations -1. **Gradient clipping** is currently **unavailable** due to PyTorch's restrictions on the dtype of gradient tensors. The integer tensor type we use for qweight is not supported. We plan to address this issue gradually in the future. +1. **Gradient clipping** is currently **unavailable** for Full-parameter finetuning due to PyTorch's restrictions on the dtype of gradient tensors. The integer tensor type we use for qweight is not supported. We plan to address this issue gradually in the future. 2. **placeholder b** diff --git a/sft/finetune.py b/sft/finetune.py index a7c5b09..e755b71 100644 --- a/sft/finetune.py +++ b/sft/finetune.py @@ -1,6 +1,5 @@ import argparse import sys -import os import torch @@ -8,7 +7,7 @@ from datasets import load_dataset from trl import SFTTrainer -from green_bit_llm.model import load +from green_bit_llm import load, setup_shared_arg_parser import warnings @@ -16,11 +15,15 @@ try: from bitorch_engine.optim import DiodeMix + from bitorch_engine.layers.qlinear.nbit import MPQLinearBase except ModuleNotFoundError as e: - raise Exception("Error: Bitorch Engine optimizer (DiodeMix) are not available.") + raise Exception(f"Error occurred while importing Bitorch Engine module '{str(e)}'.") from .optim import AdamW8bit +from .utils import str_to_torch_dtype + + # default value for arguments DEFAULT_MODEL_PATH = "GreenBitAI/Qwen-1.5-1.8B-layer-mix-bpw-3.0" DEFAULT_SEQLEN = 512 @@ -30,67 +33,27 @@ DEFAULT_LR_ADAMW8BIT = 5e-3 DEFAULT_BETAS = (0.9, 0.999) + def setup_arg_parser(): """Set up and return the argument parser.""" - parser = argparse.ArgumentParser(description="green-bit-llm finetune script") + parser = setup_shared_arg_parser("green-bit-llm finetune script") parser.add_argument( "--seed", type=int, default=DEFAULT_RANDOM_SEED, help="The random seed for data loader.", ) - parser.add_argument( - "--model", - type=str, - default=DEFAULT_MODEL_PATH, - help="The path to the local model directory or Hugging Face repo.", - ) - parser.add_argument( - "--trust-remote-code", - action="store_true", - help="Enable trusting remote code for tokenizer", - ) - parser.add_argument( - "--use-flash-attention-2", - action="store_true", - help="Enable using flash attention v2", - ) - parser.add_argument( - "--seqlen", - type=int, - default=DEFAULT_SEQLEN, - help="Sequence length" - ) - parser.add_argument( - "--save-dir", - type=str, - default="output/", - help="Specify save dir for eval results.", - ) - parser.add_argument( - "--dtype", - type=str, - choices=["float", "half"], - default="half", - help="Dtype used in optimizer.", - ) # GaLore parameters parser.add_argument( "--galore", action="store_true", help="Enable using galore", ) - parser.add_argument("--rank", type=int, default=128) - parser.add_argument("--update_proj_gap", type=int, default=200) - parser.add_argument("--galore_scale", type=float, default=0.25) - parser.add_argument("--proj_type", type=str, default="std") + parser.add_argument("--galore-rank", type=int, default=128) + parser.add_argument("--galore-update-proj-gap", type=int, default=200) + parser.add_argument("--galore-scale", type=float, default=0.25) + parser.add_argument("--galore-proj-type", type=str, default="std") - parser.add_argument( - "--dataset", - type=str, - default="tatsu-lab/alpaca", - help="Dataset name for finetuning", - ) # qweight related parser.add_argument( "--tune-qweight-only", @@ -115,34 +78,11 @@ def setup_arg_parser(): default=DEFAULT_LR, help="Learning rate for full-precision weight." ) - parser.add_argument( - "--optimizer", - type=str, - default="DiodeMix", - help="Optimizer to use: 1. DiodeMix, 2. AdamW8bit" - ) - parser.add_argument("--weight_decay", type=float, default=0.0) - parser.add_argument( - "--batch-size", - type=int, - default=4, - help="Batch size" - ) return parser -def str_to_torch_dtype(dtype: str): - if dtype is None: - return None - elif dtype == "float": - return torch.float - elif dtype == "half": - return torch.float16 - else: - raise ValueError(f"Unsupported dtype: {dtype}") - - def get_learning_rate(lr_bit, galore, default_lr_galore, default_lr): + """Adaptivly get the learning rate value from the input setting parameters.""" if lr_bit > 0: return lr_bit return default_lr_galore if galore else default_lr @@ -164,8 +104,6 @@ def create_param_groups(model, args: argparse.ArgumentParser): params_2_bit = [] params_4_bit = [] - from bitorch_engine.layers.qlinear.nbit import MPQLinearBase - for module_name, module in model.named_modules(): if issubclass(type(module), MPQLinearBase): if module.w_bit == 2: @@ -201,10 +139,10 @@ def create_param_groups(model, args: argparse.ArgumentParser): # Optionally add extra settings from command line arguments if args.galore: galore_settings = { - 'rank': args.rank, - 'update_proj_gap': args.update_proj_gap, + 'rank': args.galore_rank, + 'update_proj_gap': args.galore_update_proj_gap, 'scale': args.galore_scale, - 'proj_type': args.proj_type + 'proj_type': args.galore_proj_type } params_group_2bit.update(galore_settings) params_group_4bit.update(galore_settings) @@ -275,6 +213,9 @@ def main(args): trainer.train() + model.save_pretrained(args.save_dir) + + if __name__ == "__main__": if not torch.cuda.is_available(): print("Warning: CUDA is required to run the model.") diff --git a/sft/peft_lora.py b/sft/peft_lora.py index 19de203..dfb4418 100644 --- a/sft/peft_lora.py +++ b/sft/peft_lora.py @@ -2,26 +2,25 @@ import sys import torch -import torch.nn as nn from transformers import PreTrainedTokenizer, TrainingArguments from datasets import load_dataset from trl import SFTTrainer from peft import PeftModel, LoraConfig, get_peft_model -from green_bit_llm.model import load +from green_bit_llm.model import load, setup_shared_arg_parser from .peft_utils.model import * +from .optim import AdamW8bit import warnings - warnings.filterwarnings('ignore') -ENGINE_AVAILABLE = True try: from bitorch_engine.optim import DiodeMix except ModuleNotFoundError as e: - ENGINE_AVAILABLE = False - raise Exception("Error: Bitorch Engine optimizer (DiodeMix) are not available.") + raise Exception(f"Error occurred while importing Bitorch Engine module '{str(e)}'.") + +from .utils import str_to_torch_dtype # default value for arguments DEFAULT_MODEL_PATH = "GreenBitAI/Qwen-1.5-1.8B-layer-mix-bpw-3.0" @@ -32,68 +31,16 @@ DEFAULT_LR_FP = 1e-6 DEFAULT_BETAS = (0.9, 0.999) + def setup_arg_parser(): """Set up and return the argument parser.""" - parser = argparse.ArgumentParser(description="green-bit-llm finetune script") + parser = setup_shared_arg_parser("green-bit-llm lora script") parser.add_argument( "--seed", type=int, default=DEFAULT_RANDOM_SEED, help="The random seed for data loader.", ) - parser.add_argument( - "--model", - type=str, - default=DEFAULT_MODEL_PATH, - help="The path to the local model directory or Hugging Face repo.", - ) - parser.add_argument( - "--cuda-device-id", - type=str, - default="0", - help="CUDA device IDs", - ) - parser.add_argument( - "--trust-remote-code", - action="store_true", - help="Enable trusting remote code for tokenizer", - ) - parser.add_argument( - "--use-flash-attention-2", - action="store_true", - help="Enable using flash attention v2", - ) - parser.add_argument( - "--eos-token", - type=str, - default="<|im_end|>", - help="End of sequence token for tokenizer", - ) - parser.add_argument( - "--seqlen", - type=int, - default=DEFAULT_SEQLEN, - help="Sequence length" - ) - parser.add_argument( - "--save-dir", - type=str, - default="output/", - help="Specify save dir for eval results.", - ) - parser.add_argument( - "--dtype", - type=str, - choices=["float", "half"], - default="half", - help="Dtype used in optimizer.", - ) - parser.add_argument( - "--dataset", - type=str, - default="tatsu-lab/alpaca", - help="Dataset name for finetuning", - ) # qweight related parser.add_argument( "--lr-fp", @@ -101,28 +48,12 @@ def setup_arg_parser(): default=DEFAULT_LR_FP, help="Learning rate for full-precision weight." ) - parser.add_argument("--optimizer", default="DiodeMix") + parser.add_argument("--lora-rank", type=int, default=64) + parser.add_argument("--lora-alpha", type=int, default=32) + parser.add_argument("--lora-dropout", type=float, default=0.01) return parser -def str_to_torch_dtype(dtype: str): - if dtype is None: - return None - elif dtype == "float": - return torch.float - elif dtype == "half": - return torch.half - else: - raise ValueError(f"Unsupported dtype: {dtype}") - - -def create_device_map(cuda_device_id): - ids = cuda_device_id.split(',') - # Create strings in the format "cuda:x" for each ID and put them into the collection - device_map = {f"cuda:{id}" for id in ids} - return device_map - - def create_param_groups(model, args: argparse.ArgumentParser): """ Create parameter groups for parameter efficient finetuning. @@ -154,9 +85,6 @@ def main(args): "use_flash_attention_2": True if args.use_flash_attention_2 else None } - if args.eos_token is not None: - tokenizer_config["eos_token"] = args.eos_token - model, tokenizer, config = load( args.model, tokenizer_config=tokenizer_config, @@ -167,10 +95,10 @@ def main(args): ) config = LoraConfig( - r=64, - lora_alpha=32, + r=args.lora_rank, + lora_alpha=args.lora_alpha, target_modules=["q_proj", "v_proj", "out_proj", "down_proj", "up_proj"], - lora_dropout=0.01, + lora_dropout=args.lora_dropout, bias="none", task_type="CAUSAL_LM", ) @@ -193,14 +121,17 @@ def main(args): output_dir=args.save_dir, gradient_checkpointing=True, # auto_find_batch_size=True, - per_device_train_batch_size=4, + per_device_train_batch_size=args.batch_size, logging_steps=1, save_steps=50, max_grad_norm=0, # NOTE: max_grad_norm MUST be <= 0 or None, otherwise raise dtype error due to the Int dtype of qweight. ) - optimizer = DiodeMix(param_groups, dtype=str_to_torch_dtype(args.dtype)) - + # Optimizer + if 'adamw8bit' in args.optimizer.lower(): + optimizer = AdamW8bit(param_groups, weight_decay=args.weight_decay, dtype=str_to_torch_dtype(args.dtype)) + elif 'diodemix' in args.optimizer.lower(): + optimizer = DiodeMix(param_groups, dtype=str_to_torch_dtype(args.dtype)) optimizers = (optimizer, None) for name, param in model.named_parameters(): @@ -220,6 +151,7 @@ def main(args): model.save_pretrained(args.save_dir) + if __name__ == "__main__": if not torch.cuda.is_available(): print("Warning: CUDA is needed to run the model.") diff --git a/sft/peft_utils/gba_lora.py b/sft/peft_utils/gba_lora.py index 4f11ebb..4a1e468 100644 --- a/sft/peft_utils/gba_lora.py +++ b/sft/peft_utils/gba_lora.py @@ -13,175 +13,206 @@ # limitations under the License. from __future__ import annotations -import warnings -import copy from typing import Any, Optional -ENGINE_AVAILABLE = True +ENGINE_AVAILABLE=True try: from bitorch_engine.layers.qlinear.nbit import MPQLinearBase from bitorch_engine.layers.qlinear.nbit.cuda import MPQLinearCuda, MBWQLinearCuda except ModuleNotFoundError as e: ENGINE_AVAILABLE = False - print(f"Error: Module not found: {e}.") + raise Exception(f"Error occurred while importing Bitorch Engine module '{str(e)}'.") import torch import torch.nn as nn -import torch.nn.functional as F from transformers.pytorch_utils import Conv1D from peft.tuners.tuners_utils import BaseTunerLayer, check_adapters_to_merge -from peft.utils.other import transpose from peft.tuners.lora import LoraLayer -if ENGINE_AVAILABLE: - - class GBALoraLayer(LoraLayer): - # All names of layers that may contain (trainable) adapter weights - adapter_layer_names = ("lora_A", "lora_B", "lora_embedding_A", "lora_embedding_B") - # All names of other parameters that may contain adapter-related parameters - other_param_names = ("r", "lora_alpha", "scaling", "lora_dropout") - - def __init__(self, base_layer: nn.Module, **kwargs) -> None: - - self.base_layer = base_layer - self.r = {} - self.lora_alpha = {} - self.scaling = {} - self.lora_dropout = nn.ModuleDict({}) - self.lora_A = nn.ModuleDict({}) - self.lora_B = nn.ModuleDict({}) - # For Embedding layer - self.lora_embedding_A = nn.ParameterDict({}) - self.lora_embedding_B = nn.ParameterDict({}) - # Mark the weight as unmerged - self._disable_adapters = False - self.merged_adapters = [] - self.use_dora: dict[str, bool] = {} - self.lora_magnitude_vector: Optional[torch.nn.ParameterDict] = None # for DoRA - self._caches: dict[str, Any] = {} - self.kwargs = kwargs - - base_layer = self.get_base_layer() - if isinstance(base_layer, nn.Linear): - in_features, out_features = base_layer.in_features, base_layer.out_features - elif isinstance(base_layer, nn.Conv2d): - in_features, out_features = base_layer.in_channels, base_layer.out_channels - elif isinstance(base_layer, nn.Embedding): - in_features, out_features = base_layer.num_embeddings, base_layer.embedding_dim - elif isinstance(base_layer, Conv1D): - in_features, out_features = ( - base_layer.weight.ds_shape if hasattr(base_layer.weight, "ds_shape") else base_layer.weight.shape - ) - elif hasattr(base_layer, "infeatures") and hasattr(base_layer, "outfeatures"): - # QuantLinear - in_features, out_features = base_layer.infeatures, base_layer.outfeatures - elif hasattr(base_layer, "input_size") and hasattr(base_layer, "output_size"): - # Megatron ColumnParallelLinear,RowParallelLinear - in_features, out_features = base_layer.input_size, base_layer.output_size - elif hasattr(base_layer, "codebooks") and base_layer.__class__.__name__ == "QuantizedLinear": - # AQLM QuantLinear - in_features, out_features = base_layer.in_features, base_layer.out_features - elif hasattr(base_layer, "w_bit") and base_layer.__class__.__name__ == "WQLinear_GEMM": - # Awq layers - in_features, out_features = base_layer.in_features, base_layer.out_features - elif base_layer.__class__.__name__ == "MBWQLinearCuda": - in_features, out_features = base_layer.in_channels, base_layer.out_channels - elif base_layer.__class__.__name__ == "MPQLinearCuda": - in_features, out_features = base_layer.in_channels, base_layer.out_channels - else: - raise ValueError(f"Unsupported layer type {type(base_layer)}") - - self.in_features = in_features - self.out_features = out_features - - - class GBALoraLinear(torch.nn.Module, GBALoraLayer): - # Lora implemented in a dense layer - def __init__( - self, - base_layer: torch.nn.Module, - adapter_name: str, - r: int = 0, - lora_alpha: int = 1, - lora_dropout: float = 0.0, - init_lora_weights: bool = True, - use_rslora: bool = False, - use_dora: bool = False, - **kwargs, - ) -> None: - super().__init__() - GBALoraLayer.__init__(self, base_layer) - self.fan_in_fan_out = False - - self._active_adapter = adapter_name - self.update_layer( - adapter_name, - r, - lora_alpha=lora_alpha, - lora_dropout=lora_dropout, - init_lora_weights=init_lora_weights, - use_rslora=use_rslora, - use_dora=use_dora, +class GBALoraLayer(LoraLayer): + """ + GBALoraLayer class extends LoraLayer to support Gradient-Based Adapter tuning for various model layers. + It maintains lists of both LoRA-specific parameters and other adapter-related parameters. + """ + + # All names of layers that may contain (trainable) adapter weights + adapter_layer_names = ("lora_A", "lora_B", "lora_embedding_A", "lora_embedding_B") + # All names of other parameters that may contain adapter-related parameters + other_param_names = ("r", "lora_alpha", "scaling", "lora_dropout") + + def __init__(self, base_layer: nn.Module, **kwargs) -> None: + """ + Initializes a GBALoraLayer instance. + Args: + base_layer: The underlying neural network layer that LoRA is being applied to. + **kwargs: Additional keyword arguments for customization. + + This method initializes adapter components, configures the underlying base layer, and sets the + feature sizes based on the base layer type. + """ + self.base_layer = base_layer + self.r = {} + self.lora_alpha = {} + self.scaling = {} + self.lora_dropout = nn.ModuleDict({}) + self.lora_A = nn.ModuleDict({}) + self.lora_B = nn.ModuleDict({}) + # For Embedding layer + self.lora_embedding_A = nn.ParameterDict({}) + self.lora_embedding_B = nn.ParameterDict({}) + # Mark the weight as unmerged + self._disable_adapters = False + self.merged_adapters = [] + self.use_dora: dict[str, bool] = {} + self.lora_magnitude_vector: Optional[torch.nn.ParameterDict] = None # for DoRA + self._caches: dict[str, Any] = {} + self.kwargs = kwargs + + base_layer = self.get_base_layer() + if isinstance(base_layer, nn.Linear): + in_features, out_features = base_layer.in_features, base_layer.out_features + elif isinstance(base_layer, nn.Conv2d): + in_features, out_features = base_layer.in_channels, base_layer.out_channels + elif isinstance(base_layer, nn.Embedding): + in_features, out_features = base_layer.num_embeddings, base_layer.embedding_dim + elif isinstance(base_layer, Conv1D): + in_features, out_features = ( + base_layer.weight.ds_shape if hasattr(base_layer.weight, "ds_shape") else base_layer.weight.shape ) - - def forward(self, x: torch.Tensor, *args, **kwargs) -> torch.Tensor: - self._check_forward_args(x, *args, **kwargs) - adapter_names = kwargs.pop("adapter_names", None) - - result = self.base_layer(x, *args, **kwargs) - # As per Tim Dettmers, for 4bit, we need to defensively clone here. - # The reason is that in some cases, an error can occur that backprop - # does not work on a manipulated view. This issue may be solved with - # newer PyTorch versions but this would need extensive testing to be - # sure. - - for active_adapter in self.active_adapters: - if active_adapter not in self.lora_A.keys(): - continue - lora_A = self.lora_A[active_adapter] - lora_B = self.lora_B[active_adapter] - dropout = self.lora_dropout[active_adapter] - scaling = self.scaling[active_adapter] - - requires_conversion = not torch.is_autocast_enabled() - if requires_conversion: - expected_dtype = result.dtype - x = x.to(lora_A.weight.dtype) - - if not self.use_dora[active_adapter]: - output = lora_B(lora_A(dropout(x))) * scaling - else: - output = self._apply_dora(x, lora_A, lora_B, scaling, active_adapter) - if requires_conversion: - output = output.to(expected_dtype) - - result = result + output - - return result - - def __repr__(self) -> str: - rep = super().__repr__() - return "lora." + rep - - def dispatch_gba(target: torch.nn.Module, adapter_name: str, **kwargs): - new_module = None - - if isinstance(target, BaseTunerLayer): - target_base_layer = target.get_base_layer() + elif hasattr(base_layer, "infeatures") and hasattr(base_layer, "outfeatures"): + # QuantLinear + in_features, out_features = base_layer.infeatures, base_layer.outfeatures + elif hasattr(base_layer, "input_size") and hasattr(base_layer, "output_size"): + # Megatron ColumnParallelLinear,RowParallelLinear + in_features, out_features = base_layer.input_size, base_layer.output_size + elif hasattr(base_layer, "codebooks") and base_layer.__class__.__name__ == "QuantizedLinear": + # AQLM QuantLinear + in_features, out_features = base_layer.in_features, base_layer.out_features + elif hasattr(base_layer, "w_bit") and base_layer.__class__.__name__ == "WQLinear_GEMM": + # Awq layers + in_features, out_features = base_layer.in_features, base_layer.out_features + elif base_layer.__class__.__name__ == "MBWQLinearCuda": + in_features, out_features = base_layer.in_channels, base_layer.out_channels + elif base_layer.__class__.__name__ == "MPQLinearCuda": + in_features, out_features = base_layer.in_channels, base_layer.out_channels else: - target_base_layer = target - - ENGINE_AVAILABLE=True - try: - from bitorch_engine.layers.qlinear.nbit import MPQLinearBase - from bitorch_engine.layers.qlinear.nbit.cuda import MPQLinearCuda, MBWQLinearCuda - except ModuleNotFoundError as e: - ENGINE_AVAILABLE = False - print(f"Error: Module not found: {e}.") - - if ENGINE_AVAILABLE and (isinstance(target_base_layer, MBWQLinearCuda) or isinstance(target_base_layer, MPQLinearCuda)): - new_module = GBALoraLinear(target_base_layer, adapter_name, **kwargs) - - return new_module + raise ValueError(f"Unsupported layer type {type(base_layer)}") + + self.in_features = in_features + self.out_features = out_features + + +class GBALoraLinear(torch.nn.Module, GBALoraLayer): + """ + Implements a LoRA (Low-Rank Adaptation) module integrated into a dense linear layer. + This class extends functionality by allowing modifications to the layer through + low-rank matrices to efficiently adapt large pre-trained models without extensive retraining. + """ + # Lora implemented in a dense layer + def __init__( + self, + base_layer: torch.nn.Module, + adapter_name: str, + r: int = 0, + lora_alpha: int = 1, + lora_dropout: float = 0.0, + init_lora_weights: bool = True, + use_rslora: bool = False, + use_dora: bool = False, + **kwargs, + ) -> None: + """ + Initializes the LoRA adapted layer with specific parameters and configurations. + + Parameters: + base_layer (torch.nn.Module): The original base layer to which LoRA adjustments are applied. + adapter_name (str): The name of the adapter for identification. + r (int): The rank of the low-rank approximation matrices. + lora_alpha (int): Scaling factor for the LoRA parameters. + lora_dropout (float): Dropout rate for regularization during training. + init_lora_weights (bool): Whether to initialize LoRA weights upon creation. + use_rslora (bool): Indicates whether to use rank-stabilized LoRA. + use_dora (bool): Indicates whether to use dynamic orthogonal regularization adapter. + """ + super().__init__() + GBALoraLayer.__init__(self, base_layer) + self.fan_in_fan_out = False + + self._active_adapter = adapter_name + self.update_layer( + adapter_name, + r, + lora_alpha=lora_alpha, + lora_dropout=lora_dropout, + init_lora_weights=init_lora_weights, + use_rslora=use_rslora, + use_dora=use_dora, + ) + + def forward(self, x: torch.Tensor, *args, **kwargs) -> torch.Tensor: + """ + Defines the computation performed at every call. Applies the base layer computation + and modifies the output using the configured LoRA parameters. + + Parameters: + x (torch.Tensor): The input tensor to process. + + Returns: + torch.Tensor: The output tensor after applying the LoRA adaptation. + """ + self._check_forward_args(x, *args, **kwargs) + adapter_names = kwargs.pop("adapter_names", None) + + result = self.base_layer(x, *args, **kwargs) + # As per Tim Dettmers, for 4bit, we need to defensively clone here. + # The reason is that in some cases, an error can occur that backprop + # does not work on a manipulated view. This issue may be solved with + # newer PyTorch versions but this would need extensive testing to be + # sure. + + for active_adapter in self.active_adapters: + if active_adapter not in self.lora_A.keys(): + continue + lora_A = self.lora_A[active_adapter] + lora_B = self.lora_B[active_adapter] + dropout = self.lora_dropout[active_adapter] + scaling = self.scaling[active_adapter] + + requires_conversion = not torch.is_autocast_enabled() + if requires_conversion: + expected_dtype = result.dtype + x = x.to(lora_A.weight.dtype) + + if not self.use_dora[active_adapter]: + output = lora_B(lora_A(dropout(x))) * scaling + else: + output = self._apply_dora(x, lora_A, lora_B, scaling, active_adapter) + if requires_conversion: + output = output.to(expected_dtype) + + result = result + output + + return result + + def __repr__(self) -> str: + """ + Provides a string representation of the module, enhancing the default + representation with a prefix to identify it as a LoRA-adapted layer. + """ + rep = super().__repr__() + return "lora." + rep + +def dispatch_gba(target: torch.nn.Module, adapter_name: str, **kwargs): + new_module = None + + if isinstance(target, BaseTunerLayer): + target_base_layer = target.get_base_layer() + else: + target_base_layer = target + + if ENGINE_AVAILABLE and issubclass(type(target_base_layer), MPQLinearBase): + new_module = GBALoraLinear(target_base_layer, adapter_name, **kwargs) + + return new_module diff --git a/sft/peft_utils/model.py b/sft/peft_utils/model.py index efb54ca..e01b012 100644 --- a/sft/peft_utils/model.py +++ b/sft/peft_utils/model.py @@ -1,15 +1,32 @@ -import torch -from torch import nn - from peft.tuners import lora -from peft.tuners.lora import LoraLayer from peft.utils import _get_submodules, PeftType from .gba_lora import dispatch_gba class GBALoraModel(lora.LoraModel): + """ + A specialized version of LoraModel for low-rank adaptation. This class overrides the method to create new modules specifically tailored + to GBA needs, by selecting appropriate backend functions to handle LoRA layers. + """ @staticmethod def _create_new_module(lora_config, adapter_name, target, **kwargs): + """ + Creates a new module based on the provided configuration for LoRA and the type of target module. + This method selects the correct dispatch function for integrating LoRA into the specified model layer. + If no suitable module can be found, it raises an error. + + Args: + lora_config: Configuration parameters for the LoRA adaptation. + adapter_name: Identifier for the LoRA adapter. + target: The target neural network layer to which LoRA should be applied. + **kwargs: Additional keyword arguments. + + Returns: + new_module: A new module with LoRA adaptation applied, or raises an error if the target is unsupported. + + Raises: + ValueError: If the target module type is not supported by the currently available dispatchers. + """ # Collect dispatcher functions to decide what backend to use for the replaced LoRA layer. The order matters, # because the first match is always used. Therefore, the default layers should be checked last. dispatchers = [] @@ -36,5 +53,9 @@ def _create_new_module(lora_config, adapter_name, target, **kwargs): return new_module def replace_peft_lora_model_with_gba_lora_model(): + """ + Replaces the existing LoRA model in the PEFT framework with the GBA-enhanced LoRA model. + This function patches the model mapping in PEFT to use `GBALoraModel` for LoRA configurations. + """ import peft.peft_model peft.peft_model.PEFT_TYPE_TO_MODEL_MAPPING[PeftType.LORA] = GBALoraModel diff --git a/sft/utils.py b/sft/utils.py new file mode 100644 index 0000000..c6b96b8 --- /dev/null +++ b/sft/utils.py @@ -0,0 +1,20 @@ +import torch + + +def str_to_torch_dtype(dtype: str): + """Get torch dtype from the input data type string.""" + if dtype is None: + return None + elif dtype == "float": + return torch.float + elif dtype == "half": + return torch.float16 + else: + raise ValueError(f"Unsupported dtype: {dtype}") + + +def create_device_map(cuda_device_id): + ids = cuda_device_id.split(',') + # Create strings in the format "cuda:x" for each ID and put them into the collection + device_map = {f"cuda:{id}" for id in ids} + return device_map \ No newline at end of file From c8d1b467e4d84c16e340a2b228a40f66df205a46 Mon Sep 17 00:00:00 2001 From: Haojin Yang Date: Tue, 23 Apr 2024 14:20:35 +0200 Subject: [PATCH 046/125] Fixed error import --- sft/peft_lora.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/sft/peft_lora.py b/sft/peft_lora.py index dfb4418..6f8cff6 100644 --- a/sft/peft_lora.py +++ b/sft/peft_lora.py @@ -8,7 +8,7 @@ from trl import SFTTrainer from peft import PeftModel, LoraConfig, get_peft_model -from green_bit_llm.model import load, setup_shared_arg_parser +from green_bit_llm import load, setup_shared_arg_parser from .peft_utils.model import * from .optim import AdamW8bit From ff2920030f6b7ad31e1a89e52bb5ef95b2f78184 Mon Sep 17 00:00:00 2001 From: Haojin Yang Date: Wed, 24 Apr 2024 21:19:06 +0200 Subject: [PATCH 047/125] Adapted string comparison. --- sft/finetune.py | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/sft/finetune.py b/sft/finetune.py index e755b71..496b4b2 100644 --- a/sft/finetune.py +++ b/sft/finetune.py @@ -124,12 +124,12 @@ def create_param_groups(model, args: argparse.ArgumentParser): lr_2 = get_learning_rate( args.lr_2bit, args.galore, - DEFAULT_LR_ADAMW8BIT if 'adamw8bit' in args.optimizer else DEFAULT_LR_GALORE, + DEFAULT_LR_ADAMW8BIT if 'adamw8bit' in args.optimizer.lower() else DEFAULT_LR_GALORE, DEFAULT_LR) lr_4 = get_learning_rate( args.lr_4bit, args.galore, - DEFAULT_LR_ADAMW8BIT if 'adamw8bit' in args.optimizer else DEFAULT_LR_GALORE, + DEFAULT_LR_ADAMW8BIT if 'adamw8bit' in args.optimizer.lower() else DEFAULT_LR_GALORE, DEFAULT_LR) params_group_2bit = {'params': params_2_bit, 'lr': lr_2, 'betas': DEFAULT_BETAS} From fd5c34741cbdbb5701a2ba36d8b9ed57702ebfe2 Mon Sep 17 00:00:00 2001 From: Haojin Yang Date: Thu, 25 Apr 2024 16:44:20 +0200 Subject: [PATCH 048/125] Extended chat template for llama3, phi3. Adapted model load function for phi3. --- green_bit_llm/model.py | 12 ++- inference/README.md | 2 +- inference/chat_cli.py | 6 +- inference/conversation.py | 41 +++++++++ inference/utils.py | 7 +- sft/finetune.py | 80 +---------------- sft/peft_lora.py | 34 ++----- sft/utils.py | 183 +++++++++++++++++++++++++++++++++++++- 8 files changed, 249 insertions(+), 116 deletions(-) diff --git a/green_bit_llm/model.py b/green_bit_llm/model.py index 917a3ea..9923880 100644 --- a/green_bit_llm/model.py +++ b/green_bit_llm/model.py @@ -28,6 +28,7 @@ STRATEGY_FILE_NAME = "quant_strategy.json" MODEL_TYPE_QWEN2 = "qwen2" +STRATEGY_FILE_JSON_ROOT = "measurement" def engine_layer_prepare(model: torch.nn.Module): @@ -50,10 +51,13 @@ def apply_quant_strategy(name_attr: str, quant_strategy: Dict): Apply quantization strategy based on the layer's name and the provided strategy. """ strategy = None - for key in ['q_proj', 'k_proj', 'v_proj', 'o_proj', 'gate_proj', 'up_proj', 'down_proj']: + for key in ['q_proj', 'k_proj', 'v_proj', 'o_proj', 'gate_proj', 'up_proj', 'down_proj', 'qkv_proj', 'gate_up_proj']: if key in name_attr: - strategy = quant_strategy[key] - break + try: + strategy = quant_strategy[key] + break + except KeyError: + pass return strategy @@ -159,7 +163,7 @@ def load_model(model_path: Path, layer_mode: LayerMode, bits: Optional[int] = No strategy_path = model_path / STRATEGY_FILE_NAME try: with open(strategy_path, "r") as file: - strategy = json.load(file)["measurement"] + strategy = json.load(file)[STRATEGY_FILE_JSON_ROOT] except FileNotFoundError: raise FileNotFoundError(f"Error: Strategy config file not found in {model_path}") diff --git a/inference/README.md b/inference/README.md index b238870..963aaf8 100644 --- a/inference/README.md +++ b/inference/README.md @@ -53,7 +53,7 @@ This command generates text based on the provided prompt using the specified Gre To start the chat interface: ```bash -CUDA_VISIBLE_DEVICES=0 python -m inference.chat_cli --model-path GreenBitAI/yi-6b-chat-w4a16g256 --debug --use-flash-attention-2 --multiline --mouse +CUDA_VISIBLE_DEVICES=0 python -m inference.chat_cli --model GreenBitAI/yi-6b-chat-w4a16g256 --debug --use-flash-attention-2 --multiline --mouse ``` This launches a rich command-line interface for interactive chatting. diff --git a/inference/chat_cli.py b/inference/chat_cli.py index 790dc36..f002477 100644 --- a/inference/chat_cli.py +++ b/inference/chat_cli.py @@ -40,7 +40,7 @@ def main(args): raise ValueError(f"Invalid style for console: {args.style}") # check if a chat model selected? - if not is_chat_model(args.model_path.lower()): + if not is_chat_model(args.model.lower()): raise Exception("Invalid model path: The provided model is not a chat model. " "A valid chat model is required to establish the chat interface.") @@ -57,7 +57,7 @@ def main(args): # chat try: chat_loop( - args.model_path, + args.model, tokenizer_config, pretrain_model_config, args.seqlen, @@ -80,7 +80,7 @@ def main(args): if __name__ == "__main__": parser = argparse.ArgumentParser() parser.add_argument( - "--model-path", + "--model", type=str, default="GreenBitAI/Mistral-Instruct-7B-v0.2-layer-mix-bpw-2.2", help="The path to the weights. This can be a local folder or a Hugging Face repo ID.", diff --git a/inference/conversation.py b/inference/conversation.py index eec7363..70825c7 100644 --- a/inference/conversation.py +++ b/inference/conversation.py @@ -21,6 +21,7 @@ class SeparatorStyle(IntEnum): ADD_NEW_LINE_SINGLE = auto() LLAMA2 = auto() CHATML = auto() + LLAMA3 = auto() IMAGE_PLACEHOLDER_STR = "$$$$" @@ -124,6 +125,19 @@ def get_prompt(self) -> str: else: ret += tag return ret + elif self.sep_style == SeparatorStyle.LLAMA3: + ret = "<|begin_of_text|>" + if self.system_message: + ret += system_prompt + else: + ret += "" + for i, (role, message) in enumerate(self.messages): + if message: + ret += f"<|start_header_id|>{role}<|end_header_id|>\n\n" + ret += f"{message.strip()}<|eot_id|>" + else: + ret += f"<|start_header_id|>{role}<|end_header_id|>\n\n" + return ret elif self.sep_style == SeparatorStyle.CHATML: ret = "" if system_prompt == "" else system_prompt + self.sep + "\n" for role, message in self.messages: @@ -457,3 +471,30 @@ def get_conv_template(name: str) -> Conversation: ) ) +# Phi-3 template +register_conv_template( + Conversation( + name="phi-3", + system_template="<|system|>\n{system_message}", + roles=("<|user|>", "<|assistant|>"), + sep_style=SeparatorStyle.CHATML, + sep="", + stop_token_ids=[32000], # "<|endoftext|>" + stop_str="", + ) +) + +# llama3 template +# reference: https://huggingface.co/meta-llama/Meta-Llama-3-8B-Instruct/blob/main/tokenizer_config.json +# reference: https://github.com/meta-llama/llama3/blob/0cee08ec68f4cfc0c89fe4a9366d82679aaa2a66/llama/tokenizer.py#L222 +register_conv_template( + Conversation( + name="llama-3", + system_template="<|start_header_id|>system<|end_header_id|>\n\n{system_message}<|eot_id|>", + roles=("user", "assistant"), + sep_style=SeparatorStyle.LLAMA3, + sep="", + stop_str="<|eot_id|>", + stop_token_ids=[128001, 128009], + ) +) diff --git a/inference/utils.py b/inference/utils.py index 8ff7e73..038a40a 100644 --- a/inference/utils.py +++ b/inference/utils.py @@ -19,6 +19,8 @@ "yi-chat": "yi-", "mistral": "mistral", "gemma": "gemma", + "llama-3": "llama-3", + "phi-3": "phi-3", } # Models don't use the same configuration key for determining the maximum @@ -52,7 +54,10 @@ def get_context_length(config): """Get the context length of a model from a huggingface model config.""" rope_scaling = getattr(config, "rope_scaling", None) if rope_scaling: - rope_scaling_factor = config.rope_scaling["factor"] + try: + rope_scaling_factor = config.rope_scaling["factor"] + except KeyError: + rope_scaling_factor = 1 else: rope_scaling_factor = 1 diff --git a/sft/finetune.py b/sft/finetune.py index 496b4b2..3e73988 100644 --- a/sft/finetune.py +++ b/sft/finetune.py @@ -21,7 +21,7 @@ from .optim import AdamW8bit -from .utils import str_to_torch_dtype +from .utils import str_to_torch_dtype, create_param_groups # default value for arguments @@ -81,82 +81,6 @@ def setup_arg_parser(): return parser -def get_learning_rate(lr_bit, galore, default_lr_galore, default_lr): - """Adaptivly get the learning rate value from the input setting parameters.""" - if lr_bit > 0: - return lr_bit - return default_lr_galore if galore else default_lr - - -def create_param_groups(model, args: argparse.ArgumentParser): - """ - Create parameter groups based on the bit-width of quantized weights in the model. - This function categorizes parameters into groups with different learning rates and beta values - for optimizers. - - Args: - model (nn.Module): The neural network model. - args (argparse.ArgumentParser): Command line arguments for additional parameters. - - Returns: - List[dict]: A list of dictionaries where each dictionary contains a parameter group. - """ - params_2_bit = [] - params_4_bit = [] - - for module_name, module in model.named_modules(): - if issubclass(type(module), MPQLinearBase): - if module.w_bit == 2: - params_2_bit.append(module.qweight) - elif module.w_bit == 4: - params_4_bit.append(module.qweight) - else: - raise Exception(f"Error: Invalid qweight bit width: '{module.w_bit}'.") - - id_2bit_params = [id(p) for p in params_2_bit] - id_4bit_params = [id(p) for p in params_4_bit] - # Concatenate IDs to form a single list - excluded_ids = id_2bit_params + id_4bit_params - - # Create list of regular parameters excluding 2-bit and 4-bit params - params_regular = [p for p in model.parameters() if id(p) not in excluded_ids] - - lr_2 = get_learning_rate( - args.lr_2bit, - args.galore, - DEFAULT_LR_ADAMW8BIT if 'adamw8bit' in args.optimizer.lower() else DEFAULT_LR_GALORE, - DEFAULT_LR) - lr_4 = get_learning_rate( - args.lr_4bit, - args.galore, - DEFAULT_LR_ADAMW8BIT if 'adamw8bit' in args.optimizer.lower() else DEFAULT_LR_GALORE, - DEFAULT_LR) - - params_group_2bit = {'params': params_2_bit, 'lr': lr_2, 'betas': DEFAULT_BETAS} - params_group_4bit = {'params': params_4_bit, 'lr': lr_4, 'betas': DEFAULT_BETAS} - params_group_regular = {'params': params_regular, 'lr': args.lr_fp, 'betas': DEFAULT_BETAS} - - # Optionally add extra settings from command line arguments - if args.galore: - galore_settings = { - 'rank': args.galore_rank, - 'update_proj_gap': args.galore_update_proj_gap, - 'scale': args.galore_scale, - 'proj_type': args.galore_proj_type - } - params_group_2bit.update(galore_settings) - params_group_4bit.update(galore_settings) - - param_groups = [ - params_group_2bit, - params_group_4bit - ] - if not args.tune_qweight_only: - param_groups.append(params_group_regular) - - return param_groups - - def main(args): # Building configs @@ -175,7 +99,7 @@ def main(args): requires_grad=True, ) - param_groups = create_param_groups(model, args) + param_groups = create_param_groups(model, args, DEFAULT_BETAS, DEFAULT_LR_GALORE, DEFAULT_LR_ADAMW8BIT, DEFAULT_LR) model.train() diff --git a/sft/peft_lora.py b/sft/peft_lora.py index 6f8cff6..c9c874f 100644 --- a/sft/peft_lora.py +++ b/sft/peft_lora.py @@ -20,7 +20,7 @@ except ModuleNotFoundError as e: raise Exception(f"Error occurred while importing Bitorch Engine module '{str(e)}'.") -from .utils import str_to_torch_dtype +from .utils import str_to_torch_dtype, create_param_groups # default value for arguments DEFAULT_MODEL_PATH = "GreenBitAI/Qwen-1.5-1.8B-layer-mix-bpw-3.0" @@ -54,28 +54,6 @@ def setup_arg_parser(): return parser -def create_param_groups(model, args: argparse.ArgumentParser): - """ - Create parameter groups for parameter efficient finetuning. - Args: - model (nn.Module): The neural network model. - args (argparse.ArgumentParser): Command line arguments for additional parameters. - - Returns: - List[dict]: A list of dictionaries where each dictionary contains a parameter group. - """ - params_groups = [] - - # Create list of peft parameters - params_lora = [p for n, p in model.named_parameters() if "lora" in n] - - params_group_lora = {'params': params_lora, 'lr': args.lr_fp, 'betas': DEFAULT_BETAS} - - params_groups.append(params_group_lora) - - return params_groups - - def main(args): # Building configs @@ -108,8 +86,8 @@ def main(args): model = get_peft_model(model, config) model.print_trainable_parameters() - - param_groups = create_param_groups(model, args) + + param_groups = create_param_groups(model, args, DEFAULT_BETAS) model.train() @@ -120,8 +98,8 @@ def main(args): train_args = TrainingArguments( output_dir=args.save_dir, gradient_checkpointing=True, - # auto_find_batch_size=True, - per_device_train_batch_size=args.batch_size, + auto_find_batch_size=True, + # per_device_train_batch_size=args.batch_size, logging_steps=1, save_steps=50, max_grad_norm=0, # NOTE: max_grad_norm MUST be <= 0 or None, otherwise raise dtype error due to the Int dtype of qweight. @@ -129,7 +107,7 @@ def main(args): # Optimizer if 'adamw8bit' in args.optimizer.lower(): - optimizer = AdamW8bit(param_groups, weight_decay=args.weight_decay, dtype=str_to_torch_dtype(args.dtype)) + optimizer = AdamW8bit(param_groups, weight_decay=args.weight_decay, lr=5e-3, dtype=str_to_torch_dtype(args.dtype)) elif 'diodemix' in args.optimizer.lower(): optimizer = DiodeMix(param_groups, dtype=str_to_torch_dtype(args.dtype)) optimizers = (optimizer, None) diff --git a/sft/utils.py b/sft/utils.py index c6b96b8..5e55ce1 100644 --- a/sft/utils.py +++ b/sft/utils.py @@ -1,5 +1,10 @@ import torch +try: + from bitorch_engine.layers.qlinear.nbit import MPQLinearBase +except ModuleNotFoundError as e: + raise Exception(f"Error occurred while importing Bitorch Engine module '{str(e)}'.") + def str_to_torch_dtype(dtype: str): """Get torch dtype from the input data type string.""" @@ -17,4 +22,180 @@ def create_device_map(cuda_device_id): ids = cuda_device_id.split(',') # Create strings in the format "cuda:x" for each ID and put them into the collection device_map = {f"cuda:{id}" for id in ids} - return device_map \ No newline at end of file + return device_map + + +def get_learning_rate(lr_bit, galore, default_lr_galore, default_lr): + """Adaptivly get the learning rate value from the input setting parameters.""" + if lr_bit > 0: + return lr_bit + return default_lr_galore if galore else default_lr + + +def create_param_groups(model, args, betas=(0.9, 0.999), lr_galore=1e-4, lr_adamw8b=5e-3, lr_default=1e-5): + """ + Create parameter groups based on the bit-width of quantized weights in the model. + This function categorizes parameters into groups with different learning rates and beta values + for optimizers. + + Args: + model (nn.Module): The neural network model. + args (argparse.ArgumentParser): Command line arguments for additional parameters. + + Returns: + List[dict]: A list of dictionaries where each dictionary contains a parameter group. + """ + if hasattr(args, 'lora_rank'): # peft + params_groups = [] + + # Create list of peft parameters + params_lora = [p for n, p in model.named_parameters() if "lora" in n] + + params_group_lora = {'params': params_lora, 'lr': args.lr_fp, 'betas': betas} + + params_groups.append(params_group_lora) + + elif hasattr(args, 'tune_qweight_only'): # full parameter finetune + params_2_bit = [] + params_4_bit = [] + + regular_trainable_numel = [] + qweight_trainable_numel = [] + trainable_numel = [] + + for module_name, module in model.named_modules(): + if issubclass(type(module), MPQLinearBase): + if module.w_bit == 2: + params_2_bit.append(module.qweight) + qweight_trainable_numel.append(int(module.qweight.numel() * 32 / 2)) + elif module.w_bit == 4: + params_4_bit.append(module.qweight) + qweight_trainable_numel.append(int(module.qweight.numel() * 32 / 4)) + else: + raise Exception(f"Error: Invalid qweight bit width: '{module.w_bit}'.") + + id_2bit_params = [id(p) for p in params_2_bit] + id_4bit_params = [id(p) for p in params_4_bit] + # Concatenate IDs to form a single list + excluded_ids = id_2bit_params + id_4bit_params + + # Create list of regular parameters excluding 2-bit and 4-bit params + params_regular = [p for p in model.parameters() if id(p) not in excluded_ids] + for param in params_regular: + if param.requires_grad: + regular_trainable_numel.append(param.numel()) + + lr_2 = get_learning_rate( + args.lr_2bit, + args.galore, + lr_adamw8b if 'adamw8bit' in args.optimizer.lower() else lr_galore, + lr_default) + lr_4 = get_learning_rate( + args.lr_4bit, + args.galore, + lr_adamw8b if 'adamw8bit' in args.optimizer.lower() else lr_galore, + lr_default) + + params_group_2bit = {'params': params_2_bit, 'lr': lr_2, 'betas': betas} + params_group_4bit = {'params': params_4_bit, 'lr': lr_4, 'betas': betas} + params_group_regular = {'params': params_regular, 'lr': args.lr_fp, 'betas': betas} + + # Optionally add extra settings from command line arguments + if args.galore: + galore_settings = { + 'rank': args.galore_rank, + 'update_proj_gap': args.galore_update_proj_gap, + 'scale': args.galore_scale, + 'proj_type': args.galore_proj_type + } + params_group_2bit.update(galore_settings) + params_group_4bit.update(galore_settings) + + param_groups = [ + params_group_2bit, + params_group_4bit + ] + + trainable_numel = qweight_trainable_numel + if not args.tune_qweight_only: + param_groups.append(params_group_regular) + trainable_numel += regular_trainable_numel + + total_numel = [] + total_parameters = list(model.parameters()) + for param in total_parameters: + if not hasattr(param, "qweight"): + total_numel.append(param.numel()) + total_numel += qweight_trainable_numel + + print( + f"Trainable params: {sum(trainable_numel):,d} || " + f"All params: {sum(total_numel):,d} || " + f"Trainable%: {100 * sum(trainable_numel) / sum(total_numel):.4f}" + ) + else: + raise Exception("Error: invalid use case in creating param_group.") + + return param_groups + + +def num_parameters(self, only_trainable: bool = False, exclude_embeddings: bool = False) -> int: + """ + Get number of (optionally, trainable or non-embeddings) parameters in the module. + + Args: + only_trainable (`bool`, *optional*, defaults to `False`): + Whether or not to return only the number of trainable parameters + + exclude_embeddings (`bool`, *optional*, defaults to `False`): + Whether or not to return only the number of non-embeddings parameters + + Returns: + `int`: The number of parameters. + """ + + if exclude_embeddings: + embedding_param_names = [ + f"{name}.weight" for name, module_type in self.named_modules() if isinstance(module_type, nn.Embedding) + ] + total_parameters = [ + parameter for name, parameter in self.named_parameters() if name not in embedding_param_names + ] + else: + total_parameters = list(self.parameters()) + + total_numel = [] + is_loaded_in_4bit = getattr(self, "is_loaded_in_4bit", False) + + if is_loaded_in_4bit: + if is_bitsandbytes_available(): + import bitsandbytes as bnb + else: + raise ValueError( + "bitsandbytes is not installed but it seems that the model has been loaded in 4bit precision, something went wrong" + " make sure to install bitsandbytes with `pip install bitsandbytes`. You also need a GPU. " + ) + + for param in total_parameters: + if param.requires_grad or not only_trainable: + # For 4bit models, we need to multiply the number of parameters by 2 as half of the parameters are + # used for the 4bit quantization (uint8 tensors are stored) + if is_loaded_in_4bit and isinstance(param, bnb.nn.Params4bit): + if hasattr(param, "element_size"): + num_bytes = param.element_size() + elif hasattr(param, "quant_storage"): + num_bytes = param.quant_storage.itemsize + else: + num_bytes = 1 + total_numel.append(param.numel() * 2 * num_bytes) + else: + total_numel.append(param.numel()) + + print( + f"trainable params: {trainable_params:,d} || " + f"all params: {all_param:,d} || " + f"trainable%: {100 * trainable_params / all_param:.4f}" + ) + + + From 48100e0c515c1570759d3f07909ad569fb27ea51 Mon Sep 17 00:00:00 2001 From: Haojin Yang Date: Thu, 25 Apr 2024 17:08:13 +0200 Subject: [PATCH 049/125] Added colored trainable param info. --- sft/utils.py | 11 +++++++---- 1 file changed, 7 insertions(+), 4 deletions(-) diff --git a/sft/utils.py b/sft/utils.py index 5e55ce1..8e585ef 100644 --- a/sft/utils.py +++ b/sft/utils.py @@ -1,5 +1,8 @@ import torch +from colorama import init, Fore, Style +init(autoreset=True) + try: from bitorch_engine.layers.qlinear.nbit import MPQLinearBase except ModuleNotFoundError as e: @@ -128,10 +131,10 @@ def create_param_groups(model, args, betas=(0.9, 0.999), lr_galore=1e-4, lr_adam total_numel.append(param.numel()) total_numel += qweight_trainable_numel - print( - f"Trainable params: {sum(trainable_numel):,d} || " - f"All params: {sum(total_numel):,d} || " - f"Trainable%: {100 * sum(trainable_numel) / sum(total_numel):.4f}" + print(Style.BRIGHT + Fore.CYAN + + f"Info: trainable params: {sum(trainable_numel):,d} || " + f"all params: {sum(total_numel):,d} || " + f"trainable%: {100 * sum(trainable_numel) / sum(total_numel):.4f}" ) else: raise Exception("Error: invalid use case in creating param_group.") From abf90b30b9a2a1696b210aac42229a02b9187236 Mon Sep 17 00:00:00 2001 From: Joseph Bethge Date: Thu, 25 Apr 2024 17:41:37 +0200 Subject: [PATCH 050/125] fix requirements --- requirements.txt | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/requirements.txt b/requirements.txt index 1f784ab..769e901 100644 --- a/requirements.txt +++ b/requirements.txt @@ -4,11 +4,11 @@ datasets torch>=2.0.0 sentencepiece transformers>=4.38.0 -huggingface_hub +huggingface-hub flash-attn -lm_eval==0.3.0 +lm-eval==0.3.0 termcolor pillow requests -prompt_toolkit -rich \ No newline at end of file +prompt-toolkit +rich From 324b387514370a32bd8df3b569a2dc18a2fc8056 Mon Sep 17 00:00:00 2001 From: Joseph Bethge Date: Thu, 25 Apr 2024 17:42:27 +0200 Subject: [PATCH 051/125] apply fixes to conda env --- environment.yml | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/environment.yml b/environment.yml index 6ae7ef1..20cc243 100644 --- a/environment.yml +++ b/environment.yml @@ -8,15 +8,15 @@ dependencies: - pytorch::pytorch>=2.0 - pip: - sentencepiece - - huggingface_hub + - huggingface-hub - transformers>=4.38.0 - accelerate - colorama - flash-attn - datasets - - lm_eval==0.3.0 + - lm-eval==0.3.0 - termcolor - pillow - requests - - prompt_toolkit + - prompt-toolkit - rich From 2b1608cb349da0f84b8e9a6a78ccf96bc8133f7d Mon Sep 17 00:00:00 2001 From: Joseph Bethge Date: Thu, 25 Apr 2024 17:44:31 +0200 Subject: [PATCH 052/125] prepare movement of modules --- evaluation/evaluate.py | 2 +- green_bit_llm/__init__.py | 3 +-- green_bit_llm/common/__init__.py | 1 + green_bit_llm/{ => common}/enum.py | 0 green_bit_llm/{ => common}/model.py | 0 green_bit_llm/{ => common}/utils.py | 3 ++- green_bit_llm/version.py | 2 +- inference/chat_base.py | 4 ++-- 8 files changed, 8 insertions(+), 7 deletions(-) create mode 100644 green_bit_llm/common/__init__.py rename green_bit_llm/{ => common}/enum.py (100%) rename green_bit_llm/{ => common}/model.py (100%) rename green_bit_llm/{ => common}/utils.py (98%) diff --git a/evaluation/evaluate.py b/evaluation/evaluate.py index 2ee11dd..afcd5c6 100644 --- a/evaluation/evaluate.py +++ b/evaluation/evaluate.py @@ -11,7 +11,7 @@ from .utils import create_logger, add_dict_to_json_file from .datautils import get_loaders -from green_bit_llm.model import load +from green_bit_llm.common.model import load from pathlib import Path from lm_eval import evaluator diff --git a/green_bit_llm/__init__.py b/green_bit_llm/__init__.py index 18093a6..58f3ace 100644 --- a/green_bit_llm/__init__.py +++ b/green_bit_llm/__init__.py @@ -1,2 +1 @@ -from .model import load, generate -from .version import __version__ \ No newline at end of file +from .version import __version__ diff --git a/green_bit_llm/common/__init__.py b/green_bit_llm/common/__init__.py new file mode 100644 index 0000000..abad8e9 --- /dev/null +++ b/green_bit_llm/common/__init__.py @@ -0,0 +1 @@ +from .model import load, generate diff --git a/green_bit_llm/enum.py b/green_bit_llm/common/enum.py similarity index 100% rename from green_bit_llm/enum.py rename to green_bit_llm/common/enum.py diff --git a/green_bit_llm/model.py b/green_bit_llm/common/model.py similarity index 100% rename from green_bit_llm/model.py rename to green_bit_llm/common/model.py diff --git a/green_bit_llm/utils.py b/green_bit_llm/common/utils.py similarity index 98% rename from green_bit_llm/utils.py rename to green_bit_llm/common/utils.py index ed255e3..13aba51 100644 --- a/green_bit_llm/utils.py +++ b/green_bit_llm/common/utils.py @@ -17,6 +17,7 @@ def check_engine_available()-> bool: from bitorch_engine.layers.qlinear.nbit.cuda import MPQLinearCuda, MBWQLinearCuda except ModuleNotFoundError as e: print(f"Error: Module not found: {e}.") + return False return True @@ -186,4 +187,4 @@ def apply_dtype_to(model: nn.Module, dtype: torch.dtype): model.float() else: # If the dtype is not supported, raise an error. - raise ValueError("Unsupported dtype specified. Supported dtypes are torch.float, torch.half, and torch.bfloat16.") \ No newline at end of file + raise ValueError("Unsupported dtype specified. Supported dtypes are torch.float, torch.half, and torch.bfloat16.") diff --git a/green_bit_llm/version.py b/green_bit_llm/version.py index b3c06d4..3dc1f76 100644 --- a/green_bit_llm/version.py +++ b/green_bit_llm/version.py @@ -1 +1 @@ -__version__ = "0.0.1" \ No newline at end of file +__version__ = "0.1.0" diff --git a/inference/chat_base.py b/inference/chat_base.py index 7cf673a..9028e64 100644 --- a/inference/chat_base.py +++ b/inference/chat_base.py @@ -23,7 +23,7 @@ import torch -from green_bit_llm import load +from green_bit_llm.common import load from .conversation import get_conv_template from .utils import is_partial_stop, is_sentence_complete, get_context_length, prepare_logits_processor, get_conversation_template @@ -605,4 +605,4 @@ def reload_conv(conv): if conv.messages[-1][0] == conv.roles[0]: conv.messages.pop() - reload_conv(conv) \ No newline at end of file + reload_conv(conv) From e95231889e56bc45258f3604bfe2765a2b47b233 Mon Sep 17 00:00:00 2001 From: Joseph Bethge Date: Thu, 25 Apr 2024 17:48:32 +0200 Subject: [PATCH 053/125] move parts into package --- README.md | 8 ++++---- {evaluation => green_bit_llm/evaluation}/README.md | 0 {evaluation => green_bit_llm/evaluation}/__init__.py | 0 {evaluation => green_bit_llm/evaluation}/datautils.py | 0 {evaluation => green_bit_llm/evaluation}/evaluate.py | 2 +- {evaluation => green_bit_llm/evaluation}/lmclass.py | 0 {evaluation => green_bit_llm/evaluation}/utils.py | 0 {inference => green_bit_llm/inference}/README.md | 2 +- {inference => green_bit_llm/inference}/__init__.py | 0 {inference => green_bit_llm/inference}/chat_base.py | 0 {inference => green_bit_llm/inference}/chat_cli.py | 0 {inference => green_bit_llm/inference}/conversation.py | 0 {inference => green_bit_llm/inference}/sim_gen.py | 0 {inference => green_bit_llm/inference}/utils.py | 0 14 files changed, 6 insertions(+), 6 deletions(-) rename {evaluation => green_bit_llm/evaluation}/README.md (100%) rename {evaluation => green_bit_llm/evaluation}/__init__.py (100%) rename {evaluation => green_bit_llm/evaluation}/datautils.py (100%) rename {evaluation => green_bit_llm/evaluation}/evaluate.py (99%) rename {evaluation => green_bit_llm/evaluation}/lmclass.py (100%) rename {evaluation => green_bit_llm/evaluation}/utils.py (100%) rename {inference => green_bit_llm/inference}/README.md (98%) rename {inference => green_bit_llm/inference}/__init__.py (100%) rename {inference => green_bit_llm/inference}/chat_base.py (100%) rename {inference => green_bit_llm/inference}/chat_cli.py (100%) rename {inference => green_bit_llm/inference}/conversation.py (100%) rename {inference => green_bit_llm/inference}/sim_gen.py (100%) rename {inference => green_bit_llm/inference}/utils.py (100%) diff --git a/README.md b/README.md index fb50d90..92129a5 100644 --- a/README.md +++ b/README.md @@ -35,11 +35,11 @@ conda activate gbai_cuda_lm ## Usage ### Inference -Please see the description of the [Inference package](inference/README.md) for details. +Please see the description of the [Inference package](green_bit_llm/inference/README.md) for details. ### Evaluation -Please see the description of the [Evaluation package](evaluation/README.md) for details. +Please see the description of the [Evaluation package](green_bit_llm/evaluation/README.md) for details. ### sft @@ -58,12 +58,12 @@ Please see the description of the [sft package](sft/README.md) for details. Run the simple generation script as follows: ```bash -CUDA_VISIBLE_DEVICES=0 python -m inference.sim_gen --model GreenBitAI/Qwen-1.5-1.8B-layer-mix-bpw-3.0 --max-tokens 100 --use-flash-attention-2 --ignore-chat-template +CUDA_VISIBLE_DEVICES=0 python -m green_bit_llm.inference.sim_gen --model GreenBitAI/Qwen-1.5-1.8B-layer-mix-bpw-3.0 --max-tokens 100 --use-flash-attention-2 --ignore-chat-template ``` ### PPL Evaluation ```bash -CUDA_VISIBLE_DEVICES=0 python -m evaluation.evaluate --model GreenBitAI/Qwen-1.5-4B-layer-mix-bpw-3.0 --trust-remote-code --eval-ppl --ppl-tasks wikitext2,c4_new,ptb +CUDA_VISIBLE_DEVICES=0 python -m green_bit_llm.evaluation.evaluate --model GreenBitAI/Qwen-1.5-4B-layer-mix-bpw-3.0 --trust-remote-code --eval-ppl --ppl-tasks wikitext2,c4_new,ptb ``` ### Run sft diff --git a/evaluation/README.md b/green_bit_llm/evaluation/README.md similarity index 100% rename from evaluation/README.md rename to green_bit_llm/evaluation/README.md diff --git a/evaluation/__init__.py b/green_bit_llm/evaluation/__init__.py similarity index 100% rename from evaluation/__init__.py rename to green_bit_llm/evaluation/__init__.py diff --git a/evaluation/datautils.py b/green_bit_llm/evaluation/datautils.py similarity index 100% rename from evaluation/datautils.py rename to green_bit_llm/evaluation/datautils.py diff --git a/evaluation/evaluate.py b/green_bit_llm/evaluation/evaluate.py similarity index 99% rename from evaluation/evaluate.py rename to green_bit_llm/evaluation/evaluate.py index afcd5c6..63e8f8e 100644 --- a/evaluation/evaluate.py +++ b/green_bit_llm/evaluation/evaluate.py @@ -11,7 +11,7 @@ from .utils import create_logger, add_dict_to_json_file from .datautils import get_loaders -from green_bit_llm.common.model import load +from green_bit_llm.common import load from pathlib import Path from lm_eval import evaluator diff --git a/evaluation/lmclass.py b/green_bit_llm/evaluation/lmclass.py similarity index 100% rename from evaluation/lmclass.py rename to green_bit_llm/evaluation/lmclass.py diff --git a/evaluation/utils.py b/green_bit_llm/evaluation/utils.py similarity index 100% rename from evaluation/utils.py rename to green_bit_llm/evaluation/utils.py diff --git a/inference/README.md b/green_bit_llm/inference/README.md similarity index 98% rename from inference/README.md rename to green_bit_llm/inference/README.md index b238870..1ef87fd 100644 --- a/inference/README.md +++ b/green_bit_llm/inference/README.md @@ -59,4 +59,4 @@ This launches a rich command-line interface for interactive chatting. ## License - The scripts `conversation.py`, `chat_base.py`, and `chat_cli.py` have been modified from their original versions found in [FastChat-serve](https://github.com/lm-sys/FastChat/tree/main/fastchat/serve), which are released under the [Apache 2.0 License](https://github.com/lm-sys/FastChat/tree/main/LICENSE). -- We release our changes and additions to these files under the [Apache 2.0 License](../LICENSE). \ No newline at end of file +- We release our changes and additions to these files under the [Apache 2.0 License](../../LICENSE). diff --git a/inference/__init__.py b/green_bit_llm/inference/__init__.py similarity index 100% rename from inference/__init__.py rename to green_bit_llm/inference/__init__.py diff --git a/inference/chat_base.py b/green_bit_llm/inference/chat_base.py similarity index 100% rename from inference/chat_base.py rename to green_bit_llm/inference/chat_base.py diff --git a/inference/chat_cli.py b/green_bit_llm/inference/chat_cli.py similarity index 100% rename from inference/chat_cli.py rename to green_bit_llm/inference/chat_cli.py diff --git a/inference/conversation.py b/green_bit_llm/inference/conversation.py similarity index 100% rename from inference/conversation.py rename to green_bit_llm/inference/conversation.py diff --git a/inference/sim_gen.py b/green_bit_llm/inference/sim_gen.py similarity index 100% rename from inference/sim_gen.py rename to green_bit_llm/inference/sim_gen.py diff --git a/inference/utils.py b/green_bit_llm/inference/utils.py similarity index 100% rename from inference/utils.py rename to green_bit_llm/inference/utils.py From abebc2bc30f6da1db46dee5dd7e6c4ca0e9bb531 Mon Sep 17 00:00:00 2001 From: Joseph Bethge Date: Thu, 25 Apr 2024 17:51:23 +0200 Subject: [PATCH 054/125] move sft and adjust paths --- README.md | 2 +- green_bit_llm/evaluation/README.md | 4 ++-- green_bit_llm/inference/README.md | 4 ++-- {sft => green_bit_llm/sft}/__init__.py | 0 4 files changed, 5 insertions(+), 5 deletions(-) rename {sft => green_bit_llm/sft}/__init__.py (100%) diff --git a/README.md b/README.md index 92129a5..9875565 100644 --- a/README.md +++ b/README.md @@ -43,7 +43,7 @@ Please see the description of the [Evaluation package](green_bit_llm/evaluation/ ### sft -Please see the description of the [sft package](sft/README.md) for details. +Please see the description of the [sft package](green_bit_llm/sft/README.md) for details. ## Requirements diff --git a/green_bit_llm/evaluation/README.md b/green_bit_llm/evaluation/README.md index 4d80f9d..51c4349 100644 --- a/green_bit_llm/evaluation/README.md +++ b/green_bit_llm/evaluation/README.md @@ -29,10 +29,10 @@ Example evaluation scripts for the GreenBitAI family of low-bit models. ### PPL Evaluation ```bash -python -m evaluation.evaluate --model GreenBitAI/Qwen-1.5-4B-layer-mix-bpw-3.0 --trust-remote-code --eval-ppl --ppl-tasks wikitext2,c4_new,ptb +python -m green_bit_llm.evaluation.evaluate --model GreenBitAI/Qwen-1.5-4B-layer-mix-bpw-3.0 --trust-remote-code --eval-ppl --ppl-tasks wikitext2,c4_new,ptb ``` ### Few-Shot Evaluation ```bash -python -m evaluation.evaluate --model GreenBitAI/Qwen-1.5-4B-layer-mix-bpw-3.0 --trust-remote-code --batch-size 16 --few-shot-tasks wic,boolq --eval-few-shot +python -m green_bit_llm.evaluation.evaluate --model GreenBitAI/Qwen-1.5-4B-layer-mix-bpw-3.0 --trust-remote-code --batch-size 16 --few-shot-tasks wic,boolq --eval-few-shot ``` diff --git a/green_bit_llm/inference/README.md b/green_bit_llm/inference/README.md index 1ef87fd..bbca4e3 100644 --- a/green_bit_llm/inference/README.md +++ b/green_bit_llm/inference/README.md @@ -43,7 +43,7 @@ pip install pillow requests prompt_toolkit rich Run the simple generation script as follows: ```bash -CUDA_VISIBLE_DEVICES=0 python -m inference.sim_gen --model GreenBitAI/Qwen-1.5-1.8B-layer-mix-bpw-3.0 --max-tokens 100 --use-flash-attention-2 --ignore-chat-template +CUDA_VISIBLE_DEVICES=0 python -m green_bit_llm.inference.sim_gen --model GreenBitAI/Qwen-1.5-1.8B-layer-mix-bpw-3.0 --max-tokens 100 --use-flash-attention-2 --ignore-chat-template ``` This command generates text based on the provided prompt using the specified GreenBitAI model. @@ -53,7 +53,7 @@ This command generates text based on the provided prompt using the specified Gre To start the chat interface: ```bash -CUDA_VISIBLE_DEVICES=0 python -m inference.chat_cli --model-path GreenBitAI/yi-6b-chat-w4a16g256 --debug --use-flash-attention-2 --multiline --mouse +CUDA_VISIBLE_DEVICES=0 python -m green_bit_llm.inference.chat_cli --model-path GreenBitAI/yi-6b-chat-w4a16g256 --debug --use-flash-attention-2 --multiline --mouse ``` This launches a rich command-line interface for interactive chatting. diff --git a/sft/__init__.py b/green_bit_llm/sft/__init__.py similarity index 100% rename from sft/__init__.py rename to green_bit_llm/sft/__init__.py From 25a5244fe7351733d6ae7db308c1568f993cddc9 Mon Sep 17 00:00:00 2001 From: Haojin Yang Date: Fri, 26 Apr 2024 10:41:29 +0200 Subject: [PATCH 055/125] Added autoconfig. --- green_bit_llm/model.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/green_bit_llm/model.py b/green_bit_llm/model.py index 9923880..c2eaa9d 100644 --- a/green_bit_llm/model.py +++ b/green_bit_llm/model.py @@ -169,7 +169,7 @@ def load_model(model_path: Path, layer_mode: LayerMode, bits: Optional[int] = No # Initialize model with empty weights and load configuration with accelerate.init_empty_weights(): - config = AutoConfig.from_pretrained(model_path) + config = AutoConfig.from_pretrained(model_path, trust_remote_code=True) model = AutoModelForCausalLM.from_pretrained(model_path, config=config, torch_dtype=dtype, **model_config).eval() # Quantize layers as necessary From 83905c109c6bcbce8cd8b713c2b8700f693d8c94 Mon Sep 17 00:00:00 2001 From: Haojin Yang Date: Fri, 26 Apr 2024 11:47:44 +0200 Subject: [PATCH 056/125] Corrected the issue of conversation template of phi3 --- inference/conversation.py | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/inference/conversation.py b/inference/conversation.py index 70825c7..a00e075 100644 --- a/inference/conversation.py +++ b/inference/conversation.py @@ -476,10 +476,11 @@ def get_conv_template(name: str) -> Conversation: Conversation( name="phi-3", system_template="<|system|>\n{system_message}", + system_message="You are a helpful assistant.", roles=("<|user|>", "<|assistant|>"), sep_style=SeparatorStyle.CHATML, sep="", - stop_token_ids=[32000], # "<|endoftext|>" + stop_token_ids=[32007], # "<|end|>" stop_str="", ) ) From 168b1783d29b8aeebcae8deb1b6a07e7e0eb6457 Mon Sep 17 00:00:00 2001 From: Haojin Yang Date: Fri, 26 Apr 2024 18:47:15 +0200 Subject: [PATCH 057/125] Fixed various issues in finetune and peft. Improved readme. --- README.md | 71 +++++++++++++++++++++++++++++------- green_bit_llm/args_parser.py | 6 +++ sft/README.md | 10 ++--- sft/finetune.py | 2 +- sft/optim/adamw8bit.py | 4 +- sft/peft_lora.py | 4 +- sft/utils.py | 71 ++++++++++++++++++++---------------- 7 files changed, 111 insertions(+), 57 deletions(-) diff --git a/README.md b/README.md index 2e6a024..5b50b3a 100644 --- a/README.md +++ b/README.md @@ -1,22 +1,47 @@ # Green-Bit-LLM -A toolkit for fine-tuning, inference, and evaluating GreenBitAI's LLMs. +A toolkit for fine-tuning, inferencing, and evaluating GreenBitAI's LLMs. ## Introduction This Python package uses the [Bitorch Engine](https://github.com/GreenBitAI/bitorch-engine) for efficient operations on [GreenBitAI's Low-bit Language Models (LLMs)](https://huggingface.co/GreenBitAI). -It enables high-performance inference on both cloud-based and consumer-level GPUs, and supports full-parameter fine-tuning directly using quantized LLMs. -Additionally, you can use our provided evaluation tools to validate the model's performance on mainstream benchmark datasets. +It enables **high-performance inference** on both cloud-based and consumer-level GPUs, and supports **full-parameter fine-tuning** directly **using quantized LLMs**. +Additionally, you can use our provided **evaluation tools** to validate the model's performance on mainstream benchmark datasets. +## News +- [2024/04] + - We have launched over **200 low-bit LLMs** in [GreenBitAI's Hugging Face Model Zoo](https://huggingface.co/GreenBitAI). Our release includes highly precise 2.2/2.5/3-bit models across the LLM family, featuring LLaMA 2/3, 01-Yi, Qwen, Mistral, Phi-3, Gemma, and more. + - We released [Bitorch Engine](https://github.com/GreenBitAI/bitorch-engine) for **low-bit** quantized neural network operations. Our release support full parameter fine-tuning and parameter efficiency fine-tuning (PEFT), even under extremely constrained GPU resource conditions. + - We released [gbx-lm](https://github.com/GreenBitAI/gbx-lm) python package which enables the efficient execution of [GreenBitAI's low-bit models](https://huggingface.co/collections/GreenBitAI/greenbitai-mlx-llm-6614eb6ceb8da657c2b4ed58) on Apple devices with [MLX](https://github.com/ml-explore/mlx). -## Features +## Demo + +Full parameter fine-tuning of the LLaMA-3 8B model using just a single GTX 3090 GPU with 24GB of graphics memory: + +![Loading Image ...](assets/demo_llama3_8B_fpft.gif) + +PEFT of the LLaMA-3 8B model using just a single GTX 3090 GPU with 24GB of graphics memory: + +![Loading Image ...](assets/demo_llama3_8B_fpft.gif) ## Installation -To get started with this package, simply clone the repository and install the required dependencies (for Python >= 3.9): + +### Using Pip + +```bash +pip install green-bit-llm +``` + +### From source + +simply clone the repository and install the required dependencies (for Python >= 3.9): ```bash git clone https://github.com/GreenBitAI/green-bit-llm.git pip install -r requirements.txt ``` + +### Conda + Alternatively you can also use the prepared conda environment configuration: ```bash conda env create -f environment.yml @@ -26,34 +51,52 @@ conda activate gbai_cuda_lm ## Usage ### Inference -TODO: link to readme file in the sub-directory +Please see the description of the [Inference package](green_bit_llm/inference/README.md) for details. ### Evaluation -TODO: link to readme file in the sub-directory +Please see the description of the [Evaluation package](green_bit_llm/evaluation/README.md) for details. ### sft -TODO: link to readme file in the sub-directory +Please see the description of the [sft package](green_bit_llm/sft/README.md) for details. ## Requirements - Python 3.x +- [Bitorch Engine](https://github.com/GreenBitAI/bitorch-engine) - See `requirements.txt` or `environment.yml` for a complete list of dependencies ## Examples - -```bash +### Simple Generation + +Run the simple generation script as follows: + +```bash +CUDA_VISIBLE_DEVICES=0 python -m green_bit_llm.inference.sim_gen --model GreenBitAI/Qwen-1.5-1.8B-layer-mix-bpw-3.0 --max-tokens 100 --use-flash-attention-2 --ignore-chat-template ``` +### PPL Evaluation ```bash +CUDA_VISIBLE_DEVICES=0 python -m green_bit_llm.evaluation.evaluate --model GreenBitAI/Qwen-1.5-4B-layer-mix-bpw-3.0 --trust-remote-code --eval-ppl --ppl-tasks wikitext2,c4_new,ptb +``` + +### Full-parameter fine-tuning +Run the script as follows to fine-tune the quantized weights of the model on the target dataset. +The '--tune-qweight-only' parameter determines whether to fine-tune only the quantized weights or all weights, including non-quantized ones. + +```bash +CUDA_VISIBLE_DEVICES=0 python -m green_bit_llm.sft.finetune --model GreenBitAI/Qwen-1.5-1.8B-layer-mix-bpw-3.0 --dataset tatsu-lab/alpaca --optimizer DiodeMix --tune-qweight-only ``` -## License -The original code was released under its respective license and copyrights, i.e.: +### Parameter efficient fine-tuning -- ... -- We release our changes and additions to these files under the [Apache 2.0 License](LICENSE). +```bash +CUDA_VISIBLE_DEVICES=0 python -m green_bit_llm.sft.peft_lora --model GreenBitAI/Qwen-1.5-1.8B-layer-mix-bpw-3.0 --dataset tatsu-lab/alpaca --lr-fp 1e-6 +``` +## License +We release our codes under the [Apache 2.0 License](LICENSE). +Additionally, three packages are also partly based on third-party open-source codes. For detailed information, please refer to the description pages of the sub-projects. \ No newline at end of file diff --git a/green_bit_llm/args_parser.py b/green_bit_llm/args_parser.py index 28f4e4c..2f0167b 100644 --- a/green_bit_llm/args_parser.py +++ b/green_bit_llm/args_parser.py @@ -35,6 +35,12 @@ def setup_shared_arg_parser(parser_name="Shared argument parser for green-bit-ll default="output/", help="Specify save dir for eval results.", ) + parser.add_argument( + "--save-step", + type=int, + default=500, + help="Specify how many steps to save a checkpoint.", + ) parser.add_argument( "--dtype", type=str, diff --git a/sft/README.md b/sft/README.md index 7595488..753d66d 100644 --- a/sft/README.md +++ b/sft/README.md @@ -3,8 +3,8 @@ ## Overview This package demonstrates the capabilities of [GreenBitAI's low-bit large language models (LLMs)](https://huggingface.co/GreenBitAI) through two main features: -1. Full-parameter finetuning using quantized LLMs. -2. Parameter efficient finetuning +1. Full-parameter fine-tuning using quantized LLMs. +2. Parameter efficient fine-tuning ## Installation @@ -44,7 +44,7 @@ pip install bitsandbytes, galore-torch ## Usage -### Full-parameter finetuning +### Full-parameter fine-tuning Run the script as follows to fine-tune the quantized weights of the model on the target dataset. The '--tune-qweight-only' parameter determines whether to fine-tune only the quantized weights or all weights, including non-quantized ones. @@ -53,7 +53,7 @@ The '--tune-qweight-only' parameter determines whether to fine-tune only the qua CUDA_VISIBLE_DEVICES=0 python -m sft.finetune --model GreenBitAI/Qwen-1.5-1.8B-layer-mix-bpw-3.0 --dataset tatsu-lab/alpaca --optimizer DiodeMix --tune-qweight-only --galore ``` -### Parameter efficient finetuning +### Parameter efficient fine-tuning ```bash CUDA_VISIBLE_DEVICES=0 python -m sft.peft_lora --model GreenBitAI/Qwen-1.5-1.8B-layer-mix-bpw-3.0 --dataset tatsu-lab/alpaca --lr-fp 1e-6 @@ -62,7 +62,7 @@ CUDA_VISIBLE_DEVICES=0 python -m sft.peft_lora --model GreenBitAI/Qwen-1.5-1.8B- ### Current Limitations -1. **Gradient clipping** is currently **unavailable** for Full-parameter finetuning due to PyTorch's restrictions on the dtype of gradient tensors. The integer tensor type we use for qweight is not supported. We plan to address this issue gradually in the future. +1. **Gradient clipping** is currently **unavailable** for Full-parameter fine-tuning due to PyTorch's restrictions on the dtype of gradient tensors. The integer tensor type we use for qweight is not supported. We plan to address this issue gradually in the future. 2. **placeholder b** diff --git a/sft/finetune.py b/sft/finetune.py index 3e73988..9d457d3 100644 --- a/sft/finetune.py +++ b/sft/finetune.py @@ -113,7 +113,7 @@ def main(args): # auto_find_batch_size=True, per_device_train_batch_size=args.batch_size, logging_steps=1, - save_steps=50, + save_steps=args.save_step, max_grad_norm=0, # NOTE: max_grad_norm MUST be <= 0 or None, otherwise raise dtype error due to the Int dtype of qweight. ) diff --git a/sft/optim/adamw8bit.py b/sft/optim/adamw8bit.py index 4486392..d23bdb6 100644 --- a/sft/optim/adamw8bit.py +++ b/sft/optim/adamw8bit.py @@ -65,6 +65,7 @@ def step(self, closure=None): projector = state["projector"] grad = projector.project(grad, state["step"]) + saved_data = None if "rank" in group or isinstance(p, MPQWeightParameter): # suboptimal implementation # In the implementation mentioned, the author sets the variable p (representing model parameters) to zero, @@ -91,6 +92,7 @@ def step(self, closure=None): group['weight_decay'] = group['weight_decay_saved'] del group['weight_decay_saved'] + w_unpacked = None # GaLore Projection Back if "rank" in group: # now the p.data is actually: -norm_grad*lr @@ -129,11 +131,9 @@ def step(self, closure=None): if torch.cuda.is_available(): torch.cuda.empty_cache() - if self.is_paged: # all paged operation are asynchronous, we need # to sync to make sure all tensors are in the right state torch.cuda.synchronize() - return loss \ No newline at end of file diff --git a/sft/peft_lora.py b/sft/peft_lora.py index c9c874f..c2279d0 100644 --- a/sft/peft_lora.py +++ b/sft/peft_lora.py @@ -84,8 +84,6 @@ def main(args): replace_peft_lora_model_with_gba_lora_model() model = get_peft_model(model, config) - - model.print_trainable_parameters() param_groups = create_param_groups(model, args, DEFAULT_BETAS) @@ -101,7 +99,7 @@ def main(args): auto_find_batch_size=True, # per_device_train_batch_size=args.batch_size, logging_steps=1, - save_steps=50, + save_steps=args.save_step, max_grad_norm=0, # NOTE: max_grad_norm MUST be <= 0 or None, otherwise raise dtype error due to the Int dtype of qweight. ) diff --git a/sft/utils.py b/sft/utils.py index 8e585ef..b264c33 100644 --- a/sft/utils.py +++ b/sft/utils.py @@ -41,6 +41,8 @@ def create_param_groups(model, args, betas=(0.9, 0.999), lr_galore=1e-4, lr_adam This function categorizes parameters into groups with different learning rates and beta values for optimizers. + This function also prints out the number of trainable params and all params. + Args: model (nn.Module): The neural network model. args (argparse.ArgumentParser): Command line arguments for additional parameters. @@ -48,34 +50,46 @@ def create_param_groups(model, args, betas=(0.9, 0.999), lr_galore=1e-4, lr_adam Returns: List[dict]: A list of dictionaries where each dictionary contains a parameter group. """ + params_2_bit = [] + params_4_bit = [] + + regular_trainable_numel = [] + qweight_trainable_numel = [] + total_numel = [] + trainable_numel = [] + + for module_name, module in model.named_modules(): + if issubclass(type(module), MPQLinearBase): + if module.w_bit == 2: + params_2_bit.append(module.qweight) + qweight_trainable_numel.append(int(module.qweight.numel() * 32 / 2)) + elif module.w_bit == 4: + params_4_bit.append(module.qweight) + qweight_trainable_numel.append(int(module.qweight.numel() * 32 / 4)) + else: + raise Exception(f"Error: Invalid qweight bit width: '{module.w_bit}'.") + + total_parameters = list(model.parameters()) + for param in total_parameters: + if not hasattr(param, "qweight"): + total_numel.append(param.numel()) + total_numel += qweight_trainable_numel + if hasattr(args, 'lora_rank'): # peft - params_groups = [] + param_groups = [] # Create list of peft parameters params_lora = [p for n, p in model.named_parameters() if "lora" in n] + for param in params_lora: + if param.requires_grad: + trainable_numel.append(param.numel()) + params_group_lora = {'params': params_lora, 'lr': args.lr_fp, 'betas': betas} - params_groups.append(params_group_lora) + param_groups.append(params_group_lora) elif hasattr(args, 'tune_qweight_only'): # full parameter finetune - params_2_bit = [] - params_4_bit = [] - - regular_trainable_numel = [] - qweight_trainable_numel = [] - trainable_numel = [] - - for module_name, module in model.named_modules(): - if issubclass(type(module), MPQLinearBase): - if module.w_bit == 2: - params_2_bit.append(module.qweight) - qweight_trainable_numel.append(int(module.qweight.numel() * 32 / 2)) - elif module.w_bit == 4: - params_4_bit.append(module.qweight) - qweight_trainable_numel.append(int(module.qweight.numel() * 32 / 4)) - else: - raise Exception(f"Error: Invalid qweight bit width: '{module.w_bit}'.") id_2bit_params = [id(p) for p in params_2_bit] id_4bit_params = [id(p) for p in params_4_bit] @@ -123,22 +137,15 @@ def create_param_groups(model, args, betas=(0.9, 0.999), lr_galore=1e-4, lr_adam if not args.tune_qweight_only: param_groups.append(params_group_regular) trainable_numel += regular_trainable_numel - - total_numel = [] - total_parameters = list(model.parameters()) - for param in total_parameters: - if not hasattr(param, "qweight"): - total_numel.append(param.numel()) - total_numel += qweight_trainable_numel - - print(Style.BRIGHT + Fore.CYAN + - f"Info: trainable params: {sum(trainable_numel):,d} || " - f"all params: {sum(total_numel):,d} || " - f"trainable%: {100 * sum(trainable_numel) / sum(total_numel):.4f}" - ) else: raise Exception("Error: invalid use case in creating param_group.") + print(Style.BRIGHT + Fore.CYAN + + f"Info: trainable params: {sum(trainable_numel):,d} || " + f"all params: {sum(total_numel):,d} || " + f"trainable%: {100 * sum(trainable_numel) / sum(total_numel):.4f}" + ) + return param_groups From 8f7791145653ad26d41dd1bf44d645d627a3ad69 Mon Sep 17 00:00:00 2001 From: Haojin Yang Date: Fri, 26 Apr 2024 19:05:45 +0200 Subject: [PATCH 058/125] Added demo gif images and adapted readme file. --- README.md | 8 ++++---- assets/demo_llama3_8B_fpft.gif | Bin 0 -> 3078086 bytes assets/demo_yi_34B_peft.gif | Bin 0 -> 1401760 bytes 3 files changed, 4 insertions(+), 4 deletions(-) create mode 100644 assets/demo_llama3_8B_fpft.gif create mode 100644 assets/demo_yi_34B_peft.gif diff --git a/README.md b/README.md index 5b50b3a..1977dd1 100644 --- a/README.md +++ b/README.md @@ -16,13 +16,13 @@ Additionally, you can use our provided **evaluation tools** to validate the mode ## Demo -Full parameter fine-tuning of the LLaMA-3 8B model using just a single GTX 3090 GPU with 24GB of graphics memory: +Full parameter fine-tuning of the LLaMA-3 8B model using a single GTX 3090 GPU with 24GB of graphics memory: -![Loading Image ...](assets/demo_llama3_8B_fpft.gif) + -PEFT of the LLaMA-3 8B model using just a single GTX 3090 GPU with 24GB of graphics memory: +PEFT of the 01-Yi 34B model using a single GTX 3090 GPU with 24GB of graphics memory: -![Loading Image ...](assets/demo_llama3_8B_fpft.gif) + ## Installation diff --git a/assets/demo_llama3_8B_fpft.gif b/assets/demo_llama3_8B_fpft.gif new file mode 100644 index 0000000000000000000000000000000000000000..3b3b5fb44a1966598890a241af2badb06db2cddb GIT binary patch literal 3078086 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%0D4^C=yC3Oh@$k53HX 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ʟy?eG+ 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

4EVpY>}LRA}Sht$AuJ1$;K92etu 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�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

Orx-ZZ33)fH94FO=1bq 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%0Afl`L~!FV42i7XzNmh(=M)EYTbM4Jmoflr&(h2 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≶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 z¥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�Q@eki4LsgK?08@zfcVLI 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

4)$5JIVTmCbQ zesu9vz?=!X-3$GP*zu3kayM)#M_J~N$xAxOVS2k_P-tGTwhOcHMfzHc^2DrkTX4K4 zHg)b8j@}}J=|zU@+bNrQ%a*erChK)@j{j`nZ;(O%``QcY+7cc7JNLV7gVDOH7!Q%b z1+96ZN0sW8;Fvd0aNmNqSslZQduq=JF`p+TKJs^lRezN_R%Y`pQ@>ShlOkyV)2Xoc z6(4>!_btYp)d1*-gxSge#-= zM)URm_;SGDlOSaR$l442u315f4^w&)OxLsgAg3I14f_E1$zZ~sn|Au5V88hB{S(Ed z{z05vNh_5L9w=5W4FSuKL7-IHBv7uhVzIy-ek0PxK+_s?QQfuk({n{k{r~KSQ2)7XUFn;kw?8w*tzR{$#!|TjV7}7C|jPX)lRpin+*`4Y7e| z^>)y7g(@)b8XPd^iR}@e zDb?+YuXDRQC3G-|{=(ITbX=1`)1pNr|BZY4cISVtyx#J4b_-_6BY=P8)8~Q*2`yr0 zL3mj!AA>M@G+%01njV$+l-q;YlXh>5`%doR06<+&sh?(}41Jc1q9uIS)N9Q$14#Hx zvyh3#uLf=gSgSu9bu_v}5p5^qaoZ9C5 zSV>}kLGh0w%M(`}hA9m7(AXKaetiNr2_mgn*LF1LlTqRMKb;FTDRRG$;%nC!;19De zqi3q98vp6-%a=ijCIh8soffzDv$x8byW6gZ#<9b1huv1!`5kfRMd;yeag9-k<2Ai* zr*7xiW>0QAD~r4VlhSj$awh%g5wu;~vaEIFfc(h^tK&2oL?*qtWy!7@yVLsGvGe*t zRZuX92L=+$-{0lmj0vpS0fdRs;65@-APmy|VcgugA)8-W)-W!NjzD~Age0h)QZB4j zT+&Q`^Deu?AQ|Aryp|;WL!{bjUrb!Nx45+$)D0qLKsUkNwJS2859-eb-j@Khu=$Tv zU}C2pUs#XY*w6jG+1hw>z9A(}%3v?r}oOQ+%OSy+q1t_u82{)pOz$ z*scycw82NwHn>zpS?v(+pLRbTddS;bB_BcWSg@2R%_J^-CyhUdAY2pRzrWIILI314 z_d+%7EPfJ7gni)>?it|d>TR0}A@pV7kmDn{f&n2x$CoTqE5*oOTh{es+XZiJgE^Xh z_ApqU9Ii)^ZW6{nqzDwpSb~F=*J1Hm6?+G1%Yf>ZVH0R!PvN zED^dJTi+iMoA*@r)Rw+!cHOOAA@j{CnELeL90T zB`wk`MbI#!Sb&!8)?lhrL3(GJCLO8chmY1{?SSv`&Nwht4Pk5Vi(i)qI6L)`G0xCM z!u`xJXoa?={(0fEn_%*C^^UY~cZurD-*C0D?SbN#$VL0MtYC`z+YgVrMxoeoOuM9I zX-60dd1Q3zny2hZ$J`XZe-BI=;rfrS|NP)07oK^2dsKr*)t&=wML)E6T>p?n`Z0V& z`@e1O_8$)GpSTgnkGv5&aQf(vCQkBl@2)w1D)Z4P?B1W@u6jX()C||!WT-p+LRy3< zWVP(TGo!QM>sG_jt}a@nJhAM2u`^-Ex-i#~P-#yh;#?zN!gHw#1*{>^}j`+u=(H^oJ?_kw@hsg`b~Q_?k|(2T+dAiBw{+=zb7d`gXk{8z1&(V$i=i2!BHv!H~i0 zYnM(}IVe3PCi=adNW*wbFH>`3Rmv_*i6^K$7C#u{1xqGE0KfTh|8@~+PYTZiPp3Lt zCe~h#!o&4_CF;CijRex&Lx`72uW|;g7kCPa!-%|7Vcdm&x3$ZD;Frz6Q#Pb5#bpa8 z%669ic(7IU`>zig7M~_c> zoc|p$M1*Y0_*5izK-G$a4Wri?1^vy3ZtRQvE*q|it(KgAc5m><&3ENkJIsft(2wrT z$4$9<^NaFkatNefOJ?BixtFJ|FW3#=tq5?3s@;%|J0IqqnL@pSzne2s%&Df(Er1F+ z%G=DV56{LGgp=THDx?`R&OTH_w2`TYqAQ{P=+;mIhpPa)|2ZM5R?yY$-ZSOxPy2v$ zrJyARqlh`1$c(Rg5l4y)Bt9*c`Mo+|pF*U`jLz?)`yr+O`MX6HYtTTEg}e52-Xo?H z@1}%3c(;4V@=@OBXFs4!umb2vCP4xSF`df?Z{&EZq@*5e73Q3;XFrlyTg#bcA~v5S zOy99p+T;x$2TMa^hN{@n76Qb|OlqTYsy)2KAKyylT~~3gwmwb9{dmUO=Xkg>XO$k ze=WT*^Ai6N5ffYf*4TYpo%SNn<%i|u%*XR@H!J8)#>)fu%~y{vj=#%g`#i*2y-PLM zY}(vQZTt82#oK>oJ@dpbEBVKKPfa(CBHvCnEJH9-`sJxy$eyL#gwAeQ43Sw?_8u?0 zCS4A0Lgpw*6l2qi0$Az@)h3HtxJ(ajnT52gxx6OJ`Xq6m+fuC{Z5W>eDa>bB?3HTo z!Ig7=M5@&DL0R_!ltG3cg3fa7>c|5qvU+lF59zq^rUcjt;+4ahB641 zwTd`iA=?6+FHB_tO)ev1?3&E^3v8wS-d*2qMMKhvWWXR4OSIhzB@((2G02e5DCt&k zfWL`3l#D}3Ut79E$HJCANoQg!=tSB^B&(PqhDN}(xDTF&F&6z*v-tVM59G}nOJHf& z?`PNphl<(|aPPp3qh7kj>**%T{RaadnPnCg;}qXXXS*ty_)j@}EpQOsFFR(Id7C(p z9DJm9Q^w))egr-vqVP<w12f}FV7TSCmLt&DwrwHKv`$H62M~0Cf zt`8Rl?mm4DE?!%*5yWhZ&p}2xrn01BF2I&FtJ70uK~$Y)PKssBNKHsCjJExD(8GSL zI0m`1LICWuNEZ{*)rk)wd2}zu){8Oq*ma2j1160;+J@3KIxTL*w-1PB2Rf&MlrK|* zZNg{3_e~z(M;TwWyA0hUA?SPD4ILX_Ds1X)AIi{SsMqrR#)b{xr)S!!K79j)?j;(# zsa;rxbJxg}`#X+Z^O~cw%(ln=qffM+OqR17|J4&?+wq{L4JP`?0GN@iac$mg{1LL#T4ZZ2`B}jIENkKPjcby)SKxZD~(r$B7 zkOb&nme}q?IyNNnsZ@nGgsvlDb^(U0fK{eV0>C7?0X*65oi*4Q@_fH%*?Rhp3n}Li z&`{;9R2NiU2)d?5!rj>#m;s0LQ=vSlJIj;78p|gl&q*UBE*FWFNO=md{_1&Woc9*e zv)8-EVE8LTV^3waBV>V5x&ZjI&ipRT+J$Eae8_4gqW?ppq!hqJFwG>7ft~5*aTv6I z4B708boDM5x=dkhHtwba;mC4kMbX3N$r&<>hmB5?#bYuCcOSkIXMs(a@D=;r z+_wJAh#_IH%Pro5Baz};5`~N#Za|-6#|bef=zi72i7HSHA*I+;5?>s4XMeP8c6_Q% zm!8Y&s3b|z_p*M#lM3AXjN=O64~ixa#|C&r6FS~=!atKIKQGQ@EP)~k)4!^Z+@I26@gjVJT~?s$3>e}&P^L8hmK6BRxX4)e z(TB_JO)4qfTmBdT%8EWw4FH4=Qr@tp>c0SFULub(_<#L$o+MGS!Q8OUzbo#Mu{ws5YlJvq}1J-%PVXR z^UX544%K5C3jmoGAcSOUPkIrjm~~taBo#*6fd^dz-^7*x5gZtjka}s$+A7K2aou*x z=S_p23^3D1Z^U=u-((Sn=jeJK7XTMkq)dsl)~?$2?PX^uu!!L_=u8^6@g+YWgx7<^ z5h>^J0yK$Uq{6(s4{FYp*A_B#QTR=Ta07+hMh~&-4_*9Sr2)>l} z`9?(>mQttiD1ka4YC6_-ig~Wl9c}7y7<$v*bqd|ZZW=X+eBKx}{Mx`l=2l4XK&c~r zJ^iQHjkfsfqG$O1l8$_ed{Jufok$1O`cAI~KYt+98I?Fj=@5ELmgdh@2RTfC zF#TMvV;w*jyIOEX8hd4e19wrRX(kP_>n^lTRPLxLWBx&uF#1i%CKrE%!$h^{95!vNSx zd{f$ACF}n-nAeb9ZrR2b#E=S(e7pi2iM{vB4k6xX*fa+ecN|Oc0`|)x#1RXE|As){ z;9!6jd>M9YJL}@Z8EV{;328g9E+u-q3&Hq_@}2Omd&i0tSf%1E?Od<3a4h`sz#14>Qk~OojJf z(H5H;iqE`6Y-r;hN#{MH9YP$(IU4^{01CYYf0d>=etnM1&(cehESTZFMZjhjw}3z) zFJvKV%*QW#v^mz8A-1*1i$cB~or0Ym3R>7fWJtmQq5jSB-&s$#M8u6`2_uB|4H7_0 zOFqDgV)3(=?(Hel>{CHiDadCF8@`KwS-YvKbs3DOa0=wy=@wP1vaDP=#FDA?D{F+D zF`~+dRW*$WC*(yFWQ(0)>`fUduO?kQ_>vC(TPSr9w|jH?$?*Df%M?kb*L`T?2brC$ zPDoZcH;u@xfxZ(D=2k`Ay=A(-06VyP>31oP4v*jf*H`HQT(JlRkec9%&jLzXALe?! z>1-Z7+Mjm31io>=VCwLymb`8ydp}T;`TLM6Ui~Y?+e#>%*Dj9ys2&tdYk+YW0Ub`- z^3l{X#b67t$lP06!vYq>2k8@YPKGhm9K{W&2X??{j3Ui2KbZ?@;^E3Qa&Eo6;4 zcjv2nKK=QPEMMZupx^y(Bckx?t@3HcO|EyYmqBm4l6wixqoc$5hP?%~(t4z#b zzeE)i?14td4MV0XEQ|Q%OF016RzbjNkVI|7Ozh!Qf45-yU$7u-IOiK(A7L&=ThNDp zeNF2Y!vB-Y)@wC9?T-Nnz^1>^Hk$(>SGHMV(e#pgk-F=@sAKupn*EOzCA6eR(j@cu z=ZWOlQj#2k^j^f<3EU7MB|T@FVZ5Hp%x%WS#5f`1*O~1lA7Pf6mrA53Iwen?KumKp z7C{?jUvnS|>uI2rKi(NwfO4mcEB_7@QJi}lo3U$2BJ&vH{oRfFx1X)Py{hG!I3zB> z@?^yEx}RNHH&hTeJ)cryf43~6$fwopj%4?Yn|bA|BATK+ynpp5gEMh z{PZPDK@8xR9^)hEPu;V6-JWKJ{XF#Qug&x(pw8Msr;dmD4bRZ9w6tRa8lf1O`ySDG zRc0y5Dx~*v`q_Vi@&brg;$09}ZjYEdpDrH-yuK*@FGmjQ@$cJP_Xua&9e@RQ0?G?O z6bV|YxV&k^l2E;$C8g`r9Pd#DLjwX3pW3Q1%+YYlH*$#t0}>a37*LCyIPIv;$;syM zZ#v`Ud(N*dfBL4&=aQIG+fT(TX#z8|+A3gfU~7%fX*K5#Zbi$rfO|Sd_gd(xH-m@r zx1auLG~0gaMcbLjR7P*0(yJ)d#jn8#0R3oXPCzrJWHf-KjU(0x??n9>@;i+cGu7{= zX-k@y&Z9>)Y3DIGN;uEJ(p6F{OBX3eunh&yd`+j!(t8TBxVV z2E?nUE1v35XR0QytFzQIEHv2KW$_vr`b`}gncKV8HL^@bEi|)t)i0?4o8>wa;Wm}U zd~1tY=ZTy}Sxc>hQ|g^s`9(d^TI6qp=jcM9z0doyyJ>rFf^gaXN|DG{zn4LhX$BFE zgPJ<43-6pUD@ZtbXiF$pS;RZXTEtJDASvAGw#;&%ZN+^ zixc%*3AeL-3eaic%BtbN!`T-zzRLq+w8W+Z(-y*~(neLk4Vqg=#ic-gDrSZ^J3s&a ztd2xhW4GTIw=!zoDP`i>GGK7u=(f($mz>%su2$RcNcKjrSRTCFIbnIUGxSh=fPO;Y zosVS_r>(_*^u6vv-k3AC|5RzU1*~qFDp?z62Ku9b!$my zyi5++8wLgJ7?8~@6bE|zBc`0*TgL#}GS>vyK#b9cuy*C^4@@76@TIyv$0xJ?a7Kc* z`(={uX_@sLN9yCf%OoxFbdvX-B(q5us}E1DTZ{^2$Vk1Are`JnTT1o!wTjBBdp*BT zs8jQ}989f2viX)afO&j0%n(I9>aj1xY+RCF{Kh`VAVh_x*Pb6sl8c|bHJA3E0Rh;l z>>+e8agNEHl0y|{9R>JR`~swY{=qjsd;73cnPA$lcXe0y^qPDq`-hE{^J)hGJBxm* z^WB>lH=92S(yhEUmxir`w+3Ch$RoH*!H+1v`*ITAqxUbmx7$nPMe}w0Jsw@y5mS~k z2^ZP0UYPoM+TemlN>5B@cGP^c`!RRdb7IfQSDU+5(6;|Xnm%iudkZ6Q%T{k9b6)o! z4{R+RGMB2-{6RRb-f zG~LA$r(U5!4uG%zBz!n1ZmEWhwy3@s?*<2!oQzOl+)EHI+;LMDV%g6w*?QgGUNP0) z?S$Uqc`^@JPwcfN=}_It>ByI`XmNh^5E;jui$tH%1MV5NwURgD;Q)t&1x^@f%v^Y8 z{irotE0hI+di6_F4$8_|1KOWgN58Dk3_2V|QYv5u<+TV=Y`SACuP94`Au^;SXMaT9E*y`Q*;3<2(9Za^t_-yXHWVzA`V> zRk9t`CoNrNlS$eu6Vh7SWOQwxu4!XZ{?nN1JZ#N~!dzPZqVk)<+FPP=iyiOj;4{iS z5!YF;6qBhrfm|Z%S~R8|^4#;S`J}DA!R5H$kGTTuQ_Q)T5l+`KYIIeaO{NbQ2SE~D#N24SCz(jk_5X^lr! zl&oGZmKUU$=&-_6TH28Ep%hNKwiX61<&SX0TCcEnK0vn9^Z1;dTP}A zM@~K(E5V8reAQ#GU%3L-$<9x_$FqqfYUs42U-IW_xB5Rf5$E0)b0*>#IEe`G~xOxR!q3y0$TJz?oWB%gZ;h5V;)?Dl#qF!7Sn?8!1 zcS`=xDj!nmr!l^&?@_jhS?sS@c`3zi=)3*A{DWW6@Jk;D$0tRpZG9F?bORtC=dHaT z$!r>YRWJJ_=zDzKb7VO4;7uq7QCU}yFPA=3azKtTvO78Zs9ROZFYKcAgEA-5vuvbR38m0Sr7hE0Q)^C4)tM3dBh$r0&vnyw_K{Qi9H+H1gjGRA!wcXDY z=p5WSQS3WA;W}hLU0$d4Ut9`2ndEERy z$Srmk&l}7wekS|aU%iMiIO3}gqlqQSNz6C0-=*hg9RLf?UDjC*>-%!$B*g%>x7hh` zWT*?^%oum;z8|c&yDd6mX4@bd`O)It{ntGEmw^*|0Lt2EDjqMV-@sBi!HcZ^ejT)D zb5m3FWP7>lkss*0avs+}9NYXItQa`+k?KObFQ<^Wc~#wcp8WD4gbNO7js!y9<)tTI$tQV zPq65}yDUj5g`x)WJ&~TtJWq^=z@G0VXAb>^c#~W{^?F7|wkYVL!q6+p0ZSC;LPzC3 z{J5`n|IWai*rXoc%ZxKTdkaF9;?E$qGfG8eKsA)DTh@D!?hUC9Lh-wJnZ+kvHtJ0iZqzS5o^Ms32Ug*SgO*-QS9JW3VFyQ zjQ62##EIkoZk-4ZfYBDN${BZA<-yZ!)DvOvVkG=fCVLs(>|62DkL03u5Dsemr zLA=I1)LBYnoLCNtR(J*Jm|w=zP_db$kmLK7S%dM9Z$%Ukc&SfHpk`-9H8!qp<^3*E zdVnhN*~OL8!0i5QCjHwV?DxbXfc8;~tS8|9l!F~PB>pk`_E%fK6Q5YG+-XvPLT|w? z0o;^av1IpptWT%BS0+Hqbq&1;P0RP2B`@bY)z`WgWny~|)j!elC<_ijiNh9ZJvgMWMD1^)5m0 zEk4wQ-wm~hT_6?my4LC7nYZCnwWk+C=k<=+W9f(f*%Lq4Q;Q}YDB8dh@3Uk>)B*-% z1dY^UZaLecJamyKGytrVH6>%E9K0L`i@kVK_(~qMhTKkofcZVk^oGQD9yTg|U0D*x zZZ;&1>n2Y(B)?faZ!B~1i|(bL4VT2>q5m3aXg#{zlK%(rS*6C56jyiSM#ekwvz+$~ zk1%)d#7kA3XZ4tIjm(RBtn@}!jvl*ciQV5|03yohD>gXn7 z3Leh_zh5Tt!%`kK4){5=B&jBmTN49KJnOrJLGhN!wv9mzvIM6_meddYu)v-rp>$RyW3XB zyc~6`DoJj8sKGx4=0Sy&^Km{lWQY4BBx=TYj~(r)LOD6bakNeby#-vgDy{)bRkyZ3`(+WT0))K}KibTk?`%De#!8whP4JZm%**F1F5XgIxjILBzDsClH) zXtXVD1t1#MH$RqxskHZ={KSK0G4vi8jaLp_h*1OFX{ifFd?^P%LIGsmep77wWR#e? zKG8zu)THfp7iW9?GT1$t0kzvcEk2-gV*3m6cj3G%&*E;(r+aoTTAN=#@A)tf0A#NA49%oI-;Gyc^2q;e%>!)Fyd1;b602IwpC-sfiYta|o zvjnG*FtR*_J|0254wdZQvVM*;Y7i~|{d0cZ;{f>%KACjHg}@M3p+hOXkeQ>fUyGj% z`j3E#!_ddzKSthx&{cO)rLMJ<%T|I&;flTplPl9<3X3pn#~heFK}fthNk$&*?-?BI z0|VKKYFIGQC#eTY<>^)F$-HRz`shi^=%+-W!bJrc>z8-o6=fuH@T}H3=|+N(J{#1t&9@f560e)5=dx~@>i)o_-q~KB3)0DL3msRn`mqMp@0UA?g3svL zFHxNv31ngO4(YJonI1&57Qp>)A68P1N-LCQ?97DXZhP4K|F;v<2tC9wJqR_bM7`62 z>PDns8okAKi^vw%tE)M;QBx= z>n9m9#uy|!JWka3qi)uDw%|sQz*z<;H0`&HzXj!bX?^O+QCR#=F}r5!upQdhPuNNJ z*H9Vjd2-juQfpOhl48h9*($^U%}uV%u!{Dxq*T@7WmbWaq&GZP=0er=kHc2s^EpC; ziirNJcO+N(k4hWj1&<7Fhz29a85D2B{_?b z3`pamv!r#JI%NzOA^lMS?8N^h?Ukc3oHJlT*4?nn(8 zy;_DB%@%9*pM$V#+xjjv2VHq^=U6doo93R|{xEnl^oQ}OLaZ9@>Y!76CTzg*<{d;K zBk?wBwEEmO-|z0+NyqMq!Ky{4d&3I_3X{vYgS)cHa)`H^2X+FoQdjCHS*NYI-!L*Ewhs+@6o+PyN39~ zv+5GJP5o~G_KD~s^*f;EmZQ3(^*;)V*EXQ`m)uccEo=TlaMtYcxd zaOcU%)T>VYM*`e zOP-Ja(eT~s1@qxduFcEhhcB<%%r-ony=60Z@8Mjx&8wk@ub$exe(~`2TbnnF58r&X zdHd@j8A0l9Fm{N!{`Ng)?+b@h)Jc@8{da>7bpE0I?w`M?> zq0^3YwhOnMiT_VW9@y&0%l+Su{1E+qF@k0X6rrM&?@7|y7+A@R_V*0m^+dnr(Uo@_ zmk;IQ?K4zd+GO>^x?zA|`XnIi9M}fz-2?br2Den? zYW`3fYy=V0voxOqGa%pzTq=~x3FAU}`_M2q^Ari)0x4kXrx)tQVoAw#s+{CK>_%XkKE(k0a7XFmHugp9K?NqvkEa&Vl`L zl5$6YDUtncb!*yiT=Nzme;nT(r#A zRw#tWy?uvFXWerzhCb|VT@XYWQ%`U-*PFv03U)hjo`W*0+uK> zcIiuuYzDv^q%+}%0N&okT`eW5wop=v*GH5(W7kdx{g40Ck>66DhK6fzb@Fd#TUmne zPt7H53VkhC{z}!`DLt?K_`e@q}1@24%)9_?#?{P0r6+bYhkmqwyQJE^*9bzm!Gel3k z=EE%%uZy5?WG)zJpycXQaP~GI8(+Yze~g)w>{4!DeQKFbf@B-=vA)MM&rktLfT8rA zn0exdM)p3wwr{!yRiS?j)|>r4L+v7VCwecD%dM1wouOrr0pd_k%8?do7HpgpJ?v#0 zE0^;iaTwqkGm}<<4yPr}+P#Zg$DE|1$^(X{r#SjpCY3J_Fk6JfSgMcF_D(o1}e#fBU%8=TxMJ zqjGHfum1t?ce=t}7B*DMVWXWIZmh+u?fOQ=TwjRbae< zCd%4lNBi@8`>d=9X^O~y+%x;EtUxr9FN3^aw0VU$Rg zqzXfwNI=Y*%^Sv3-mA1*$?o-uRRdZW(5*+z!-AXgTd`KAu7%dWEX+MOWxwqQtIBrP zL}A~N6Y>Lgb_PCa%C5rqDtb%q2$7V!3H1;pMk@@55zm*9{N9V7p5drj=dq5JpF-f= z?Gcr$77%BIgB0F9oSM$PCH{3l(Lp9TnubX&Onf=af|=S z?IB50Atbe|njN|PA&V{!>!b=@A%>kr07q8hB0!qOk85>ykBk`o*e(+w7&hnU>BgEF zYrI<5#7lx=lfCNM(IB*zs@=lQ@gT_`%O4cyEu2hKS20xxO_iCY1&d00cB0BVgcG)Z z?_gEsx!MB7IVjJZyDG|#F85S=uQ#+iHAphf6r#Kw@91#g+QXcnzHKQpJmdTyS+N1f zRj&VWF@4m7in+L;zz-YR9aU9%GUB$4r;(FWmECUQbg*tm9w=h=c!z&nf#RgVTV6nS z&%fIjFvjATo=EdfHm_BODZ>B8ndC%M7;;a;;8r$_DePHhWp{k~uC*|1xCY$}h)=gE z^+t!KE+U77$1NT`-#v_Wa|yH@|;w<%`Z1yYFRREZXua5S#XbI)`fGvg+rjRGjLq zjxfr__fce*BZq=mKKR{S1-oav1(E1bnHOE}htCq{`Z(V|@4U;fyli7N7!Zf}iT{Wt zFIZ^2opyD+J7hC-O>4LBhrxW+#lK(sJRYM#%s$Nhc;ncwse!~vJIqYjtz@R5;JA6o zZS9w^s z#k0(!ryYDPW_ohU7T6B~1>@pBFLBz@P!9N!aa4^_CqHrHF=hJjTdk;BYQ$EY%z~2x zP8XbWFA|Mi%8IliRL>ITHpVGA(HYka5BtBFZg;l*T0MSvfv0M&dtz`Uye48c&TQjp z%XcXs`Q+I$xvt5hZ84EMPj&1YYU8V!G#7()UwLeU)`ZNOaW%93d|rINTY8&KJpLC) zl)tBHz5hfZq+#h7c#k_x>)BOiMQ2&B`LlZMAJ(H299Q}MSIsw^3p4+Io?GjBf*f4g zmT<$ zqdRy%Lfxjn1Vm4u1MS`0bW+`lr(eI>)xUZ~N~?zaPTexzNZvT`!q6ID@!pMgLywh$ z?N(JjxBK(CUuV|`t^TcYavyxq z_1qZ!{{Z}db8=3{+orO=*3HAaH~uex-}B+;gHPippS}LkET6OxBsxFrlqzgLmxM@5 z$a=G_MgdrQXqVAi5RA1yjLq9`TJ-eKNBNp90RKgkN(}DpuS&&NL63gWFQHb>U)_L( zUlgsMkWB)xZ#VXq+6pz>{s=Lb{&s%4C@g3#ct6+u=jHi>-v_!Y{^nj1y=}PIf086@ zh=Xkb_*t=5-g|pE(u4P;H|6QLndDyiBy0(4s2DYXNA(hD)4%9=L<;X$lG2Pu_wGwC zb?N*Um+bB7%f&Q;Ufe5hR1Z&eS4YxACzKM4-cL*JrzG`IQQcgfM-3Nyv8Zki<2yV> z$v>(4SMvBT##U)m$IK10o~ojkJfLf6r+0DuSCVDe#lP}t{qjjYyyR_&OAk+`V!|%I zC#Ot8fxi?q&Q7btnP z0a!2-OyoCajs+{NgI!$0EJi5(Yr(AYF;(lBRUT%QXtj#P{N`ue)HCPyU`*OE-vmzf zlNf6-D?1*`(PO45u&*vL?WJ}{zDI9xFc+5CR}~ol1K@9T8+B$UkYEQIC2da{Qn(BE1xkvlP$EpiquazCHL@_g1W0DV({ zyhq3U6r#V<(6!&uD}1!OBIYdzwZg^x!d_l&DRe~wDJ7UEScyzM)=v)Rr$BzFCF3tO zqqz}tfh8RtjyYb6X>ew_jucYanE2A-_(SMcyyP!oF*#UngpcXCTS!IXZZ=}BFJU4| zvtS?{lNgL+Bx;6>`Ab0G;-fBpFLWO%T%@8e96~1~1Xi;#6^GE3Z1fi{dVwc#pN|=e zXT6Ot5Vd6fiNDhEDGS<}VW02Hp<-VVB-mWU7zJ~+^LS8{L2XsJyIfwU7y2JRr^+I~ zl87XOF_LlUoH&D=pM@Q;1F+T7T2Ulgs0UY#MsM;pgaS-M3qde~_B^EQ`O-wVaV$?E z&vBvRjecI|%d1^?Du;MGhJ*+KB3DS1P+!ByXqsz=V+;LoLOpp+7gP*S)xEyro1kKu zfEgmnl~AzDv*r;;ni(5D?&^^7k#Hszqg0325Uz-XFMT#%H#))*c%*@8q0#Taz(qe=03BY-8jEdwAR^c#@tEfIVh=!F6&5-~gqc0T|l0b+2R7=fe9rz-x& zR$yD1j{#f`6|$Rxt!jbm@4`_s&NIs)xy=XzG0)T%e1RlxU2LQAt%oG9$ z1^^5E7H9#1ZAHK);LU`4^#G6~0sIm+y$8g+0U+-J_AylwrrxL{NDy*EBL?mz0FX4{ zT`msui&Ndgg}QUE!Fu340s0;V0uUv;u&^M4xUX9W3ji`{5FG%h1%MzvlqJLzIA=U` zWsl4r?oZ@Ek$FG2*jA%g9+gT9@M4ERz%>yEwZ(Qk8HBawf}@0bLsV#o`JoW{%{wOf znrxtx3WW+W?Rb-@Jd^=Z;*K51>^p)?QCOykS+&ASgsAihH8FKnqdu@$9?E5P56%R= zg^cwSqU?EKTP`H{IDA6!rbgC7EhD#A-hhb!86yA;c=$330>iCK^umr|CAJusQo?pv zD# z%lr~5LJF^-;&razqmqjlAcaR^gbx9ZgdTT$P@tjhLEr}j^9}C-2*sqaC?ru!leZ7% zz0(#)qBR!$1attA5Pan@2;XuCJ`b(oK=A-zj_q{7!+1nyNP=|ZY3x2e7!QD0MA)VK z*NRZUHfoogH^`E@b#J$}9l*w39e~#ZRid~Hr9;&V5j}d@UjmS&fDZ~l*i|q*64G%R z+w27e0Mrr%eLW1*U55GjggTVW*z+rac7aALqC{JK^2x910)i*$h~0X)>W~p;)eZA)iR(KNfGuYB^I!S08w_(FyHwrhdQJjF0CM8kF2Wbs}r=P z*x8?^D9rI8?X6I6^u{Y*xUd+5kbp* zdFQ&8!*np40vf=!0KlG~BH4^f`;@c=kikg3(I9{8>s@Dj&RQG4Q+7$E0wJhTY-AoSWM=d~XmWCCyzHm})5x!j4ivdMyMHM8T(`lDP!M#Z55L48G|8&WGQKEC8=n! zv}mkJk|b##L@JfEN#gN5KRtiLeeTyepX>Tu?`s)@;pr8W*+`>4w9T-79Hja zX(v8BzW323i-Mu$?aji#hk<+{BA#9%Fm(IT?!*oi-0h#6u4vhH@n!2U!A-dCf<=ODWsw8%Hmo{TF#bf`NrAZx zKJFIcAI9w{~t1H{BL6i`EW*u?&RUn=ow@qt~-P$s8hTx{WM%l zZ0qm~Y^THI=&=1IaB2Rq_SiQ554 z$#rmGutx`4<)fynPQX7u|NCsIKTlBmV3^dj7|~&;;kjx_OlydMVQYmelHeV*6C46H zT_xYB(m)wxE@EKh{(?xf;18BGB%8tp1PM8hcO z9vp|^b*G=)OzMDf5m4K-h9DO*3$cX@zQ1WrW~?!J%0TB4qHW7>mZ;VI4xm9VPT>;& z$mYhL^|Y1whksA{if_jv&jT)4=1vls>R>pkZ51;oW`KaU=aF8GYY)LnIIwc6T!g{TH*tdEud#1pgb~!1rRQ?SqtWjlcb3; zll_4r3T1p=1(b+K$%7gr$I9@v=eb5H(AD`wEQvvxV_@;T%F(zJ-rQIPRE!sxO+R0IwAmjmZwVtg$cByHH=XGC zB_*f?K3<44-Yg zpn2Kpqi;tJDHr=ExLmqEy<>4M1NY*O^=-Ihb6cVL1=^|5jr{kUDsBsauM%DM$MJ!$ zgw|F_Kyy9fgrAn~g6z?;_RnXJCio*{I$>Sm_@iHL6!DJs$u!F@9(>$bF^*)-SEV>V zZd%xd1MTT2O?uy-Cey*~&>Dzgw*+`IVNBrrUGHW`<_>?*qVa&yX2_U+Cy-qubzWvG{RiIoR8o-ZgWr$Gu( za@O;&Noi|M^W~0X5lgcLea{>J$cAFsMrmxzg~MBQDjPVftos=?0R(G-axYUSw9yim zlbHJ1>br%bzB>~;c(NZ?aKb?ckn3F!&u{_lW_jWEYOShtK z=CEsg8;1_D;tvQ%eJPCf%>#onzM71NmArtpnGT7MREEFR>r=uS4!gVc3&y$y9HiK4 z5ikNH0^gAGF>OFrqFr@sNWY>}FT+T8jk*{j^i4f?N5zG>aBVC32Qu2`l}6%z-^M3c zUy__$BaB0FLcZ1szFIesar)o*vev~NC(@8Y+tmJ6>KOhhW}a~mId47Rva|byEiBd} zmU*xCpteb%M0{AxpK$A6?6z6G1< z`3VP=mS-xAKgh^DUr3O?AmYyXEjA0|+Ruz~;uX4&ACNIT{eKzxf)iN@nrgob{T%qc z1dWLHc=?&iUG(!!moH&z3sc9~#ltk!%wXH4W?=`PM*7i$)EaEe;@s5aqn!P5ZWb4! zWIj){UH4`O>D1KO%zmRD1A{7e1D_GaC0c@dsQQiT!PcvFqgk&)1J>vfR#Or!hYEL7 zh))Epr>?4YG^0-OjOPQ+VL@tZlai;K&Xa&Y-Dx!^?YAfs!?SXB=OB7HqqR;zV@)iJ z?W}*YwE6VEnY{gI~My?e%tCd!O4i{)loyWf&UNO)L-f$X*H-t+ zpE8S&;!Tu0x+O6w#?QYLIp_4~3fLg3=`n?&9yuSUEK8C^nucO7Xq;ZL{R=BDeUhut<_T?eWUEV_+>!w(tHnAx8y!OYdgmihp=pgud}IbNmpBI z))7jjXeh1jzDyK-ZWvmTwk;Sr7xY1G^1p-+I+%80^{-gJ_2xXw4Wo-0T!eyAtRulC z?YIr9%twBAyv>l&P-bEFc%1RQozt_Tn+I_5PZBOVTK-}`tatm{vFP?9>M_B^hhEL82>fCHyfJ~u4UGQOsG*{xip`c10nGpsaUdFRzh=Ls$v@DYp1fLl z@FBjac^Dr{lh2!G?0aQ=PyVM1$)TrYuY!68tMT%CNOMX?=3vi}KJKRgbxQ8e0z2S=zbrMz1fjR&sg9p372xyWJQF#9ms z8eQ2o^62pC!o$4We&mg>0W;bn3FO)LO_*lB@~>71}-fkPJPkl~zv%j6UZ z4jq$ow!I+;LV0>!$_f?;8K+nY=K2!QqQu;=VN?jn3yjJMYs(8=%wdqW9bU}wr5!&4 z@{-z!Hz4dLlLR;HlH+tUPvbbc&75WnnB?+_l6LAv3xrjiAOOq)oZPYYTX-DjIDl*c zBtOjQ+tI*Yx#?x8G(tlM4Cf^IN&4bs0VyZkUkF7+t0I9bQeZm~{YE=a_Ib`fO#l9p z+{27qKaA~mtiV&})=X0FFUecs>G^inLSS+0EeZ9^v7SEZ$ii6J;R|+L@5hrchj{|P zFGq|Izaq)m6=;Q@hKVr-s(Y)B(&6V5H9W9Y%d}h#8f#C9WH1A*h=hE(IbOoKfl+Ag zR$UVfty!OQM2fSAAaj5LHzI9ivrz%`JR?82B4gk%BQKtwcltu!p=D|MDrd8Kx}YU7 zUph5U3xY8TIY!F`ip^Be*3W^!P7*qIu8UgM1@|^UxALkR@1MGUznEHm`t~t_(7fmp z_VFt8+C|WDiz&(z^z>s1@rJA9>koJ3+HfF266{K%o&9ZCF%EMPK-CCv35QW!rCBv% zKIvM2MS#|tx~#NL(Pe;d-c?NR4jB+MSlz+&8=0KzNUqL3YyGB0g z4#lT;%aU^H@&^ie&KDqRa3-dP;93K6zg@&Uz$=Ks!RDIZfYIuX*(FGdae~l)O>#BA zU|J?@+&NN$Lm_Yq2(H-{uy^WGyZbQPlLYIH?m?CfA6pT-y9#byw_z^dRc*#x@9MGQ zz{M6Jp+xpt_N~|`mImgQF2U*T%Zf`UbOw#{_N+pu3CFVhIMqVxY5bB^1QebK2g3;C zM3^VW>M{><_PcLVPZm_<1FzWf-T!vWA$}I85s(Q;V4M=QpR^+VM2Y$BsfvDG zzS9l!bd>UsbSw?-HQD(+`&W4e~QBKp7SAI_1%I3u1w|a>{U(scoeVA!k z4BEV2*29c@Jp2L$3Gp#&hhf{akfeB~byv2mma~sNXY4A8 zTVfH9@gu4Ftu)OCbj;r+z0G+l5wr|5dYElAJ()vh8z-@42WAh8i< zs44G-?WsaOW~h)+OehKC$c>PB1M|fR9^&W4`7c~92_=Ri40X2k=H zM>jkaCwm3xPQHSvkt}{hRn_>2|aP$Q_n`)X*DLkRPsDdaECo6E;-L65pF;hio1+B+{1EvJ^9RTz(nrT zX>tX1#bVE!{kWfRif+vh_%02aD=q2!$!KWbd~m9=Y{zlb$=MH&1J4LtTvJOSYi-xA zlL(OIa_Y>JPIQDE%ZfU8^%BQ8*KkDH{Pau0gI-lIL7x*!=9xoh0kA+`Mil zwR*Ul5g}(6@pB<4I8d!<)p7pJT3y5Ur4i`LwiC@eF32;6Q)r)-iW_o$ZNKPYLEB6(7=M;(_FohCPX^Vs9d@h=SOv|ZwBn*IM82R+_-qth=T zA=uCNmqo%&_L1uO4jTFNy53O7H^qD3h;naAGO&je1**o#%-A}b^%bUD-MNoRdI7k! z#cx5cj%)t6k`k3%nl5m#8NWrm6uw=VH7yn+rz7&wbKrZm$*JUv9XmFAT`%59^enE^ zi;U?r>HKKZjgDEaDayodlg51e$UV@FMtTYyC`ne?O!{0Z`*qs*sd660FL$K5!Xarn zosp-WcTV(UWsrJxy4JwKq;QJ&^|#<%jHd~<=Awz?owJ%c+YjG+GVZ+YJ*a(2T6AH_G7^lDn)I2IK6IDPTQ z=3$Ky$++(?h6|xzUAQVwGs6|zDoCg5RG9_ii3xtU0rq9}ku%@A_$3^y(FujxbWVGQ z>b6{axrc;p=u7P=%9(2|g*yb=MUExmx36Z4SvKFQ)Rx4UB}q4h2yEu*n}{f?zwD{p zrzYhYqI*vMlU|xOI_@j>=BIhr&9~pGMG_$5^DnN z7i-*xjGWmFgG%kw@QlW4fe#XK7FKG977ayGAp3QV_P1k_G~atXtw)6h<46Ztz#n! zg)HTfJkoo=ZJiXQX@}LPkw;1z3{eyq#tA6{iCQ&dUT{e7tMWF@n8iVIFnF~xVhzvE z$h{Of{+iAduPQopSJ)K;lP}@&4~n$QS4Y=3VVMF_a(HO~C6?So-j;oOZ)2LwY9-oz zf3JF^`;xV)?$s4!%3|-~wN9J``f&1zXy?6vfqu;h>wy8#lcb^Ba#rMVc^T3Cx^sBZl^7SILUS)UU!o>@yo4eqV?U^{}DFIjK=+7UYUv~a5dN*9Q&Fga9ALE7L@8*vl zEd99_matVMlQG&y01YmOpRPWWSG}G7K6l_$>zbLJDIQ22(?amnKqM?~$h1)v$}=0X zynO4r!+$`>Pb=V~*qfamR5EPZo0V~^ZwT9! z{yAmL{Ovo>G3PtoCx+ph7p&FrV3hRS1s3#Lve@iv*iZMJn0Qc%7E(p>jKDM#!sGtH z@c${m+fEmL0VKAlVykJCSf3mt4*~p6j1vdOZS#~7+~iPsQ0U~u#>6q@K zHf&v`&UJ*{m4gE<76U=n2Cmo9+qCF_Y`wnN;Ncrx{lvorG{eceUXB}&l}`P*>TNs# zgm&w{e`VZjIDtDHo4A2DkMr?`5wZm-*5tqx=X2l4**^hE-+FCQ%@F#taZf&BElX1& z`gl_3v0ZQR5wqF_t50eeCGpoLwvXk6KP<(ac|uhMen4FObmA=DjvIHo98onb`1sP6 zaRIa56iWRl3zT8FV<@CG46nqJBJZ(689arCaCO(cv%jNWY-@qH%m3M_csa;Zk{F;Zt``DN8sRqQj& z@xg_eJe!MwXLfZOhl&HmLcWJ0zDmRdZ4-s|hR^G)t{NiNfP|Y2!mf8I#q(o`Fad0-NEB1O)yD zAcGU@r&ST&#^hcFcbK@;xEK)P(hbxB+mVC?Fw)bi)I<}_ z$04wJ$yc!%?NF#5UmlN>vOD+$RdnAVFV|XKRr12HU4(rM&BA3Ub-CX3Flzp1*yKwQP+)9Gwornl0X{G$^Z-C7`XD= z=|N&x+vWXqhU+;v8RMW?bFHdHG&!tfY(U@xkq4cGYqaA3@k=J$T-Ubt@7>SXZ3RA z9NV%RD>!MiF!y`O!uPcfg(vH(I3p z%PNJA!?<{<)se(;otMuiIyyQ~kXmU~A@N6%(uReEb#s+OIgzK()O_Ns9+xQ;Kfhy} zak%bjuj%x*xkTx|j#vwqiFL|A8yIJzaS$Guo;#_c>P~AUGC4LwM<2TK^a%puvE#Og zygzWesx_p}GUR^r;x2;?LC! zK0n*bvB-N0x=B|(Gvtq-k(pCT?|l&ew_%`ZsXKbTZ%bYBJvH2AsD6lIkVNpL!7=ku zL8Q}51ibv5rAHsO#6NP3bqYr-Lp9q>>>Qhgl4*oJJb&oF`?}Hcv|#P`n0@ts1?6Kc zxN;j@vI0n?bAEINrEi$EW$Q2f!)dAC=e+SANxtuo?GLzC50$x_9`|i+w2rJZ0GT-L zJ%a8L6wanpbK6gjHEc#E*`g1Sb}Lig)ys*^kP(er;_IbLCoc$#0aH@T#zwZxMB`lH(a}?K^l3GX+om=P|8lK!zM3CC3K?{`$WHy33gpSVsY9s@2{rq z7D&&o-Nh-YI*rP*bebp5Tabi0X7arTRADr%6V3NJHegf@=DFC1d@%z=U(L#Pmr&0S zj~G5m>G}8N=&pDr%i4kiGs;EPdB-b~g>A|Wr02Alr~#e{z8@V$7Sp;P!B)`xJhZbg zFO-B3phE~`-XA>_icZEf3Y)*eR27jW?TZ&MmHAb&FKY%hNAElPkw5u3PA#68%IyE| z9ZM{(Uy>(!4{v|@%!37TuD29c+7CF`2}{$+XZa@!Mjv`MO1xxmvM&Tb2rXwK%OR}~ zyx1ta`FPhMekIyMEb@SNnf{=-opbFX@IvJs!lJUAC}@8dF>6S05~1O@g_IYns+%%j z@)o&Hf7dvK8Gcg5pm+?PnJq#HEU-jPA*7Z^mnF(5k%zRV7_OsH6}Vme2N_N1UEVo^ z^UpkmCG6InjhCtEDSC#zIxRHjnWD%E0uhopflik)yP@-QB|!Lj@B`uKSZ@}84a5gIVP z3`4mBG4L$C2tqHR&C6LRKb}5`ir_-1)O}%=o5O4EZ?zX1c7AE-soGi=nDfQMh4AjA zWQP=deoW0^aI=HodUmKOT2?+MZ$KtaeI|6+;ni(AJ1l7b$=!EK8F2#@p^1$#LeVuDF~l@ws+rPtjj4zwCu&FDTf} zIz(P?dOICzEChoP%Rf8TgRNLO~FL##e{%|sF*na2G3$4=kXYBPY zG2x@sYGz=JMR;qxTZksnial`P)!e=}o8e)(no*exnI#KR1q+c?=fe06F)7Jol z4m(&bN7yUpnyn5xc6k0b>+qj(WLjHxYF~CD{C#k8*uE}_14>TWOeG#=PrhSh z;$D(LM6=OC%CF}cwX!LqCld!A<}F9~;kKoR+)EHd|JQ+Fqbkz{7mP1I^c)sBV04}# z6Xw>3uo8ZnopqjlZo+!CKV-;_Rx_CI9vSBv>1W-aL(=qDU&zOJB~7974MsT|wT;zf zuhav6nW61=IK*Mzzc5Aj1Z(b}-E4{~918Vz3Y~r%mWVDU5oyCsl`2~)`7 z+YP@O|M-g2n0#~CH33!7hi-9R;F@!T&V6)sR!@+7-lsf&aA^|Hpb!%fSMVOmjm_X?l=Li<~?hgy<~KgLG6(}rR$ zdQyr~b0yAXt7J00$!zJyUdtaWrA(&kI@RwwYco!hrV#mtk_%^{{$dx>IJ6jJ-9`_zCN(pwf90oXb@2cDZwYbqYt_9y{{SVcrJ!xeUr=I!q zvf+jGUijkF?u*(!Lz)DX?Cym!x2r~fGI%u7*mY-FTAv=X>CHl93{*w?r$oo)t9 zY=FS16Lxx&5qy$|NbR-o!)d&OV;6aE3TJWaRQc8i#|Hr_is$an!_at=JjA#jv=t>r zH3JhT(4b+D8GR{PHH94QmvtrYIuhGjmhWwM>dJlxJ-d-B3WG3cm^!=f zLpF<(9h{eavV|enc)w5Y;Pll-4MH(^-y?DFE&GF^71ytC!pFq4kg69gp>dED ze^b`PZd6>jBFN8c1P{$$xkXm=Cjl7Aq486vwS@B*7=Sz_CunyMA?+puhAC5jHl4m$dgu=HRmCB; z;bTjd8h3MtNN2(xW~stS2n8B|b2~1NE9SgVw60+}E@eB~-B&~2H`MAY>=p-!w)z<7 zw_yz`7@%d%Bl@{_QHHLkx*C@EX|D2+aXCn+&jOi8EaVljsee+3#0kK=*pU`EEXyV% zRv#UJ1BJMXFfkYo_uQZvav>uL66AEPxySw#c$&w+s?oo=L4-PlTBj0k5bUIQZ=3oY zzMc9x3B>()x8s2)8`YSm^lz0HOe4d8oGJ>5B~@h09gqjEQqJXlut~IAJVM3 zo~uEosh!22+hLXkuWa=PSl*L;mD{KWnSb;rTI{of7ARI>%?z(>st@QCEFHiaSMWX(s1x( z?4Q=RwwK;!RJ>o)9BI4ww$ETaqwVb@!|5H@=5}1Uwq}4od^NWFTBXWm>Me86TUUb) zU%GO$V@|B|UPh;o)!wl5D{nmvv<`P)v+uaL`PcEh)yDN(gS#;uS2C_!rQdk_s3&^{ z-L@LHreKr73hqV4vF*^O|Ci)p5;cZnAgt`3%H$`f(B7rX=L7+x>d|a;7%41n5Qb+V z_|K58&i^*vr zxZXd*w!8R;jMcJVG0#gczNhO}fJj^mMfL&foCOBu7=21|_m71%PYj-H0A|0d_is;V zXG>Rj`NhLmdnK19kxMM19{KIKJ%SBA6QD|H#sg(3QdXNrEvq6TbX^u9~u z>%nifC9t8NiNLe}i8!51x7Y;DI9~-ARQ0&=YtiEOj(#Mmc0kGLPYJX%oa6bUwe;*$ z_0E%Fdj8_4|9KYj5}Khx@_;*WkCNf;9b5X~7}olblwjdVLOJ>3pd^fn4BJBD#F8&k z?68DgF65_@QDjUMFU+3ca>yEnlCUm4iHfp@Ir3>D!|u{t=~O9!l3jwXn{kehBT`(2 z~vwMblp8W1FiE59D6$BorX6GipXaCJT`HKMcKb7|hhEwhmrvhGTL z;0g7rm3`@ZhDs}qToQ;?yw5%lD&9Z5Rv5P5iX~?K_vIl&&m;Xqvkm${PD`QNAI>E77RD`${&>q`}( zod9ZE>{M<;Fp3!3$C2k3gjpz_EfV?QIU1^E7_#C))cGoOEsQTD2$s*+9BF$Z43RM( zM|S{p7mb;coKD`FTVaH1wan>66{!*cwBRuaf(+{y_B{?8r+Z$AHTKOl@5ss~wXidJ z7{M4qV+0+=L0ffXjk!+9dAw?jR=ADwxffVyA0A3nMs888U{u@=f-Fe0K!UVnYV(;C zS0o%t)O&)UMTi12{No4{0xZ!zc7#Dqh;RUiEwg$%D5lMU6Qmdh798r9{*_aum~T z%zqIUx0J?fh-|Im!Gt!LbFkd3&!rdEFQ*Mz!wt3*)SpNTJeQ~ZawvVVW3y3uewc={Eh{>)q^ejwJnU?ceB!o3 zm}dL5Q?!QhanlFSRh-g|ty(5d=sYRb71OSxt(2Z%-=0V`}9j;2@kQ^pP z%l8*HL^6mRU_|%oA=7q!=_@4vYfw3LU+j}Iis}jo`Q6iY7MVXUg@_}!Pj&mmu-aP> zGD0cOq#T$dNrJx^2+13S_tt&wI|2ZMR-3LW=|3nOo!js6=RywY@*fdiFx5uz=c97m zN>LK-ht6{Zk0?_?cqp~#yF87eY&D)6%4qCD@f4Fw|OIx|O?`Uj~w)_+) zz+Jy47Drc=za5O$@I9~W7I;FYYFNyC(_CE0_X1kx!TjVV3%w3=IMFD^fVH>6EfP>GBlQ_Ie3Firie3k3m$h9*Z$6zuY#I+(#UJ z<(I8=-7|z#zT@1}8y{7oy+pP$b0$je6<1H*SUNZ2t-vDBN|4ntJ2=CN4>P{$KrRiD z>-kp=K7P0k6C96;UEAK)K6N8FY%0#?`->L~zrwE^S-g?J& znFfa7FE|8#PAe@K6;wOxzVPUcanjA|$CnRIG%M*A{4NPb;_se|J?E*}dGp=8>Y;e6 z*Vx_9Zf|&p-{QKEW*wsPMOxLQ+vPU*gF_CyJGb90I6oM4d2_H}V4#8d;IsqW>(Fg) z(|Dz7#lUmeLwEI7CeJAgLTT3p6~9zHwb>9C+yCKUH6}Q3KCtN;TmM1j1EW~03WW

@t@e@EsZ~-Z%qONY^06)?JH+&X+gIpTi7>F-eciM%OM%fp(|BS_-y)%k&oIHrrK zyFu?MO!(u}-2oBd)uZLEmv7k9#wu_8XflfTZ!Z!d*8E(uoTUtu52+P~zEkbo$klAC zTie@Q;oWpg=)(z(-~Sn!{A9l<41Tq#{wHvB^v4x_s>AyL$H)V58ufc#ohEG`e$XFo zVDNZvz{JK>fs%-y+nrCJwez_9@VmZP5PPXT()m z!83g1YV_;ZmyNUJu9;8Ojp)5Uei$k%X-Gg)^6y8iu*;p(pgI0 z8S(zr+Bu)!m+Nn|y^63ondFn0P|q!k(oD!X*VPn%DWh*GAo)vv`$e;_2PV4aF8wJ8 zd$QwCa@Y602fn8Jy4anF(u=&kH~hVdtD*U!^}5!TO1B+r+0AM5`t%BWut65sD|zMfkBYj^Zn%i-35$j7aPO|=o*JGVEL(?5SMii^$hA2Un- zbji7D1}}QlOZ}TLzER4?w@KB01NWmdprys+&L@?*Wjlt|HS)V!HR(ST$%~hpY!6-< zGa2o&X90qUeS3@Vqlcr~7`P(A&L95HysZHrGw`><#cDEptS2nkTf}XE`e@SLV{8Wg zNY6Y>bJvSte{13{)6k$E+HJs>gAe}g5e1uqIX*i_%nRqQRL!|mG|77QnHG3Er#-#S4bFR>cZDsykm0d??Ia;fvw?Vv}sf$P3>qfn=sl8v;QT z>0h?rSBL~S+`h3oDZxg-6b-JRDntwiF^1{hJV9r{?~84sDN#?B$DaH$Pzoec)-J0A z_UHSa$7cyE_RPptQRMpS@KUAQ+h%rW5qAysD)jvK4RB=-1}k?2TgfcQmet8kvl)Fv zvnq;-a+4I+_LS@WrHmPwiUwKMOkDA>DAO&HRY%7+`diPPPG~wdtKV>HUZ*ifet)4- zBXPys?M_r9qS9lT@MT}_S4GZ@?B<%FVu(1A#kBDjB3{*Q1q^|E4}KZA;nE1m} z%qu`cI$6Za+FsDOK}FC`>=g{WV;liMQU;Lp)E0EyOn!ZcBVSpKQ`@G_6AO&F;0(d_ z81{6=VN4(F9U2J34rMTWZ;OQt98>bdfL7J!(E)i44e^-Sv5fm7G$w~w+kgS85!f3Z2({VOK4hDl9~TCuP?<<%w4|X>giwVR3@`AQ}-0E9w&0t zV0cDL862#W6D;^~#a!6ZNae3ygDJ8>#VoU?-=oh}5G|=cmbY^PIFO5Hav|2iIuVAt znaee^Z7w!^a&`vzyc&M?vfvk0RPcB>azNb^UsV0&ijcln16nLZbuqJpucFC<$28cP zGS2>b7v@KXo0Ao4$yS}wg*(4a#CeF~$?#UbPzEC*myeO)vf9WnMnms7gP1VrL3Vz< z>Fi<>!>i?#d8~7CJyV1ffJ20cCnMBBW;nNEPCU7<+f+l|)Yhhq0v|OHQQ(c-gtRg! zZrt};$|yts)&d&Rss80gcI1SO0kZw5`uos!b{%*(Ubk*$O|?9en5gpodAE+|O> zTdA<+kJ$tZ7=WPcMoM)CLHa7&5)i~|x7IqTg73&y%~a7Cy48;|LMq=S4Pd$Vz!Dq~ zn`CFhu1v;uTLfe38+<}8gId1k6)Zr)VCsAoWguEcgehxDcVMMN8Hzm+qN{Od1|*?C zHo3_kOvsV3C13y_>~GeDo`S}F_|<$>Uu3j7#TX2zO%q|8TcO1lOo>@_ox#Q$+(Tmv zt)#9n+9aD+%g1DV#E|5G6 z7oJ0`Zf{RvtgXTAPo_$Mo9>7_uus*^WIHOoc3*XRzl!>J;>f)-psB2Aw{RcHw4&|58y(kp6F^+Xy&v zn`G8s`c~^xzca<~c)gwvglgrU@3;@u=DXt!hv4Dj|Jqqt48y$wV0FDS-bM?F!P zNG%T;KJa`k3@XVZ2=c8~b@jv02}B9Njj=Y$k*kG*I>-nIwTyAXin}Tv546I7G9KEw zt_GW8B-(@tb->)58Ngb)8xx|jGUv<4*0Sx3)#L}l7@|vL1O(q;4|^8_{-b1FKLz?*>9BS(GB)(g=1oA3F6^Tif#i?O% zWCc1;4L6|E$`wio2AO2FLv*=-aLBJQ*m@2(Jz;kx8X?8B-kB@7HsTn6u<+AXKHOI< zQquHkwtyCd$YNS6^X0491kWfP7DGb<7DR;#^dGU@eKnv^SS>{mJ4^69xlM))x9Huk zPdga?A1reviJ?tM|gO0*u01fUH_LXAR= z!O904jH~ld%D|0Ac4Sc1#^t-l4*0Vvup0TN@HznwA<*WxXGONev}d7_h8zccwsjf6 z*b0i)OCz6EZwsLz1pp}N+#k2=94CL0DlS172(Xt^2dGI20PKwE5ct6rR%amTyr(4& z+WTS^PepFaB_}pf&>_5oI4-@10uu~JWX&J{{6i>{oaSA2#PBf-Mop-qAS$v8Ub6x( z=g21qk9H*;5oN-86@*2|`W=L5WWZ8^PzX3gZapFHl>{FJz~v4*cSDhsY5l z?9$Zd8e|~Jm@)$LnJ5|_w*ga(3EsyD_t&u%)1e;T@K(FU0Jn$AJ}mdEu02aen}foGyA(MF0{M!ujeEJ>)R)aYh)!~G(OIBuI(kzO^% zfc|o)k|-AyO0~Hv#jd zqjBAnYRD2t69ZPzMzCUIW|7VxPwq(l`6aVYa8Gv%e0oOt)r|7E2j^Oz%c z;eW6qm2)l$(KaVr}2Gp~b9o5@z8}jAJ3#>R3|;-xjlDXuQp9yCnl`It4hvG@B84Hz^-z26 zdlyZzc+L0|wJ$mmX9!tDSPLE?f6F!UUBotD@KBJ(qgBG1?u5*ab6Wi4%|RTpK$r$$w0H z`ZDDCO5vl!ZWYszby4x|r?fPt(EJ!EAs;2-QWmC&xl&~<&arQladr4hmUT22$WDl3 zR>b1QAeg_p>SBM`3jMN?6t2m6wV~2VM_t{urEp8P?M^!65kqe+Jtga3i zz$p-t=M=q{Qh3!`U8LQ+im71TAYSqQYD}z z0Jsieqo(x01Ao~!zCrC7N5bs|67H9*vq__G~> zc@hh-NRw+3M!*t4QIz0AfJk`mMvI>r^S_rqt<~rzb#4Y$cgI))fCYYo2>}%id{tq5 zSm@UV5)jZ;nx2WR#9O7EXvX3J1EfjvlS9D)P)AeyA~GI=lDaAb@Dn;}FwrRSYk2`LY6r#fDb$^M+}H(0$jn6Qx?*WpYp3H}%rig9)t}BPE%RkGx5L*)ym;-#g-& zytHu$K=F#{CvF?ZgU1^^m2oODGb6n+)o7b*1%@T;%lAxnHq9J0{~+%yZ z1hpOZrqjAJB1bP0=BgTSV5~sZ1$l?0GHUF-8|8;Q6 zeYNZg;-Zcd+!VO^v9R@^_l0||FTAeZ`bA=8#Txor~JxiMw|3%j9FD zSyBjS{;D=)$I17HI+fZ1catgI+$?h0St!@#f+3@$`K@cD%)N)k{x@TlZ?w~_dVFK; zEv0`JzTdlCxviJ|_vpsz|4h1BB@g>#Yn?5=sW`mcJ|tt$%yBpIO7yvf&W~zm9&BtN zR1LZQr|;>ME1I7Ua)iEi%vi&feBU>*m{T#d_OsZ5Z-~K|GI_V=AQk}Ae)K;1lIpQF z^4@!4%G((ifJKEC848@IDFWGh(KdfPX$e(9mdq>J@m~7yqxQ zaD{wArxv@u>&Ey~KEFP%B}D)}J1JFUh$#;5O9mX#*QX{(msWH3u2HTw=D5Ocs^Lq> zTBHD7r!2{kJ=~CWbEjVCvX^DZr*&~|sP)U$ZFc5C9^d6}&mujwvd7b-p?-0niE2ai zgo$z=IPI*QA|02E(|4rCMcX}e;X0$&d+%gfI{4M*iD15%BTcq@p4GG7sySzbDy2l^ zj~bd=1tWeRN$49PWaFKp_blKnik4lk+`Cvi5*DA0X0$}^ddTd6Z#s!oAM`i0YzWcE z)s7_(&(?U8zD?sk%j=qL|F^U7yR(6l_565D{KMLrz!|MGqrP_4t;edz$2YjlF#om$ zFn;S!YCHAI4w-&q{%|NYCd3;h;0rbu-$X^f-P^z)ZC^E5;1sd_cZKjx{?8H!V;dzR8 z=y|TvDZFFNBi#n_1aori5zhXLev5}@SpAqj|Mam2U$^_g%H&SQW=!+Ed!5zjHQh@F z<(5UJ_5O83%*poe`NOieqNf+kt6TQev4z>KPJHvR~b5B0D`RJu9sm-1r11_;n8sR5nH=-YkuQW^uHoJ_h z2!Gvot?+Je*c2A>LdT*{Bx)K8t9hP;iYR%KedF}%u3f;Ub0miHP>b9l&Qr8*GxX$M z!^|2}Pji<$hfG^q66$w%5=OO`yF^XjZzUwf{P*l5H0(r|ZAk7ztBFg}EA4A+Yi}>_ zIJ?mJYu{*@y6G=U^ud333RQ*@LuX9SjMNWUN7k&GhnaptJ75LW@I>Btn%jTuq6ENMrulROmAMF^bR5Jma5sF<&=7ZkNF& z#h68Fe%zcKj6IW$ih1NQ#Pzv7kj0MNED)meTk~WO6`ZP_RhxVxAGUVh4dGvQ=&uuJ zRJ1lEt6OkmK26q~{eGbaQOiXx2{j zy0_E*d7v{Bz<+D`gPslA`F`NidyDg@>R(3;7ZqPuL>LZkxF4#uEILKjI#1tZO8vEX zmy^IuKcTaJ{OVq3{Pn#FpVeQMKxsrrZc(EJXrWsH1lXLqt9_^Tg3=jl@-2xpL#_4w z7RVXFkR}tu>!T^BlaP-t0Vrsp1CBB{)NyqjU);3{~je7XSL(G#sMmY z!DLrP3fSD@j3#{e2vP2-fiZX4HG zgZ^Dm6I0#ac=3C$?JIB_Z|`#d zDame^ZG~sYh5~Lp88&x+xze4Q=tTK`zhcGAsOb|IsV9FPIh)b5O?PL|?X>uyx>NOk zm^nj-ufpO#EVzZH9aDb6yu$yPB$1pnzFn2|8&0!Pb5{12P3jgc@(m%9M);qTCFlHW z@E<7_yMp^5z4qJmKIY)^z`i&H2Z<;I4W0A-Suizm z_(H9TXD}8`vuanvAxVVms`h!)&RR5*Q7^QY2J}dXfYcO4LLHMptdbNoReJ@YFkHx( zOjrD`!^}8JaETU~fJaMhGsV^oQho>seIUVokeSDWfX`msmBbwhRd^)FaaO@EBzW9d zMEg{cj?>lv1U#kND4|mcCDu6DiG$PE|L7vn-g^RlZn@KS@1v?onVez%ux98NxS$a-ewt75{8smrDr$(D< zmbZ0>)d@l-3ql1hgv=in!;ec?KiDs*k+-SL^{sw>E(GT-r7ya-{uNV=!;8Ve@@qLU zhnhppYQi42m3+TaKI*)wL0(!B?^WoXIM4Rmw?zkSS^BqIrB7;Gv&HB$o!Cf%d`MTR zYw-igFl8aIHXmxmf_`Dc)-K~HB&CF4C_)ltU2SK@QGX`T!O1iaS1|^rfb}R~^F)|u zYurC|8>t@*6m&WVdtU$q){)UF3Q>1;hO)g0LJGl>@VTMBRGv>luO4%hV9Q?G>4lvMzC07U-dpp46dVOmQMP)NK%1Uv+1)n>e* z%Mu`=caRcyF-UL;O=?EiK|&yeR_t`ucr>Y}mk{`Nb#q>v*1;Ns2L#o^PC%7{_)9_s zv4CE&VQ#;cb(@YW9iDp$z-85>vw@bkD!1%W;gh?qJe^X&J=}>znihWVSGY=gX37A> zOR@QdnrSrnwRAxy88F(L|Aj)Bwx^g=2p;y7Vl{iz1b~~>cbwLkb#QY`2T($6npn@5 z1DQ9@u9P6Wie{Dg3#H68B! zWINbwY-)d`Zg2kY??<1tw>|gTRe{#a_kw##Vd}Z6Um0+QJv?$67Hf?1pus&Ph$K=& zyaaJv7he3k{gehgXbPoGCTPJ{0S^u$Woq9BdyNgU=3E*g(ias3wlfK6jZC=YtfuQ* zSTtzJkioKOT7n}MUQ?)8D3C4N7jBPoC!LpL0f9+_9~NK`_U1wzG#H3%8EhLJks>~i z%({^C)$B|zTpI$<7HZOHh}`rG9wbDQ?zt2evU?1c3?hzUF9Z?bUiKF`4)7ovD(9_U z26)Z`L?(mhHn5P9G{ZAv`<%X=Kc|bP*~95m1dUMhlRd!^XHel&?RTvR44~spL%YrQ z_DB-Sod(|^GmQEG%NAc+TWSs63nzR#?=|IyzJbW58G3+<6Z3k2mZP-({i%)1>DpKlg4X_%3CfR^o@Z9Yd11~)G ziGvgU8Me0ol`F!HhiL&r*Mk500GSdMUl~G8YR8b(4@&i@A5o1dsMdL4v%{*^^=Y+= zc%>i-LPdxhr@=#5zG`(=@2k)}mTxW%qVo)R&&_1#@8R|0U$9Q>dPrJ+j~cg!TC9iE z_xC6R4f}g&U&A(Fn!QEl1oRZZ=Q>=I=*N#(U>u;)mvT$}2Yybp?Stucat$}d}HmbYvMKO}vVZhaPON9_0z^pk!2dx>E^l zL=lkRi9hH+E#i^TVd+k}1oWYo+(=+J+J+GO(lBXCrY5h)J%rH{cR-M}S2% zYuL--JU~Ni-ia#iG0h|mC$Y>U(??h@x!ryDzFr%8n`(S?{C<|>c@-I~P&^cWiMCn2 ze+hI`Ho>i67JY9(Smx54vw@Rn=_(Bgh2OB$#Yz2fhl41aLj+xFA`p0lpLn zv&q+h&n&`qr$Ev4K#vfoBqL5rfCu8W*f!X{M^_9?2uU1^_$os2#5S}L>pDS13!O_s zvFB-+A7SO%6WeL;fv^TDp01;{f_UkP!3yi*GjW~L*j55=ojvqFu?D?)ZT02zIGU|8 zLx25RsN;lkyVOE&QRO)2A(W1};184#RA0s-3Z;653e@W23uvdPWKp&L09!gw7!{)7 zZ~ah0oH<$b=w2+bw%Hi z_;BC)nSU6}^8!0w)E?L5$wJup7s$kjSNbUG+?(}E{7R4IO;KdP~b9CMLs zH1(rtskitv<@1ln+7o|uPVbAlT}OIDJN{~}aylxq$)V!UoX%Zk-49zDI^85CerN2#Q(Vsux)?xSIbrOtr9MF|0fXkB)=gJeC zj*>gOqIkjV|Ml%{AbbBKs@k1}RsC9+dawA3NQe8sq>{MA@0W3mucyo;5GPMRP2bPe zS_k6cjaNUU9x?UX*<7-V5fm9-0V&Yg&EMQj9eDjd{!k1`gB9JZ;bSt@@gFr#P{(A6 zR^88U`G-?yA2NUsq0xJke>P1BnEHC9*Y+PP`jKcvyt)79t~WpTsQgMZ`k8qm@v3+3 zKb60-q60pJEgbstD^F#a`z7b9bGYdp*FW}*Uxeea%TpsLe zDvQg5T6{c*zQAQ&xRr9N#7rnf`r70z34OPVJQf9 z!t~a{f=Xp$o2;QH25Z^T2$kG8Lbc{rOuzCG#8z|7ZO<&&!)w^PuUNJjop{?7S_EfN zw`_gzbgMSf==K`j^1aHd!YxmmUEjp%VCWdg=0x8?;&xZ%I}e!IVaeMIOLYMQEv;3Fy0QQ7RC(jpj5qGUe=BKmqiV;; zj#}@y-!dwDzp2q}pQD#$`ib7`^#y-zsC(WFXDTz(3Snxl ztNhe^)T9Qh9}wOV)|p&W@~R=LV|zCszg4i~>F#F*3(x;N!Ud&x-dx`)TCfnR0eMhw z<)u%Z$urgEzy2_8e)~E+0CRC1{G{3(p0~Qv^a4#gFU_vsV5Kzn)6OqDF6iXSjz?Yd zS4{3*S1u+dzq)v>W=N||({yi6{X4ZEzV5A=uM$wZ?h$j6=_dv1wM*LwQ9n+-JR0Jf zwwg8bxQ+hsVvzeDyBp)y7tgrwd6dX{4vd5j@s&R10Wghp=_;wZO?-G^n(1*5Io4rQ zvrQXcLky)9Wf zOMRsUlcG{WuG_feK_|#UV?FgG9BF&-SuKMWv@gj3`L?+{!^_|5Qq|ACbA@U{$(wJq z%vyI@318yIglh<&(yaM{V;_t}lmi%WXVfl~N6vl7l#XF`Xv)P5K;GvE@N_&kt^%C; znwudjv{9^aottKHDI5z`67k5Mm3h_sc>?YnK+*(mcbzPYg|CB)*oWFgVlPE^4Fj~O zA~D7ps#-wwuV{x{0zU(z?cqf2dF9(@kC+1_?; zi@x?HC}`qLo)ex-)K4mnLVklO_3&&c6mJd7$`0|99Iw~sS9B7US65H#jS!Tc*i)Pi zLB#p*qQV69NBKY9e1&_=RaWj0gZs>txVPb8377BoRHtHs{N>9*( z*QHp(Z#!#3c(?1V8uzl)+w`Azmu$U}?|JhcJ@0lERtq!hZK+=aHx`dRE>m8tF8PE2X+HY+W5*>!L2{0 z`XMtSI&)d&!hjF5resqF{H+a828gQQcWH08D0f-zI&|a4CPy_EKCI!r#T9z|wgHB2 zfyNXDibEmLmq4=pClWCtYIFE%;)tBk4|&J(H_4AJ@KCx0QK8}iR}OcRFbzi37dWdO zp-pJ0gmOosg%TE0O>}ZQw0Q71PYn-e!WwR@ziayE>v|+q9F!shkwaH;X;@RFo{%;^ zOM~1`^MpY=3-fGfkRXv7U~;8N!P*`OHkLa=h9qt( zn>;CKSUn+)h5TjF{{9p_;~=+oQPG5zrDHsJgNQM1+Y&7}io~|2twVgap#Dvz!njmz1});<979IvJ44eOTaM<&3lN z7}6XCEKU@HP!9@v?kdPbZ?>Q~EHdP=06*OZNLwg@I7nQkc(Y$XQ^MCryy9vG*p27G zrBohm!X=OfwW@2O&0fDYH78cOHjhyi%@xJT)g!v@zH%dWK>Xpb0RXfLW+n{NfEch3qujFSPONd<7T=hD}`d?W%kto_k zW+{0hc_nZ@@+3J*X#fjKw|jL;WrUxtE^-H;DR zLcZe$L968!7nNAf!nuoZFzXIU$-iS70Ok+}A*3?satv<8)*6tT3F{_w$uPO6ecfIh zYYrT2RI-LF)P}|^-n-~iTtO2GxB4pcdtvR|eMioEn?h--i-!Px84I9$*>m3sxDb3g zcG8fpB@DXrIKI4Ir%Vmsn441U@&Bnv}N@}(vBc4iPA*JtkDYzpvEF`8zL=KP3j)Q zR~Yc?rve&Ab~;`=q!fzY#BI)dhNBL-prtM(OJPjE=Ks)Ad+g~#X0&n*`Zh}(!_xQ1Mdd7$-S2AHId zR=rGoyUJ0p$11}E0JC#Czo+;RA=kz61kt}Bk7;mOZ*Z-r9hX?&JV~$;ff-4#H6egu zw;@u4-`p@z!zyt^L;NKGW)WsdX~8hX7D+IpHpmNzIgaeDqS`z|HZmk$I;bvqS;hMT z0N9-7P;p!71Q6X^M{eWVqT%?4t(T7 z9tnvi+t8_+6@$V^;n?NksA@8oxe>?#1-gQ}{$;wWca2|kqCZue z4|eNaoL;l;2F8?Bl9&U^=L83+>$pjJ00={&QOR=Dd@gcTOuRKxW-DlYyjVuc0n@0* zH&MX4XGjGDCan6LY7W$h#?4Cts02O?EZ8e0%J!Ca)s))1R~O^z*Z{GP6s-y{NqzuI>jbDDj{sa0E1EbzIUKj zRY0TK8p}=}eT%;lb4YRL@<;JrB{PVd?yvp{E`1kifz!4HWA{#LNpGJ z8^NzK0TJtzSuy#Kyb!ZWEh7*{EwRPvOdvBE9K#kh>_@_x{5{<=oDl=<{aPOSt?&_+~sB!#DrmF zK57~Qr5xnb=YS+0{ zdPyU=vkv9z-MT|&zCi*aK|O298Lk+p_J$}4!F?0f+E%8d<)X|HJMJ=XjR7}} znc~ZgpW4cy+Hn?u#YAu|;3;~`tSYKbQ7G_YyZ248CBuyPQ zFw-O_B~@`2w*fh?98`%YIWL3xW`}1!LUA@S;P*Xq`4~PLb9Cg~)o2#5Yf~GB^vt6k z#99k{IZue&1f4WqHM+!64(?noI>0HJTt>F$Jp8m=uqk;WifwTWQ!ef;uT1JpV;bcK zmjoFIc5+Z-%SBPr>G$ZOaBcw=h?d7PZ@C4XEG z*EZfr!znQz~mUihP)truZrVeRP?;)!&uvf)d?l_-Y%RHoV(?L+C2Kt93onWYgc#D z;{{{?d_l&XAuXXq)a`vtH7I(U;awUgL9QM>&%2itvF&}G&~IJJOJrU*s$#h~Q)*Q% zN4G8)?WCDCKYJ%!#xU0*CuOC1bWAc6DdN1`_M~{<$71`x&qv#Yw!F7#XpI=zjZS&t ziA7DCLG731V**2+Cr((wwr_etI|Qok@^vtQX#PstvtYQYng*pWp3JVyIZy~hn@ zuP54P>dJ*|Ou*slfSrXk{)OvHt7BF@A2tekIm>7T3-JK^xC8l!nemb1bLet8?nw5u zCnUjbFTSl!cbSQ~)?E=N*So=a+bL!h&Kz&mH*B?2f50xiD9Mi|@+@e<&ZO8Hj&gE^ za%Y`(KDB%x_(-dGR{QXD@pm-6)4Ydz>RoWmw?*{%L6Otg)Gd3Z3x=B6RMZC<`rFj; zr9~_?%Irs&ZmL`Ad1l2CncrORG3+S%1o_>OI^0*_@al26UWlmV8LJFU$Dd3uYoDq( zL`rkjDYjMqm%1K1#xnb~s;p=4c0}(t?hYvyYoq){wX}j=Y-f%EeFW_uG@!n#wZ_di zR%bpczSi!Bg7>(Ft9H1jWbo%v`P`oQLZhLyqV-S8M`#to#gfswGTY-7_0$C8&PuGZ z_cE6#&_T20r&Qixq?c6xsoT9Y_vOek>u#G2_j|i%`&IM%jV@O!gM)ST4XcU6xVDM% zk=;sHmp}eq7A+&qh6c-iQn6}Z>n(#dk!#EZ+cMNmVoy(}T%>%Ik#O0x3T^Wl8-wGQ zMl$yAwfsiG-D2tHgghThCp14yMb+=t%Kkc1S6*VR@}RDAlBM);S@l}FO5E|H%;hGz z;Zjr1jvY}=n61TUS0_}=8@fMuyUq*{1x5osLGR2KIg#d1hLRCS3us%{Pm8Ej1`lf3j$Iy?3GVOr7$bIdt<3 z_8qAzm}@S$a{BN52~F-6ipuQU=BsOci4z=5lj#f=k)UZ;V(0Vzi(U5l#ohIQFlVkv zEQTs^#8;c~;kU|nSyd1IEFClyq@m%MvdSOtvC)28xg2ER6hCyTp2LLqA216IzIF3L zN~feUsUO+B4ciXx%zd3X^t!|>;Z(T2-mmUoozlG@tZ{}Puu%zb^C(5MWn@+NKds6o zY-V@XVA=jvF-0WisKm##rR@o!;Fxfs}&qMa>j@_;wa{^PFyZ z4qy9H;if5m$Q+_vvcIwN=!s=33x9;X0mYKRgMe${On3@po$x=hf^-pTf$VaU8ym$;E1e6E|}vk!aJZz&EJVP+Ic!@FDEnQ~jZ*C*5jZ)a!@9cogd#9U*l>uFh`gMSF z)WH_OsCSk{|QLRczT zo~eu{YJdINIq89_2xZ-?5FvrrM{Os!Y3P%;Og(a~`m*lc$fzxtXQ+bvH)Z6MbUUir zF6!eRqro0wKCJGInj!WsLdlYK-^1+p7BLrPTqow?9P6gs|Ivi|(O&@)W#Gk1=7WQO z7HT#9SF_$vfUy4^3AQ3@boFYZ?yr5rRSsl%QYpoX0noj& zC+PNxf{=rV=4+LV_n1})Dtv<7>RZ|jnsTwHAGaQjwxU+<*NrgO%q1L0sE7=I&xH6G z+-q*yb?9;TX`h9AgPuB`X`_L3HNf6$tJXp+y+RA@3-%SSrUEo;!>=3yu!91XI@oWh zdlHd(4?;t`r0Tp4@ZM+6aHvvkm4#ruu7lWsn%UUg4_}u<990_C-$q!!M*-M%1Q=-U zkfSkj5wYQ;1(2=Z8FutP5rdUgxQ#yvKejA|0_x+z{<=8Rl7{{8$B*OJe;+p!(Bu2Q z528~5;mEm4jV^?yN$Mq}s>@0UOQ{Y>$7#BZ!)ccRjlxN%0}xh;{&h|D4v0hB0W@%1 zi4Xb~5~`}aZSOtC5f*HHF8XFY3YY2PL@4mOg1AbvFMvb{5fXxU3#M2@14srAK9sHn z_&*=GVq{P$^q4-Y2}a)C=Ll(T9`NL#SHTci|6H>~9#pb{`6xJ0J4;#3l-;og0M4A` zwY$vI`b_EqW&P@z?=k>~_rJgLy;LyHVIiolm1sH){&>&%Qm5D5Gv!4}pc{}51Ni_8 zEkzPvI~fDI9mA@C)gocDV+bqlwZQbcXh;N@o`PX}miqb#^p?HrCZ6O(iQ(3eDU_?# zO{~-$SSE;+k?qF`KQGi{ChJl6vVIrK) z%n_l*4Cn2e-HJ3+Xxhzx_^)Ff;XG6P|I{Eix=f%VUi@G71J(O6sIU?zO~0EV6TWnW|{5Wf7ZQKGe|mPLLqH> zr|(JY~|x3G#;1 zbTa4-1loHot3acUu__SN5({i=9`VTXHfwcmBQhx^DsU#@e@U&RH*DJF-EhDS0Eu@< zjlL2{*Vm>q0Ws(3ocqBQnfnG}fwtar=B#|4J1Ka*+k;sDw`PNIW8&}5sn!-XL3_HV ziXzki#Ilg5A+ssanE8^9`N^4NfJ?SeFCGH{( zSpBRpLGU!C@U{t)Bo0JZ7vzyyN8;BcgN9>!0cU`u?FOYm$2xB(ifJ$-a>~EL=`Ar7V>SU&?D;lj7dNo# z4#D?U{CeLn?!4Ev3v*#}U+-m9#nPPY{^M6E^g|gfy zaSjJY`K0-qSQo(rXt>%k2zv*rrI-~w(@@>iXG#jUT?N*QGG_ar2HRkrOF+xZU7I5h z)u*A47pg5Rlh&qY6gzJ|X_>b?52+IZ85?3zeLB!~#B|NZ;b0^@os=j~e&o&#C6L%a z6mkku?RfG6stwS?5C*gs-G`8D5+v1m77{mA^jxX}WD1lJhhvm{w~twUEH40RuK8{X~yxKSYfh)raMc1pRLt5>1UNhkjZ} zWV|r>x`;Nl;Rz<-Gt2)cziN#`#Q?0a-;G#$5OYAnh^zf6wQP zPgesAbd_x*0V|!QM0e~xob7|P*vlvPvp@loWNh+6d|~uJF?qAjFbsQ{n^3URPSG%f%{2Q>15)ZTVc|C#~C1fka*h_wACajHCmfNjnnXSfr|S2i)} z?!L?)4E5UsUpX+<5x=wiEe38Foo2zLj7RHWp6Zu8G-j2c|xJSzjQEBs7x&2Sml#IHX>qYwu6Z47(h)&)r)r-v~g4X5Qp z*@4EU-q1hrU1m)!Vl1{TTxE&&!bKY7Ond6kzgDbm&Lp0118XO7{m2 zMvc(0UqOvrEGxA)!c+-CVq2Ng9J~6M8rC&m^tw#bl3oxI|_7;__0O4;Y@k^_*mPl zR*Y8Rx_u@S06@q>=q~rhD?TEYUPXwcKoXo3@1>HY$Zg^QxREPcT22V2ix{YFu_@P2 zM+fSKZQJqQW?GOw0w1s4NXUmT0@M0IyyQ}^#uuxa+4OD8QrI#8c2))#D6;a*H#+F* z6`yY!Ug0*#*xLzoHUparPs|-a!{4x+ac$-IVf_9;5e?tf4~GvyX^0K;fGbscE@$|A z`Q5oPK(z|++JuPaHxjqU2Dc0aEkVU2;7U!Q!Oby9y7YUiN=f^WV=i3J7Bm_U&AXHc zESdsD&{@A120(B$%09o6*r^dHd`LG*rTC;EpmD&pZEKz(116-|m@<0DpLmGTxvjqI z^$Rruy;V#RC{x9IwzpgYB#UU!M}w??R$KGZZ8Mxorb8*ed`L9#du zW3Z3Bj4?-hLeywy4hBMOhuk=x6|;T1`hBuxh}nYYzS+L5o&B~`O6y5P^SVG4I|RkF z4@&g3$?>#m^t1~bjxo*G@8Wf_WyANv8*jsH8wY016kBn4Z40y{24*lG>LB92Woj>o z=*Hax+F6lSS-tMt@(mTsk<#yU!E888AO6ux2O;LPQLPm(I_2Ey&KZYsEeHJq!!j?c z7P@g*kxN^!k0{?rpXa4SvySnXxAbYd^EM_)wTRG!dn07`sPM^2hnD86?|dcW3_)29 zN#FBkTK}pgyMJTbTisda8Wyc(d}nsa0>ML|I&}Ko_-VBSJ@$|OjSDT$9gx-Zqcu<}yB z-@)m~)c)h!dKv5k^^vQ%B9U${!v z;@h`)KK`FUU12hBfKiB#JSNRoz0dfe`_6b+OvqT0e3r$x1=b5MO-f*ty!*w{yK}-8bH9>W|fAJv&_Fwk_WyOG~OQ*G9{&U zm_z!5eqlRDDi-j*J4Ox3VZB~gxg#3`kHxTt0`z@K1zR*5ULX#5S>4?HpTBM3!o`Rl zKEh~74Ht6}n|P5j7@;xPlZwfeoZjVwMc`jG*yo2nD)JrK@r>V~745fb+f%85BVVi; z*cM@*+cw&?l8;TIG1=4LqXP9e-Xsz#;!%O>Q{d(!?LLE{2&R3VXRE-*@pP(R&vIL2 zhhJnPg6s8Cc2j4u#hTgR2c9Z;^2k4CfiurSmCS23Hi^l&Y z8Gk4;D~@3nXskyId~0Ct^2&w*|113RqY-Z@46m=918y4822BNVR7oV&$#a?FZkli3 z_FUjK5RkMdxRLSK!>P*F>)=6*(>Vkq9e$`i!*}F`YwIBL=y&#?J>HazM~a9sXU!Ma zO#5>UG-gy&uE>XZ*@x{lg|3+~;TDmUqjwo99l*ciTKt%n0SIsJuU?Wd=zLN#t z+t16*G`~T7cT3`cpT17;F@&z(y{3Z<%VIzG{GwGzjTch{TkmoFVDi$g8P&7Q^!kaT zPS*zf#MuGvUe>FhtCPM&Bz^H{%y+XZ@cHiYu6gWK_D`7tu9zh>+dr^&T=8VezlGi6 z*66y4t(N7{Pc5q%danQu@%Jl;+pjDiSaog;+viKW8)^+_CwEY8Fg1o<&u7_dg$`BA z3%0kFjF=(+3wJT_lLQY98rBwF9mV>U=5Xq>`0Qi8G{(l4sX-cP(JPCD{^fhGQ;7|0 z1>e7zxprw{zy5I5^Mk!+LVuUSB&P|4?FWm$$GUp66$tLd6uX}Rc+7zuPSa`Kvi!$_ zh~G8eQ_nujal|o?po)d?-*qa5!~FfTFAG*@d-f0#PoEs{N3Aa{KCD^jH(AszpH(6( zEO-YTgym`S4Or4xVjm>+!LH|nABNyTk0Z6#dIvP-W0_KPW8XhHd?ZVXJgBD{2qbs( z!laE2b;F08odZww!@Dc-EfLYgPMv?eNGx@OfSfC|fwTSm(Cz-8Ha&eKH1!9@*RDb8 z2GYJe-~E{dS8J<9FoB!$-uR9p&7A+)$)M>9@-VzFo+;Ju&_T3G*LE?KoM{|sznf5c z$Xy`?2yS%;jotGR&P82<;Q0S-b9}UCj!z@BVR*-ie*No{<3~+;OeA38Sxf8uNmo8U z8wx!DM@T^XM;L)%Nx)bMX-Zwa5_#;s{GSgBpqkN0dd9)w12-qe{D;?jSNh(pIG;e21Y*?YSHzgkZZWKw&*myLc#H+@b)j2b}iUM<_T4@ z2BTqs;)}){y>$o3TZObeC74yGw{L|s_Nj_!>z8=R%DwKheLu~3`h4)cK`*+C;TVQe zL@-qN3`japBb7$Ak(%)P-$Kisv)~*9EJ$Uc2)*nmp;s)l3OL zAD)+i;5<&=l=IhJ%jLim3->E2&#vzKPiuF?|50=v{#5;c9RJ+C-0K=~xyHTbwJ+IJ z*B-4K4Wzn8q9H3u>$tAHu9-@@Mn5CS91~?-S=h>(LrjWd+{(#dGee2CV(&k%8X2q}LT8ahzxXO;P zt8hi2wqG~~)6qy|*`)Pe*{gt1v+s0Fn31OV{!!u>=|f~b3|h2gFjO?ky=FDL6+7Iy z0oDvq6*Dtb#oI2!smG+92#?GnI(nlZbT8mgfudg(3~cfebRW{|>8c3SktWEH?7{IG zd2H--OR$vOLw8cGgP|fgFb>aD(M3{0z)w1T^mcpS(OHoheikyXFFlWkPB)K@-FDR| z-J%L)#Db()C_!Kc?f@2Ahi@DNvsL?;q%^4(tk>E7FCS7+!UEK4DQ%Ubj1sSO!`Eod zW9YnJGg&XU?>f24L>k(|>l4p?48JJkRsMXrE!Mu+{J*Gq5A&`QDXaXmNIOgXJ5F3B zfO}CJO9CosR~Bjv@=%6%!p8RZ-MVmX8E=#(AF(L~Go7GVYiF`tt46eCwZYTgJbqHW z%^-S{Nmifzqs%)iWHA1DXoqujlp#8CMP1+!KYqEHx`J%1gmyCg*-*GQjB^x)MG0VZVmIW$nMc zn$iU*$!esG+>vR*38S+6;!os!sfGM+J5G0N^6HxhF&cl#Jk&xo6JwXY>*k``YBH2_ zSZ&N3ET%--=F3T2;Oc5YkJh^KoYEXW8jTEgm?m^3f87uYRUZc*u04le6hhHYS?GUfuMdv^wWJ z+=_u>Xm|}g7VQ9cY8gd+)O$Pvf373Cs4f=Ez} zbZbnZug(xWkNn!4#4e$6q-s_Q1gUZF;#@btr!w8{uSAnJV|gjB+HshKK}mURHphV~ zfN#=hgaUL7PHqTEQ`Vl(3Ekjka>O7&TS8CIutSm>6GUrgoYPLTVik_VwtE_#YcrH>!jERD znpWvm5amIpC;50O5+GkxDnA@-Lp;jYekny_F_Q<6M9w4AvcJVT`miE&*tr1$G3;h3 z;xwQMkczW`bEO`;PJJdvFj!<=Ce#k1c%eK+@7^yZN8o~&rzC4E(W(hO8*?iJw09pt zuDx=Bj7VlPwjHCmn5OlDSIE$-OvWy8k)`8x+GL=OR-A}726--Z5m!Zs^Y3eueXP`BTS| zwbB>?G@|Vf>?tyhoL1xl+p*q75jLowupvu}xbodUxADpKvT>N9D0SU@iGM}wM_cw0+|@YyEzmjZkNGd{T~Rxyub$K6!Sx^M*dMWbWtU#u z_is}#-IF}A@qtLqC7Y8^dc6gASSy`OuJG7JX;bPsppho5U#H9QSAszvX%N>bj+UgD z8*in~2~lS73)Y>QBFiscSKG`OsLEwuQa|Hzy-B7U%zc`aP9ijXSuF$fnv-dc3|o%#e^@&0HR9!rkSSMl7_>yzs>`}jthhC4!`td zPW4mmn$`u~axk|`j->7wkNm>VGj^6m2oa|PGGnHb_Xp6&S9u4@)cf}b$$8Df{M5dnoaXI|Tr-bqQ?-O#7m4jL7 zhcmpiOmvZT8j+*|Lh)C|=n9znvtExRlztj^7-hbKgOs?;b;$&&#*$)eo8Kk{iC*GW< z{GC}kntt@U!{I8oK|5)%drx4U z&cWc5+$0h$_k1Kb!Y@r_mecmJ+T6ZI&pu2$_;YJ%2P)Rhf7Zmp)m2|(zp+K6pDEe& z0o;6~UHkpaB71swrckG}L&vfGwQ4_ot0d~)e6R+Gyn}|Y=`wvT4w?HU69>k4k?z}iQnasqhSxLg%f4F9 z=6rz%1yjDlsB<&Rn~%q6X>6aHCdq*&>&8GgxOcyi*x;ch(x zGoQU5*`7X(aSB`P62otEL~GoEkjr0{a^3i_WSKJ#VMeet$E2Z;|t?bo|^z)}z353vYy8<($F(ibhz`n(Es(O{0wKGE)H z=5K;Dd!1MX^o88R%6?E*qT%=*bA@9jr=zrvcYd;D*Cldt&2Ddc(AWODe8?b$YjDQG zP=&P0F4*v}(BQC^Q5xK^waIW7DqvIkZ>>nZKu_cT_VI!)drqXuk;>cNL1WGZ48>$+ zKWB5=q+YK$){~2w>(DN!*nFzi^xv5B?3evW_%hpV4Y?A%0>QUxn<-W)KLFl$L_unm z6jB?EgQX&!NU0JL(9?PzDZ7V+1((yaXFpMB6V{9n&DRyR>7UdXuvGT^wS2#s zj}*tJ+FD`O$2#eW6+jQIfgT8%;UYo-N;u6}9SZ9ed%N#DHNsPop?Nw(h-wk+O%fYl ztLDQ+#EHXK1Teo;^%*x+TNrUNO(kwzuBdi*9Q4qe731mEqtQ;rcF8U{$*PJ$fnJ0$ zX2ZnHLuA!0wRX^Brk$H?l{@xN)L{CEPWdN=ej}-;rhNOxb3)||?e86f z=}oqBV@CEze%9*L_uuMX*yR)-MAe9P_eW`*YExw~J(8W}gy{+{!Z63+;B)QDUSds# zBsnYcW2{mH!V)NyCL^o`!BV@VZ6#V!{4aE~{%pUM4oxi=VD;P&;iqhi(1@j{YX2o6 z@L$4_!OFJ_k>Vhtkl`K=+jJry!Jv5ph@=5!89F0$#4c;~VIva{wLVgeS>kdUa$<(^ z^r==Tbog2-g+Xg_eZF`?_F<`0Oq3ScQlN%qVT6L`K=cytf$;vdUyVijcM~>23yzwQ zdcGVOz^gRm#_n&_>K+d@H(qrO4bTc6H~|O%4KZ2GLXE-V=c0ig5!6A41K8X8YBuwA zD9#*2=u?c6c=O@*n$DMAD1*KG!UhX`QI1wfEA#;NPrpOZ{M!)1mFJSm!MtXqD`9IU48U9Bv4IqIel7 zyU3A6FH5d((sIVnA@mFy!i@@YFYVEheg{;tG^>qmk%l^7*n3tbCD4ptEwK5fh;B=yq|c7KF_Zp8q7*D zw_~>P_^naSVB(1?BZ?Rv)}iB$h!dbSpcUpdVz|3i!@;4s5U+_$5|TyM5aXH=slzO^ z4;+yHQ?dnA4bcOvVD}qZ$`^@F{5eb59SB1fZ7H3^hNYr{S(6Jg&bl0htu@3IK{uNQ z1U&UQv(x*XRjXgpY+u+2AoS`$V%~>-SxBsvnG z7M*SQ7L>fgN6FporjII5Puvg>Pa<@B_2 z#A2Itam+;sTN8RAt@ZM(sE#kX`Ba6F5P#vhs0z1?O;{)kxl>VJ-4JD6f02fL5xS@R zDC3@y^31O-WgY6HFx;w;Iv6dunGVwnh9e`1*h`j<@NG4fJ};8By+tp#VnQ6-;geG~ z%pgKwP6?`dol1X&;EGA4R(9ma*~qi&B4^IZIKvz0%EscHLDA``N_48Ro@J!}_osBG zB-G=mvutn^xA>E+BuFc=@=6R`frF;OAcWR@pf?Mn#*&MNWvQ|#+mAQvS0>@puvoF) z+KCVYF2$SU9`3}C0qE;Hbkx0J={z_Gs~!Duvw5|0s$%}YywGYq&u7fQqZXfVnXP_1UV&=<@Q4_jRPw85lAo+=@LPn zevtSp6joR0yFKo&fY1xsPlJxuaN^doqOYxlNmh94bojRIq;Q$Qpc)z zqU$}vEK9>|Aq`U>k#vj@I!nM`Aq=t}O+evCU1jkfnQYpw0XqLr4wGuNe)I{nSZx+rO%9Kj8~uh$XjwrCZi%_&3Ni z9VRP9bjc34*{Kn4j}8&LNXUvut)8-(>Rr#(pi}Q+9temFfxXenPy^(9?VM>^yJ-gJ ziW;|ZWlUpo?Cs%pc4387b4}3WQ1`d#tU!QQcNmrS^PE4|Not6kx<5PkjUoQ4WmX;4*OpgvyS7j)-Bo~Bv?<2 zGD849!BHivsLd71qCxtGE5gI@=l=lx(Gk1$~uTeZK3Y$~28= z&4I-@DO6Vwl*I1(9FKd)tsJ=+y{l5*Gt&9NM|F5wLy&U#LGSn8`DB*1!^brXvuf#1 zAgtO_ek@P!qwV{qhnKQAH=fWRRah!Xo?<4&IHg?dEUjMI%fGf0Lw1ZmA&v{t$Cj#w zMl4}xIoNa>wwguaLf9}QF{~5QzTN*M#DqB5REU(z84JGn`w~Qo`haQR5Kmp~IDL^B zXo4NyyXdlKFIS8!*|V($flUWk@+c-|&!I3^e;8{qO>B`WIsfd#!ov?Qhd3*{h+y(z z%+R{RWDYj?^kN#IRrmdHLSiASHTY9Y&SXz2K&B1C$e~y{2UlbGNDuv$lLiV_6mk1m zx4ZpjNCpO(OUu)V+u=gzZW?47k;vZgyh{hN+ZqTTL`XT)l~n)b(fO#5vu4yZ5sWhz zyhY0;3(gPrU?@p!^^#8*RITngX96tVh^!Q4x$7T86{W-ga zMZ^O1%-ftIZvfet)qnpWvRSTdx_j{!5{$k(Z)3Lm-my<{06YAsO&T6{4<8vhfPhq~ z$G#`GtsZY_>W+2Xn8va-?qe0-xSi;!HvvZiI+)}tR(YL+I4fpK(GM`A+^3vZuZ%} zVeqLW0oNoAaDol&U}Ixlw<@bS>^9O-<4`Ln+G-f5%^kgjVfjw+(%Lu5+5&;BtWJu1 z=@GhIm>H;c8c*itgU!BFR827p*ol`G`}VgRbGqE4JOxfnuqZcrxuJPx=8Eu<;g^P+!^>0d zKY$bq%MXOJY!V)Xe-U;n9hhzG(c5X{SnTam-ZbcL^z~vRGgf?aB*&Jt7sCOpYzS^G!Q%%RY9^{+p~$+8v#)ZxSje--K;A;ujxU;63zh1vV{ zm(maSnPp1ZQ*vbI>UPj~_gV|l+AlY7<~@aRVy=g(@pRnOKf=~$eRh)k;0yAk ztV242f5a~9=ZV~L`-?wsf6QC|E!L;-OZIQ~PeSe1iQIk1o)-9fyl?$fob_$Vz4%7% z!bB!Q@N=f})xV{$E&AWIKTh3TeLUIRrgZPe`+uG$I6S(MydvtMzB@77v;O^xr|$eLpH1{I$2VPby4x{2FgV%DJ3@{nR&&s8 zX}0gpg~_^odvFTP_o@X`et&yb-TfAAJE@axSH#`<{MYZibLN?Y&ZdgsUFBl;rlgT63XAEeNU`i`{758P2x}g!}4e-SPDGLutkGGHo6dY z-R7TX9`VOZ^RWKp;1J|ESEIJ|_wPp;YdbEs#ME6Y{pxZIcSk$Xe!Amp{S@C+vcX%{ z2rZna%buQS98uT*ZF^Y#+5T>pZ%I^mbLmy0!>65lW+?pU<|D z{LJrEoM_p->=RIpRJ(ox)sT}tuCcH`w@>~BGfc}gKPhoIVYpj>TuyZ~S=pGkQhQzR z@_Yp2&t#uQ^X1Y@m@{XpRZM@cT1VF+rS;uZz7dHsJN^Uf^eXhFax}KiwRclt4f5%e z*-x_Z6wh6l^Do|tb~JWpq@BUO3+opyHLdqCyin$xr`-R_k#)$BGw$$~P>5Uqqwauj zab?YYN1K6L<}yL|8 z9KVFB>CD_p8lcM@^~^4Mmw0~rt<1sD_QErZ2WyPSmCa82;Dde!@;7!=IikN^KQ@lY zRqD6)ZGQLbP~=^sOOtxONR#yJ7f5l^IjnhuUW$O)D(8I5z@~1~ko0Z%t#9<$(Yh-u z+iX?c%P`evOgOm=_Io2;&c3Jm-od>mH_jf`N`1ZO&cdy(f-xqhMJ{$!+f6c98hP|? zW6{{Krq{cXTh>Ni&;Nx*6wh3Fd5U1xv#j0H_VQ3%^!j&-Dm}MF5vq5~&%dp9Y-ve* zXZ%jbeKZs$2VE-u5_@;X@a)W?28@deFc@~Z;I@!j`nU3g|Iw?_x~mG--u)DTki-jE zsFvDIhc54zHQG9|JioUq0C59Pka)z25g6u8r+hu>7BZPanI$vPsucJ!U08Fj)&3joomNNG%ONfB#=&mIZ_BUu@62J1D>{ zW`~gK>-IeouB!79jP3H@xy=Gb!{(J~zk2w3QCr5m-y!-MQBIPxE*@5!Tr}=p6mA${ z@QS*wA!(>v{NLSw`@A>Iu1Tfuv~X1{>jDGtN8K?14+ZsGT7Uq`?z%P*2GYn+eccEb4C zM67@SN*Azt0Mtn*3-yCZk^6i5)$`LBZ%gr)elOg}yMEc}NYIXipPzm1CN?XhY$I2n z)S(bKmrl$ro;wPJxK`=KLp#&Q$67#DlmZ(}D@15jc517q2m0~Irq|YV7`&)QZ}Xg7 z()Okc%$yL|#$J?(ydas<_XP|YtYDj8WSW+GAa-VLMU+_X{RhN~tJQVFPH)e`1R8x` zIO3l?%+j8_nTQPX&h!vImHZp;wdr)VmFF-!h7D(Y;IicCIX6F7xmZ=QfxiVz%IK?5 z#wN1BqK8blGoV81Z(RNMDjYpopg1(BVJ_uN#cp}(^%Akx57<`aq4X^M(I*HX^ zcNmiU1~`z zC6j_af^H!}3ei$vX^=!PIskrr#)lx7B3MP#GS{Xd@MM|oQ9zW>lo!G_IwL2Y)ZVOS zQdw}1+uHXlutWj1s01rd!+sw^DG9KjAU1X4^z)$|Utxg6+)QPz@`dT3-MrIEI5!Jq z4vuLLv9$jKAWX?Y?}nTb8UDOPU5y+aA%f|WkKYsk?Gco@z+g5`K5pLeAsfHZN6})= zH1!N2D46IP1{_}PFfXz2|4Ed%a9{_=Flr)LeUhOw9c502Yf!?dbagA5^6M=K*N@Vr z1XreVWAhc?j_vDlGBljCm_I_o@nsyDz^8kwM;)SNgxcAN;+@ew(g-qH`j5pRZ7@EQ z29xiACCUdGP9^-vD&sry`p)ZNqVQWnDuTNCw-25 zno~L$?e6sq@8Y@dXJ?B6&iEwyxADMOKD74oQXZt zY!^)ta4aP4G~&ieLj@GbWa@JB73-We99aqH3gU{LbM54AT=rt=5h>JF)_Yc@`s=4n|CLIL4vGcA2kW=Oip_% zf;HEyUOJ=bw*_rHNF}jwzH%}>TM$T=`GmPEZ#5cJ>^s%a z?J8+xIy!GEi?#YjSMV4_$nsBSwdibT>Y6L~_7|~+faXbOnpXul1?e^AAC;t$2`COq zV@dOl92U-3^flKUt}lg)5E*R3d1fvk>wRJ?|CBrWNr?L(_Q!GA;Y?o84ic^kUIkZX zi4k#HG7NF-x@FWua$bKWzGXH}qx;uD%+gtyVaHHNXJ z8oM-AO&yazIuwtxFl$y~!uJL289xm8rKb#GvIPXGZCnaT_$s1%nFCLA=6MeB6}R5( zSA-%i?nJVYdt^}<>E2r7d3b9he5hoDS98 zP#a)~bDq_&cNmlR)~`~VdshGc2P)#W`gQ@l^G6Bw2e4uzHVY7>D5T*aN{x%shS2mm zu#3q%=NSRxtFCj_|0z;BIIS?of;Ei+6C)}?c$&yX8?#VUw2d2snh%%FY$1G@lhGMO zwDGwtU&L7b<;Tt%inMytAWa)2bO~Vsrmi6(@OF?coNDATNE@xRJ%9m!g>s{+gg7lC zP9)c@@^J+$-u3K=D^8zSWqR**Syv> ze!G`ctQef&MW;9p9#;jr>#Bg_YD1UO=!0VjT>-+Yi}^3gnmKH_9|^XdiScp*(aO4; zX;if)G#WC*^HYn2=(a4-%0hbFwz8tB`y5~@Md^<)W$!{j)&gV9gv~}F2}0PP+dB3_ zn1o4^2w-SA(uY9+{U>t@56r=;unCMj+st;{BVWpx9Z`=8~rX5Dwl_JYjsePxJkS46k*;-$9msX=G0v@nO4ePriMQ9=|}1m7r6kcV)O=VW)zl|cEc_D$qZ zK_JL$->3b+f(^E{$Qjrew*1&*rV#%=nx`OLK>-@5xC}qDZ-MlgGC< znkW;L_~(HDVV$AhIYv#ic3U0YNebDso_k7XPHAdR_N$W&nqBKZROr*xsxhvfT7g(= zp?RT09n5J7rl{>wIth+$9>ONZU?Z-$;o+J-Q4Ql{8AYaM^McH1uc-yJYNHkiYbM65 z57%uXUb|UDt=MYl z?!UoD8&Tc&>D`EzhDkBV$Ah5pjN-O4Z;x`>xXV&;xi((RaGWzOm5aWHL@ItXejs<$ zf{yhRYZC-;m8s~rcABjD;hmMqpR^RA|1?ET@fY20h3zt)cou(&1}rP#W-DMbKO=8z z^Vw}ie$l%COQ+}8mdFe04`~RJ5U}OowQ4fds9xp~2w$Y}2O`eghqbQf0TBYl1|Pnv zKTW^VVh!JX%uX}F=Yd=_LkKG)3-DjOuS1g2v^cOK zAwlH^TCH?hA2$wU1q#pg)F;e!hg(6od-JC?pKo!8Z=yi=R_N0U3#CDjD*x(>4|+1X zb8<}f6B|)+wDZp)*y)B0FLT{5&uM2Y;3Sre#~{#QBajw{!fjwUa&)=iWW?AsjyK?9yFlId2ydCZveAhR8cj{*j44T@GsNaR5`7&GZ;7A)i z8$D<5g!-1NG^$3@X6kO+=TVH#nqCxdT%vyR`rJHk%q{>yLxB1~E{3ClO{1zk8NT|F z(DI|%iGB0WpzPl$?HKcnQgZw(pTLchk%&m|-{@<+yfXl@Pg4`-M=j=O@@iEDnK~_E9+~h-O41b)2823&>@5vHW!8PCN}7ou`1m~G12<>$ zkyw(%{6Cq$KBPv0`zHae6#5w2?>p>Dm#{Q8_RQ%71UH3nK8gDO1-hrPX#Z$LhgT%_ zL&D=h(hUZ2h>yJ##g?p?wn;I(?fcR=?o$x1_~ECA#>zig(&$eFdNt{!v%AMD!(l$w zrTo!0jOHyq{z=Fol-hClo8;Mn7ltD`O7B_s6B zpV*W3zXvoMU6E6;k)ne^?Gdc5(Q zG<7;*zP7Ap=!S`x?wQagFa6fceROH`P;j2>Oxbtw__unK_BRV>a~+goznFG>*=-or z#vO^c%9v7|`KAqU>*elXP1MX=Q0H%$UcOj@sJ}DPV|3XT5pmx4;aAa(9MLBVynxln z2{5Qg4aMqQ8RG|kHkW9ukE~$35f8rD^!v*XyU$7!n~ld3LrgDA{%yEsEnZlfY7|<( zB-`njd~_Pn?|S?6ic;Ez=nX@{w>4#iC2qf?n0Da0y1R#iRyjj`O_c3b3FnE?jswvt zhc0@Dj7GQGE*VbgAMm|bNB7d)b;BjR>tOn`RE?eHxq(-~Wr>Wq;sm3);jx z5|lQ1%idD^-gwg32RD9_knJt1F+1^U->)|+OI4b59{Ho~yOTR?u$vd8qy6y>n>zRX zA!N9rKOHoUzWn0C+hJ6cquc3EO$ReGuF z;E)4}RAR*YS;&60=H~Uy%M|v-@Z3*QOkwE0?+13|p{^;2Ng;yq=_b zCR27O^k(Dh^Z+NB<^I~!e8?wvpQ4NEA;TUU9dzEXDAabS=jE}2dE4j5x=t+DE3U@2 z=N@XPQ=9c$Z02mWjIV2Bz3@<;`sxJbYOHa9+jTQ}38+=-tD6y0PD zhU0U9ltjJuD_U1mOA%~WD6arF*#q=JBm-#s229{&u}SRx(tp^p!qwUUqJcT+Wn3GK z6pjFiVu0(@Ba%viK45MIC&rZJqX5Cu^#xaLL25*8->qOy!uvsRERKt0v-qw1#ToNk zU?5=*;10sTR?7YwTB4#~wp=ZJLoYJB31@}6Oe+_NknrR3ekK!2k%pl$#a9AHU^H(O z?yZ)|+@|ADwI(Vb0E?F?++UT-62{ z62mn6!ohYR*uJSqtDPXqAyM7}x3Vf&3+HK6

9M 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