From a49242d7bf3c1b6bf09257478ef51282f0cf99b3 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Gabriel=20Mart=C3=ADn=20Bl=C3=A1zquez?= Date: Mon, 30 Sep 2024 11:51:31 +0200 Subject: [PATCH 01/23] Fix `vllm` installation in CI (#1009) --- scripts/install_cpu_vllm.sh | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/scripts/install_cpu_vllm.sh b/scripts/install_cpu_vllm.sh index 7535c8821..bdaa7ad74 100755 --- a/scripts/install_cpu_vllm.sh +++ b/scripts/install_cpu_vllm.sh @@ -15,7 +15,7 @@ which python echo "Installing Python build dependencies..." python -m pip install --upgrade pip -python -m pip install wheel packaging ninja "setuptools>=49.4.0" numpy +python -m pip install wheel packaging ninja "setuptools>=49.4.0" numpy setuptools-scm echo "Cloning 'vllm-project/vllm' GitHub repository..." git clone https://github.com/vllm-project/vllm.git From 3244c05e353f9d00cff6c88102fe82d255fe8ea3 Mon Sep 17 00:00:00 2001 From: zye1996 Date: Mon, 30 Sep 2024 03:25:34 -0700 Subject: [PATCH 02/23] Fix writing `distilabel_metadata` column when `LLM` error (#1003) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit * fix metadata writeout when llm error * linter reformat --------- Co-authored-by: Gabriel Martín Blázquez --- src/distilabel/pipeline/step_wrapper.py | 8 +------- src/distilabel/pipeline/write_buffer.py | 9 ++++++--- src/distilabel/steps/base.py | 14 ++++++++++++++ src/distilabel/steps/tasks/base.py | 24 +++++++++++++++++++++++- 4 files changed, 44 insertions(+), 11 deletions(-) diff --git a/src/distilabel/pipeline/step_wrapper.py b/src/distilabel/pipeline/step_wrapper.py index 661f99b1f..2ddfb10da 100644 --- a/src/distilabel/pipeline/step_wrapper.py +++ b/src/distilabel/pipeline/step_wrapper.py @@ -277,13 +277,7 @@ def _impute_step_outputs(self, batch: "_Batch") -> List[Dict[str, Any]]: Args: batch: The batch to impute. """ - result = [] - for row in batch.data[0]: - data = row.copy() - for output in self.step.outputs: - data[output] = None - result.append(data) - return result + return self.step.impute_step_outputs(batch.data[0]) def _send_batch(self, batch: _Batch) -> None: """Sends a batch to the `output_queue`.""" diff --git a/src/distilabel/pipeline/write_buffer.py b/src/distilabel/pipeline/write_buffer.py index a71ffdd9b..e53d6faeb 100644 --- a/src/distilabel/pipeline/write_buffer.py +++ b/src/distilabel/pipeline/write_buffer.py @@ -130,9 +130,12 @@ def _write(self, step_name: str) -> None: self._buffer_last_schema[step_name] = table.schema else: if not last_schema.equals(table.schema): - new_schema = pa.unify_schemas([last_schema, table.schema]) - self._buffer_last_schema[step_name] = new_schema - table = table.cast(new_schema) + if set(last_schema.names) == set(table.schema.names): + table = table.select(last_schema.names) + else: + new_schema = pa.unify_schemas([last_schema, table.schema]) + self._buffer_last_schema[step_name] = new_schema + table = table.cast(new_schema) next_file_number = self._buffers_last_file[step_name] self._buffers_last_file[step_name] = next_file_number + 1 diff --git a/src/distilabel/steps/base.py b/src/distilabel/steps/base.py index cc0c0b2e1..a3040133a 100644 --- a/src/distilabel/steps/base.py +++ b/src/distilabel/steps/base.py @@ -582,6 +582,20 @@ def save_artifact( ) write_json(filename=metadata_path, data=metadata or {}) + def impute_step_outputs( + self, step_output: List[Dict[str, Any]] + ) -> List[Dict[str, Any]]: + """ + Imputes the output columns of the step that are not present in the step output. + """ + result = [] + for row in step_output: + data = row.copy() + for output in self.outputs: + data[output] = None + result.append(data) + return result + def _model_dump(self, obj: Any, **kwargs: Any) -> Dict[str, Any]: dump = super()._model_dump(obj, **kwargs) dump["runtime_parameters_info"] = self.get_runtime_parameters_info() diff --git a/src/distilabel/steps/tasks/base.py b/src/distilabel/steps/tasks/base.py index a0afb74c3..33b033046 100644 --- a/src/distilabel/steps/tasks/base.py +++ b/src/distilabel/steps/tasks/base.py @@ -117,6 +117,28 @@ def unload(self) -> None: self._logger.debug("Executing task unload logic.") self.llm.unload() + @override + def impute_step_outputs( + self, step_output: List[Dict[str, Any]] + ) -> List[Dict[str, Any]]: + """ + Imputes the outputs of the task in case the LLM failed to generate a response. + """ + result = [] + for row in step_output: + data = row.copy() + for output in self.outputs: + data[output] = None + data = self._maybe_add_raw_input_output( + data, + None, + None, + add_raw_output=self.add_raw_output, + add_raw_input=self.add_raw_input, + ) + result.append(data) + return result + @abstractmethod def format_output( self, @@ -201,7 +223,7 @@ def _maybe_add_raw_input_output( if add_raw_output: meta[f"raw_output_{self.name}"] = raw_output if add_raw_input: - meta[f"raw_input_{self.name}"] = self.format_input(input) + meta[f"raw_input_{self.name}"] = self.format_input(input) if input else None if meta: output[DISTILABEL_METADATA_KEY] = meta From 3fd680c587114ec78a2344a2ac9a1aa98cec52f6 Mon Sep 17 00:00:00 2001 From: Agus Date: Mon, 30 Sep 2024 13:03:07 +0200 Subject: [PATCH 03/23] Add example of custom text generation step in quickstart (#984) --- docs/sections/getting_started/quickstart.md | 22 ++++++++++++--------- 1 file changed, 13 insertions(+), 9 deletions(-) diff --git a/docs/sections/getting_started/quickstart.md b/docs/sections/getting_started/quickstart.md index 04d84d978..7af9bca8f 100644 --- a/docs/sections/getting_started/quickstart.md +++ b/docs/sections/getting_started/quickstart.md @@ -30,7 +30,7 @@ pip install distilabel[hf-inference-endpoints] --upgrade ## Define a pipeline -In this guide we will walk you through the process of creating a simple pipeline that uses the [`InferenceEndpointsLLM`][distilabel.llms.InferenceEndpointsLLM] class to generate text. The [`Pipeline`][distilabel.pipeline.Pipeline] will load a dataset that contains a column named `prompt` from the Hugging Face Hub via the step [`LoadDataFromHub`][distilabel.steps.LoadDataFromHub] and then use the [`InferenceEndpointsLLM`][distilabel.llms.InferenceEndpointsLLM] class to generate text based on the dataset using the [`TextGeneration`][distilabel.steps.tasks.TextGeneration] task. +In this guide we will walk you through the process of creating a simple pipeline that uses the [`InferenceEndpointsLLM`][distilabel.llms.InferenceEndpointsLLM] class to generate text. The [`Pipeline`][distilabel.pipeline.Pipeline] will load a dataset that contains a column named `prompt` from the Hugging Face Hub via the step [`LoadDataFromHub`][distilabel.steps.LoadDataFromHub] and then use the [`InferenceEndpointsLLM`][distilabel.llms.InferenceEndpointsLLM] class to generate text based on the dataset using the [`TextGeneration`](https://distilabel.argilla.io/dev/components-gallery/tasks/textgeneration/) task. > You can check the available models in the [Hugging Face Model Hub](https://huggingface.co/models?pipeline_tag=text-generation&sort=trending) and filter by `Inference status`. @@ -53,12 +53,14 @@ with Pipeline( # (1) model_id="meta-llama/Meta-Llama-3.1-8B-Instruct", tokenizer_id="meta-llama/Meta-Llama-3.1-8B-Instruct", ), # (5) + system_prompt="You are a creative AI Assistant writer.", + template="Follow the following instruction: {{ instruction }}" # (6) ) - load_dataset >> text_generation # (6) + load_dataset >> text_generation # (7) if __name__ == "__main__": - distiset = pipeline.run( # (7) + distiset = pipeline.run( # (8) parameters={ load_dataset.name: { "repo_id": "distilabel-internal-testing/instruction-dataset-mini", @@ -74,7 +76,7 @@ if __name__ == "__main__": }, }, ) - distiset.push_to_hub(repo_id="distilabel-example") # (8) + distiset.push_to_hub(repo_id="distilabel-example") # (9) ``` 1. We define a [`Pipeline`][distilabel.pipeline.Pipeline] with the name `simple-text-generation-pipeline` and a description `A simple text generation pipeline`. Note that the `name` is mandatory and will be used to calculate the `cache` signature path, so changing the name will change the cache path and will be identified as a different pipeline. @@ -83,12 +85,14 @@ if __name__ == "__main__": 3. We define a [`LoadDataFromHub`][distilabel.steps.LoadDataFromHub] step named `load_dataset` that will load a dataset from the Hugging Face Hub, as provided via runtime parameters in the `pipeline.run` method below, but it can also be defined within the class instance via the arg `repo_id=...`. This step will produce output batches with the rows from the dataset, and the column `prompt` will be mapped to the `instruction` field. -4. We define a [`TextGeneration`][distilabel.steps.tasks.TextGeneration] task named `text_generation` that will generate text based on the `instruction` field from the dataset. This task will use the [`InferenceEndpointsLLM`][distilabel.llms.InferenceEndpointsLLM] class with the model `Meta-Llama-3.1-8B-Instruct`. +4. We define a [`TextGeneration`](https://distilabel.argilla.io/dev/components-gallery/tasks/textgeneration/) task named `text_generation` that will generate text based on the `instruction` field from the dataset. This task will use the [`InferenceEndpointsLLM`][distilabel.llms.InferenceEndpointsLLM] class with the model `Meta-Llama-3.1-8B-Instruct`. -5. We define the [`InferenceEndpointsLLM`][distilabel.llms.InferenceEndpointsLLM] class with the model `Meta-Llama-3.1-8B-Instruct` that will be used by the [`TextGeneration`][distilabel.steps.tasks.TextGeneration] task. In this case, since the [`InferenceEndpointsLLM`][distilabel.llms.InferenceEndpointsLLM] is used, we assume that the `HF_TOKEN` environment variable is set. +5. We define the [`InferenceEndpointsLLM`][distilabel.llms.InferenceEndpointsLLM] class with the model `Meta-Llama-3.1-8B-Instruct` that will be used by the [`TextGeneration`](https://distilabel.argilla.io/dev/components-gallery/tasks/textgeneration/) task. In this case, since the [`InferenceEndpointsLLM`][distilabel.llms.InferenceEndpointsLLM] is used, we assume that the `HF_TOKEN` environment variable is set. -6. We connect the `load_dataset` step to the `text_generation` task using the `rshift` operator, meaning that the output from the `load_dataset` step will be used as input for the `text_generation` task. +6. Both `system_prompt` and `template` are optional fields. The `template` must be informed as a string following the [Jinja2](https://jinja.palletsprojects.com/en/3.1.x/templates/#synopsis) template format, and the fields that appear there ("instruction" in this case, which corresponds to the default) must be informed in the `columns` attribute. The component gallery for [`TextGeneration`](https://distilabel.argilla.io/dev/components-gallery/tasks/textgeneration/) has examples to get you started. -7. We run the pipeline with the parameters for the `load_dataset` and `text_generation` steps. The `load_dataset` step will use the repository `distilabel-internal-testing/instruction-dataset-mini` and the `test` split, and the `text_generation` task will use the `generation_kwargs` with the `temperature` set to `0.7` and the `max_new_tokens` set to `512`. +7. We connect the `load_dataset` step to the `text_generation` task using the `rshift` operator, meaning that the output from the `load_dataset` step will be used as input for the `text_generation` task. -8. Optionally, we can push the generated [`Distiset`][distilabel.distiset.Distiset] to the Hugging Face Hub repository `distilabel-example`. This will allow you to share the generated dataset with others and use it in other pipelines. +8. We run the pipeline with the parameters for the `load_dataset` and `text_generation` steps. The `load_dataset` step will use the repository `distilabel-internal-testing/instruction-dataset-mini` and the `test` split, and the `text_generation` task will use the `generation_kwargs` with the `temperature` set to `0.7` and the `max_new_tokens` set to `512`. + +9. Optionally, we can push the generated [`Distiset`][distilabel.distiset.Distiset] to the Hugging Face Hub repository `distilabel-example`. This will allow you to share the generated dataset with others and use it in other pipelines. From a46489e7cc83f34ed5935e26affbf551111ceb33 Mon Sep 17 00:00:00 2001 From: David Berenstein Date: Thu, 3 Oct 2024 13:17:35 +0200 Subject: [PATCH 04/23] feat: 985 feature argillalabeller task (#986) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit * feat: add initial version of argilla labeller task * fix: arguments in runtime parameters * feat: add field descriptions * feat: Update record formatting logic during structured generation * feat: update workflows * refactor: work based off server payloads * fix: resolve serializatione xample records * fix: only convert examples w when provided * fix: set to basically zero * fix: add temperature fix * fix: revert changes * fix: example records with formatted responses * fix: set max new tokens manually * fix: some fixes in formatting * refactor: some code quality improvements * feat: improv * refactor: remove unused code * fix: wrong prompt template * fix: remove print statement * fix: added pydantic rtuntimeparameter definition * fix: creating new characters per line examples * fix: add nuance on example in prompt template * feat: Add guidelines to prompt template * fix: remove pdb trace * fix: avoid using records without correct responses * feat: add ability to forward different questions * test: add tests for argilla labeller * fix: wrong docstring * fix: wrong docstring * refactor: rename suggestions -> suggestion * docs: update examples * tests: remove span question * docs: update the examples * Apply suggestions from code review Co-authored-by: Gabriel Martín Blázquez * refactor: apply suggestions code review * fix: type hinting Record import * fix: tests * tests: fix failing tests --------- Co-authored-by: Gabriel Martín Blázquez --- src/distilabel/llms/openai.py | 2 +- .../steps/clustering/text_clustering.py | 1 - src/distilabel/steps/tasks/__init__.py | 2 + .../steps/tasks/argilla_labeller.py | 589 ++++++++++++++++++ .../tasks/templates/argillalabeller.jinja2 | 13 + .../unit/steps/tasks/test_argilla_labeller.py | 210 +++++++ 6 files changed, 815 insertions(+), 2 deletions(-) create mode 100644 src/distilabel/steps/tasks/argilla_labeller.py create mode 100644 src/distilabel/steps/tasks/templates/argillalabeller.jinja2 create mode 100644 tests/unit/steps/tasks/test_argilla_labeller.py diff --git a/src/distilabel/llms/openai.py b/src/distilabel/llms/openai.py index b73efc223..48cac8a50 100644 --- a/src/distilabel/llms/openai.py +++ b/src/distilabel/llms/openai.py @@ -667,7 +667,7 @@ def _create_jsonl_row( """Creates a JSONL formatted row to be used by the OpenAI Batch API. Args: - inputs: a list of inputs in chat format to generate responses for, optionally + input: a list of inputs in chat format to generate responses for, optionally including structured output. custom_id: a custom ID to use for the row. kwargs: the keyword arguments to use for the generation. diff --git a/src/distilabel/steps/clustering/text_clustering.py b/src/distilabel/steps/clustering/text_clustering.py index 4bf583c16..7e640bf5c 100644 --- a/src/distilabel/steps/clustering/text_clustering.py +++ b/src/distilabel/steps/clustering/text_clustering.py @@ -223,7 +223,6 @@ def _create_figure( inputs: The inputs of the step, as we will extract information from them again. label2docs: Map from each label to the list of documents (texts) that belong to that cluster. cluster_summaries: The summaries of the clusters, obtained from the LLM. - labels: The labels of the clusters (integers representing each predicted class). """ self._logger.info("🖼️ Creating figure for the clusters...") diff --git a/src/distilabel/steps/tasks/__init__.py b/src/distilabel/steps/tasks/__init__.py index eb90c6dba..c7b7d7239 100644 --- a/src/distilabel/steps/tasks/__init__.py +++ b/src/distilabel/steps/tasks/__init__.py @@ -12,6 +12,7 @@ # See the License for the specific language governing permissions and # limitations under the License. +from distilabel.steps.tasks.argilla_labeller import ArgillaLabeller from distilabel.steps.tasks.base import GeneratorTask, Task from distilabel.steps.tasks.complexity_scorer import ComplexityScorer from distilabel.steps.tasks.evol_instruct.base import EvolInstruct @@ -52,6 +53,7 @@ __all__ = [ "GeneratorTask", "Task", + "ArgillaLabeller", "ComplexityScorer", "EvolInstruct", "EvolComplexity", diff --git a/src/distilabel/steps/tasks/argilla_labeller.py b/src/distilabel/steps/tasks/argilla_labeller.py new file mode 100644 index 000000000..46a12748f --- /dev/null +++ b/src/distilabel/steps/tasks/argilla_labeller.py @@ -0,0 +1,589 @@ +# Copyright 2023-present, Argilla, Inc. +# +# 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. + +import sys +import warnings +from typing import TYPE_CHECKING, Any, Dict, List, Optional, Union + +import orjson as json +from jinja2 import Template +from pydantic import BaseModel, Field, PrivateAttr +from typing_extensions import override + +from distilabel.mixins.runtime_parameters import RuntimeParameter +from distilabel.steps.base import StepInput +from distilabel.steps.tasks.base import Task + +if sys.version_info < (3, 9): + import importlib_resources +else: + import importlib.resources as importlib_resources + +if TYPE_CHECKING: + from argilla import ( + LabelQuestion, + MultiLabelQuestion, + RatingQuestion, + Record, + TextField, + TextQuestion, + ) + + from distilabel.steps.tasks.typing import ChatType + from distilabel.steps.typing import StepOutput + + +class ArgillaLabeller(Task): + """ + Annotate Argilla records based on input fields, example records and question settings. + + This task is designed to facilitate the annotation of Argilla records by leveraging a pre-trained LLM. + It uses a system prompt that guides the LLM to understand the input fields, the question type, + and the question settings. The task then formats the input data and generates a response based on the question. + The response is validated against the question's value model, and the final suggestion is prepared for annotation. + + Attributes: + _template: a Jinja2 template used to format the input for the LLM. + + Input columns: + - record (`argilla.Record`): The record to be annotated. + - fields (`Optional[List[Dict[str, Any]]]`): The list of field settings for the input fields. + - question (`Optional[Dict[str, Any]]`): The question settings for the question to be answered. + - example_records (`Optional[List[Dict[str, Any]]]`): The few shot example records with responses to be used to answer the question. + - guidelines (`Optional[str]`): The guidelines for the annotation task. + + Output columns: + - suggestion (`Dict[str, Any]`): The final suggestion for annotation. + + Categories: + - text-classification + - scorer + - text-generation + + References: + - [`Argilla: Argilla is a collaboration tool for AI engineers and domain experts to build high-quality datasets`](https://github.com/argilla-io/argilla/) + + Examples: + Annotate a record with the same dataset and question: + + ```python + import argilla as rg + from distilabel.steps.tasks import ArgillaLabeller + from distilabel.llms.huggingface import InferenceEndpointsLLM + + # Get information from Argilla dataset definition + dataset = rg.Dataset("my_dataset") + pending_records_filter = rg.Filter(("status", "==", "pending")) + completed_records_filter = rg.Filter(("status", "==", "completed")) + pending_records = list( + dataset.records( + query=rg.Query(filter=pending_records_filter), + limit=5, + ) + ) + example_records = list( + dataset.records( + query=rg.Query(filter=completed_records_filter), + limit=5, + ) + ) + field = dataset.settings.fields["text"] + question = dataset.settings.questions["label"] + + # Initialize the labeller with the model and fields + labeller = ArgillaLabeller( + llm=InferenceEndpointsLLM( + model_id="mistralai/Mistral-7B-Instruct-v0.2", + ) + fields=[field], + question=question, + example_records=example_records, + guidelines=dataset.guidelines + ) + labeller.load() + + # Process the pending records + result = next( + labeller.process( + [ + { + "record": record + } for record in pending_records + ] + ) + ) + + # Add the suggestions to the records + for record, suggestion in zip(pending_records, result): + record.suggestions.add(suggestion["suggestion"]) + + # Log the updated records + dataset.records.log(pending_records) + ``` + + Annotate a record with alternating datasets and questions: + + ```python + import argilla as rg + from distilabel.steps.tasks import ArgillaLabeller + from distilabel.llms.huggingface import InferenceEndpointsLLM + + # Get information from Argilla dataset definition + dataset = rg.Dataset("my_dataset") + field = dataset.settings.fields["text"] + question = dataset.settings.questions["label"] + question2 = dataset.settings.questions["label2"] + + # Initialize the labeller with the model and fields + labeller = ArgillaLabeller( + llm=InferenceEndpointsLLM( + model_id="mistralai/Mistral-7B-Instruct-v0.2", + ) + ) + labeller.load() + + # Process the record + record = next(dataset.records()) + result = next( + labeller.process( + [ + { + "record": record, + "fields": [field], + "question": question, + }, + { + "record": record, + "fields": [field], + "question": question2, + } + ] + ) + ) + + # Add the suggestions to the record + record.suggestions.add(result[0]["suggestion"]) + + # Log the updated record + dataset.records.log(record) + ``` + + Overwrite default prompts and instructions: + + ```python + import argilla as rg + from distilabel.steps.tasks import ArgillaLabeller + from distilabel.llms.huggingface import InferenceEndpointsLLM + + # Overwrite default prompts and instructions + labeller = ArgillaLabeller( + llm=InferenceEndpointsLLM( + model_id="mistralai/Mistral-7B-Instruct-v0.2", + ), + system_prompt="You are an expert annotator and labelling assistant that understands complex domains and natural language processing.", + question_to_label_instruction={ + "label_selection": "Select the appropriate label from the list of provided labels.", + "multi_label_selection": "Select none, one or multiple labels from the list of provided labels.", + "text": "Provide a text response to the question.", + "rating": "Provide a rating for the question.", + }, + ) + labeller.load() + ``` + """ + + system_prompt: str = ( + "You are an expert annotator and labelling assistant that understands complex domains and natural language processing. " + "You are given input fields and a question. " + "You should create a valid JSON object as an answer to the question based on the input fields. " + "1. Understand the input fields and optional guidelines. " + "2. Understand the question type and the question settings. " + "3. Reason through your response step-by-step. " + "4. Provide a valid JSON object as an answer to the question." + ) + question_to_label_instruction: Dict[str, str] = { + "label_selection": "Select the appropriate label from the list of provided labels.", + "multi_label_selection": "Select none, one or multiple labels from the list of provided labels.", + "text": "Provide a text response to the question.", + "rating": "Provide a rating for the question.", + } + example_records: Optional[ + RuntimeParameter[Union[List[Union[Dict[str, Any], BaseModel]], None]] + ] = Field( + default=None, + description="The few shot serialized example records or `BaseModel`s with responses to be used to answer the question.", + ) + fields: Optional[ + RuntimeParameter[Union[List[Union[BaseModel, Dict[str, Any]]], None]] + ] = Field( + default=None, + description="The field serialized field settings or `BaseModel` for the fields to be used to answer the question.", + ) + question: Optional[ + RuntimeParameter[ + Union[ + Dict[str, Any], + BaseModel, + None, + ] + ] + ] = Field( + default=None, + description="The question serialized question settings or `BaseModel` for the question to be answered.", + ) + guidelines: Optional[RuntimeParameter[str]] = Field( + default=None, + description="The guidelines for the annotation task.", + ) + + _template: Union[Template, None] = PrivateAttr(...) + _client: Optional[Any] = PrivateAttr(None) + + def load(self) -> None: + """Loads the Jinja2 template.""" + super().load() + + _path = str( + importlib_resources.files("distilabel") + / "steps" + / "tasks" + / "templates" + / "argillalabeller.jinja2" + ) + + self._template = Template(open(_path).read()) + + @property + def inputs(self) -> Dict[str, bool]: + return { + "record": True, + "fields": False, + "question": False, + "example_records": False, + "guidelines": False, + } + + def _format_record( + self, record: Dict[str, Any], fields: List[Dict[str, Any]] + ) -> str: + """Format the record fields into a string. + + Args: + record (Dict[str, Any]): The record to format. + fields (List[Dict[str, Any]]): The fields to format. + + Returns: + str: The formatted record fields. + """ + output = [] + for field in fields: + if title := field.get("title"): + output.append(f"title: {title}") + if description := field.get("description"): + output.append(f"description: {description}") + output.append(record.get("fields", {}).get(field.get("name", ""))) + return "\n".join(output) + + def _get_label_instruction(self, question: Dict[str, Any]) -> str: + """Get the label instruction for the question. + + Args: + question (Dict[str, Any]): The question to get the label instruction for. + + Returns: + str: The label instruction for the question. + """ + question_type = question["settings"]["type"] + return self.question_to_label_instruction[question_type] + + def _format_question(self, question: Dict[str, Any]) -> str: + """Format the question settings into a string. + + Args: + question (Dict[str, Any]): The question to format. + + Returns: + str: The formatted question. + """ + output = [ + f"title: {question.get('title', '')}", + f"description: {question.get('description', '')}", + f"label_instruction: {self._get_label_instruction(question)}", + ] + settings = question.get("settings", {}) + if "options" in settings: + output.append( + f"labels: {[option['value'] for option in settings.get('options', [])]}" + ) + return "\n".join(output) + + def _format_example_records( + self, + records: List[Dict[str, Any]], + fields: List[Dict[str, Any]], + question: Dict[str, Any], + ) -> str: + """Format the example records into a string. + + Args: + records (List[Dict[str, Any]]): The records to format. + fields (List[Dict[str, Any]]): The fields to format. + question (Dict[str, Any]): The question to format. + + Returns: + str: The formatted example records. + """ + base = [] + for record in records: + responses = record.get("responses", {}) + if responses.get(question["name"]): + base.append(self._format_record(record, fields)) + value = responses[question["name"]][0]["value"] + formatted_value = self._assign_value_to_question_value_model( + value, question + ) + base.append(f"Response: {formatted_value}") + base.append("") + else: + warnings.warn( + f"Record {record} has no response for question {question['name']}. Skipping example record.", + stacklevel=2, + ) + return "\n".join(base) + + def format_input( + self, + input: Dict[ + str, + Union[ + Dict[str, Any], + "Record", + "TextField", + "MultiLabelQuestion", + "LabelQuestion", + "RatingQuestion", + "TextQuestion", + ], + ], + ) -> "ChatType": + """Format the input into a chat message. + + Args: + input (Dict[str, Union[Dict[str, Any], Record, TextField, MultiLabelQuestion, LabelQuestion, RatingQuestion, TextQuestion]]): The input to format. + + Returns: + ChatType: The formatted chat message. + """ + input_keys = list(self.inputs.keys()) + record = input[input_keys[0]] + fields = input.get(input_keys[1], self.fields) + question = input.get(input_keys[2], self.question) + examples = input.get(input_keys[3], self.example_records) + guidelines = input.get(input_keys[4], self.guidelines) + + if any([fields is None, question is None]): + raise ValueError( + "Fields and question must be provided during init or through `process` method." + ) + + record = record.to_dict() if not isinstance(record, dict) else record + question = question.serialize() if not isinstance(question, dict) else question + fields = [ + field.serialize() if not isinstance(field, dict) else field + for field in fields + ] + examples = ( + [ + example.to_dict() if not isinstance(example, dict) else example + for example in examples + ] + if examples + else None + ) + + formatted_fields = self._format_record(record, fields) + formatted_question = self._format_question(question) + formatted_examples = ( + self._format_example_records(examples, fields, question) + if examples + else False + ) + prompt = self._template.render( + fields=formatted_fields, + question=formatted_question, + examples=formatted_examples, + guidelines=guidelines, + ) + + messages = [] + if self.system_prompt: + messages.append({"role": "system", "content": self.system_prompt}) + messages.append({"role": "user", "content": prompt}) + return messages + + @property + def outputs(self) -> List[str]: + return ["suggestion"] + + def format_output( + self, output: Union[str, None], input: Dict[str, Any] + ) -> Dict[str, Any]: + """Format the output into a dictionary. + + Args: + output (Union[str, None]): The output to format. + input (Dict[str, Any]): The input to format. + + Returns: + Dict[str, Any]: The formatted output. + """ + from argilla import Suggestion + + question: Union[ + Any, + Dict[str, Any], + LabelQuestion, + MultiLabelQuestion, + RatingQuestion, + TextQuestion, + None, + ] = input.get(list(self.inputs.keys())[2], self.question) or self.question + question = question.serialize() if not isinstance(question, dict) else question + model = self._get_pydantic_model_of_structured_output(question) + validated_output = model(**json.loads(output)) + value = self._get_value_from_question_value_model(validated_output) + suggestion = Suggestion( + value=value, + question_name=question["name"], + type="model", + agent=self.llm.model_name, + ).serialize() + return {self.outputs[0]: suggestion} + + def _set_llm_structured_output_for_question(self, question: Dict[str, Any]) -> None: + runtime_parameters = self.llm._runtime_parameters + runtime_parameters.update( + { + "structured_output": { + "format": "json", + "schema": self._get_pydantic_model_of_structured_output(question), + }, + } + ) + self.llm.set_runtime_parameters(runtime_parameters) + + @override + def process(self, inputs: StepInput) -> "StepOutput": + """Process the input through the task. + + Args: + inputs (StepInput): The input to process. + + Returns: + StepOutput: The output of the task. + """ + questions = [input.get("question", self.question) for input in inputs] + questions = [ + question.serialize() if not isinstance(question, dict) else question + for question in questions + ] + if not all(question == questions[0] for question in questions): + warnings.warn( + "Not all questions are the same. Processing each question separately by setting the structured output for each question. This may impact performance.", + stacklevel=2, + ) + for input, question in zip(inputs, questions): + self._set_llm_structured_output_for_question(question) + yield from super().process([input]) + else: + question = questions[0] + self._set_llm_structured_output_for_question(question) + yield from super().process(inputs) + + def _get_value_from_question_value_model( + self, question_value_model: BaseModel + ) -> Any: + """Get the value from the question value model. + + Args: + question_value_model (BaseModel): The question value model to get the value from. + + Returns: + Any: The value from the question value model. + """ + for attr in ["label", "labels", "rating", "text"]: + if hasattr(question_value_model, attr): + return getattr(question_value_model, attr) + raise ValueError(f"Unsupported question type: {question_value_model}") + + def _assign_value_to_question_value_model( + self, value: Any, question: Dict[str, Any] + ) -> BaseModel: + """Assign the value to the question value model. + + Args: + value (Any): The value to assign. + question (Dict[str, Any]): The question to assign the value to. + + Returns: + BaseModel: The question value model with the assigned value. + """ + question_value_model = self._get_pydantic_model_of_structured_output(question) + for attr in ["label", "labels", "rating", "text"]: + try: + model_dict = {attr: value} + question_value_model = question_value_model(**model_dict) + return question_value_model.model_dump_json() + except AttributeError: + pass + return value + + def _get_pydantic_model_of_structured_output( + self, + question: Dict[str, Any], + ) -> BaseModel: + """Get the Pydantic model of the structured output. + + Args: + question (Dict[str, Any]): The question to get the Pydantic model of the structured output for. + + Returns: + BaseModel: The Pydantic model of the structured output. + """ + + question_type = question["settings"]["type"] + + if question_type == "multi_label_selection": + + class QuestionValueModel(BaseModel): + labels: Optional[List[str]] = Field(default_factory=list) + + elif question_type == "label_selection": + + class QuestionValueModel(BaseModel): + label: str + + elif question_type == "text": + + class QuestionValueModel(BaseModel): + text: str + + elif question_type == "rating": + + class QuestionValueModel(BaseModel): + rating: int + else: + raise ValueError(f"Unsupported question type: {question}") + + return QuestionValueModel diff --git a/src/distilabel/steps/tasks/templates/argillalabeller.jinja2 b/src/distilabel/steps/tasks/templates/argillalabeller.jinja2 new file mode 100644 index 000000000..d5afa75d2 --- /dev/null +++ b/src/distilabel/steps/tasks/templates/argillalabeller.jinja2 @@ -0,0 +1,13 @@ +Please provide an answer to the question based on the input fields{% if examples %} and examples{% endif %}. +{% if guidelines %} +# Guidelines +{{ guidelines }} +{% endif %} +# Input Fields +{{ fields }} +# Question +{{ question }} +{% if examples %} +# Examples +{{ examples }} +{% endif %} \ No newline at end of file diff --git a/tests/unit/steps/tasks/test_argilla_labeller.py b/tests/unit/steps/tasks/test_argilla_labeller.py new file mode 100644 index 000000000..926118dd6 --- /dev/null +++ b/tests/unit/steps/tasks/test_argilla_labeller.py @@ -0,0 +1,210 @@ +# Copyright 2023-present, Argilla, Inc. +# +# 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. + +import json +from typing import Any, Dict, List + +import pytest + +from distilabel.pipeline.local import Pipeline +from distilabel.steps.tasks.argilla_labeller import ArgillaLabeller +from distilabel.steps.tasks.typing import ChatItem +from tests.unit.conftest import DummyAsyncLLM + + +@pytest.fixture +def fields() -> Dict[str, Any]: + return [ + { + "name": "text", + "description": "The text of the question", + "title": "The text of the question", + "settings": {"type": "text"}, + } + ] + + +@pytest.fixture +def questions() -> List[Dict[str, Any]]: + return [ + { + "name": "label_selection", + "description": "The class of the question", + "title": "Is the question a question?", + "settings": { + "type": "label_selection", + "options": [ + {"value": "yes", "text": "Yes"}, + {"value": "no", "text": "No"}, + ], + }, + }, + { + "name": "multi_label_selection", + "description": "The class of the question", + "title": "Is the question a question?", + "settings": { + "type": "multi_label_selection", + "options": [ + {"value": "yes", "text": "Yes"}, + {"value": "no", "text": "No"}, + ], + }, + }, + { + "name": "rating", + "description": "The class of the question", + "title": "Is the question a question?", + "settings": { + "type": "rating", + "options": [ + {"value": "1", "text": "1"}, + ], + }, + }, + { + "name": "text", + "description": "The class of the question", + "title": "Is the question a question?", + "settings": { + "type": "text", + }, + }, + ] + + +@pytest.fixture +def outputs() -> List[Dict[str, Any]]: + return [ + { + "label": "yes", + }, + { + "labels": ["yes", "no"], + }, + { + "rating": "1", + }, + { + "text": "yes", + }, + ] + + +@pytest.fixture +def records() -> List[Dict[str, Any]]: + return [ + { + "fields": { + "text": "What is the capital of France?", + }, + "responses": [ + { + "quesion_name": "label_selection", + "value": "yes", + } + ], + } + ] + + +class TestArgillaLabeller: + def test_format_input( + self, + questions: List[Dict[str, Any]], + records: List[Dict[str, Any]], + fields: List[Dict[str, Any]], + ) -> None: + task = ArgillaLabeller( + name="argilla_labeller", + llm=DummyAsyncLLM(), + pipeline=Pipeline(name="unit-test-pipeline"), + ) + task.load() + + for question in questions: + result: List[ChatItem] = task.format_input( + input={ + "question": question, + "fields": fields, + "record": records[0], + } + ) + assert question["description"] in result[-1]["content"] + assert question["title"] in result[-1]["content"] + if question["settings"]["type"] in [ + "label_selection", + "multi_label_selection", + "span", + "rating", + ]: + assert ( + question["settings"]["options"][0]["value"] in result[-1]["content"] + ) + + def test_format_output( + self, + questions: List[Dict[str, Any]], + records: List[Dict[str, Any]], + fields: List[Dict[str, Any]], + outputs: List[Dict[str, Any]], + ) -> None: + task = ArgillaLabeller( + name="argilla_labeller", + llm=DummyAsyncLLM(), + pipeline=Pipeline(name="unit-test-pipeline"), + ) + task.load() + + for question, output in zip(questions, outputs): + task.format_output( + input={ + "question": question, + "fields": fields, + "record": records[0], + }, + output=json.dumps(output), + ) + + def test_fail_on_invalid_question_type( + self, questions: List[Dict[str, Any]], records: List[Dict[str, Any]] + ) -> None: + task = ArgillaLabeller( + name="argilla_labeller", + llm=DummyAsyncLLM(), + pipeline=Pipeline(name="unit-test-pipeline"), + ) + task.load() + + fake_question = questions[0] + fake_question["settings"]["type"] = "invalid_type" + + with pytest.raises(ValueError): + task.format_input( + input={ + "record": records[0], + "question": fake_question, + } + ) + + def test_fail_on_no_question(self, records: List[Dict[str, Any]]) -> None: + task = ArgillaLabeller( + name="argilla_labeller", + llm=DummyAsyncLLM(), + pipeline=Pipeline(name="unit-test-pipeline"), + ) + task.load() + + with pytest.raises(ValueError): + task.format_input(input={"record": records[0]}) From b4c13ba5d573dca178992ecd0e6ed3b546b0bc57 Mon Sep 17 00:00:00 2001 From: davidberenstein1957 Date: Thu, 3 Oct 2024 19:26:12 +0200 Subject: [PATCH 05/23] fix: validate fields and questions during process --- src/distilabel/steps/tasks/argilla_labeller.py | 17 ++++++++++++----- 1 file changed, 12 insertions(+), 5 deletions(-) diff --git a/src/distilabel/steps/tasks/argilla_labeller.py b/src/distilabel/steps/tasks/argilla_labeller.py index 46a12748f..a975e19da 100644 --- a/src/distilabel/steps/tasks/argilla_labeller.py +++ b/src/distilabel/steps/tasks/argilla_labeller.py @@ -392,11 +392,6 @@ def format_input( examples = input.get(input_keys[3], self.example_records) guidelines = input.get(input_keys[4], self.guidelines) - if any([fields is None, question is None]): - raise ValueError( - "Fields and question must be provided during init or through `process` method." - ) - record = record.to_dict() if not isinstance(record, dict) else record question = question.serialize() if not isinstance(question, dict) else question fields = [ @@ -493,7 +488,19 @@ def process(self, inputs: StepInput) -> "StepOutput": Returns: StepOutput: The output of the task. """ + questions = [input.get("question", self.question) for input in inputs] + fields = [input.get("fields", self.fields) for input in inputs] + # check if any field for the field in fields is None + if any([item is None for item in field] for field in fields): + raise ValueError( + "Fields must be provided during init or through `process` method." + ) + # check if any question is None + if any(question is None for question in questions): + raise ValueError( + "Question must be provided during init or through `process` method." + ) questions = [ question.serialize() if not isinstance(question, dict) else question for question in questions From 1eb0524d30b7a06f7a8cc8d2e5727941444c1d6c Mon Sep 17 00:00:00 2001 From: davidberenstein1957 Date: Thu, 3 Oct 2024 19:30:34 +0200 Subject: [PATCH 06/23] fix: validation of fields and records passed --- .../steps/tasks/argilla_labeller.py | 25 ++++++++++--------- 1 file changed, 13 insertions(+), 12 deletions(-) diff --git a/src/distilabel/steps/tasks/argilla_labeller.py b/src/distilabel/steps/tasks/argilla_labeller.py index a975e19da..41dd0394c 100644 --- a/src/distilabel/steps/tasks/argilla_labeller.py +++ b/src/distilabel/steps/tasks/argilla_labeller.py @@ -489,32 +489,33 @@ def process(self, inputs: StepInput) -> "StepOutput": StepOutput: The output of the task. """ - questions = [input.get("question", self.question) for input in inputs] - fields = [input.get("fields", self.fields) for input in inputs] + question_list = [input.get("question", self.question) for input in inputs] + fields_list = [input.get("fields", self.fields) for input in inputs] # check if any field for the field in fields is None - if any([item is None for item in field] for field in fields): - raise ValueError( - "Fields must be provided during init or through `process` method." - ) + for fields in fields_list: + if any(field is None for field in fields): + raise ValueError( + "Fields must be provided during init or through `process` method." + ) # check if any question is None - if any(question is None for question in questions): + if any(question is None for question in question_list): raise ValueError( "Question must be provided during init or through `process` method." ) - questions = [ + question_list = [ question.serialize() if not isinstance(question, dict) else question - for question in questions + for question in question_list ] - if not all(question == questions[0] for question in questions): + if not all(question == question_list[0] for question in question_list): warnings.warn( "Not all questions are the same. Processing each question separately by setting the structured output for each question. This may impact performance.", stacklevel=2, ) - for input, question in zip(inputs, questions): + for input, question in zip(inputs, question_list): self._set_llm_structured_output_for_question(question) yield from super().process([input]) else: - question = questions[0] + question = question_list[0] self._set_llm_structured_output_for_question(question) yield from super().process(inputs) From 7b5cbb04cd68de2b0d5080995b0c91b36836bb87 Mon Sep 17 00:00:00 2001 From: davidberenstein1957 Date: Thu, 3 Oct 2024 19:49:17 +0200 Subject: [PATCH 07/23] fix: suggestion serialisation argilla labeller --- src/distilabel/steps/tasks/argilla_labeller.py | 18 +++++++++++++----- 1 file changed, 13 insertions(+), 5 deletions(-) diff --git a/src/distilabel/steps/tasks/argilla_labeller.py b/src/distilabel/steps/tasks/argilla_labeller.py index 41dd0394c..dd4522813 100644 --- a/src/distilabel/steps/tasks/argilla_labeller.py +++ b/src/distilabel/steps/tasks/argilla_labeller.py @@ -79,6 +79,7 @@ class ArgillaLabeller(Task): ```python import argilla as rg + from argilla import Suggestion from distilabel.steps.tasks import ArgillaLabeller from distilabel.llms.huggingface import InferenceEndpointsLLM @@ -105,7 +106,7 @@ class ArgillaLabeller(Task): labeller = ArgillaLabeller( llm=InferenceEndpointsLLM( model_id="mistralai/Mistral-7B-Instruct-v0.2", - ) + ), fields=[field], question=question, example_records=example_records, @@ -126,7 +127,7 @@ class ArgillaLabeller(Task): # Add the suggestions to the records for record, suggestion in zip(pending_records, result): - record.suggestions.add(suggestion["suggestion"]) + record.suggestions.add(Suggestion(**suggestion["suggestion"])) # Log the updated records dataset.records.log(pending_records) @@ -173,10 +174,11 @@ class ArgillaLabeller(Task): ) # Add the suggestions to the record - record.suggestions.add(result[0]["suggestion"]) + for suggestion in result: + record.suggestions.add(rg.Suggestion(**suggestion["suggestion"])) # Log the updated record - dataset.records.log(record) + dataset.records.log([record]) ``` Overwrite default prompts and instructions: @@ -464,7 +466,13 @@ def format_output( type="model", agent=self.llm.model_name, ).serialize() - return {self.outputs[0]: suggestion} + return { + self.outputs[0]: { + k: v + for k, v in suggestion.items() + if k in ["value", "question_name", "type", "agent"] + } + } def _set_llm_structured_output_for_question(self, question: Dict[str, Any]) -> None: runtime_parameters = self.llm._runtime_parameters From 4848dd233c5c95b6df4ac4edc65c936ada09a558 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Gabriel=20Mart=C3=ADn=20Bl=C3=A1zquez?= Date: Mon, 7 Oct 2024 12:45:44 +0200 Subject: [PATCH 08/23] Fix`llvmlite` install with `uv` (#1018) * Add `numba >= 0.54.0` * Use `numpy < 2.0.0` * Install vLLM first * remove llm blender install --- pyproject.toml | 4 ++-- scripts/install_dependencies.sh | 3 +-- 2 files changed, 3 insertions(+), 4 deletions(-) diff --git a/pyproject.toml b/pyproject.toml index 44404c683..adab8d4fa 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -84,7 +84,7 @@ llama-cpp = ["llama-cpp-python >= 0.2.0"] mistralai = ["mistralai >= 1.0.0"] ollama = ["ollama >= 0.1.7"] openai = ["openai >= 1.0.0"] -outlines = ["outlines >= 0.0.40"] +outlines = ["outlines >= 0.0.40", "numba >= 0.54.0"] ray = ["ray[default] >= 2.31.0"] vertexai = ["google-cloud-aiplatform >= 1.38.0"] vllm = [ @@ -99,7 +99,7 @@ faiss-gpu = ["faiss-gpu >= 1.7.2"] text-clustering = [ "umap-learn >= 0.5.6", "scikit-learn >= 1.4.1", - "matplotlib >= 3.8.3" # For the figure (even though it's optional) + "matplotlib >= 3.8.3", # For the figure (even though it's optional) ] # minhash diff --git a/scripts/install_dependencies.sh b/scripts/install_dependencies.sh index 767f6e6dd..0b2277f0f 100755 --- a/scripts/install_dependencies.sh +++ b/scripts/install_dependencies.sh @@ -9,10 +9,9 @@ python -m pip install uv uv pip install --system -e ".[anthropic,argilla,cohere,groq,hf-inference-endpoints,hf-transformers,litellm,llama-cpp,ollama,openai,outlines,vertexai,mistralai,instructor,sentence-transformers,faiss-cpu,minhash,text-clustering]" if [ "${python_version}" != "(3, 12)" ]; then - uv pip install --system -e .[ray] + uv pip install --system -e .[ray] fi ./scripts/install_cpu_vllm.sh -uv pip install --system git+https://github.com/argilla-io/LLM-Blender.git uv pip install --system -e ".[dev,tests]" From d5c048459ada32ba7b3356f3f79c39fa0e61f706 Mon Sep 17 00:00:00 2001 From: David Berenstein Date: Mon, 7 Oct 2024 13:00:18 +0200 Subject: [PATCH 09/23] tests: validate passing questions and field within format_input too (#1017) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Co-authored-by: Gabriel Martín Blázquez --- src/distilabel/steps/tasks/argilla_labeller.py | 13 +++++++++++-- 1 file changed, 11 insertions(+), 2 deletions(-) diff --git a/src/distilabel/steps/tasks/argilla_labeller.py b/src/distilabel/steps/tasks/argilla_labeller.py index dd4522813..d0874ed3d 100644 --- a/src/distilabel/steps/tasks/argilla_labeller.py +++ b/src/distilabel/steps/tasks/argilla_labeller.py @@ -382,10 +382,13 @@ def format_input( """Format the input into a chat message. Args: - input (Dict[str, Union[Dict[str, Any], Record, TextField, MultiLabelQuestion, LabelQuestion, RatingQuestion, TextQuestion]]): The input to format. + input: The input to format. Returns: - ChatType: The formatted chat message. + The formatted chat message. + + Raises: + ValueError: If question or fields are not provided. """ input_keys = list(self.inputs.keys()) record = input[input_keys[0]] @@ -394,6 +397,11 @@ def format_input( examples = input.get(input_keys[3], self.example_records) guidelines = input.get(input_keys[4], self.guidelines) + if question is None: + raise ValueError("Question must be provided.") + if fields is None or any(field is None for field in fields): + raise ValueError("Fields must be provided.") + record = record.to_dict() if not isinstance(record, dict) else record question = question.serialize() if not isinstance(question, dict) else question fields = [ @@ -416,6 +424,7 @@ def format_input( if examples else False ) + prompt = self._template.render( fields=formatted_fields, question=formatted_question, From 4b8903b2407e0432da8653a70e955d7393834487 Mon Sep 17 00:00:00 2001 From: zye1996 Date: Mon, 7 Oct 2024 05:04:24 -0700 Subject: [PATCH 10/23] Fix impute when `output_mapping` is not empty (#1015) --- src/distilabel/steps/base.py | 2 +- src/distilabel/steps/tasks/base.py | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/src/distilabel/steps/base.py b/src/distilabel/steps/base.py index a3040133a..48fcaaa00 100644 --- a/src/distilabel/steps/base.py +++ b/src/distilabel/steps/base.py @@ -591,7 +591,7 @@ def impute_step_outputs( result = [] for row in step_output: data = row.copy() - for output in self.outputs: + for output in self.get_outputs().keys(): data[output] = None result.append(data) return result diff --git a/src/distilabel/steps/tasks/base.py b/src/distilabel/steps/tasks/base.py index 33b033046..d73bafd60 100644 --- a/src/distilabel/steps/tasks/base.py +++ b/src/distilabel/steps/tasks/base.py @@ -127,7 +127,7 @@ def impute_step_outputs( result = [] for row in step_output: data = row.copy() - for output in self.outputs: + for output in self.get_outputs().keys(): data[output] = None data = self._maybe_add_raw_input_output( data, From 4b056ff2aa9dcf4824272095167977224de80162 Mon Sep 17 00:00:00 2001 From: Agus Date: Mon, 7 Oct 2024 15:29:51 +0200 Subject: [PATCH 11/23] Add Tasks to replicate `APIGen` (#925) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit * Add apigen task module * Add tests for apigen * Fix default name for dataset info when requesting the number of examples * checkpoint * Add tests for apigen generator * Create jinja template, split methods and add docstrings * Update string format * Simplify function setting and move it to load method * Add tests for semantic checker * Add prompt template for semantic checker * Redirect import for semantic checker * Fix docstrins for output columns * Add semantic checker task from apigen * Add notes for execution checker * Remove extra jump of line * Add first version of data sampler, step helper for apigen * Add tests for data sampler * Add integration test to check the sampler can be mixed with another generator step * Draft tests for new execution checker * Move helper functions * Draft for execution checker functionality * Add first version of execution checker and tests * Add tests for utils module of apigen * Remove unnecessary step for transformation and rename files for clarity * Fix import * Change function results name to show the original results from the execution * Remove print when the url for a reference doesn't contain https://arxiv * first working version * Fix tests including previous columns * Go back to previous name for dummy llm * Change dummy llm names on tests * Read the answers from the model parsed instead of dumped string * Add option to include the tools if available for few shot * Allow extra checks for the parameter types and tests for those * Add docs for the execution checker * Add new icon for execution * Fix return type for outputs column * Fix docstrings * Redirect imports to top level * Update docstrings to render on components gallery * Improve docstrings for fields in the data sampler * Remove unnecesary data from docstrings and remove TODO * Add missing data variable in example * Update src/distilabel/steps/tasks/apigen/execution_checker.py Co-authored-by: Gabriel Martín Blázquez * Refactor to return formatted json string instead of dict to simplify work with arrow * Draft tutorial to replicate paper * Allow number to be a dict with values and probabilities * Update pipeline run call * Add functionality to load functions from a folder with .py files * Fix comment for arg * Add example implementation * Add dependency for vllm * Fix dependency name * Add setuptools-scm in the script with the dependencies to install it prior to vllm * Another attempt with system * Add tests to take into account casting methods * Avoid casting and update prompt to ensure argument order is respected * Inform error type on generator * Add extra checks and safeguards for failed answer generation * Ensure the error is of the expected type * Fix unstructured generation * Remove json fences and fix semantic checker * Control case of functions without arguments * Add additional checks to run the execution checker * Remove additional dependency * Try fixing CI error with dependencies * Install dependency for the system * Undo fix attempt * Try fixing llvmlite dependency issue * Remove additional dependency as it breaks other tests --------- Co-authored-by: Gabriel Martín Blázquez --- .../tutorials-assets/overview-apigen.jpg | Bin 0 -> 408979 bytes docs/sections/pipeline_samples/index.md | 9 + .../pipeline_samples/papers/apigen.md | 239 ++++++++++ examples/lib_apigen.py | 146 ++++++ examples/pipeline_apigen.py | 116 +++++ mkdocs.yml | 1 + src/distilabel/distiset.py | 5 +- src/distilabel/llms/_dummy.py | 70 +++ src/distilabel/steps/__init__.py | 2 + .../steps/generators/data_sampler.py | 179 +++++++ .../steps/generators/huggingface.py | 10 +- src/distilabel/steps/tasks/__init__.py | 6 + src/distilabel/steps/tasks/apigen/__init__.py | 14 + .../steps/tasks/apigen/execution_checker.py | 268 +++++++++++ .../steps/tasks/apigen/generator.py | 448 ++++++++++++++++++ .../steps/tasks/apigen/semantic_checker.py | 308 ++++++++++++ src/distilabel/steps/tasks/apigen/utils.py | 194 ++++++++ .../tasks/templates/apigen/generator.jinja2 | 10 + .../templates/apigen/semantic_checker.jinja2 | 13 + .../utils/mkdocs/components_gallery.py | 2 + .../integration/test_generator_and_sampler.py | 55 +++ .../steps/generators/test_data_sampler.py | 45 ++ tests/unit/steps/tasks/apigen/__init__.py | 14 + .../apigen/_sample_lib/final_velocity.py | 27 ++ .../tasks/apigen/_sample_lib/get_value.py | 33 ++ .../unit/steps/tasks/apigen/_sample_module.py | 47 ++ .../tasks/apigen/test_execution_checker.py | 140 ++++++ .../unit/steps/tasks/apigen/test_generator.py | 172 +++++++ .../tasks/apigen/test_semantic_checker.py | 113 +++++ tests/unit/steps/tasks/apigen/test_utils.py | 77 +++ 30 files changed, 2756 insertions(+), 7 deletions(-) create mode 100644 docs/assets/tutorials-assets/overview-apigen.jpg create mode 100644 docs/sections/pipeline_samples/papers/apigen.md create mode 100644 examples/lib_apigen.py create mode 100644 examples/pipeline_apigen.py create mode 100644 src/distilabel/llms/_dummy.py create mode 100644 src/distilabel/steps/generators/data_sampler.py create mode 100644 src/distilabel/steps/tasks/apigen/__init__.py create mode 100644 src/distilabel/steps/tasks/apigen/execution_checker.py create mode 100644 src/distilabel/steps/tasks/apigen/generator.py create mode 100644 src/distilabel/steps/tasks/apigen/semantic_checker.py create mode 100644 src/distilabel/steps/tasks/apigen/utils.py create mode 100644 src/distilabel/steps/tasks/templates/apigen/generator.jinja2 create mode 100644 src/distilabel/steps/tasks/templates/apigen/semantic_checker.jinja2 create mode 100644 tests/integration/test_generator_and_sampler.py create mode 100644 tests/unit/steps/generators/test_data_sampler.py create mode 100644 tests/unit/steps/tasks/apigen/__init__.py create mode 100644 tests/unit/steps/tasks/apigen/_sample_lib/final_velocity.py create mode 100644 tests/unit/steps/tasks/apigen/_sample_lib/get_value.py create mode 100644 tests/unit/steps/tasks/apigen/_sample_module.py create mode 100644 tests/unit/steps/tasks/apigen/test_execution_checker.py create mode 100644 tests/unit/steps/tasks/apigen/test_generator.py create mode 100644 tests/unit/steps/tasks/apigen/test_semantic_checker.py create mode 100644 tests/unit/steps/tasks/apigen/test_utils.py diff --git a/docs/assets/tutorials-assets/overview-apigen.jpg b/docs/assets/tutorials-assets/overview-apigen.jpg new file mode 100644 index 0000000000000000000000000000000000000000..61deefac9aca1b784bdbf60fdf5e5904d42fc886 GIT binary patch literal 408979 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

85KHitX<0y)!T7UpI8;G|as^}&g z(|u_aOiG&~ua-LUa3p+qAlVY*$e;aK)6O&2#b}v2+mny_`(jPW$0ls5u-t&Cx4-9l z*TuB!JwRZ5)AoG(q> zfdK6@{nxku*UJ3YCit)8@&8^V`0qhWK2QmdAQ6Bd+rSA>%yJB#X~`JIJIrF#WWbbkkFm{ z5-O!~tvr%nC8_LJHR3#AoDCMP`H}<-M5cWu?dBQg($1grl7Z$#|8$p4Eml#kCPlq+ z27>(FkN+ju2u$+?4-NO!o15aPL1yT#*kv$(Tir=c3M%XOO2G0i=qJ`AYT}lovWuFW zyA!;z#j0H)Dz$(cg((@OEO&n8*MZ{>G0ZVrE#dx?^GlR-)>dVd@nE^e8G&>=__L<% zmqmHG8H{GWM{Lx@tHy3p<(`D5)6>Z9kCcN7X2hK<&=nIDerhqTs&Nn_66)=7MfK5@ zSX(F3HxhX8h8H>D(fdL70OcfsLIwWHU+z7NArPn+A_m6j32-D{z{i)ke&4d=ws|L~ z&gG%9*(d9UEnXN4H|heHtt(cH8Uy9snQ2X+YIy}a=cr1BZ)pxKd;zV~MnqllK*!jE zkp98Rr!s-2qqq^rA=9fAaMZ70r=l!C-tWmc#F_uz@r}?0!bia?vK>e<)d)J)6HNNX zT=iUMkmi@VmIwoN3a>9~!qZ_|H;nAMqQO>B`H$+&mMd?lyVRQW#E-dy@^buLlTSrR zs#REQ(aO$;C2rnvA;_Cj2;q<_P~|g8oA4UB?38=8Imd#ayTh4qbdTns;;!V(ayD(Q zy6Tn|YOEPN@6eV5IzQE3yZ416eynRSs%aXWx`qvoDgZDKoiBA&hFGp7X#mxDeHWCZ z2yJJI^q(F1EC8jT>$otKlD4( z+f02PDW>k1ON0smEdW`f_68H71?#z-xbbMJp@S?PzL(08fU4-(3p4*o7h1yH;+;Zb zUaS|VDA<*9Kj9u{uLk)rnShyO$Awo)e;Y%&GKrWiyPd8_p)RWATlPj&jPJ2APZkA>ai zBC|1_f|8n(gL$=h=TFxkUMjB9Bm+E*#5TByj`RvGCQ0DJ;!>M3Oq13{&`p7e%gi#G z@~f_0-N$iHu|S2bhH!MFvsUAbSC%a{V7)2HKNi=S(%-D9&T@{HzgKR!SvYyT&Y^eBF7x!cxpVO?=7m>rN+4r)~MD{e*cI)PY# zxg2PBW;L^gHM}8^^OeT=1s3J9BvyC(?oV2(hwEOfF)@x=!zIP+@>_>M2rB#q1f&08 zz4G5aPvb7C%T$UqElj*=Cs<;qaK2?{#EsK%1nG5l0Wd$;7#fv3M1_L4K~((?IM<}r z?7N&4z<;GEV3L8n{*ZLsaY1~z=y4T%7lva5a1+!gh~)oLxce7qxvDxD<(W`T&`=v6 z^B9+lqgRc2`8ID{8m2<&Z>T$R=tQbc*N%?be5UOE629R3Q@Q>L&;tV^PSzhPrbD+a5Z@Y4y-OK9$aTlySS|!m^xAm=sAm0Dihn(9 zHj?DjY#J-#wlK}q^?xT1idw7z_fn*1vtZ|b(8-@#;?)QYKmJgCHIdKEPFcCpv)ccqGQbmxNTUoQ_7_k9cb5-D zN`?XRl=_I}mKTU4N#JI*ZnqLNw!k!@arAsFQ1qiy`YczbPF5eUW0BkT#m?!yhvnU8 z9-Y@(lSjcf2);&dH$;J%`dqsVXy3ouOp!CU`_hmy+sdbDdxLdFTp~lkru7V9Ao)~k5>5#-L*r}%0C=rz zESQxtfS_%mcfvHxwa0NEOby(pcDvm?)^Ylg0mPLt!StTy-EGUUqOg^~sOiI-PxkFh zRA(P8Z^GyHRIt&j6@gX@I+D6C(lf_Wcw%l{sZIJV{J#4Ag!0$cuajI{tAgymFu5bD zaat>C-2G1QN)Z`0Sgiycz$Jp68FI(N?A1IHJ zxmEJq6Ohl{qZ52Xx2C4^$e9gFyOCIjsj2fz=$UAY;3bac^=PK8d3PkQhR z62d@OZMBw-TE+Q9%838gY-x;y(VooQiT`NcC0l5CQ9Fo%vRk$8l`KWu=FLoXNbi?svV-Lb7<#L@eB21 zPe*DlCNMe8J%{GlWGr)hJ-7GzX=fdCT+=H5=00G15VL5&Nbo;i6vrG|Sl!-cUblu} zi#2_=RAmZW2kQBQDEv7Uf`EaMQ#EnlLvc+-1m=B~)2q{tO+ z>QN3V;(Q*`S87`j_h25_O*%}BavgK5dihi9;fp%rk|;@+G(@#T00kbo%t)ms=&HD% z9Sz_!;j^5-lv(HbY1*tg8Ux6JT2;}r;|t4L=B9}+E39vpbi{jnV7g~E@c76P6;nE* z?i&%EncAF_+Bl~(yL8N;*|O6CPS@9WyWIW5dYb(e#vnbv6ofzvZC?q( zP6JQdzU{4PczI0HhXc|^oAKj_Z=CsUZqIJ1_2pqB&BM&=@pZ`Y6zd(ng!ecxYK=K7lIvE&idRUnhb{ zLKxy$YHdO+xz^%+(iFEK8Gcj$Lwrr|3kXjOlP>_(3$_Q#56SARGmgHQGOSC3Lbg8E z+mon2KT00&GU|A&Co1go+aHjtdE^X;x{Mxd^BQ~`s{!<4%aP1QnSR+CZ0;p}w;M0B zQI94=%W%m@Lxj!6xp)vKVnKs&>30yTb_>sQ?=LOq3rhXo-0`7WNEJE}q`mSKjd#a{ zwkeLROnNCh@5;wtNT_z&UQ7258d^#qh}CVKEGVsxc-oH!J{IyjZ>4(9;$?eX#!Ea0 z@#ELru6h^~kb(7r>7C^0-B2$w$KUaX+&XzQ{V*i2X-b&I9kZe?TZFTv&@bVV+j#hE zFrB=w7UwSa@l zHUuAnH4d~llI!Y-)$a!=l5ur;&vY7|ebv&aFFFjvNORwpj^uz8{y{i@F2&!|Tr^ z{nB$@c5b+PSK*<%giA=L*5i;4=z;Rzd^SwD&w9|w_QkiJii4GkD>t4iU@+o+xyn^B z)$gjIQj2bUzEZ6(i@IaI$dLQd1`Wr@hUR5K4CNm%R|`qL1mTJqWO%~T_W8Y)cn+~c zu)Q~AtAdo*R&T5z>zVM(H`6`vYm&j}q5p{+Ft+1^s{;&^k;;~%Q1Sz(S+!aRNI?b72Oxz+EV#!p~Q^;BJTu?Bq6z9f4^9 zy1_+9HA?`>tOFoOg1KUVp6ou5!X(%Y+tn6U9)I>0scjJDF5j|uHKo)6G zHS+J(3wSn|b~BFsa5tjJEy-(tiMHw!4fWw!5aE)qtT&7ar56z=6ZN|5q(fs}Y6oC_ zI&FR*TSjsVs3P7PY*L7k}i+EJk_yhDAiXVyff)pXQAS*c&NB*u_cG147Jv zoYRUdx6rFLbnADU=T zBJuYH|9|vjp^#V~AGL8Vu~+Iaow<1IJEeNmVnScb)%;`ro5k4;$Q`V4>MixAda4q+VcY)IP4w6Kq$#4qyz$kxjNP?k|25 zd-s_;4Cr4__0e{#ZTNVpC@!fU&+pQ&&oT^M8#=&$OUN|SY}dKE(S1Ta;clhJo+}4I z!7dqG1dDaorXNz825u^xyTFzCzGS91=&-K%@V|8hYyVy@{{QA9An36OVOm>=N0v^R zZEuKVTqYhoQ-Z$VL{u}ixiESBs1RO`A#s%KudempK`f0@Zyi9p73a2Je`u{&R{Ah) zmHWElxh5@!{x>TytIY2Pa4#}SUG=1$4+>Qn9-YLielqFO#!Z*C4cidv3E@VuUA)Of6wO z-H8ka;-csoz@t#h3yp;@sJ}Cl+;te^_m45jcnUMLSh=URGsdbZBEOzVpWV_dZuRMqM9Q6(*d*rWxAiEmACeoV#LKh5doTYWyVX{;(>2;FIyAEC{2OI+6svAlapY@Hat2%eN$C*52|2 zReM(^EJU$$?maqZ@qy`Q4(LdS@H(L85I!ZTz+~85^e*^9BLaA=ir^6hx20rZh1qc( zba&&qtD50)2P(sWo@O25 zXdcKTs|Le=@41}+cRmO0E7;HO_!<-k;AdVV;m?ukRb|lFkkqFyFUkHX)!7W|fu4PS z3H)kb;Q}46`)Lin&M-@ZaC>RSe414}hQ*a)a?;U{Hw!~0f z%lO&n-hzqPx)PL#vC!OY|2!CjvLKTKSCPOB(`wdHC4m)jDjsMy)C9#XZUpFYK1$xk zKAbw%ad_q2JABu4uk|AMs`HLX>$GtcxtYL(R|Lf(=#^#h?CgSh#Hlq8;_>6ywy4@!<0)hn7>RVD7bfl*RdpKpeOhOxT#-t|>x@Q(jlZk^gBj?WTxe1lL+_ZK5 z?0P1#=N30JJ!Rd-!sPo6-}@j(KGPdl(!ZdrTYe>L&%MS5>X2K|4(M=VHI`-0ijYa1 zjMi>=C@y38ZR3;U^XNO>L9r9-m}_51mw-Ms2RS#;wzRWw!^laMGs*r!mD5Z0+NlKH zzO!Gq1PQmcz;*@;pA#AVQrj5KJ}2bDENpxvF80`Mp#3>t z9KXc%ysthj7zLY{fmMx7cf%S~A27%04U}er2T8MwvpcikMlF*UBF4VU>J0I*x41Ru z-zc2*LS>N*PEAQ59HO&`AceBBvLJ*ExLlMDCA0Hv$fRD>HKoe8$#tr5n2G+jgHvx z(A^EQa>?&Bn>tKs#nw+g9l@5ZZ99hJ&*$EHL&(&FUAz#M?+)>2 zz9U2U?GlTrhb~#PyuXxxh#Lfj zU)Nt`{&D315182qWZ4!F;0xA?pYGQlc|)*|9`N8w*$lDQ#g3?`#7BxEa!lJ&iIj)W zDl_8vgv}?4_)}9+jph)8^}G`FCD}ZB-bzt53`LX?!H4dbh`HKiAB9E zp`tK2Bl}D+7hJiFjMP1Dg@wP=6(e{D- z))NvL`T3Z~ARMXpwQdGp`lg-AW+o70nV^eVrQPy6Rn|CtMA+|8RV9@9xg!c4lO^i% zn!tDRgFJM${AjNNTGmFqsTb6>xQAL>_eV>}6X>Rmu2tiLt(Sxs#YT=Q-r93OZgfAs z0UVukcL?VY!L@Znljcut+ppbak&Pb{pr#f4-K2BoEt@!4ys{vkvweIPj8iW=Us*V_ z+LwF2r)Q&_k=rbwjH>+`u$SCV87V)5Z{kL={0U+6xWl)89p4^{z}r<(QZ>eOab z;E7SUuTpkpX;$=|(!TAj=jiY|7)#h+qz!H1BG|8X2`G(S8yLA$U~a{;`M9PYg|jEgJS^MZ>}|OqO2>Ask$WaYSFrYXj9VoZErU| zy;AzxgqwZ5Ie7lb1!HIf{*C3$>U=HZk}R|hbimyUpWL=!$F=u|>dx-3ql8dcO?RtQ zyxitTUk&4=5p%B_4c_^jlRK7TKlX6u3UpLS%o8E>f_#_}cETmz+%I@(q#fQZFLXxT z|0Ot?Q$MM?RH>LC(4rUJsi)8N&8%~$Hu!Cdp_+T{ufI=7LMQSVvV2}wS5f*4_EI|o zePB-mCI3(*vI28=wR1#;O>7T3nhbdo2mwhQ$s?kIbq@fTxTS;?`+wK%V!0`(7y&1M zI(Y1FxjNr?WLvSsYI}(4zO1Rhe(Ej(mvCc^EqhbE=8Nj&JvFIpss9=nUYEF}u$dx+ z(5511;wbrK6_}+-jKwuE}gGMA8#{&FS(&iR0 zW(Q+AV2Tx>9&QozwFXCeHe2f2=oFg%7I-*Fxz>_`;|w85;`-XW1!!@`86yW)H#H^aZ)r&z+)+=Z_?cy|%p?dMeqTD%RIdAF z2hyNVaTs6m+-El=yBfOJO*Zcy`{zYL0DquDRjE@(f&*Z2Z3f+y4Q2=)g6+K{0E?!y zkVj^=gEbwFWCXG`Gf9O3zXyPi!b_SYBmkia=sPBrE`UzY)KOA?z={QK14ETi3}Q>S z0ho_{1^q2WVy90bnc$Kfe)EV61@LCLlgbV@yAXR$#9eY!I*jP*G>pc*$UZ@w?kEif z>ynrVwDaibJT9*Q)SEn}8j;G8ni2k;vie?&Nawn9Ngg3p*E3$0_Bhz}%-=k1@65yL zU@CE`opW!M9Yu;3d0${3zF8czsjIi+-Wy9(f6?b{`^_Qrbx#|x5zMjoDL3&e`(n2r z*f{Xiz5J@Z60vBAxK7SNR`InJ0SMxdRL8m)b}#?_C$`XtJt*UJMMUhlmNj z`UO8;jB|k2X9kH7$1NJ=pFdMWjy2L;`vCEJeqV>0q|JCs3sr`817UAl5G3c3a&5D8 z^>>1W@meX8!?r<1g-Q?OGkywrv>H}^XS~NijRH!sXJe*l7x4REHpYivXuq%+ClJI_ zm-k6Q!^r17(Npb5`LwnTiz`tit?mW$(e^IiPOsrr5#HNK4dFbA8lx41uapYs;6cb2 zlNx+k8!pg*kg*7k6B)GVKdOA#;!(=N5SgwmUJT^t0L8gRn011+Nw?S z#&uRd^>gp~{7vBf8I+U1YBKU}8g?Ls6W6tan9VEd=@hxL8?NQ*mxozZEzP$(y*J)I9NTs)} zXZt}vHM;%OZx;{SiaC`6>e1?=?r58_!^wkt3oBL6_pWLM4%TqL{<$b!*SiGxH;0|x zRbvBH0rJnjPu1dOaN`y1PpAM_nkFjneguUc;1z<YZCVg18OTjB9sl zwuk4e9p`ZRVf9}SHy+O~M<$Yg6fpldDPT6!S0*@V9U{sUafj>@BkVFQT%yN9!M?s( zoqwn}fgKeW(WWX;pVW8%#=g0ko}gq-Sc?2(cg0T+v^{Q32sNHH;^ZPG16}Jk7LMSB z$@8z5N|!N)^bcOWD038i-S#eakV~}8u4l9Qpd3LE4hqYfCTWgN(D<-8J}Uj*+kLg( zzI8KP4B%*!5oO)B4(i2Ui$1C=oL76m4fsV$zS8&EI2gwQ#V9#FSb=mOFdx2^@CL#n zlHwZ-tm;-@qgHl4B+Hx&j8!#$Qdk=vG{bnzOHMH*1yfUDlP zcP3(6AU%zNBcNHJ%P$(&X6I*nHgWE`!f6i5*JDIRmn$=ZfP3lC0*MZy(y)(;? z#kB0~za=U8Qmft24f!E>^UAG+EGowCqxa;{9SWTnY};Rkp3TprGVSJMTMRk9L!kpi}Y&HcE_KcV|r6tJTWW?u)82ckq? zl}5)o_jfXj2GH{mF^(kR}a+Ay>ci$zw}b|n+p6mp;OV|uP%>l&|fM=j%L#quSSlC zzP>ua%pa3jrz~Og!6T2>{7dfaZ*p)F?Z@ZKf7C9)1Ab4(`p-k{VWbPSvva?Fo3to^ zx%4V_cNd8JA;ExdxElKs$kij6z}m{Gdex0%nt(9Kvb1|Bw+m;ra!J@pkgp&~+2n%z z(2nRBPQRxrIT=l9cvx)h4KTpLw>~yLtT2wBo{y!vCq!eN2ykx&=x}l&qJ*qPezmJOlF1K` zDn{KO*F#x4iqGZhhLla`jt$Xi$=9pZoaDNg9~52qQe>#Eee55AYSdVC*utMm`(ln- zn#WZ|12yo*ql%tTkV8N{HDEEEEoQITAIr`nYqxrqVcU3q`w$Ti!s&wzXb4PDd|mq> ztEJPe7v96O26jO#=hNuen!*)qu{77;+)q(zcrJhflKy;QuMqm0{|7V7G7dhS@A zSA2Cow;ak&?jU)}1eT-@W&3=y7MVzFa*Gk+vfjS9WKKt2=+@=+7cM4u91(t= z941y73l@3)L|O?0#bhUNZNw^bICRTOzRlPH)s#Hf0!Ytf>_Bk3yD?xjSYXSi^hjU6mGRH3fPF@^H^ugD?1|U`pl2Twi zh>7bUvH%#U#NOlp#gs2_Ga<*A%n{A}v@h%MZBHFYF`GZ`xwgFP;MSR!52{6xGBDBT z%{hRNG<<4~2Z#W|fR{?*ARA)B?+?{M+Jz&gDJVsEvlDg*7|E{(A$@@_vj7cp&DChg z7QlBR>YVcf9`Y)kfbJn`0~Sk)MHHs7ydt1B_M@HrH+qZX+Sjb0XI<{y>B@R1^0FC^ zEo%EB^G?f)_hb#d9TQEIhhC7+1K`ww;7Q4!vA;DW{+d3b5j6cJ1G{Vylx+SrdhbS? z+S!VL(v9M2W<%eA_6BHJ_1G}riFl{?=RAjm$Ev8%UeNgfYKs(;KU8L=TjccHE3=qk zN;t@*cv}T^{Wtb#e75-ZlH`q33tVkcp<|KSz_cWfn~>B%>kq1_wK)jql)vcl2L>2?}&oiYrd)QoMLVnuqf#;WD?_a8jZZ~RvI+Cfdo+*m{1s<1Wk z%|pu6qXt$2rVrLusu#jdpUg?t2X4dv0)X1y6M!=GE`s#F4j?(D9&)xBFu?`5aMA1j zE9l9JhkL368-J+4wzOiV!8Pln(7J5AwLto*CKc*j%m-W;yZPrJxJRO)fBezLbOZKxMH zYRMoAV4oe{lZ0?bl?w@U73mcgBn*0cI;H%eqt9 zo?MN|X4s1J)0K-%>F%BQBkv6m5a|`N*O?TIth5*xg{D^;8>*Fx?G_6kg*mDYx3%IIh4$*5v6@G2s z0)sS1k>Vn$)$l{zebC!nfpKN&1@_^?K17ve)N)YP7{#QE@zEDDyx^Zd%*u*=#iSp| zWS#&07k^l?@+F+zhBdHuWxobVeh~-)L>O%sp=4^{H2ozN6%QSS(JQNz``WgFi#F4M z99PfUb1GLxLdNpt+Ym9uhSuY+Iw!KdK(;2*+Q&nXv8s+A-yoM>Be&PJ^|06)qL4?f z!ibw!0^LS~bq*-!)hiky$9IkIkNPgtF2a{k|G3n+k6(Yt7c++xU-z`-$ZDx0^T-a$ zLzxmvc~XmnhHK-3OLJ{;$?e$gaOGW=Dt~nEL~Abx2Uu2t`#kCqO zOwbSGA9pLd>{KrBLv=<9_A6YUK99S_`AT5&85Kz{(CdF%>sdAvGf}q1n`|rkvCl?) z#{Wh7!Yg0wa+kjjA2$Fb06zl*v{Xb$56a|=J z;6FcM);VecW`ms1+((1rOgq7I5C2e^46=&MlkS|at1A+hgF9i?5_^4D^_s_(1wXI* zdj@+A^fLg!+>Y&(#9dGnDjxk0OMTiF-6yn|t$rrEbST!`l{k0s0;9ZOsj3Rd0jDHu zV`Yh-{1X0E6dEG@)2CHbMDLZ^Kh70i%(TS(-fQ0RAN81caN$c-i-pGtcAQeJ3Y_&Y zX#lSY0q)DvZUFBEydm{3&e%u^3a+rYrLUM!S;kcqu$H$mx%hk<6#jku=%7es+r^yB zqF}(cUf0n5*2_vtKjCM6{p%!|9;^NUyGR!kc2Ks8>NY%*wPiyEv63y6b+bZo z6FjrCDTOo0GT28A@ui$Q$ELXWvZD2&6O7!=Tk07X>l2(Sse(mXfYkO6E4_OGERh`T z&UL|~SY6t&aT76AV7VXml0Zx>H8;`&zrbu{{D%CiAf)lnAJ@%RfJ0DE*Jk<*PB3@*ApM<3;kQ-43p8K)_1TvBZYikv`@Q@!XcmInRv_|^p4}+@t8CQu9vf%Y@!1w*E zk5!x$oUewNKKyT49%25k@_gj~PGb3M)5|ZC{^h2J@j0evV&2wRfej4q{Ppgbs~+7S ze*E?BJz6-8MKF1jZe&v#HWU{$sAijlSO43a7moOhLH5;8Fc)nqflycF0~~jX?mi+c zn0JgMzF<5oTl6r;KJmNy?44S=<$&Lfk^vgE`15goA7_#(tsf4h@k3uOga?H7Af3S7 z9ZR2$EAUcUazRSDUA)x#sprDYJHhaYeF$TqAkHA-!T^8XR0U_E!jmzzU(5d~h6@O+L0Z zc*mFnO$d&=3$hpyN|LvAw0{{HD$)OvivNe~Nh69fI(NCo>c^*Yp64#D%oR)Viqa>q zN$}1Zv;d*IL;v}>S3pei)T>-tWrqp{pc7u2IoIhH5ezcIrZqZCV@3AsS3_5JsFLVb z*_RY|w{7NgARaHq<#=MFMx{+t4o=IJ`zi9M&}#GrLRCl7&ah0`fZDRc4BIW8Jdf|p zgkn zqt~6XhT_Ep-ymt=nQclpF%k*K1#$iEd4w|y2yNo4`{abDywCAckr{uen)wT_BE*FN z6!3FI0>U`@5+2!$Cmx{2tibnv9f&o>vFg{2EUnkh3PlEMo`XN4 zU9E^Z74#k6hi^6@bF(8pcegCwJLFRPi@ZBo4Vjc%I1GV~yY9-G(axS5=Sm=*I}cp9 zf-s|iV^-FSIocMkH6{I=g+`UWp%nv_Zqfy-)kD;S@Y#zmI!y58ng!I4&QS%O)B9hu zqx#QKT-b5cTtd*fL!4xrpASnHBJ6#zdP@N06a@K27H#iF+EGBG;Q%{58=~`fcDlkK z*BbpInr<_gBe4TsJ~2JXA$V1-Lyuc1z!lYMFahfl1PbwO;I2uBj?w(0*kJX7^UQs! z=q+s|Po+x#ugLC3=m9@02~sDz<%ZhCu3)<6-kON){I=Wo3c525Qdu!L@vpmgJQ+dk zfW7}ROT*#pU+?k)`^0{$Ffg5Ueq%Q6)|;l%=Ej1@b7-th~j}U zIM%qT!jSR`MUGxM(4F5uPzmT4Onf9!!s{gqv_RnPuNavb4QONL5y|OQyHKzv5`ELp z%(Gn}c9}ZXmJ9h}dEdi5cZNs7y$P;n6sOJMO6;70q#N{;0RsA)e3ItKHc4^;5ynw< z9^KSP8Lz)LE`LQMTyi$owlR^iKnenG#`N3seP}w$K&I8qo{SM8X>Ze*4nRn*nhHWR z;@MvYgtHUu@|`jf(W=60#NzHC=#y{5u0Np1( zL9{1ul9cfYVa^p4u8lPRvaxjaccKd}4EIL(O&jk;o;k)N8 z2#d3D7jG96rLyXJUi=5I4sHn`uuj+DQWeVI`$xFvWBMkOm157hIC%2HhE9WA^W zC}&$CnwPPS_H}1*7emVHH+nw2qnEAmPb`isoEq+Cq+xo@n*OZd+^&N4+^foyF&XWV^dFYLqD_Q>N)J;4kw_n-;=YpXb=D=`5u*EC4Yx}~ziE`#Nq(zQWMHj}^bJ35Mnd*Wl&0@3~xBC9%N0l4We z7x-ZdS_m@#d2Ww^0N}S)fIIj3@uvPV@*)J%L(ByhEzt{>PDzQ&i)FS1rcTZd;+9%- z5*>-WIte>|coYP8tp?AuHF7E$c#m+rFaxu~$;C)|vX8i?VSR-I-g=ANTm#f~jp!7v zIAn*yP@oHe)SpO?$uUi`xMQf>jVUYKCAqrC)HrIc26^f(%xAR1^Z5+F5 zd6}aOCgp{&YuhWECwaiNto<7W0syTVm4B$v$7qt8bD#{c>3v9gxP(roON8I2UFK@L zBtc?xTE0hOR(M8d)B0^xf1cl)Y**#g%mWYyqSa89Ph%lt?mLBZ%mFiVp)K=G>!m_h z4aQxzVWlwT?F&Vfaed=0KI8~M5pEx#(RU@E-t`@_r*w~?M9@h)mc>(t;`Cmo__#j4 zh<*=M!;oeifc8F4`P^c>Rs-HRfp-`cy$vk|_I1XjUtTGq+5l*G;#QY-!;l9Fe7&BV zWwiERMxWVfA(vCAp17S@fiBiFSu$L{E4Wt-kd$$HZgCX$Z!QlOj*zyCFBX(O(qA3f zy`^wgqPUlqGW9p-UTsxI-_Ia6z=^5}!Zxz5wA`Pqz7ClT)(Zr|z@k#|$56u9yjj72NQf45v9Ai|2-hiS@?( zHt?F*8W1?sa>KLo*K$%#Q4nUvt%ckG0{Oy^Qpsh2qZP*#!EKSPA#ALi*W3zhHFGm< zPQIU$sebh3eHqtB%)MW@P;*SQz6E-C^xJATZooDsyx!s57H>G0hC5f{1I7-TH!5(P z;88f?$D-7f#bR+ppbBt6ZWo$>g=_O@TmnjUcRpzqgHz(DjC-bysU$2{6J|l-0+(PB zd5nS5^Y_HQDW1=PKOcVmTCkO+;2Z4+`?E{4RRdS*uZkc=>qpwW>^H`X>FbA0s)9&p zRR2!N$7sC4x4)>v6d3I;?T$->AU9w5An;S2Cn0JKuFl@Kr(P2ze;(EINAr=iDf?r&@(H0 zq@japK%7UA2L>Sv=P3i73w*@RJvFv}V^h*DKuBz>6rJA@fAwoolr(GTHnbhU6E2hF z{!l%gf{eUjzOz-hG+4V>m3DXrtQaRA%p7ZA_*LBd&=2$yvDw8PF;EqH= z!o4dC0BU`1&{YEH)WgCFn7D($TbGXO=J+v3`bfuI4ueXem#KrcEz_aXXPDe!Wkk@n z*Qp}hnk}ZY7yysnN?lIeb}cqVeU$IJTKgk4!vJ*c3#3i6wW4fE<2xiAEl@4*=@!Xx zNg~ZIb9`@xR95zkFthR_oXeS^3@rX#*n=9xHic-tLE#qpDBOS#M@dFL4NQ$cn^NKL z*Jv871fDoLxIPl=RGV!OZ59lnk1Bh7kzH)mXAIj<+5%Lh6&!&Etg6(sZ`r+g%>z9} ztcvRQ-aAe2I(}}0rEt4R>Q@B3w|@djcg=T@q6f1ASf;l&|4``-SQ`S>1n<0PGzkI} z%a<%Z6?`xw_*yzEdj2X;zh!w6{Jc&|`L;~LX-#Vn)ywl#G#haSt>*e=^I&uYlts6} z?stYr%1-%5o3roUUp#*u8a(pOdr76TQ(uZx->{g=Q|8B>v+?!!(WzKhcySN{Jn@&z z^cyooPamF^(hS5@GPi7SFLVGzg|>5xKvxy*R3YYb9z1DDwutBYL>bDYKU01#!`tuX zgEuM8HcVJuDI24jJ$=01;wgEQiyOwtVls%?H#=md-bZ3_zn%8+0&9lS$( zLvE#eS+DE+PA`?lDH@*~!jn3UCHJX)@++9(rsAFCMgHrX4=~P)=#kxm7sYisXA}E) z8QATd-(2z<@4r^oRendiJMPUwY127f;UL~*I0_EB1dQU<%C*gLl4OPsqyz}@gY7M% zLy{k>8?4k{Y+w6!xuPRe{JEX_?B|O&?wRyV)j6tCpL$WoDLiAOVU-f>Sq(w7EvimF1667j2j5hviSVAs!-{v^ImD2F~ zHWqS|9%w)MtE27`bO0Op%LFUry+w;wpGBnpXxVo!k=UvBYkU!!f@3GG_K5ISk$77|E`l9$G#|7=vMcOwau;Gd+bNhHV~}^(1ec*RGEjT zGmA7Y7=PWT8%!JdZU_TyNnav74!#!L4Y?F7>dV;*VIpai!KEjB87Gm>c6GTk4oP=3 zm&o`4ACs%kEM1II`O4?!2c#A-Zw>&BprirW@Gv-kA=As=ky{UMUQBsn)ZOyGvG?9l zO|@&@a1<2<1VuVRP^uJBkRmN0(nNZd77!5u0qG!+AP7ho5Ks`J^d9L_By^;P-UUMM zB-B8P?|$Z+bLOo1=6vgX@0?j{-g%!tAbSO}lk9!p*L~gB^(zc?j{T*43LRHMMkT#4 zVudKHl6QqE!V4+$r7&R7Kv`TN&(JYu=x`XHnU-DdtiAT=qTw8G<-q;B+6?X++11{w z?)U9zyh8}w#jsIGMPm%+L{390?jS17cTw!3bLnEnI#!I)dEk=|=SM+#oFPmKz&KrO zlrM+kTUyMup7UJI&9Po!FA2%4weyTubKYo!Ut*Qm3(Ocl-U^vVfcIX?P?7>S zz^D3$>yWBlVwy=Cm~f$n9F{akkHNOt(gkhNvaa=gOUD&VAS2 zO3z5M=yf8^rtvZJ^56xZH-~Yc%{}x5L`jqLO2T9kfMma(B~up?|4aR-^!`{Ba$5%2 zFGXzYH5n7 zkfy<<8t+L}EIT_#_~Tp&QQ*uGS5Cjo_?u z&s>>w_>|~x8?%4q=0mi>_s^cj>sB6%U;wY&)CVIwE4QYcBE#M`M7`kEjCuyyiWtlx z(!72Bv`kJO2ybn8C7V}?_^7tjj^g~L6TOcjS+5|WW$cY~fyH?P^}%1bjB&7FH(?~&ErxpD=Ik7Gzrs zc09`HmsgZP!56uLl+IBY7~K6~+9&EQ%WWY=BW=Ag_+eK+cNa}W^%6&b3+)%6jt67V zp*}Kj$nWCO{k}HX z6j`?9b-p!8uHZstfeFoqzwz|m{a4>DhNQhhbffi+S5P{jTN*%VPcJYdWd3($RW7 zJYT*g&l=Qwmi)B78!J18faV<{oQ67OF4G8KgikVnXQm1h-a}rTl<(aAgjRN-XkB4>(xt@D}3eASLeB#?Q6iGCt$&~k-aK+ z>ZW!TT-1#)-tixGpF)a--3kztJlQ1Me+NW3RuK>XT3;-D)kGKq+?2ioFb&u{xH#hX z*k3Uh|1Z^70EhACbLEF3u4;ps;u|&Jrnt~z(pCrqE1?CQDK$)KNTaNO^+>LjWK%8c zYD{M&=y=1aPBrIOaN(YYG{~fh%uOn(nobz>b$uK=DC7EJ=jH2pPxSiXN(0yuUxuS= z*WW^o=DOaQS7YwJBnJYm0@eFGnd3IZIbR3Ujj4va<@SOlKfd>?v0k@D4VU;WxhwOn}^3o$e2n<800F^=4Maci(?-uJn5iN4kmjNd+l_|sTE8+}F7+7>@y%G|CPUmZ~}_q32QD{UczV#%+}} zQH^LSL%Iygv0@;Xzi3gaRefvfunA?18x86rYJp%TFW{G8JouOo>lxrWK@z9oo?*z$ zy?Q0^*kdb<1*=060V2fm$+7HH!9P!1hvwfKZ5YOWkFQC+o9C#;(!3KGIYNQ6+4dE>Elm@V?G~0dgY1KJeemee4@lLNzJB^?Ta3I3v#(=GTGQ{+6x9xJR9q{w8t3>5mDY7IM zmQrjb7AnQeR94k7IN&!yZ|%)qlsW);t}}Vu%B(l{Vvg>>cju<{I!|(eY!+?kzT8?@W4+{ow1MH2e3QfVSn^(Xg5xoLg2TH_{v_pJgdu)h=txV`=I%g-c>jwhx)88 z!iZ~}4g;P<&qLoxNFO4pe7PT&jogsU`o4EAp<}Y&)=!E-VM7V&n3-dgU{SE*T_@{h5rx3n>ABZexIn$hSYPp4b{IE$ai=3 zP#=zV?Jn`?4RFPpW2D+Xwa>*i@aArsJUSZ{u|3ew;0cvJ!zW+!v|NsxAQwQ36^4_ZXoCHPK{@+Nu|9AEg699d=Nyeq(M?IL`q#9oTlBnrj#s5_n)aGUa6)C$pt9yrcIm|X-@+6J<~5WH8D@a1V(K1u7ZqoWk7d?uC>pe$3o*OG1>UJ2j$~0M}Q{obf-+# z)tIgZj*^`_ft!Vyq5S@lh6{_`W8vsJpRF8%w1WxUxeD)>eXkb1Thg|6@j$~zfLJsq zvc0{{6+1S>8^&UI^QM52kzNo3Er{X^qXeTt!L0!870*{A00fuz)@z}wJq!kI*xq3E zrSnfr?VjlTu_GIQvjK<+A-9%GElI$J8?*DCkDsU6MPwwgi`Ql%565_Lp5Z}u7Pg+Y znk`*RPz7S-5srnnLc&qB&Kbi^uG$FtIbg1vPU$x>|VCEIHbeUVz0t!7t;E#WWIsSvjoPYQK zVb94U$+K$hQ4!vY+f2zr_Ty9r5d4nNK{rYU?(~5g$F2S9F6vP@|476txQF4)7POpk z5`Jz|l0RD}{L^m`{H79cDNV+ba6VgJ9w;rG3WB(oJf=gym(!6F8VA3eZS=zf1+_a6 zf*(+2Gdhs?|ERJF{=F*Oe~P30m)r1n9x2!C0JW%0aPR8x@qb2260BMDA~$mCi4iZt zC;4pID=0z~-*&WxCR!e=c~wxTYES(=-^>-|LP z3_WEUO6qESUfiiYM~hRYU0=Q`iy@C$C)L3%qpl zF|N(~7~O#P$H0LaGW8i!#MkKu^S1u{ABn3F@g2F<8W)+T^;7@7vSTC!AA?a|h`AVL z)OYwvOnGB&RtJA&edqk^^Ni_^kKA4*_pUcDtUf4qGWZ1siItZbvv3E~={g9lL*F52 z`iu9R8o`R9bmB@)^oU(i>)9;SII?e8S)u`XzU7{~s=A%E@>!W+x<~lWRbyR zA^9~tUBkWk`jaqQ&C6P&#ak$dayDKb!>>Op*!cJvLlxy*IGpqWK<)1yUe{AOr$HmY z9ean-NEJj81Ug{k4J^GzQ=p^-4qZ9F0a z83`s+?A-@)_qT;xh2I+pF$-_ul$=@KK zl%9RH;a6~Cv_rrjfc=17;0APnYya*Ycr|w|z$-6693Qwq2X_1}dCKv*M)p$Y#|>0{ zH2BH&LOKu2K9~hiQPP6lf49wl*8 z^!B@LUJgxnDR9^v#z{lo{z2Ge_sv>R3vZBE{6VMwZQ#)9`}XbIBFUb~V8~L;K2QHw zqwbV$(#*jo^qUcJo#;r)$i@2+6aobBIgGWjs}{kABhxHxDUZj!AI3qslJ1k&I9rcW zj!f{S3U>jX*KXA9=lfpjHwm;^iOB@J{EJ(&d$%WHu|g=Z*5PHNTOtx_{jVDB-+A$e zwRi88CmcAy%wYTj2YOIGyzJ39o?`L7S5@^G-!K=JRAgm|hMx((LI1PNhSsz`#fvJ4 z>FKL8awaKM`Ux(AM+()AVo7{i`WjMI#2SV2Oq6UD1b-{8NtQ#YM7Z*Yzup^`xJqRw zmv^nBOy+L`;0=X=MH_J;2tes&E_TZE7)4hFt<-tWFf-X7#-2~%DayK$N9cay(c#hV zWN^utI#ti%`uCTsm&{=ONe}0oGKN*$$g((qpaaxh99P@PGXI{GJ@NmLvV9DIYR;zs zia$u%$w^4ZtA9(%_SiYEB`oqNwM9ylH5K!1TX2-#el3Y{U#A&8H9nu$NxeKM$6MIt zP$H9J3DJ$)I=;>D?8H~(`dg63#Vy5i@v%VvhZW_B3Wc1NQ*pq=fhCAODPu)`S8J-o zI&AHI$>e#dv*Fy|xX0p(3|E$xeZWV#?34cR7q$L#%Ih*h5RFk`uRcMv*)Y$wCmUBf z-Kb;Z7z#Pqap%}h(2JDY9$24wcw`pVHD*T?Qn^$eyX#zn`doB9y8CO|t5%M;ivuCE znd!GQ_S!Aep5FbC-#TTKpjof*IkQ|2Qo7zKFyJ{yzc%DI##U7+<-Hs266Q&NqqFWC z;5^?+Fb%kYXI(IdUh-X8*d;vL7Y8iSh8L{tE%%3Gd4 z?jDL>Yv3u;%ANjNGb6L0u@wI5;2BL`S*L{IxBawA#$Mc~7#bPv$`RKY08x$a#Kdhc zV<{G%BQFHijKkPRZhusxa>Vi6?OqKky63LR!h@A6U&7vRLRJ(QWl76wnKtmr#Q5&( zB_!-o2`#@Rl`C9`d&h=ujoN;+(5g4Uc_Pa9Jt(KxUYpjQw4x2eP`^o*rbrO_S&W*` z0aq-K)svFstE(KIL#L*f_2W0tu;+Z+LQ;s#11Crre7%#507JJ%KToMx=C_yK$g% zCHq_upX69};G?LLiPL8U{k)JO3E%b!-{Q?nsuoF(JOm38OJ)NSqtk&5L$OslNFc+_ zdS8F=UN&B!FJWx2mwd$=(PY<8ODkDTd#U|(j*WnHy@um!2B!zvhVwfJLm(h)eEAEv z{%;?31@gFh@(*tYK^_1-a?%yDJ>>Vme?C=2_QRv*Sdr6n)sQKHm}8vUFG9y1%&%mB7~@l?@6XPvf<_ zkk44pJ`s!P97hm6afkC1TNmt9ZZ8SOYRH|ja$Sgv$^c;_?~ZzzP63$AWH<0#^m04Q z3m>;g*%o(wCQ7v-g+9H&^(C#gKS)gD^l43iI6;}iKZ7CwOy zS$M;5kROU30I3?Zf-830!3;?s9qhH0g$J#;g{swqq!s3 z-Je#Uy+{s?UEyA@A;Ow7gQVkVh>}?TkQM~(TJl&zo`$zyB7AOq<~OLs`#?|e@2>3s zP;T{K{Caot4XkT8Q5%K3SAD_yP6dAt7hp|Ii&BoaRAIc9$10>@$*$XGn8PdM?r^LI zn6))i=eSQPWXJwU_7YShUQ$An_JmT>FqF}m((0Hr(xf7Q5eq^V3m_%^l3|SBCBH$Ouz~;Z2r+5|fV5xi$*KT0B?|csunVS*^TEU4!~cAr|BJ5MX9XtT zwZq|{(>|c4%?yS9+kpFH94!CKcsmgUcux}ViDQFmSk*xlqg&UDlAT^bT!+k~?w&z-I$9RH+bT-4Mq9%t9_Zc>!QV_3Xmqy{cAtCf z2YsZ_P>$*q})Bz10$a{uN-2ec>MZ&x{)ZHwaH{3D8!BMin&qZPIaI06)Pd zkNB7<#h)!j0aWqLK=xanZH}{i+8xxkC%|Nl37msoBzHRf23>>FqlzVgg^}|$p$^cN z0mrVVS#pp#ZBE_-jj!Vk960tB)4)Ao8n1fPkO`^~g2=1qjt4w}%v3rlcd`K+IrPUD zfRSLyDxH||;6U*F|dRRQGotNK9`ed!t8kmb^n8_myb~Y-Jw_&_w^c)5J#V-4_1yKplzB)mD z%c_0X8fAV->Vt{zXjInKsuXYOC6oFjgXOn{H7*eq`()8}nWO@n8_c3rJb;lkY96*p z9ss_bbE9AY9ge?sn%#@}vi*v~&o7`9ofzsg{0 zXS>n{DRH+;e3fTZGV~iHKE9B82l=kK#jHb%I9><)h}@DOh#|w$TH)At1;033eO>sZ z(s1N&ny4_eG{tk@=~$t?`lEo#(Z=)S>Ew*_Wp&~z7mz+*dzWmtnaYzN3R6CCyZ&*j z$>iWFG{gk4mvA2F5toaSk~5%I9!A_!Ue9&t=U)tDu;s7_Gha9AG?K zz#H$WUfEF}D;LjhsUa8tv&~aD{~hHQ+t@saF$|5m0Kg4*S&5LLuh`g>Y~R#9P1C-~ z1~5n?hi2 zuTFv4o%1^jSCHDWPYiI&)1d4PLa(O6Ter|>5Z42>{K68M%0h$BQx0C@fD!W3Z}?Pc z-|t-;3#Sr=HA!eWQdk49Kwlc)`h`inmti*-PVBo0^QhShKjtPA?->E3`Y}FEACJT> zE{H}Q{G8fp)%gDG_UB@6V|Nvs>lxiU26;Z{lE7;O`T$o5bpQn}T>VE%cbfJP)T}H9 z-#)@MEjEAb#{-Cj)Do@)05d2w9_zozS>VH*rhs}j#Ty;df163%y)AK^KFymbl=+#F zDoOB1De78(n@O@wSPO>hu)>x6OG~tYP=7>?LlODl6)tbi4f&;5T~7`aw9N>4( zQZ2DA=@7j_dQZc-Ej&Om7kLE1^B%XZq;7UV7Y~z;r{5Vo_r(Jo=WxT)tuym zc`tk?nM#MT4PL2I-T*ty6xxrXrpIW7Cvo%B#DP(bi$9}Ok_q= z_*0FnduqDhB0iNY2R}Ind+FHr!SlIA(1Q(K|aRdg3)}VFhD*71Sdupam*7m5ZnDb2)q4brhP`(aq8XZgHvOc)DN>9&FD`h zamqriPnn(;snKoCk7k#aj9V(GEv~kMFF7j6lZqRj%*WgqlkM~GU>>_GyZTh3egDhz z4(-u?ZCNUk7ck>8AQeZk_k@z-^wM+(cSLsV(o5ZIVkjtY-FsXdEX93}%OFi=Q(O&?H?7@8vI z?f<}e7yyZEB+A*+1rqC%as~f<&MKjQ`9tH=;q8fRs(SYxb^-nN3$J=xSMDRn>cNvK zM=JPmjARwIChWkRBx!oYyOVOqFOfTp`L3)2W_-mqV}9QvW&0L^i3q{(BY{*}#|A*U zwA@|1v_Q32C_HE-tnB#7dM5gb;rV^WFb0sawe3E#4f3sXTL+tYST%RHZllCC*}R16 z}1i=w-T28k!6RMwug^ZsY*-?XbL;D>URL$@Sc@GO@bKgCzu^} zp6CZ>ikb%FAKE%i->uWBfH82O;Mm4#d4GzS_vSAM+x73ZOXN8}KB z@q=!XC3Xc?e4kdJD$5&8%n0sghV-amz0hb#Sf&tF=_! zLDG&ftwRlub%+4v6e)fBA7&FpOc5)V4-m6n;7^5zWtg?g{is}X+JNbgCgjssf?rC9 z#7h)R?|ZAw{(-Q03ztCr9{kVNC}gm}#*+Fd8YmAE`7-2^Te`JQpNH0sT?Z%Spm#q9 znmSW{*YzI{GTFL?x5v(ZMo>BMAWq$Cfc=V4(nuqS$TjNv3{{7nxh4GlXYiAfMRrBK zYUyVWtth4S61$cX6~Uhr=y3AKApu%>zG>Q!#%~`qYNTn?Ip`{G3Bsxfl$lOUoHquy z4*SG(B!^CUQi1ZbU59Gm#WgkCb`LnV7{(4CD98pDEgCRU#mmg)Q|{W4-ujeEwz2X1 z)n|8ZcCzj8d=?D4puw~F17!90aejaj;`?9Tm^vs#~b7}#3 z!^;+*!B!v6tS2QFZq_M;pZPwz%Uz|y-srtb@tp(E!8o(vJvR|PJ7e&v;!%L>2x&$+q3g1`L?3XGj0jDN#Jjvi(xrdZt{ zZByKHE)FwavvUgyd=)-1KHNx;*T5b(oAV4D_!?s%%L_KES_s|U1Qhl<6^OWx9dAZN zqOPo%1KE-0b+N(c9g6*+mNv?UNcg*f_+R`0;UY^GB)xG}T?Qs72y0d@j3^!gQeJl5Z z&~f(Apz!;2SY*8rCTx3|K6AR)i_)@E; zC&<-RHbP_&)qY&$sXr9YhkNhhZ>$k?WZVjSq=8f`Jof%JXVz!uUZ0uHCdFCUdJblk z^g00hYR79CkF>F3L?z|I0te0NRubL5Iv&5)`bk(QTs~1Xeh#OtMp+z`;O|7v%Pes9nK+>D&DV=K)&&|Zl{VrLIQPe?R8j* zcyXMcTkf=`dwEgtBO8MVC5XeZyyQhaChmrSJ7*R_?87Z+abf4yCVTgM~PP*^QU6c`&H zAUoQ~uwmfRfUTT+QAy(`Y4XxEAAHd7JSqP+QfLW<=QkmK?mH$0d(n~D8DV3-P@wM& zIS17!^c8I}Q+?xq?>RF<=UYuxQYOz`Ro{5i0z1lci(H&7X_&cC1Wmw=LWLTP=*1VO zd|5Z|IeXaVO;2n8Tw*fdQ7=~Fq8ATVEM2$75c-X9oaYt5B`-zghL5y}W66YKpCr5l z00+6n1tqZG1TF;@jO7GJIviBhL=K%~3U>@GFxfJ+ z(S482zKvj^5yE!ndfW9ZnnOoFjCTG(?b3T)eHl9;OJM*$Eji*@kYJ z%){|YkmtJ>%{0L&UPVn)#j7mBt{;0?6&9|skr}sV`SIr1&W@>I$60XzWQK&Qv4q;A zhPQWeOg|)Fo2pUQ9ske=WdYF!QQh?mugYUF zcW&jwRK0CCZ1b>ubYz+61CfEue?e4~{=n(9nz^>QQUKy5wU~EHkt<_dX69+kvioeY zPcSdP>GcRniYZb83`8WEijukIH;B?KKo(z?HS3t1D(J^#k}S))Y@_epde1}7@uBUq zG3`ZNhJp^KqmG7<4hTqr%9ng{2xZ2LYL2+(+)r388Rd8PZz$XLCTe8HN^+tnjbnx; ze2I}YV^*T)4U%{eb$23xBnQNRKzTf%AM$cLkqd*H9Z&#y7=ip+rIZW`xPUQxz~VMFwI` znswg7X-fgJS+LxV+!x1h9#MZ3d2it?ul89fk@EYmzSp7J+^ozxlln37elBXp(&5qV zBP;2}C7J3(Ry@$;y~PDIEXpbXM#*#`X{D5Q8e`weE=rGJoy04vg|uB3PE1#oSNP>h zGql?KzW-Y9EFpH~S7KsD)vU4UjDF$5(4^_+&%FX0Zhf(&lkB-!7>H;#)W}8dgjXpC zs10wkt!mXaes3JkPWtqvzPwJDx60vuYi6zT=cF4JXQ>j8Dgm@UIz&x{Ss(9eX=z|D z*({POD$a3k)>l@%V^>uE=mMt;LKF)sgVX=mB zf$~U`loo?&gwS~+?|feDR)CTS{b-_hU4~@L!ylEF2tA%dC8un8lX%eY8hOYIL zF6`b!rR!yf>M5f#9Qu zf6u$ER`!w(f7yF^#BWn208Jg?)*VKbow5Do^$*B=#y$Y}m_`JHe-HgFFL2mzrH1CBB}FS{G-`SkH}`p7<_R`o;bw<2#Bx#=YN^6Eocs%NkiZ5a zY5liN+y5i>LYc%a{R=DRGH1;;=0VeGBu;$-{f$H8)TGNwmQ?)m%f4^`<#QKs{87=H zx11a4I*W>6o4E}$Sdz>5>!ddC0VHp>byi$Sz~Z9lR8+If8Gq;VV6$3_AlKdXeihs>F<-?W1O+M%*OIG_yaM70TvIGW_7W)g#1+_P#qvT35`nJ&(h=rl$Avc|^QVvz2W!VV zj`c1Kv}QL38;jq@VpV!c@p7a~D=cH|U*I!OAz=?48R@!+3#T#`<$I4Y+GOZ85= zlx)25T2R#6c7pCV$V5Uf%H?NdmF>mazR8=Np~U&SrDRfBgPDn$px4qD2rv?Yh`CXFR=Q8E&(d^^IILVKTn_ z5p2ue;|;sjE~j)jRd|nlaeH-@tOSJ9+<=1L!~dLU+6)b|5&@#A@&X6@_Uq7Dv?R3B zLan|>F={V6GK=cVD+mxx_t5kKj(9tah~r}G?2R#4SH9WH{ig)^wzPmYT9lY-w|g-i zB~TAA_&*}ZRvgNkXb-;38Sygzxb6IvJwt;<@Xd}^fF%xmRFK%4_6Q$%kxDFgPcI>G zP-p+%nZwT~a#Hf^g4P2emLMKih`4R}my?eKkkjHWCv424YsHiZDcehlKdS#i z9jJfzJ!JkNNvPQqdOkoCUtgHE`edi~EmQ4xerw8sjEVK>*~UgJ-BvpWN_P<%@OW-& zJSwCTM~}#R4LYIJ#&)(tqRsNApE1is-CyzRy2_>Ssfl8}Jy3IAXHw_EFpW>6L@jyf zvo$G0xR~pdiO_dyGREX>oEkvwWJ{$)^@@=}031|gcqT39#guXA^J+E;pu)92cvCUz zP+b0Q$>1ucvZ@OZV*HcfMP`Bgb8G&?ts%2P zJelvWYX1KRHNou3BQ<>R$bA4ErZDD>BU_`$eb8LS6D8afb}qnhJX?&F#-q~WXfL)2 zLZeGLi7GEXD;gTCc;|WJ_m`*hg1*v<0vN|hr@6mE z`YF1IPp~Nu$J2K`%kNEhEN!z!pb4522)#qD@t{ovo!pZz;_PWm836rI#G15VJF*!6 z8+7(;<5*@xueQ;nthzyjNfIthl;#7^N!H}<@o!K%8vWp+wA@tU?Jq7N}Mzm`f=Q)=; zeKP$cNaBbZ1{xGcZ0RJC0e)~)G2kV;aSV++;Sg%00h?;>K#B3V62>DPq96hUz@tO~ zcoe|Z>l6Swod)yZQ=kdHmWR3nPshdNBg^3!Lp&w<4g7@D zm3&|A-=BosTJj49Spsj8=}vf$Mak;;sYn7pnNcSQz6Ri1;#UCS@(=Kq0xTWrETCpB zH%D}j+miV;zDQR3^Ns$zbbk(pf1Ql~&^$t63mX6kl_H85Ck0@~0HmVJCeRDy0@|cl zc$a7`d{3>T(qu9O;~LbdB>>;8fH%MVA1&-w>Y|h0sI_qpqo#Pxr+i9+pzWM`UA?j87GS{feh(G!2E@nnDTx|)y z$8k3L44!J1m71V0UB-E%W3Da-3B(=l6)0^0(>tq!I{f*W0`wcu8@p+bjqxZ zCC6i?@7iXY7hgSmdf#55xHAF%vm{k$yw%!a2ygrY9nt3-axL1sNJLhI`EUa$ns{>x z014EYf3>FmPhp{vJ)%>xWKF4e@a^H>AdMTyk*Pn@Z9s%`;g{oLn*y*&8qc@f+P5R9 zwD~twUPKA17v3qPr1&^4@F*`8*7| z#1As*hX8BSi$9bj)HU;bJzQ!E_zXX|9=u2+6;RGWw(IY7XkKO;6|q(X8FHqJy+(9Y<)6(-3QbOPsZPGa+i`g?Cw^pm$ue%Q@A3SHq%V<{CRn590|r>F|_A5Z)AyzhR1CSEM1)0iwC8K37x|3TD&lL%;NROb2}xB$EZ$XoQ!Xm ze5Di^+USyIf`u&VayaQi_J+Zsc6wI#_Gg~e6q5IutpfYRiyisNX5`>BQb|4>ZF@r1 zpIJd3Z~qNKPX_K1+qd&(2FYV1kkv9`D0pfroOlFzU%YV(?)3CGXmtyP<>MR+oXq;m zYavxtbSGQz8&5{`NF`A~Vp0y+jC}Nea{N5*s2V^Y%f~GV{N-%+0DiPulnm%hxU4GK>rYh`0?h4VlS$H;-i%=+sYA7uww z3$F`}n*s}uq>*lf@@?|t-K+?M;ettuRI>tx=1#Nn%Yj!1Wd4GC`bQp7T(Dafq?!f( zccPM8%*^iUlwUj$n^2^?dc5k;&sX`>*VZWcP^3wS69 zVhFqJpqUjQjBN)rWjQ{0AWG1?aT_Z?#L5q}`LO49evtj#gPU-){yo72FC zJhwlA4X9dH%<^z8PJZ-=59MCr)R{*IXGq{v{7ChS_jAh1lWNLq`TWGk-Co9bmYN6A zUSRvNi$QD=GV#U_$B2OP`_$`Z+1|K8mOby-nd6N>MP8@1pNs18wh<3*MxUnuotdBl zEj4h@LofRZwhMa--3t;}4myeGxP<2CA4$-0cl!1pDwTcQexrC*lS|hrZN#$TDO1SVhe^ ztKL55eyuF<4niM-{^^aS0xL%|?+k{yUn(!J&$C(@@K3ujI&<(U@x0_Pf3Nft5+e)R z5XgN0UruIad}OJq9lR{OQWq&3p|JIGgQGE0Tgx)D38*rF{^>slJ~6Ew-rv?##3J1i zwby8m)ket!^%j`%e4yi~EZ}B!_Z-?)um`MnI-a$j(sR$T+xI5w38r{+)9^$vz>R1E z-4VU4fZ&=^7{djZi=_^*2tUvyF0x)JQ+*-cxw|iXXo?TmzJ6{8OU@G;)wE$|!kkNyzt0Tf-MZ(JKEcnHSKL1|bw9B^_NC%!c- zCwo+q`)m4QznELbC%}n|0DOCx5Z;5JiWjoLf!~R`RGQb10`l#(b;;@~Kd^f=(H!sE z9&hpi7{dVsUKl|PhA{vRzk$FzC{-Z4P#ggwDXl2VMpmM6g(?9Yl{qSs=c3M>>b3Pw zL%!w#?mS2L-9zNa9-HB6O3UZ*_FfcZPu@aCJ5{HE6gdc$CwC(l)jHxPkDH-a_)_{C z>%Xas#`+PQzuvK+mx&p=@rv#_B`Qm3GA}ACx#YYLHdb@c;1Fj)Mx*A_6vP4R0D>9*d8_fb>#p;& z%8?!w`H^zfX=fg8!Cs|i*6Uuy&}e28NHzcVVDb7GedUy}kB8aAHJH&*rFwdO7J%fAKkkjmvGjUj6;#`5mSm)tol>k6L z>2ZL68DL$`_$xqnI7r; zp>%luMbdbaU&CcDANkU<3-4XWPOegGuVq-jYtz0!T=bFN5NNS>9Cy}_+0K8EmfX3< z+;-nCq=}O+mHBQL=cm`*-LJY^D7k{~pEKD9h|A|1ap6&3$f-zn4qNj^RJDu*fhDgt z*^tN2SJv{~Pvn}=f*LUq1&oFXLBem)LwUFi6#EEuBJ&fzMV$}dmN}J+yfyEpbwpwv zR`O4P0PduYh}dCRKlJ<|JW?|C(WZ&9yOQhqiteY;J?;w<_SP)h7E5osI>f}|_w9+- z@{WS=>4b;A9-ZXd__X|-Uu|racc+?ZG%x=s76B<3KDs}hvDMpIz_T>|6JY4+>r7K> zjypHl5QN$>pEB!*MT>LG8Jkh%j_VOL$_iL5^{`~I2zKwu9)-+m6ggKT-1J&e_SJb?fXfhA6E{{y zxU)G1p>>uJ`sKWHuz%gm&_lyh*Wznn5$Lw!^=eA(DhwQ}8A!R%A2J_zy&Y$+J$A4e z;l*y?ST`bdr=BachNb=Ix#&e%-@d>nIM<`pVHg9f-y2dX(GhYx%L(q3Yf+k!SnMt^ z(q?Datry<4;_kg4I~qgafsM)7Z$rQMhFA{E-IoeiedBStLQSG&#xKK>nT9IUmZjs4 zQ`g(g&NDJF^skjM%ZyZ(JkjT)l?t^$YP8z##+t-X|GqGbCj)dA^?7%yhfH-9AnbI; ziYl-ZDMnllbg0!lj)eR?`+5o-hju48?4pjNuE(_LbtsF)qj;;4yWozcQ9JzI#kB)2 z?QAl5R3%?mLp)7GuHj6-k8KWI0)^E^UjuM^h;6{)*kD0!z|35Z`HrcDrSp~M{6}dv z&!1y7*yBwXX?lJlk(kdS5POqr()-dPS0_V*D-uo0etd;D--o=^0h=Quyqu|IFS&-N znwyMpYv!T-u6ZU1fz?2#Z!BD+8ZW>m=E^Wo7CD)k&@JWL+d8U0#LOt_9gDYLE*swE zI{!)Wiw?dxdlx#tE}Yi6q|k?bLa_)OUx$abc0>a%yt5rEH>csz)VV3d#;V9k+nm zmLQl;ugN5|e(}A3ukV5By(nv*9jFG7&tG~v8# z_#NjOS>l_~(H#G@`l)#N0%k9toL{(wYC9jm3xtaEaX96fopQX5Jp(JD+%Z8N&@J&b z{{l4ooqAfZM`D$Jn9FioC~*PI%IFZp_XV;W8Vtc2p+Zqtya*6#q9&F|zEIof6()qP z6j=`c*h#(8RnGtJTHMDhfsI~JAFRZLR!X!aJVoTigRrIW6aTSZ`R?*4h7Oh2aL|y*3 zYVW(#%`E%3OP47WEUwa8oMtep33uNIR&WM*v#lN5+jzVvCbKFMkzlE;CnOYSz@VF? zyv5^MVnxZxI>ha;w0l6DkOr?nSrj`S;>dcMmPng?G0%i3! ztR33o(2rp1MoQQugiQ{Bf?Pth3I*Dl4@U2q2Y&T>_m%Ud>1@4yZ47?qeuw<#0fJ1; z{u^`?U?H9U293ZE3?%?gF7^@PM8fnpXzPAHT%hQHhEK-SqL9&s;n&poXvSOq9*ui2 zJx#(*Ktb@q!Qg5PHB?`=wM23IM9o{vg9%(|vRy?G_06~})i$;I?p{|D?Y+6H5v3)0 z5!$qE^}qHwLos#=(U;*yMvD+m*actiqqlgke4;$As=U%iz-(ySkaeq6ku-xXTN2C2 zlJ@GZIXBM8DP)ik%lE;;>Ik~(&UE`!zfZi|dBMdY;VPgmEe#S!Y{ixL zk?&ZxSwe8Y$GfIEuq_kK;j4{o5-t`*AWothS;&Du{%_Y*R*yxgJcZP*1A9USI=B&K zWGP}KYKjQKLSoi&iv5SBvJT;&d?YoxR3J*mDH?Zjp`BcM7EftC_aM{Y<*3Y^U0kLa zu?$|&Th{*7$cwcm?lGfkLzW|5n8dldz);?0_CAPs$CF}i`KSWI;pxu(Vgq%Be+h_@ zb*N5b0YZEo@f>bXv|07*rp-9g4GxploLfx6x|z*4-Ass?zH@mU1U+wo@z^GkiADIz z39QU6*EeWD-LS(i#(tZbCmd3@gUss=sP{x4$<0ITo83ME@eje6(o_wZF6qkdj`Uyn z$1XU~Sj0qm&BJ?m$^L#Z$IlY(E3X#UMGC`(!&83c^S>`{n=P3?9@$s(y(V>S_*m=o zGuoE|^gy2@-omT25@|o-nW=iCGGp0&52_wZ?e;j7elz@jLxVHWe2^xs6ZSMXlFA5z zd9Ro-LS^51y*cGSF?CIeDb`;+2YZvV?ZC_^(D_VY(2yIrsj5qNUyTWzD8-R2a3W+5 zkapAP=W1dK?jT&Lcajzej&w$DXc|OVVSD%<3J$2952a#)dAg_^#Iz+TnQkqH(W_=d ziXZM1>R4Ck9wcjDK4)QZ$y)!C)s;Ip#;tZrSflG|6Hyd@cEcx#j->K`k>$Usrc{kN zK#MRFSdb<}Z-jiWSi^yP3_E(%nSBtHWUCa=SZg`EqB42^mD`QvpC{~;`@tfeje3Y? zzE8vjZMgiyiJh|jvO%~wR`yop-nmvj1UvB*@B|@5RYD7>4bJCZFE16D$N9vC_f#$; zdu;Hd-l19A+^A&@yj6@U4R7_2%EUI@!om2Js;gFGiJ`69C8#!dIR})_T zGDAeBFg|Wv4cvD~9+>XS&dxfEv|CTmFf9lMwS^8Q9G^n-ld~HU07{2fwEzTOplKwbcI4)0&77fxv72R%&6q&+o=Y5$Xo0d^$0w_ccV!u# zzO?o{dynecCkjGZF*^v_;GE^8Vp{2dQ+Q?dnqyCO&C?U+B2uMsjY+fO*#**lK-GvI z?CQnFcMr>S*jEgZ;E|Hy>r8VWPxHq|0&rVRiAbg{AG0?)L=ji2I=rQ3xH0chkn{B|RgS6?ujRbTlRw*VsSj z`Cy-XcP8Q4%6VPiyk^&G_+rsQwQ{1?WvD#vI(gh5(=k%9D z7@K&RRZ1{bBIIi&?MOh~Ay{v5b?|k00GB^piMA<@a?60J|92V(>jwkSwkl5p;IK0Z z4V0QA#1z;ZH=kJ?YyoGji~ZD)Wy4cg%gPw2)5^rNH;0+IUQYH_=CAOLEXZzJwefVG zfDNpriFCmxsuMhjaHnN`8L5DJ|3&G~qa61eEe}EOEbLTNy64x~j}k+I zS|RVo7r4;ufUIUzUgYLWV%*HGgqL81Mf{q}wB049lh8%WeAp1U2Hpmm$}x!8$6h*0 z+sgb{^EKU>!*+Aj*=O?i_mmZhfW=36|;Nwwu2= z5g=y4D64_p>k5HHA$D)x65RCvzz=Ig%7(`W{0$UI8vJAF2ZG3c$=w+K@@}A{986 zScMYAC1R#&K-_@pnr(@CR?c2WCPPJv06)8f;^mhYIBtOMv9^Es^~mqNf_?V?`Id+Y zZ1=7KDU@tB40dmVzXma5dbwwXYcP0c)MC@&;R=AHJ2Zw(g~LaU!yA7kaZ|u6j_pL z&y1$DLrQF)-|hU$yj4qu^tdq4+V*YNB^)Vky(~A~EflZ08C=yJE1D&2k!$5P?C>nzPC9_p^rgI9(2!Ki9Vo%s#^y{-tqVm}%0X zd~fzB4OTYBMRmtG5Bnd&Tr+m1*+&giUNBUAqLXHR6>7<}xIh$>i6J|Z?%0wq#s8eJ z7@74n-DsnrQj!(qG+;jOZ_&}Y`ZgsTmqXFf5|_7436{{tt!kSsW0e7A3-E()pD~&M zM;lRezZLmnJ4{m4&ckxmPvvoj(uho-(onCR#NyQ|ci|>H6deDBIW&1>1sIt$SXyTfMAV9w z?m9g-2I-^63hv#S(w1D+Zgu3&xB-G%u0h&Zh~khoOl)X08ZH0F1@|y>i6U-nytm$D zTO}`uyHktT;WgZq$a?cgzAg8)oE`^{Oqq>by6Bt~)mb+;yHRgTik7Eic}Pr;T43;bx-uoaedH6E$$8rd_i6objou2h;F|6 zKj>fluY8aH^jY}-4rPr0KaItr7>Qr-99~MafBb1(8goy**+CUy)T+5bnGWCBy#kC= z!fO!C3$K^I(Fx(&7st@){`oR^|MSM?Xm_c(=2ox#pa#_id4B803nRH{N1Fea2J!y{ zX1(}|mtj@W<94F`gJ!XE8Ede>Bf9*m)67@MJ7AmC;=5B#xnV5ZmYxUv;y&9Wr!ajy z9@60m+^B)vrT+(^l>h19&|!nf941t4FavxW4IJu^QxmM8$)W(%14x-J=GHV+$Mlbq zL1EvvGbVX=YMOKH5{|p4=5@PYeZlSiTbqF&&=XAo5%yywg?0d40{Am8E9)&x1w2Nf zMVGz4x;e)(+I`l=K~;Lq;)&)zg50EUSbN^`D66A9fHI!%mqj7x8i1Xoxdl18f51ioFyR?Uxav?(>r>j($n@lOFv=FJLm zg||Yel8#VzoRLXRIVF&C4v?sw|HBKPd8G|Fn=x0eCuLct?_pfikU&5tXG`rp%3QHZ zWsoR@YV%W$(Gr7tk2?OE*&NvjWY*O^iQnaP21N7zxftlme&|EKDnK>4(6(^A{vE!_ zTSH1GsX>K-k19pFxv528AJaREsgRZlpwZ>ot*cNtC<*=07veN^3C0c7K;*zHI1Q=4 zG!CIf)RaDZ|BC$i>s#@j)}exZrfa5d+Xynd2-R2y_~<{%fjRmw#=%8o)@`bR2?D;O z$U;q%3WNN&Cy->;6@X9JLDON`<}Ed_&p`)tdewvsS#bg_VoV9Nm<$vGe2~0rOYJsd zp@5j+Pin|j(13K{og<>3?{oF=D^@}}y>FVH#o2+#hL|PC$T{SQOb6mr1SST&i1`UM zHk9g*Sxko?1SA8^3Qk~@cshW>LDmPbK|xp~=@JCK5rbMcqS9LeO&x0%${T>QrpN>+ z`uKK+!V*N`%zB%2OCmAjo`Qg0t5~%p+7>Mvt~VC*ED=5>Hf9ePklYEDy1V zw?4wG4Al&h{@FyHJ(6ezFCst(4`4Uolg|JVID;+R@z=_brlv!9GIpWDtqIr&qtX}E zn8^v-5&xOsUCCYP>JN_5*I2u+`ObEIi;V+Rv1n*6pZkeIViuDy2PSA>DU(kIfgX)w zI2RCtY5;1`_wXPJ+yi-LmVOBAzy#Icqys`?um)(Mqf0lyMBQSl%)vEy1jS^ELEWI7zbek}==(rM;KrmfH~^c@g{=W=}Oc%80e>j#NO0ADNQa02T_ zA&$X`agUZ%6_B;Dk^*~hQ+6UB$qwEs+w9_kHP-6}RMyJAKR;9YBr$9BiO#D0#T3q^-x4$%cE`yI( zqXk~~jkiQ07k!y0zjK6793j`dj$@6M-)$~bA$L7+F@)^lm7JeJgI=XmU4qTSJ~T-O za|VnUn)FnSWaTecJ)1fz(8n60e%YhqW2%g}5&{w{i_;`gt$E%D?j>fD5&? z-!@FYNHL@zEjA45c#TG>pUxd zVpq}QBXQFa7|IF$!=DKeWC8-k}g~kS~Pi zj{y*WEL&RQc*T`aSX#kMZ$N;rSewpeL+i=qe3}h8lRNVExsWFiyT>*qQd%!couC9T z5;OIMO23Tv>;&-{|E1a0Udkx}GfzuSCocB|TyB5T(U$4 z%m&;I^*Y(Z=(8SfxgGh`oN*;jcqsX`Y>#X%(r>T@CIoc`EYxSHFEI*RtRY3xuwr5H z7#{dDrJoTGFL8(nEIwGV7Pz~d!mazeC~>VJ9?*El0r6{s1U1VK+azI4B{q#(>L5I* zN3>Sg5sqAEmfq?Y63UlN*)0^tYFjWYMB#L?0h`{*MeyPmWYx)Q>Upxu$TOnP3x!?I zj>g~?5<`Q3ZM}hw>cz15+lj9&7=kbUuoI<$?NJAjY}a8uRAwS_+34#Bk9p1{0(B|L zKK0jZmb24bT$h1nKO9g9u14)F1Gg@4Lctasmz|#fsWdosY+t{&K4W#6fogr#;Fhpe z%9s&LD5dQW_bz-fgDpqq7>SE;xBzfB|CXZ%n4hmky~d_UjRC}}fm)4cDw!A(shtCEDN{rT5% z%??+75Pd$GJWVO}o(Q~RZ)aTnRHN#5q5vkmvy$b3 zD`e6yCpnYYSM=oWl){|2bS)6RQtjs-<%mh(a>t>;~Y(5r7cn<2^e)GW&5U-A^#R zTg>;I>`a1UzcsOA>2{JrB?kWhea!b#qoJ!`C;A{}ND3+RvUKb*nZ! zHb$mksuvJY2+5v0As-C6Uw`OTI5yFqeObD@Cz>7E!z106B2KK4Cw6xt!^)wL~Gp&UdDPS zE@7hmjOY?%_CPywdj67y)urJ%3P}8a^ettsWOsO`VnGG%$inf|{Oc~mXt4wLV zc*S!QAek%Lc|+2M0j`aw27I0T;LoQK1oJ|JdAR-mnQ| z9KlE?kGp1Bsm5k|^EB(%e1GS!^&JYJ(TB_rAp!`eONju^7rca|z_-9>;@l^2qL2wW zyA)2~9ROkBe)cb&C;@ldT zf}aBwj6T+ZI(EQC7V6e=IMPWFvO&$;2vmrVYWGRG;Fh3BbXY?Qr%V zTk!YKcub0BnhKs7t=G;mRO#Opm19lqrU^i;<`AOBXO;(dJ+V#5%PNih!uTsA)hCEG z>ty{}i@o|SK69&Z&olH`4T1%#g-aZ$L(K~#KNDfU`+NZ-*y-b)<@zF2{OE$nM=n$y z*0U>#gUP|b>p(A1Vkr)M4&#a-iXb{s*PsEw7T3^4dzX^c-K(A}Bcw*- zR+IB~x(xnN6)$k+pvCxnqU58`YZpqt1GOWV!{3<6r26OR-lgfj(e)~PQ0thOj!&a9 zyu){6IpYd&bvyW{8k$8$>i1l3*+@~#Lg}ZA`cj+|8I$gN@W|yWXRk@2`GM%hlzJO= z<}w(!Q|3m(?mxEY&@3YT;d=T^^R3&a?eY(mUwewO=1#`8o-;V$^P3y`WmE>Lun;evU!x z*Fv{%p8SF}VZ&18LJh%fn2h_w`tLFX1D>?cV+t^nNUE{kQViwIC#siGZ1vBfRHVEK zcE7#?d@-Pbd`cbSXUBEDBl&r1u?hL`-q+R9Y@10E+0*-tJ#|8ggCQ(u5RFsJ%j zfQ52;nDv*Y_L!nSA#!yrv!cCZA2f6|&U*-q1Wl_G?omo%ny@i$#5<_o(z{)3q@T@hoI^f#t&H(CBx5*mgJQg-(rInhf*zz3=IXa(pu* zi2Lr_%eOhnUK1l(>%M0ju_!lvyUHHq91iq-FR1|viC2iqONE(T;FxUoqG&~T#p{y$ zH-02~?UsMcSzcd6xG9>+%4qMhuYY@=2QRkUtH2Wb==7jaUF9AuM5W@4P-v>5w!_ zvfQX6vo2E&;0T~mEAR7{rT|;_TTCcjg=FI4T64NP`aS-{c9s$aG`0^%1~d@MgKaaQ zLRnNXx6E52 zO*$|4H8146)H~^H`=_O@2L7;y{2SoYMsqHZIVj&2y63r>oIJ40{4H(@PW%?1c;5I` z|D}OG`0NB^!k5Bh7{|<=EH7ymR3B4oPWe7qhP57pzlKsB|Iz^O9cxq6y)cbkZ`ES& zC)-^96YORj#eBaG<~oH_^Y+XH$j5I@>?u`{9=eYsD=$z-EY=hc{n?wNrN1eP-FYK5 zNUC$|(+uS%y8`>~2o-507L#;m$q(`8YvwW|o`vgLJD)c98{#T$_e4tIWgkHMy5jYL zh_Pi`&c{%OzKOHSQv?&gg9kchKeHW9OAJ~RY0cwl#p_pWIxr1K4Bo!ZLJ0nyc{OEQ zU_Y6Z2Kil^=(!A^=_XVrEtt1>dXVkIC8{ds8)2C*%0x1+Z<4-Uea?JAOPRMqks?MN zk?{oq@yz30@PtfMKqb0?bh$;7B5`U*$tRz~BeCEPmL1UR3Hj;ZuM!637iOMcFwWW8 zFn4B@O$F~?{`Mjz|29*=%Tk|*=$pM_LE&l(`x1=R1@K4c^ORJu8wl`+F>TW_?G*mK zi-^9A@Vmcwwo7s;%L*f3!h#!*8cm?SE<7#ef76yrEtWi165fPo*oM_edOonbd2x zEj0QR3`B(E)lskW=a&%J9`ZqINkE8kqlj>363GjCK>d@L}7E{{UkfG zkvW%$=_8sglQcfqPvD;`VO-&fkgCFo4puxwKi)91gT9cG+1C`Y9yZOBcY0t?STs~y zR$VTHSy4wV@b=V&e1Yl@uBy!@PZKoFn_qi=5%vF)Wtq;A>lLoFv4Az_2?J&=>d8O_ zB*GOo$j#Eur~ZJ5{0NREn}iL!0TRJ`yVA#uR$rsd*z^Qn z*)~?H{kWO_=0?PAJ=$gnm7yCqxYXUAgNbIuowQ|}MALrE?rq?u-jO?oau zT0vJ~eGnF?3DzVA%{NvPpA+^@sHJJxOQa!X_`t=&qu^a$ECY=oj^+rJ2wtpMI8cVl z0RzN*Mt^B^+aW-#f-~7amEVv4OLM#lOji|FO{~+AIn=4T`_Yi&K9WdH)ZtzJ5 zrx4tR3>>8hW2rB&QO>S){%6Ej#P)o&8}bFSCc&F5Z*T2MFyeZL=*ThJhfnl;xAE%* z)$`L(QZa7e7=E6}b{o#u{_)?iu{u)yl=qyOLEw3hqAaf5igjMmjqkKHqLi4O;Eq`cY7->ag} z?D8lJha6m+GWSj_30uUmVkjde7a-h&vkZ6z%$a`~_TSW=9CQiqeq zh-HAqI;Es4pr$RmvN7>!LBT^JxLp{mrkMN*gZ{8@#jSn#;vYssv*=YC0bj*4dLU|o z$pdN^(YT0mXd2ckKGd7T(iUz!24sO3-`UlWyL(W0cTDM$03hR6a-q;%4ku2`ZK}B;wxOOqvf{Y`+`}Qup*REO4PU0-B}7B zQ3r2F_Mv3>FT6X5vTbp@+d#4@n&W&am~6Mpm)V~f%NH$i8b-;ZUa^OU5C@mwQA!g` zuGw?FoL9eH`cxC4lpXXac=nd=G|QzQ>J$42^3^T%0!k#-6H&j7x{jGWbfp8VH4`KQ zFsMecz?__?z0e2e?!v7H=hSX5B2#^RMP#5*+Sh_b-Ga8U9zKqM`)(@1ywjGxoe z{QNQT)iKLk@&Fm+z4p_tA+Jx$&NLLlhnu>c<(0J`ca=FPe`@lLa4P9L~6x{kXydI z=eZ!UDl_Q^RPdKFDG`}~>u3qLg{UIp5<}kw!LtS*+ZY27H@mn0InM1-sJTv4$$9lM z4!h42KIeYL9rn|s%~9I5s*fQU&>idl5UFB$PNofRj6$vxCJxLf~q z_XYZDg{Sv3J%#$#$1R26__^wHy9)oWH9-G&=)L}bkm~qHfDEgZ#}pzc?>6<)?y=@2 zUrw0ln77rb_YKH>UaDI*PM%q?ZD~OwC_MAniQ&VC?t5d;bI%f^>dr`S9|TIup9Y|K zGYvEOh9DZ$l&ex3zMzXMy$fw58CGEwk1G^bK>^_yt(5qjT*`! zz*`j{>G4Mc!6!}sa+AR1L(G>*M2*O{#k0|)P0W~GSNF)v!Bqzd9lv{t+mQLM7&Z$v zdqmL1+dZnZ8O_qFg|TZQ&fuL?adPND3FmBM8vX_F!$)GioyzzT&!Gi!B8O^#UgeO( zgM5+k%u*8iJ7(z#;E60to%V|Wz0^t#kGETeCo+dJ+dnj)G=Q!XEBo3Son{B7^11}> zFv>oAsr9&5FqcNv>F1u_rSHVSCqJrF57xGy-OykvNdsEI{Odo~n)kJhAsyVQ!R>b0 zy3;|{U8g*{w}r$**_f~Jn?E%9-EUUk&Wv6EwbPlcFao1qK3Xd$)Z)^#?mO z^~@AJ>o^e+PG)1)V_(x!oiMZk#=U;Zot>oY9W%~qgU)){wF(&U7bM?4Z4lUg@EPhy zuEv0fH28VFI!4mfVJzVKFMyUGat6i}^uQPIHfzQ8`u+y!n}&fDX_0YzuwpO5J!h{G z`H5X9SW`t_W==3%LLWa73OQ9KpQD8RdotT~I@>5yR`8#R8V>W!X+7XYJ+h~H_w8*1 z3UJ8jj#noMXA&Lg1>neo+29LqOND3=`CTWNF3=TO#ig_zS#xX!6s-X$z+&PP*^8J{U2GMb20fdT~jg zmfw>efgF)fxTHXnN4DQGb6qjONp=Mjg(oSw=-VD} z_Q4JlqCULJu`zxJJ_T}KAbhZqJjJ}o;R$l%VGi|ma0L(!g;5=*-*#527woyxx!>s; z9BX<~88nxqOgk}^dhrwbZwHl<3E63%j}N5WOy$GbKJsBQew(&)?nqyDYJD;>$isJmOg9)E~B)fW-crbg88X?0tU?D>~HnUmhx ze-qWeDFW>{=DQ3_0(%bYl^g0)&4;NWl2N`FH@ecSvTr;(9Theg{I1!5 z&|~gLmT0;#$v}BX^aPTCaL;g8#)WtXwWMw1sPux$;Tr)VuT{mpg$15!GT#zhk0{DM z0Rj0^>un90QmFR`RXkX|bBJiGGrT_RQu}9V7`l?EQ2!C(Hf=o3=5l+_&Are2nXPZH zR)%eS-w!A*QBQcB5O_pIAKI7}F%}FCVcvlb9+FM}(mXBMr(8KEZ^B!FL$$Jf6F5!M zpMY-U_L)AOKUqT?fEC`6JH7CvCV%GlOp{w~l(N^qXTjNR9HRzyF(HarQLdg0<$V$DQy?=2-}er0oi z!7JC#Yi~jl)w;>7-KNxWI8l!(a#x}2ndz>L6W5UXh05@9Jyai3d${pcf-8rW>XNMd zYEuh!|3ErnadAn+X&aa()hhnFjjVv7$~Gn*&u^YZb*1?F_%hPPxx3USE~i|7`RkYV z#h2PBpbZ(J2K1@4i19$9$_PxkGDZ+d!Z&;GOm`EP#!&7oK@o%iTSx(cf33 z_8y4;4=1?H8L4$i%}2#xC)AWEtQXCX=Kz8XdP}m99;7jP{Wpna5{eRH@S0g4Y*HO~ zrIjAh{V2)a^m5_8s=fQMjVFSeZA>5*$WaMBV3#y{p&kT0Qh&1AWv-nHdwlO)yPfOOBpgO^jjVwG{AN5 zWmVhMOj87-3{M@)HZ58OQ1EaZjDS?9w|matsL8yG*JX#-9L-e>ifY$bEM1p-Ktpr> zrwR?tqA$cKW$mc=Ztx4k7F8IXF+;Bi*9&_b-R=xY9C~-;8K#Q(rf8$G5m0!wPWGs} z-w{5p%;WS-{li@5P>Bo{zDpuWk>!U)(EJM3c+CT`+f(jIbq5dTGJhw0Fx@&3JsP}s z+KB@01s~LlsRM(HC+m)sFZLc#r(6`PmVfw2t#O_3h0_`S!6ATRUp{=LPHCEgBYa+T!EpO5`Uw(T7r0BgMaknkMMNE`v+w{KB{d}rnkjK`&gTYx z&|9?nM-=H69Z<6Nrt6y3%P>Y%&&rh^i#&^mxWu&5hyMGLF{{TQ~lz+-h zeOZzL1ZYncOroc)9EIP){v!03ul2-<2_r@yHl0X==v;TL9v1D5WU2bT?zlt$yUIZEV~0+>EgwS8y*)EX)-&rxl}k zXwt<(6okFOA~>J(3lc4tZ!R@4>AK~RUa;1+){G5FSd5)hY^oNpUj8yZw);TDy=9d<=?jh+%CJQ z&Oe{uZBi#Fl|5l9E-F3+()x=P_=z^iMY6{@X6c!|jYl@RsHhMf9}@aRCDl}9|FbpZ zZHD>uwH5DkX{t|Ij#!pKaX{Cc3UW^kMs%S?N2_0X^W8^MU9` zSfG3`^4`l0chkCP{$M zGvp%C(~LhbuhjkOW}P^Tuo$;(h~;)d9Ny&Jzcr4*NCz>Z=f_~irIvm2&53Ennc4o5 zes@KQzSRuPq_nymAF?)AU~+r}J1y38bAKvw(QALF1@{Kc=cy&BC0;q=U5>iZprkvv zLpVGq(01$ULo0fXUOApT;!M{=RkT}F$=fJNb&t-CynU|#^t|(U3FpNxf2cvtbXYJi ztQB12go%}OSc5Rl8o7j@CrA9HF|NOUcuOQf?OL`ZzFyS(EuetCgqg`CnBhgDo$&YJ ztP1^VN{RNnK7||;6&$=@Z0iPo7e)TKeI)o4c^yB8+EE8;EHoJ-?Mm|^k&p1^)p9&M zB_O#z^CZF3xx029=oe0@kB46ON>rzMuJwW!6C1fkHG0tEc4bNMF{R{aJGY{2>4k=&_W4C{PgthBAfl8-wv+AU2!cen9!E;q%ptJu_E7W`M*Vi%gSmoce*t?nHU~}-|d(6S}b!z)`4D}5Y3=Ug>SNXJ>Ooc7Ey@B#9 zsyM87gpPmm3kdo)-`E$f!7+5Pb^3cnC;D-e&LjOkZ^x7~U`-brhebx<&UyR?F5->l zMa6dA`CC;XTz_fMpB2$QPvUlISG@h2Qf zlCZQ7x|j0j^y*ZvShmn#8V^gLwiV#m%}!wkM)1nfbWnd>%hv`V>twUuoPHnsdD{?O zp9Cnp`DWbXNtYAV6nsz;x_-kS0wBFz_oI;2nNex&5Y{6?h?J3HI;DbjeyS;a`C62f z;}2y4THT*Qug-x|VIu#!CL&s5lO=+BYjVyy?LBu?ZtcOhBVatumj9!4_@!4Se39Kl z5gmi61^z9lSA6B;@CXKsxeOWvue95I$nCgQ`rd!j`nSwFMexaQj;-;aJpgKT4W^p zXT>3+$#hG3>aFuEBiP|;FJbnG@oCn#Ns7C(sV0&gsU4{Xg4xU6&t96nT(E2pI|%DV z{aP`5e=WqRcxXt6{a{_}f0#c3+{i^7r5H^E6`wt-m5E}oyZ8A}`nyw;KeeZ;l- zyMF2RMMln}Cny!bWUw~L#(kb^7``L{MB`?}Kr9x>z8pzGd4#t*Gj)TJ-g8+45B-MG zjDKljfWUbS0strAzzJa|)JwY3em$>Zr=!P_6Dl%yst|PdrT?h&AVwOq_z_fboa<^0 z6STQ~K_zMY!1Pq`vge}DGzKX3FNFuSHfFZ(PpzqUH;sMv3^|^O?XPUT7|AT<T6lcv=B#wYHL5H5FOB#KA{v;KWqGZ21ruY2M;8?b4_p1? z=%X%`m&Q8S&kJsL%PU%R^0*ABxA`4cQ|0xo9c{!_(2L2I# zooorH9+U2;b-)zyx_MtbhJfa;+S;1JW!dB_ZhjRz-|01JgfU_;X?W``4b`&kI_|;N z1x_T3wH**qO*JMk1@Jz2=*!-wR*(2$spm*pb_iGk5e4erIb#yZA$Ydo`CfhLY_Hrj z!)1-{&Hdb;1c-69;6~4x-}#XE;^TLgzI&zn2h^+TEChdMM4uEumVG+Qoh zti-fuYkv30cFSfkkd$re8EJ&mr|LbUd-O(og`4^o;}~DR4|hgI`{@Q<8qq*&KFikc zAu~)2g02GhDHBQCY>Jz>gX3%uTOi&;ReRPofF5Kc#V)Fb6)x8NhOV3mtx$!HyspZ zNKJ-;prJ%ne4vNIezcbSh$88@hGc6y^RUw7nkxO80Sog-dC{A%ZzKZ)+XArh1)PZt zJ!}{)0b;ENUjavHJeHJg4_uqIw{?)bA^2hwtz^JXW84}m{#^;5y@qkxCyGqO!d+$J z*r0}^8UeIFgnrbItW-v{V%hZ61tMHMl9Z~S`~FxTHT^9ctnrX7$FF*c$7ZHQqdB5r zNmMF856kkiWS@a}m5_z&U+9{AoBc4coP8{+E#!M@$4=pzF5RncCH_0wf)`phA>%G} z9W3YUHw>`x5Z2Agjlt{bJ{EgdUpRFIg?y@Y;$7F2SVT^zQR$m-q~*Uf@5<3PiI!Ht zz(vucrzfR97;_|QFLTdwKiSWR`8u~0RPsPSc$_NDnk&?kIDhrS@py2s<9|r;w}Py-ZxpU ztN&*bUh}>1lr6Qva--jE>&ya)@~~{=N1dOu+PZDv<$Lv@Qb+E+zt-=9Nc&)3(@!>v zPD7awp_LD)`Y5n_qU$!nYy@zc%WEM@`8RXSROtKUxdcf`FjO78UI`J)`M2!P~_Ys@k{1LdiiyS>fcc6}Bm-i3MZ zbIB8}Oo@R%58exCQc68(Jvo@3|7q#oGO~7w@AKTWyOqIJ{&V6ccO}k-Q9y3#0iQfv z0@~_D?IQ7uX%FyB39jnK&-$LvcIBqQ{-shSe7v?4r!4A6iA>cbx$7G(0U2 z!Gwi;e|T@F?&XO^+Du>F=x2pKq}TBtk`BI@LOqA;s^F-@!#mlCjVfIB3fuZjiB-2% zZ+TosNXCV8_MHg&IwUf1+0&EU%=@Lj_za%uRwRlx&97tNt?C-)_m9!9xXqahGzggZPamG5tc+y=6Gzh3h$5ZlU z0&KlZNa`ek{uzQF*8$*xYlVYekmey=8@>b9T0XkhvunPGeK(jA+WZ=ut@ycM<`2aH zHHaaKt&_7sKvQFz^x!YeZ~^L%;pqt>pU4Jw2jUFw%(gV3|J^yAdQ@EQ=%AOrn!SHdM234N6K?p+_{w?MV> zZTr8KR~NJ$+>O#SNb-0M=oWPFD20G`-GW~D9bM@cm7Lhtm|qVAuhx#E*9}WRp8bCS zm`wy6-iw4P14A=LD2h}*M&-Yc(foi^0qcB>lUe*r6HUFEXbE^l)(w~V-F&^N=6xl% z94(7erDd3G^HD!^iR47>a3WNXHOqbn{>bew%|FGs70%l`)PaBFv1r`^*a&TZlbT~y z{^WX&^l#CT-}$#*o%l!vY=?!UJp62~n&0h6;_^@e%ELP@i+qfxCQ5^khXiZ0z%9Ik z;wofqMdAfu{M7-kwT+M41f-B}788$Jk<-PnWFRA^5nfSq&L;vD#FYmzzpZg)5oU$z@F9x9cb)z%lidK; z(hiQ|MiBr`#*o6s=20m@t@|ef8rAyNFZmpe7n+}#$1j=mrHyR?HqIyZ@s_Zr09H8D z*RkoHTXjBH?b+$`Vd?NXs^am)4$ug`*iLlB1$A(smGIP3s@jDA=94f%cdcGWFG**) zhM3Ol;U`=7Qvcv>s4CqdB4f2Yc@w)l|E! zi$_thA)+7%NEA?-fT)NKA|fCn(g{Tp6{U)ZbR>z2v6qm* z9W6{l7q!IS3M`5KFcozif5Q{-+>BeZ2}Uu;Eo;fcSx1+9=~ZReW5wC6MUE-D9OiZI zH3x5Z$GPl1pmMtAgyk6L$=!MTS~VB)gME&TG{NZ>M$70|^M(d3x$i`JX9sl)DBnxR zp9r{_Y~wq+UlrChCINEVVm%*_1w|ko(w^6raOrb)NBaBmSBPJa?jp`pRrJo!Mbw<~ z%H2)(e)sU^58+RXd4nUnv)C#u11BNGk5rHblJik_H`}0~~zgfF}=JlCx z0=)0Vt)^2jw>TA92~aEUa0V8^vZp9jXgT&a4w<|^)H)DqE~M?*DZrOixe$1mQn}JS zN;bT_1<2R)y`p3WR+4o^>!jG7`?;;M*TePu_XIT_oEy&{0YjK6WN4S;a{lP?e8033 zf!P+H%f4lu;k~-qx=?fYZ`jiSE$gt1qb{Q18`iR~e{y}klD_iM#PWG^g60WEPmjC~ zZ6orA>rC+?*4O7mA;?sW*!VidT?!vlZ~J0!DIhP{m(jI~VBSSnjiCDqE22BUq#bL^ z9Z*@jvct48%c9}uQsfM}74eho-%Bh7yF$!ix>f32Re2lzQQy1+))A_`?{}mqa;2!o zeZ!eA*k|gPOXXvgE9`Xga181IJHf|9Ma&ko;O+K|Gqv(xX!u@`S7dtSdQY3r!*FTX z2jBh1Mvh~O6XO>`gjJ*;#jl&&gF07Ht>5*^M@%>hV20P1ZAJ%L+8`ldnc-*WL#cg=0}ZNiSW?PGVFl2Wj{z{X`S?@P8#bs~_Lv#_1Av>F<5 zerTQ`ui{FQh*%@!DGdyT45H67$yOkgK&0Ck!31f zXw()~NT43Zx6JHuOxvG&+j`0~vqKZGEyk1XUV zuaDbG$8YpnkVLnC&-@Yj!%k$#^?|t6`g`H6Pb&5t&^@6Ot!H%Hx59_pV(orQst9t| zJSG)K=^Os~eq@beyhL!7r23gSyDG|92fYY>?RR_0N&R+2^HztALUumFHlLjaDVbWZ z5HBW|%6e~Py#HJ}!K2*YweNDx%iEcD>RInl+)<(0)f9u&^&p>2@& z@!T>{=fgI(Y_`x(d(77XJ%{MZ%nSBBp1EJ5DoW&noJHa>g5vJw!Dr0-GDZ%TZuVDbq5@})33BGF~!3s$>%T~DGzcvnp$)__s>o_Av=Z#VWrQC zerU`%wPxhJ{Zt8=tiNbTgW{rHZ zfDR()>be1Ue)!s~dGr-6<(xj}vi9zrV^15`$F+*b%aGisy+-!N?l*qJqQYWC?9b@L zgfREvY7$tdLBYlVG?I3aQXOisoIVQh9V!PstwtWVlk*TG!a0YA99FPRQ+NMjbGp8+ zF}hNbpF)xn&0Rtp$o2Tp6~|4OQTd;S8J$*pd4hPG6i5qth}xrl+w0qrhOm#4!&sXQ z>it)jf87jXHCPR*Zg+^~we_H_78ne-FoWbY>qzl`5wXT)aIF69s2!+!k+L>Ec+ql3~r ze^(LVkwf9Nkx6w%CT|Pwp7(7H-0(es`>3GQ|NrXh4wvQE#Z4Id?ai0HBPC)Gv?r%A zy8!BAY9kqoSl*E}sQIG>B^RBS2%sKO5L05KBW#rG{$5Nn`5464wNL5uS}bVi@4N_r z9C1a?xeb<#0mQH~E9Fp!;)yvodG^}S*p1sxnh8pDjw;Qpg|o;YObNKdx^m)r&u^Gu zv@+T#a6;}2%ak~!FLFKsV@EFDGgp^2Pes1b9Q|ai@-5&u%uAD6VJ>p2gVSge$f8T{ zay?(SW4&MlS1N0D)Z3A7lDPbC7QNaiUk$(u3PtFYm{)>qUhvs)Y%knnoqO)J@K7rwtA2j>pTxX5x+#qHx_^x)nfsM3s6PRK}qJu(3V7i(#r zKk%Nr#n01C-TAbI>hbc#T?eA9=HpL%M+)l{O927xg^HMPK9)--vV7=JuKdxBFg0=a ztgy1Db=K{`C z8$7A>iN3*v%{Q)Kx;VWqI=ycX44d-^t&cjW4xj5{1MExFd`KH-JjL z);Z1Yx=THgOE@C83HjjI#Du&-2D~cFYPEqci|H~k%QMar>@{3v&TSX&4JriaR5%zb z^G_X*9n&x!e%ck7yD;{+ts0wVzr)()tvJ#9J*6JoAYTQ+E_;M6G)md;SDl4BP)fZ{R6QSXRn$u#{r>;tLa@r&2yY|KHBt}G9FJ^S^)7FmPkzy zgfbBmGi2Rm;7?nEE7r)DvC8JM<~PAl$)k>T+$^6*B7R7g^sHx@A-X6me^`^2K0|rS zvlzXBi`c~7IPy)2ReB6nY_pjOW81q@Qo*{=*25AAGnNXY^?R7^8;BLDdn5fz(-}9o z1?;}aDO=kIJd}1tDeB2CsK%5q#=Q z>QEiJy4F?VNK1q|+ET{Q#V;ocqB|`o9uYIfsUNYQa5rWgeT3{|g?>b|+?l)QpYmIb_(jF|XO=Zua$kxoesEbK4m`Df z;cNq>D8UkomUCIt{|&<^(Yw;VOYpH;Sh(u0S%XC{KE8RG*y*{}4umjq%Ea(yTRih^ z3xN(xzgx;z(xFa&lX-f!i7&4BdyiSZg=Z6M8_w@qFDiP#@g7L}bJ9)1hrK^Z%NIgB zp*UuYtol=>H5GtrQVIJF8xl=Zw|c;Ns#FmEVCx%Ck#zR#tHlF9OQwSEv?2>1-uj?9 zar4yG0V_lL?w;i{Ge{7-Dd~t@RuYcr>&ZE36+|V9~FXFFPDgjrL zQGcq?LXH0oll$XJ5lkU1fH}PW8@3dt4}CEKpI=e<+aL5(Qe=7!wcD&FWbbjZOHHxj zpVHHjw^~QlFg`v>&(UuVah~jk_+VLUoWi3y0UWvu#%K=~PuiYEpRvnaqioxsV;675 zlr>PJRsDIGp}|levJg)diJbR7N3e;r%ba=ZE4BZEb>+;F&?$H2p6<6+vkt1U&*`2W zC9#6Dq|#6=$&MB;T&bL?4DIr1{F>L<5IHp20X`gyla7N9w-6yyN5&cMIh5nAUFGur zcI@ez;Rh`-I_loOo|;<9mn#@bbiDeqfA~JFu#z+|mjKYt&f7!{>b6gM`SHzBJaL*Y z?>a^n_sOzmHCoQT9qz57@5M>a+~x_)%SLWQ(hhrEeuAe(Emz{fxZyIVmJcj@IQ<$G zw@7AF9S%Q6$vzxgC$AhVy}42=)6w;-7dT#Z2f)VdJThYtEcHF_Fo~Z;?rIByB!T~BXHo_hFDS1PK;(fy$qGzpI-5Z&SAcqPE`BhG-SRi zg2SKo#{JZt!LK_yXykmd@Yy+J%*j9o&-R`)ck4xW{|eLLIc{dOZ?Nq1%ni~GqX|1B z-Er=1%ul&|#ILibW>0w~uM{lL4CvCm1)E8J=^93pBZ}6cyVMh{0fE*1qkj^g{twSD z`l=H;caL=-$7~S&+ zc0<0`_wLTDzP#Vz^@owEXL9oXiOwURPFsM;Shlxz2XHi{h@B)sg)#HVCwtSCX7{yD9nch(qw%wYN z^b_U^+xOxN>C(Bz2SNHT@WEo=G~66q?7o3X8byZxuxS5pzq-FU|5m9@~G6U}I?pJ+|O6Cr5eG;pff;|kcO>o*{+t4aX z)=+diFMn|D0ss1M*z3!@g)xTe-tU%ULJ`lKSUcP6Mnd>-6VDMQPL#BCO?C%;!99(9h`$DbA4I)Q7-=|BB^8w-+~%Enbx&fD!`CT-nM^VSQ2Zy{dYl2dkDU)N#pNd zu9fMpKNXWj8khRo*-i7~W^FU{;ga8A(s8BSNgFXo)Sm|Q$Reg*;D*FlQgeHyYBf@+ zFungcgW9Z$O;AE^J#lu_ogt+tzvliK*rZlqlei#0;4)tG6g*;2E`)ZW^(~wBJ+(;M z2X#WZ-Qvp-K|Ckly+{dplLU1p@cGjDlYICP&NChkW#9Z^HOf)MQ6Q~EuyJvc$KM{$T1 zAS@iAlRZv;W`6ev<@S2HvmMVAC;j^{gUULCwnlDe%F?gaTt4nRD%0os)>1=5@;Wmq zO^=jl#7Q9~M`^e5CwxJ#|0G#l7)kkFut>V7ZDrqWa{)E=N*~q5{*;JoN<**z0vZ0Z zGv;^a?D*Nsh+jpCKWVtBQRaI>JKCipiDV5`wUVb=<(cC~lx{P1C}mKQagV;xTou%I3ky;q1-yd=W`N^M!KDItQyb5t~P`gRC&Rn*B@UQu{3a>%mg2O+|lB2 z2+@yTj=Ribk*-dE0Xzx3KI$g~ZyCrJGH%M#oaWLIAtb2Rnpe@25RG3i^Pm_F7L)Qx zbw9>b%|dzaGYxyCj2^sxz9`dgaDGex%&ohN$GFSwFzFAuj-{8^k;xP_^B-G%bE-g$3bLH&B&!z-)8SsJP zCp{hc7Gx7!+2XhI_0+4YqU4+z=1VS@W zPayYNnJ#Ys9JQvN05)}KOh@H#i!KY4dB%X_7r=TCRuJP&VT`uAcPiab16L>{ z(b7a~xNqsHu=50%YY`s|0j}P+NsCA3)n=7Lu%F8MuVu;f7`Nhxtb^@kqZe|XegNhYqu&m` z|J`%QaKBss2@%l0&|vfohYF;1pSHrWvRm%Z5nVb`8-*S%9C1lvf7)l#@Aw<`T!cJ= z;yf^h2|ZxqU8fHAlV>iYHg!9mP$x{>cRtG&fgREM+VzEQrLJwuulN0S!_nF)x)DIi zqTfF_Y(#Oxd~~%$-}icBccD=9$iZJT`z_M7JP^i&Bskj8GD%<<5C9iPO|)k=uenBT zkPW*Nb=1v3GR?BW?@uy~a=9BBEIv-zCDDyk{(5EI`z52{=S+csX57>iB4`WtRakom z`5GzJpY@*M0d54_C6FpZ+xG)@R56#zOudt@zi>>O}o30$p!Q z+bJlI3_DSEr>M^2d)M~L>|3k8o`{ESd|PQ}^DWNp z@x{ua=5@Xv``)9kmFgJC_p>n~5AIQ32t3(2i@33z9qj*B)^bJ;$RI?<1#72ZbtHaGa+X0b=KcS9aMg z<$ZX36Tzf)f*IuucN~V-DL#1QNL;K9nEq8{*PIN;%lZW0HdE$pp7uV42)US@`2sKb z<-ek}{D0(kFQ2zJZ*9?ke-B+WjM2H;)v2|yqFy_C9SSko;|?bVAg-|JEoqJJ9M_t z6+P+E@=J0~w$e8G$`!J#w@yfsy0Fo?bE2otr_8^kW#m}H?q6yJC&Kr*=^BTt zif;&1ZWRSXBOltlu;u72;h)|!LfUG}FtyBh+j7oQ(rKc34SyPyR-+TKy_d689QFtdoAY9y+)V{wgz-t1KAs*^f9J1sqE zvrmmuT+~kiKAh&W|Lwdy$+-V=mLB4F+dsiv{LA#qZY}Pgb8wI?a}CkPUMSjHc=GHcZ&AJbQd!nw)`4@KVP*RCfE%U5$ExBSQkK3g6blk3YZM6aR`i&pGMP zA9*#&czEA-&&44APpRgK%)8{J7+k{BBi@&}Z?wV<)qga(+&;iaMNcyJY%^8WumevRWE1*8zpS&84UX49@4 z;o?c+LB6SbU+hzj-JQ%6KHX1N-zLA(v|81f(JJky7auE-5WDry3_{89O-MGhkoJ{~w|HrREF7H2%!)#%{AolbA`vm`%!N2w3 z-)kY^-}?dX-!cI9@RsYB$<2Ee@>nyy&C%X+E{7 zVlc%fkEu{D?2VrWV69HT*6uN4o$P`0;tZ6H{Xver)fevgPC9mri=^J;imVsj&71}L zdVQd#{wx2`x3m_7^mOSP!oBm!Nq;Kz`fCXGpMG*Q`aG}|E5t8o9+YdNp`l#o+?f*j zfcmyWD9U-n^UfRl zh3(Mp(8S_9^q}BFvoxVff`N=h_B{@fyL|xDhfADxAK{DLOff3_sT3pM28pRpx6o@T z5zQ+;OHho-KTxwrp<2W5>Se3$$7MaK)VLy#G2%1a$Q{oei?tm}vnKEvlXt@J#W-E9 z*tA-Lk4XEL4Q+#hu-U-a>JIUVDk0Ry)fNmq~h=bjBfF(7ab6dR!);03nB_^e{*Np{qVH% z#qm{3*}pr%dJNWf)83A%w@u|ntCx&n%N0JTF$eR>zJhlPdVWr`r!!6e-@p2|B>r#c z1m|lhpUC8-*d06D4PW5R|6F42KX!GFXY}M);sG!~Wnb{C60LM`&#q3>fcF9by7C4& z&W9c3iQ&SY^BhxC5u}9X#xC^cDMef((i(2hBk;q`oU&kp-cbU;lO9(--k$ajsU%8X z7}%D67-9LvnyiW4=41AuDq1}+B>8$*LB&V8^@!o4dhmy4TZ|6f!M)tCuqynTdorZB zXx*jC!BI&2Y&{Rpj!A2)XCO7Nyd9g$I!O1%ig?Ni3DwySw=Xt*a@AXUQtp$o)Vv^k zhb#W${fT!RUDJR(2(VuKLto_-L9b}pYAOu6$>qiO^ju~kH5KF*ZhnN+6vq@dh(cxT zxC1L}vq`I{qJYXXq67n(0f({$eoVgFJI?>j-d8 zR4wcp78@o8@}DuU%GT-huygWDfn!x;VOKcFo1q?$(n3NO_wXX*5;TKBFC4XlO1vo zuQ;6)55om5T@n08YIy(tpTEEE`L{CT+sI-X(mj}BqsX-)hrrxa+ewN1_wdDc*c)Hi z4%C>E>+B3FJkL|@I%T&U`c~noENbY8mjtw3kWl#yp^{up5KD7Tw!R00-4FMMNiCNt z*0=QaRkqg2Y`>;w_Ws>4j8igYUBV=6#0u{7lvTdQ+t3*6R9iB&MR(i<)qqkTY2KG> z&z;QX?aJtiFWvteX7jNK%(Jq4j+)y{Xg4qXZvoJMQ$G0XafsiY|Afu$U#5(}@rHu; zP58Wc96jz(pW0e6?cj*S=ibDfvwvfjykXl4;of%V>FKzgAPIX2Kx?0dX>T_r# z{|BL^9RgYHbjw`K`o3Dav~C?udGDq5{rc*B3qpS}1;{f=p5&`-w=2Y$tu<#5y+@K>{H+^`}9XV;p?($0=hL?2=d6~M@qpJH)gzcPup zT2LHc>2;QE&s3Fq#o%R14UFZXbk{7F_Q$SIM6ZZ@WF&dktMkqD|VIJlR>5 z)`CI;o(1`?TVUTNv;E8oqdH*#7W4psehW&;@AzJRdw7Eh$4ktv&U+j4{ZgZFUyTSl zU|W*Hy>cRh6zX%f?8HRWriQATYRi_(XF{V#4zFFDmGLKz?(^NxZhmV8)dG=S70pVd zzbSgo~S4Xqr@5m6g|&Tf^V z@~|)?6Voe*7H(R_Q3@yl1x|c{FYgA^%?RVT$4?KtpKp3Tv^SpaG_rHFNR^$H>=;cc zh&;a`%Gr9#8KPJ<P+6FUFUgQr`Q*1)I&rR_a!u%- zNy;!EtHd73w;Zxx)s2&~VrAW)Cm(p&L3Vy1MoK+pxB=@(IGN3(41mq@_4dI-YOT{G zC3Mh5>`-*89tIy~{DmGRfGEg3iRg`h*XY=Od#KHXzlKOERY@%>5mdSRvS z(<2{Z*{=xkzU=Kv;iI?+3VITes+%>FgZw049&(1BZVlH-WPn=Eh}ATEVTu*?8-`DU zY5>2f7=I?wsyT^t*(s259ezA#YL*vgXf#fb+6gXvPkEfmN>5Z6o71}y?14S6e-Dm!&&->Q-$h?R~i7OW$QWjB(%1KX3|6IMk{ z_QJTW!TTj{ScZPZkB?Kx{_!)epbqtoz`l~EO$rk97B)ApkuTiuyUgq`TB*O5=gT51 zq@2NUYsM9IB7)9|W7ith5%ZZ&%Lz_F=QtM4YO!hYEC=0rAKewK8Ut|7MyPwa_-N}6 zx79E}V_SC{V&nlpBwqr&Z@*z{d=BD3KoXCel!4R&1Dad0(`^Hr6`}W;U5~l~mCJtzQVH^cGZU@^FkP-`+d4d}q2Tt6Tr} zG6fxA5r%<}g|VfCDq@c4NB9u^byxTZ?X%z>*B-T885BV{(_Dj!YZ9`{GqS9|&$K zFY7ox5{CGZWi66^6g|%6YFL|fpqG1vRcCa9A@WJx>j_JnK+joG0dTgpvz_#}%C-_@wIQkH<(*pCAvYA zh<#lJ1TQ&eFs(6_^DJ@JlkM=uWG{zQwerr4i#ZaUc3*=h4&@)hOQr?=)$07|pVCrO z{=FxnM>@}Ur7Ha7tLdkYsXdDfuDJm3MD`L2j4bYzVt1FQZumyfqp7yzZW9z+ugKL|9@N~A#dc&P;!$xU zw&etF=q#OfU>pj;pr>Ghq+6d zpyKnMW2%U%qX5PwNSbGW4Z8+vEdzW#%*GP@1hO(lTIN2KG*VVK@GquEEe3_;ERw)91eNYfX=b=H=lZ?tSAdzl5Qm)6MVlY?>gX z*RoW7*Q8ih(bIsniPuN@4DC;IUNOI}`-6kgp+-3vbMidk$S1Nx%xe|6=dtKXwZ_MF z3lMJH`vKo%{HQ374SZl)Z)G$qj26_ zay$j%Y+NN!qdgp8GmAM0Y5#^*7~vj_B3_dhZX;IX3*(B|(9xMOwq;s6O&XD$5-=({ zHIaFK9pGZJQbG*_aaJp$W|fCAOyej$z#i9SR`7=nj*;%AgHe~4&z>Q%w(CL- zH_TASFfZai+$Hv1ik2aug{QAQX_fCl{A?qSC^aLd;sN@1M>f<%VgjE=HTXdILuOx=F;u%SZ>gYxw1E(E!!hQSJ zqA!`tyjD?azEbUhxTa`Ugp23!!-G-3&q!cB8GM^vnm-+56M%L+Qo&bNHMVf%12=EA z@{MG8yvZAs{4$liLd#^F&SX2|4eRErJQd0mKFfYBS^XN9Ngg@TjGJ0Rbg`r_Tt<%2 zE6pjoEntNoGfM-WBhE$9vlh`t(&aF-EgvMCI)yREiWsgj7A5Sx?P`%B8shB^e`9FL^) zMOmfWnG+6qNQuEm8ik;Z^N0j{B=3l1p_b`_-}M@l+%!nEg#Y?0VC3)mc|Tlp_t|fm z*Yv~dAH&v96ir#s1MKW?3SQjvo^yvrbui{q{3zv&&G-PO1v~TllPpX&@-A9o>Bc7M7LAb0bfv4G5fK%S_lmxm4*P#-|cHnpOTd zR|>aJ2Yb9sA)FpYbK_f??od2>N^X*)t=@@}%x~6ta1nirtYyJ+2wMKgFhV<%*6{Nf zWp$q+emqNk=Pz_EZtxPBda^SZb(wM!?L7i^W^YC4naRNs^Eo^DD%LBr;EP|MviXL; z`COq0Wpsp}Z%T=6nhP^s7m=iJ0WIIqWCqwkzIY?Lc_IBv6m6RORKPXNadn?m*@p6l z0y}dJnzcBTdyh-kAa}HP))bInmu(2n_(;gu8E)dJZP;JPZy0#|MkgSFf4g^ki8Tka z)MCTe+>WxRT)Vw|2tZ=D%DnZF541Q71gNI|4nS39N)zb5qZfAYj1dO(aPvJWxaAM@ z_)Y#YH3FczN)S0zu9CWh8&`U#R?j$u-`Mc+7=8TYkuSzdcUroYb(L~}X8U25IBciF zU!Jjf;GR=opBD3tijCg-&c9>N6O4O4Sc9frF=r`!i>d{uk{9;xVua$%rIss?k-e)$ z?(Pd{rXuT;Ne+P?a-W@vjMt;s?P~}KR-ndQV`2G7f(JKj*sGx|1RjhR42L8Q|%P6oj^6wc{ zaL~GGTEbWE8V))ZNecq*56~~s*@F?wlMEdX)9*THlWl>*C%T7G?~TP-Q-$ur`^MQq zXaw$;$0%-t31448(4(UfaC(>uHLC`qS~2b=ESE?WFo!m{nO8+@id#?uSTTq3JK`Mu zV!){+I*$S@LB}wlsP@R2C_WYciFQQ$-q{CtfbrbtdiQXZ1kZ4Bw zj_w5_R0Sd|C`tR6K0h`ih6^!&RUXYkxafU=woQ;@?7(_=jTWr8>SmbWH)at+U|`UO zPrvfv{UC1mkytZEI!M;eBwlZ0;7gbDfSYvS4+-sbw`n#)Hl~lk59C`+v9=P%rCL1O z%3IE<&p25di_!Sdv+1}=G+|>8Q{%{csyg3D7E7b6ZRyJaj2@tC=0mVfrrW?N3r<8} zF)7B4bO+u7`J%QtYLi1;(P=2VAoStztnRD$iSpaGNA( z8jEe%&@u{d(%+>0QbzUNL9DdOX^timJHJzem4aRrXfXuKj_7QNq^g_b6y=ihwNo!_ z%R*?NS4-DY6^CnOFP+H(AX2Hn%|~tFDy=9=WWNO&rQAjSfI|_)Yfcj=IQkQ%Zao=5 z^wb)w9))1G=gl2TWEWwr_~sQy8QP8=vfOM%-6>RyC5uPCU&jmbe+Tyi`Es(s9YE_g4)Q(C7I{(P)$S&gZm_7` zS2-X?{JHPv)7@)NK9c%M>{v3Ci;{Yi9rI2OV2V-h32|J`fbO(%YD7jv z*`Q!i*Tiw|NT$;{)Uuh8E9I) zrs5M<{0QxzS5f1?(SbS40k7v_B_l@6`zTP%(E2>sg}T^3{2`~(XpHrdrsHwNm1RFK z9*^hzG2~vxoZ7R&J*(q(YR22K!0$z?I7bUF?#4uVxobp@=+N-BEaz#TIs@@D+EDso z=vg$w)x1xtw)`3Jn57@XhLLARAGL$&Q}k^ZkLnGd-U0bRzbe+Yc8v>LN)0!V?KuXw zZ-O?5p)o)Tp;9>RQ*-D;QlpZZ!%5!`eZmTF`d53c^@Zc;w1@9vXt9%oj-q154aP*oarc!41hJ$Fq!earEs<3OG?`Z*} zdjy#9lP&0*T3=?KfTUx#-*4Dph%WVORlF_b96jxh28~A&QJeQ0W_H)^cOfANt3A(_B|kZck#?ki>GePEJ=oBI{!iW zjrGlQ!Ml72QNOY=&AP1#78YNbnLij(q$KahlF2?d8HRvngcBU_uJKdSmIwzqWp^dI zk&eR?vNu26SdqrX8+A~71HrR-+onf-Unqcg@kb{&LUjKVvD@tJ2BS_4kN@u~SF<0- z5)*Fb|^H_(A6tQ>7uxMY0YI_d>Li}s$1~&y+Ss(#_FRmbNko0|o9{<>AEyFx57hHm`tc=Ei(>s~$?gYMC;@_ju5Kba z!M)j2_loaguM81+oczAR+s(zB7gL?umsb^~eWKiiJw8Aha`|OT`h4qEd{|C*DScOWbeps8vU>eWW%Sb^0d7UZ$P1?0a^@suct%7-%zd z%PZaIP_$acHW=ik*uI*ESjFz0fXYA?P=1tfGOoC@>R0rUK!N;&O6v(5O%rX@^n~mj zeZS|hHT~Oe=lypvvmP!ambnS8e+gUlyP4Ou?{t=eNUg*4gg@^D4{{ooEW=-J`FV3q zoFnXACys#r)QzmzPgv?hmDsjxPZWNA290&CIR?LBroQH@UUg3XQh!mU>zP9;?e{WG{8AyR;qej05x>X6&V- zcyKNtzyC~a1Tc6Y5ZrW$28X>(>tfc7t@f=m-VwnGU+R_Pt-zU5q*O$su7k_&CU9w{ zfpbk=ILoAyJNs@Bjqb9gKW`J}c_B07jlX{ELy#3HqA61s`!>APcx}cn( zU+xDLXXf@bcXrH8#zVymEwnp@A#aAgH#QGb<{jFU|Nh&G`?75s(j6ZYu_r*+`BjVl z>yN{-;SWxfgvX__@8N1TZ&QM8hHlz?pDq{OV|VDJeg6$}Cja{E@bo2yi zp&HB--DaaY8+VrYz9ID!C4{&H%E1|62Ddo)Bh5Bt_|d$QhNTtx&IYig5Bc9`R+r6k zVWiZLm+Nkx4Mu<9`WKaq!86Rlgq9=``qxE6u(MmJe7HIOb#TZwTq=UPx(q^apWZCM z@#Ut)*!{-bQfa`isYM5KOkI0aq7@EC)OGF6$Yvpii5EaQ)?T2g=Rp-S1mZ1w;CZoB zf(S?1bE?T)YY8XJ)n; zdDGGPZFgEkjz#r8)Aj$nX5I9D zniSvg>GOqC#}JEneH+`0SA3zZpcNaBsG+~ZrOJb)vbhr2o_t6Bt*SLxAsF$bz*Bh6 z=6jzE05vZ0kB3-K-h5TIN0Uo|A*B{dXO_Vl76G#-~=&}}l>se00} zIXRVY*!)nwbKF2s{PEBCwgvSB&_g?x_UrPsOF45q3cYezH%W2TEEF}ZU0~Bb@&1i7 z&wS^2j=s8A)z`lT7yM73`6AQi4n-f2Kn=uj?v7u&xF-Qkmyxe(cB}<E zKkr9DL~U-+qzg+jfiNzksn(LA*r0my&W7s7C(7%Ti^S!1(&wDw6IGgdhw>C&>I3KY zAlyWGZZ3Oo>)U}_7vL^M)YEvg8E{hJ8mWcnTtUGb#=?^2efG<*fnL9||g;^!&Q z?`4($LhN0S@@0;$!SB<%y0by}t$5n!Y)1`y zqMc*f6h!@T#b5CwK3e$2k};>Gw#$B4fkxzHJFik~Fepxc-W^nO7|pRVScy&1q<3Yt zm}Q7o{DvtF2hgN3gd>EJ$eBCGi$jnvST(yIP;RYnDY{jtNH{s6;L$|9zOp(@lB%g^Vok+;bw8_okZC>dpK2q(&l z{`zVpvIS96q7I+`>@=zVbUWDU?)`>+SXSM@@bY8V=p%MB$3O_?=XInbM1HlRdK<{sN{GBY90L;iodz+ zyS!e0WsC<-2l*uP1l<6^Rm{v$-PC-lA!-8n_YZZW27rl0>wWc%r8}feefaQL1tiML zJDx8$GKB{#xtU*!L-ByUT&92-Koi6e_|X2*mGg@ATQI8kaI(3H++{q^9?5S|0RvUC z(+rBFev|&{5Y$m}eN&thgyl*Oh@|&`QOOO}ODin@wE3h>U;ty-)0Ntym(4=2LVEyp z%0&!8#>tToimOy(!f10%%kD#nOj6O@kM6hD|g16^4*Vv4BomkIeo zC2S5R13b{Tu3UYS?*u+p-QqR22GOb_YUFDgme$TO1FW5@p?sOlZ`f#Y zForMW=@DKPu?pO#F8}4)`>;?PXX{BIqfz4K;8onTIBuy47!e?PYq~E#3s@eIzhvJa zTGi;5aV{itfZ>WjEZ#n+4znlY={w1PhzPh(3b-b^{0eun!Ms?1}Mo>TX2k z2Z^#vTM;f#rGLYUQikgIX5JX#9^G5Q;;L~*;F0WP09w)2UxV!|!+u2yGumkW1 z(()0@=fGV%^xI|xQcg%cYTMYqe3mJ4l+2ae*6H93(#=5PY4T+{hV;b|xK0%Vncbo` zdK2lk&e?7kb5Z3mYQ2~MZ7A*~aw+N|+}!qHJmi5g^BUaN#DkOo_bfQs9{Dmbv7~a> z^|2`UfO8X@hMyqi^s&$BN;5d07d{f;oc4zQDv3{t$~zYwlHH4{JRZdGWmSD%&*)d; z?J!`^8=^GM)Qvg05ii&YF2={{PMOv`!>)+vm&7w@q$kT$LGvuNUEP;c1FM=2Utp;& z%9Q)4#p%S(%G++(HZ=fLix)TT2$z1F+nx})HJLfXAkhnJV&7HDk%jLbyvcH9e^HSm zfH#o7@5cEcgD9D9kbzH398ya*Q^P#Md7Sna8H{E6R@^2vCh#8`UDwR}L<1cWM!|mt zx~5_PGzAH#HGoZ##6xoaVY${C3yI&|z%S3TmO_zatqnx;YF1y|c{`fNbTN0~l9L2dw#DyvC|DTN5fBrk}_dj8*@}CWq{*L1~ zYJ7C$KcqEHe?YEm&2-Q<6`#$wDA)*L&7C9ftxvgdPg;xSw0c=Obj2ptQxZEnL+;gQ z2rkM5F9RE*_T9-0#`1G_W01L0@7RI2bk4im>G^hE1HAa`v*KXYuRE5n*I zH?wE&+57$GoIlQW%^w;{)>>h$U%8+Axu5$nk{@E5r81a1#Ou%b&Z#9|u?Sl?K3}ap zU6Y(){U}PVHuTLta1wG+SdO`KL;4dp!4J3lnjN{t+=; z(7Pm;>Q1R|Y2o5m|N3G4-~66S?`H4Xj)BT!*I?T>wqrt#{^8X+x9kYLR*~}a`6z?$ z-5aw7-)FPL#}lC56IONm=}w7bDwo2i_KXk{ivVMEgW?G7TIub=;;PZDbFbuA8!pi$ zemp-N#Kw%n*Z1!a@K3I!U%q3I%!f7WHqXnV8h+$PYz-&^)J2E9!G+D+UXFj{9sjY{ z$IT7}FJje}U=Clr?IP3pjIS~+NH@3iJdTe6X_{H|t|N$St{T4R;v61t6_PnUPUY6B zuTiG|`SgIxtDo#2XkHGvPhpctCwhe{s!f)RNxQ6to)daa51EE=)6Pm1E`YcezO;Y2 z7JeR99Ig?P7=P3KA@cdWL zHp@voM^t%A*wut4p>nMTtlys*f=_EM4Im1)9fRe=aPoXq84|oLy1D9bwLHP@^}6BN z->?kpz;*vX%reNh^R+o#VoLT>n0fZHftNq$RN6ZeNNoB1{-3NUWB6~r|1f)K@g>hS zl{M4>^Sv}+y^JChT=V3ukm$o%ev2aq{Wu^)KwOf#;iG{>I!$Wg_S0?P117kp?bTCL z*IQP-p8Lr*wuVl^-5}rcF{!v;9~U&VnNYi^Y#KA&xmThQ!~YX$l_=fGh`AqMT~QTv zIxRIku438qUZ&qeXs;l#{o4pse~oSHcaMvN=fWq-pePyB}6?Y~VanrY}YG2hqb-m$D(@bE{h%=^hs2{==4 zLdj3~gKiYGkJk^7Hs}W-YtVxTnvN(<$_);5nf->H*8UA^UIJWiu0p}@mIPh18BoXU zLaHRJ9dsA~9kok8g!tni*Jz661fQ$l|G8=ZGt&NFnK%Esc>M2WK<5(r4ryv7 z`vnwbLD4)x3>-@z2I2GY<-_uOki#%|mC6^scSu9VXPUjklb?Ryc=6C9E3^yg?p0qh zxd?|&zd&oS-To5gsk1AKJzyI@hFbt1?tcjl&j|;+Y{Pwm{p-Mp-n{dm zg7L{kjkD41-5V#Sp2q}E4=#rsMToDZzs@w9dOK~qscyq>**9Xni}F*>P77aFfAe>6 z2ICK!K6hN+7+bqG=H6{VPf#wxA(eAHBYMXa%2hXRRj7ZcDA)p`vcjw_A8+Fhzjo@u zT0lbLLF9$0->|(yc)ADT2NH?;V#hM1Y7>$hLOFi>c7@ks;`1diS_TYqzWoht(xi^S z=+QQXw+Pj%a@E&x3Le@X=oOoB;*Mt5o#(rs-S@?yFvo@B98K)cc_aOubF~20TMi;d}6CGTw?ChwWtT$%jtW_+(s+yg?%BtqZ?*(`!Ntg+G6VevwQkK zE86(4-Y0}49qx7M&tHVE98cZP`2hl%&pPutJD2_C3GzH*GsWw8?ZrQ&5DL^Me`hrREtJjJSR-;#b&Pe%6~E7q zyfD47$L=(_L*fQsN@P-AGY<}4p1Of?xm)wnYsJrZ`+EcwB696JFaY1001u)wViIAt z1PwvF{N<@XanZl^LH>XJ497uv>nc2u`VnY*sEhe>4ZMSM#c@;OrcRs7SWme4LgsK4va>iJ>$gFj*B~g5 zUivpefNOftux8#7+$x}T_?x$<@jE#nHamFnXA&X40g^R60$7A_o9Z<8VL{*pV)l$O z{TZSinK78?b7{uxjb9`10c!Z>_!3S%vEwj=2!x>NzI*mx$c%sX^*>seZgz&%KxGv# zEgPNo-PzaFO4N)|7gXIe7Sh0g@}JcYdm}!Us$Jya`;b_WuK%c^1vvQ_EmdjMTR*<+ zGv~gkle`g?MSn|~c}=U#Td63;d%1b~zyJPbdkkYP6rLWa5%>OFjG?fB1h@COqLVTD z%le;@%`>vSc{`&8R4;>u?TaS6Tyy;pVH+3}F7{P;;vY`de^4v;506irm?!kul^4gQ z#>>Zfh}?lcP|1FnDyxuKq!B_yG?Bfd4M@%mAH}VoN2k1DLriIt1Pue2^S-8b1?9;x z&mMQ)>Zx9sMnun+Cd;ropI8qvD;?2AJdM8A3NC?g?H28puDSB`iY)Ve`7PHA(_-0G zMjV!-Ejy@LND#n@?8bihTML7LUgU#zrCz`@0g%Nm*#y|c&d4E(rUhx;&?1z$^@tW5 zaW7uU(9>X3{k7%p@Z!YL_nz+{#`@_NB-&*MOT5hMeI(Y$>1O+b-l%{EvuCxvZjh)c zH5fx+`8jw`SygcrW>+lpeEqQAie)j!+ZQM;sH3N;HQUS8bu`Xqn79FIngWB~P(jA+ zD%bThZr%!v8Ln-60?1Md%SrB#ba%*oJ;R&s1<6CGH$a1BFkdL@0;HLR{-j2shyRTt z%YQG3`!ioN#NzB8`aOqlZTzwO&5!I`S;7`~>nePqpk(oUjS~(xjSIqLrM?)(YEw*& zdef+iZ`IdLsvQ#LaBF$osK9ojrXKYDHVLe&rwC$ba{H_Op~Er?6FA2uT9! zNF^$~mpJ7iB9*_iteO;x-Cy8J5@OSdho5CE;2e}q%Sj(t-VUJtvBp1K~8PNlH z&7ZjtTJ(=y#4h^`g<|%{R|D9g0lKhI_-81U|5NYfB4AIviFBAS>TqS6T>}-@JPD9? zc9zM!B%-1LOI?blAgdd^_j|S-h14jI8;I&P$gn&*+z;EtzJp7ZSdd{}08bbk1%Q3N zeWePY91JMawqs}CIfhAv{-}1r>3=0v4r|~=lZXEdWcua%d`(a(?UP!7*RNnxp-KgRbN`Pg zEh)YYMYKU0Bbu{%AShf6SETl5p5q^rg#F)HpB{)$2i!7;?mj}gl=9m-@leG&g%(QC zGGAAe{lI+p+=-8^Pv#1Sk!jgv#_)ZpsP@}{jZj(7gU3p#G94QNcOF13mr6D}&^6wn zRsD)xbjQHLewGuBt$mJnuE`?TSvI8;DKgr?i5}OF51=Lx>AT}Kp@{Bu zfu|MFAPU{`dm;@8ckGDDnR9Cu(zrlf-DW=|v;H-So(WI=O8DM+D0*A%#mZ^We0Xs2 zqcZ=$a`Bh`;NoxEOqXvNeUr_dWPqyX=b+U;(tj}c!STgY%+-Y3kXEh6ZN-N1%cWS; z$~PWP8HgmleRfTiu5D;ZxB)F;T{-~{0C3+Buo9%;Uh!>1U?-vWZ%v=4h~wZnpOe$d zFE`ZPNy1j8MDW!;rca(8RFhNFH#OVT3Z`#rIjF-7G1@d;D5ExnKGTJpEu`2_T{dfa zd$q~1W3AoqmT^=h&k^@CX5h#f@*k~!CEzXif`tca^H)OdfaFFyYEdE*aP zZN@TsuBS7MwjcTU$`tm1VP4gk#(iGt`;o6S!3zwoHlugPmhtPCV}cRHGpICd5kTWq zBR`>Mmhe=`Pj{FCY?QRe%-f&rO(*<=*QGuQ5^NhV#2_uM=L zt%0XcYlh#n@~7WaPn>Jp88+@|VG~Qa_iE`@!kzUZtf!dJGiuPF(6f zZ1E|H;TD^|D9k*O26-z7bw9F<3|TFk9`)zXaUs-@>^~|W;V+czX5}ANy2ilp-cQ0s zh5wyUiV4#aQ#}v~)#%k+8d|Z$)#rQ3a5(KBPT9Ba=&!)PaZQg>xuYWtD@?KAW_y{s zYG?~~;{`lW!wpmOc+&euRnO-9`zic4MM`pX61BbExxTDPUwN&N@-aDZ7uT^tISbH| zLS938+Q(3y_L}6%wln!Xg*OZAK^;PC6CH2$+jmQqY(2Exuk zvrpVLg+!@Bn6U{~dVwp=%yAlVY?+UdVlFxRZlcOagge-zQvLI#(K&&IKIE7=(QOq) zWm$w5lq^KZD7c-vOG&6g3chodmWmm>BH7-^Q84MXq5N@%XBSuXPdUUfo@|WSQ$0l8 zuZIGLfTMur-p`sa(shMoA-wsruqct~e2o{bV7i2wQ)Kk5D%>+nvfXg~OBH!;MVf+tAHEg%beGE2hp z^LbApmCeqHYrS~|<8IwY&dbm=7N$1nC-eQGi;O@D0nhC+8kawKBeof_vzGxZp%p1P zkf5TQ{;q}-)2|^*DvcnSyCsimek=K2dI|}5)UfL*RGKL%ym(2#glQ4?*XQ#98rCsv zzhT{~gZK?PB*oyi>HQ633xJxFE(BNqhP{vh`}JrlyJU5!u#|5XJc_59!+f!?ptgWT zcxKv7g0*M^v{16|{1EB?I#sOC=WLqY`=cQEw8j%wyTR2GjQv9dQQvJ?xFK=<6G2e* znERTab-S|3MxVD#0%M4ELmMwI<5|4nKc15~_#j3DeU`YuSf7Q(`vL$@h8gv%HH8PheRG1-7ECKE6HpQs8*j9&(crxkLx} zhW()p%YZ`e21l#<)4OABuHCx#g7kk)y|#MGE8wlT|6%c*u6FG`y#-V(P=uqMh^Yfo4G?uI;K!ecUKpUFwG-^LYxj4*8`BR#KjD}9UnR#-uTexKd;~sYT?&z8bcgjxlX{!~tvF@2^kbfv@{uqXejn!)F1i9X94zK8n}{{O?=tD6*GJg{gJ?5zR`in=+->M zb$cIdF(|~E_N@yS7nkV9JAHmC@U;1bHH6n?&afpEPh)piZd0WYoDmHJ`vON)g&u@($2>kE@FE@ zUA9e?_whWl>+%ARVj2stt!ped=jl%!?PBWfLoQ%n0#iAt0wBV(uZz3cbaB&A^gZW( zTx3&8ZfsXV_`678=GdXKM!rHPQ%d26{?=XH*h!}{*;@TYgS48a-6tvDwex`p z-NmoZMw^9BRuKz*2)&kt?;B#Q0!lnZzP}z$vaY0UAiUqttu1)1+I}3Y7m|SX{w%O* z;?w|2N9ZE^08fHx2Bm?5%57#7!%Z^wp zX^S|{N9f8ZEqi;RrQK!ygvxch86VSx887EWKA0Hp67+0{2M>j%hiU!|QOy*1AB&(Y99L@Z$@c z>_hzI9Fp6bJ8`QCf1GBXY56cBixOAPeV@QxYHjgT{u*)_`RsKx-?1VoHPI9xPHuSm0!Agik(26 zB*NKvcwvgW4$kR=By7CCPn^#UAY5>}A7tg96ERwnS$w}ii!)+(=6;ZS%Z&$th|~%R zQO!XQEayW@?=TPk=iZ+m4RnoEEP_lEuCGZj_c;*ALiwMCNr#<-yI87c=`}T;s;bUW3(FtYnlHLw3MWVh& z@bkv;b#V4y7E1qoB*yb_?U60IHp2tud-t9e6FkQt?W z0U)C}gR16&NX3;)ObJS(M9qpn0BtJiZmrL8_}ryuy#9rHa~P;($I@&)k&2}qhxn#R zgxX&=+rPZ3w>7g@-qHbAZFkO>Utg>;9W6=F+cno)y1RzCkZhd9Yra?1_?1rf;|`is z+Lhgx!?r_?)1^2B(F{Xg3NUA%HS{}#NvPkNukGCfA8!+JyAQ=#6VMS(ju5VT*s*uC zZ^yvYdf&4rigf8Wti>?kDA#PP>g|R0jF@M>=WAXPUw=li-6>do1#H9%?;|_Sx0!+< zRkvl~J^~ExC#&n?-QlS2_)HJY z@vO6@=Z}Nu((G=k1~1j9G#rM_9>{ybgM=RJYCkklohj@y_@hpiqRrG{bq)gMeiVPs z{PWpf>CYyN2AthYvP{BHEzHg31K0Y%Aet{dS%VYov0()m(a7%R^oN-lCEp{faw{){ zwj{Y-JecnHBJT11{tzyT1<4y^&LYWQ`<_gl%6h%3u45b1>X<8WXF{B;CFv|F2hm$U zA$MQ;K_5|qTLU)iHfjXLu5Ok|NgRbGD2)Da?biZ#-*psI1vqT1soG#0zzjT+64ve3 zkQy4Zv06mRxIc3F$~WAfVHlO!8IyN7{D@ex@uG&qDQ3yfCe_O=E6OToJz`A3i38ofR(65!wKS8U zL^2(M>`pjF@Fy06s=|~y!?lL*rM(_QAI}Z$Mjg4+2d(e0;^-hQt*HWY*B4}OdJ3A6 zYCyZ#3yPsHe@g6`{otCPS)2TGQ_)PSs`hEQ@&V@Qce#)VZUG0fULYyoBq7#BGijGB zlBn`^mRI@jBRp&#iFPJxt#|vf{)RE6u%8*gKZ1{Tl1E6}6Z{k)$N6Zl!?kVHG5zyc zM;DknZ-(BD6sW>`-cjx9}2*a6jaR`ZFTB^se;u(T{ck zpO{~Z>YRz5a1dS7rg~sn@>t56aO`hxqX zM_0AeS3)CTRY`EEk{;>fH|WA1EP~%&dB3sRQ6^&tJ+Z7{$0R3Be|mJ-V-0CQtSRtx z@??A$e`LBSZYD-aAXfsWB@iUBCqc&n(-uC)v2DCcG833I%b8nCU5i zBRtG28BWQ~U#>YreCZ9?4S3|+&wZ~fw4N4;8T)mk+mP+ZW*Bpe_)nf-lsP4fio%S* z%k&zh%2Vg1&pXJk%7~L!)iLRNe%4ueu7= zer3?|@dYOGdQ#S-lLvVYJ4Cd434gZwd2l~Qe>Ra01+qbCw0IYW6KqAW=X*qG9U2Vt z7!B|@c@sTh?3vS8wC>(A_B!K{n)vg<^MQyYoRH|+9`&@dDkgI#(yEv0zh4gQ{U z>5@Zf#jRG>`7f%4FCrHk51FPw;Y-jbA8$hv`>G-77;ehKzGt9*e|YFXw;|W6@Uz&i z55ry9^#Z|_EeWW*arRi#4CL44cU?(p-J?U*8-)yZGH0I>ar+gBaKb-AjmXze7B19{ zBMG>$H0t9wa#l`cae{J9O_Ihf@kYUPmS1ZxO1MG~2C{ECx>JpSIxV~lj(?ouJzbiU zR|=I_1NJ^nqc;kRpC_>{{K5&HRCg=?FiT1f!l%fLDwCCZ@Q+dK6mQJ|b!-3WP_)|R zrgmqSgWep*lFOm_;wq*$9_4X6v)2r-1!H~!ML+{~2sLfK@XAw$%VPZQqq5D3i52CX zQwa;i6FkJt)|ami!?u{me$^gpG+~-@3j=KNlneOht0JU;{^+ptRB_)PjU>Xs>Po{Z z5?9ISuT@oW&9c&XXbWVqCUs6{HLmg3Aq1-Qo)V%DEi1nrn$*vejoCGnyYzaD^*x=$ zA!Mh|8kzcys~k6h=fR9Zr3i@U=`n@?p*e6~ay_bf&68JG&DYDuePNUrHz!Z-B5gFt zgd>V4qcCUCryT&+mBEW+wQH^e&H9NGXFNsYYcFm|AB>KNeHs>q#zu)mnS_(V+mFXz zYr%~q_Sh*Wp~22WPu1X}49qlv3M8+RnOvV@>UWpoY6Fu*XVIzzrG|6MP_3oghgW-1 zN~(reQf;aF|WeSL&o!c8F7>dG?S z``NlEkAvhfUzf5Lx6uf)3MDWR9;&WIfU_@qRoVwgSSA{@@rM>7pM-nG@CrZXI&sxs z@GJ8VuyJ*DO=0Dl0$t-^X-TP0xLBIW+ZMiKUqW*Ozogt_sO6$SspCUgMAx@D;4hGi zR29GMY0chv(@IC<@D7BaKXwTDO(%;bfsC4P0BoHsKA%7}Mjz|akQ}zkjGUW_nY>vP z*%o27;x#OJFWIZ?#ChMLm1O6=20ET5OntaGvJkq1i;`cFL(5i@To$`-@0vy}|B$b4 z8}U_IlK%klM%t@CrTc%9J|Y(t?cRj2@M9QWbN|Ef-CWU-oFvW@OSJ6V zQ(`{?c}&eXL9!LgSVGXPLRNn)4LbFrB?~IEv_GS$z9=(ln=igzi?O z1ub3Z4rB9SpPAhmay`kdDf-nU(I~0&gmg(jst=To?NL`0oZIFWaTBiguM~6LQh)rc z-BQQv_L)N8(}S;oI%r7Dj;TX1%hv8UY+uU}r2}m(P(AN#69`fG)#<>}$ge;RC=nW@ zfp(?fN#00GCQ}ofXSqf^`o;@A=bJg!tPP6_)u zLBU<=Ic*!Oq7&sm?B_J4iyOkXBTh@7$2RDW{Tx48NW^UDi4O)T7rDz?UN zr8&$qeu}53xW!#ZLw;;r6g<%zJaR_4-Z*N+u~`aEcwuQt@wZeB#%9%hKJ_+l!1VTr zbI5l%=H%S9tB$8*B*;O3v+LkrFuPpInrNfuDTdyCHd@mx;W{v2HCVRdM`ECMQt;>xiYLC}I8<5yk+`^@=#d)I%%1gedA zU7_TT-L=1gtp7vi9(i(R*y~{{&u>_KtQZY;zVgu&cv{*c*L(W|dxsTGqEb?ya0au0 zO)UMkRc70v;4Qm6V5DXUhY09JzrEfYP+?glj_&zK`m)<|`6Wx(b)EcP5JnvQXT@1u@kJb=36h}m?s$#2*?rJP}tFcL%2e7>3kOC4`+$^4Lc8|?%1m6m5}lv5la(%_!~w`(u5E8qb;bOXeG+< z3_fUAwPkgW(1B{e$Pvq9_W50;mkr$3t{njP`(N6*#y%WpM}2%e<14%gH4EROvV#5i zgNR26Hna{UbE+tf@~nRJW|Tj6?Xv2Ev$4~;o6*t}%NA_bfz#InjSc}<-!af?F?9g( zCOoX>C}rGj8Z~mV*)lp5EkY=ahrs=yj7rb??t>!@*Y&Tp$?6AdvS?#>d=NdxjX-Gf z35xNQwKD+`<@VmVtC-cXqWr_A7mmRMI9Yi-G(G+S=QHQMLFmqX1DgS2zPcq;Wehar z3MQW-=`<_m`XJ{D`sP%&h#IR%y%;~qVO}~xj1ofl4O>ekh0FkTG7PlCB+0qrPG;%W z&w376^B6hP?yr|-M;ot*wN4Cswb{aiW|Y^Qsg9UIM6qv|2AdDwk~mDV-i`gdq#Ce2 zK#o84@RBb&?XYmzjo8-LvEQF}JMV{6Jf|a~gR#f9fnz?=jqfpMzjsU4Ru3pzM0C2J z4cao6j56wPJ$In-?0xs=i4<1wNILaY*6Jj20XzkdmJCAckX|wmvYw^w+eh4=DdL^I z*20dUYMFr+vk-J5-hzi!L^mLYR+{qD+Xn_G#9~ITMCmLGS3h&rqp=N(7*n`l7$jy0 zOEixT!>Ew#cN->$WA=^NC^jRuj}@Iger4uVl#UZ+57w~?_}+)bg^0ZOsw0djuSP=y z6+s&KP@{TkLQF<3AWf+ceWi4;hlwBGf7d$W=ftlsfY1fR)O&8AsPiQ#`{*}}6TIvb zYuJ@R%+Es%JzX{p?cQ*W$TbSr8tc-1$-Z73KIwA--u0fQj9d-)4byRJfLQxeVvIzl zsX-biKe>b+i#Y@7B94&yON>t}DV@kujfy55Sj(|$p;Mg`ip12On5d~6eQ%Z%0F2>m z8fPd5gqG(XsL+W+HP(7p2G?Td2kfWfTv@(>+`5MZjm2woX8CB4lR^*DxP(?E z4n|>keFpUg(Vi)&`~(Bu7oAE8PojDx0_Ey2nDfd#sl>wls?$N{PbATsgBVWA?sUL* zhor{IzI-;yS9pCvmj)VYN;8ZuCWV$+6J|)6NDTQ}!I|;k`NqX20 zaaNf8rpAyQC%ZQHuKT*2Fc{*44Brxh zXbK-HDc<1n$+|;Agm@H)hh|wLsb<&ZyrO)1oFg8WUDAK&T34$`g@mgIx9FAW^t>uH zU|L2%`!JTo-SF0T_rl{$sg1mdgWNYSNEO5-nBMxuC|5`vHCu=L0P*Z-6_V}rZ&;`X zKc!;a)dS06(dMXH7(8nbzQLm!CC>GQkLq5*a_~;Vc(IuJb zHvZs}-VOWGm+iaU;ys*^fs$9UMZdzfabu|AbgO=vAyow}L4t?Mi1c|HBI_$e#>d-N zZ7kMB3tmB1znkr=2C|p+aSKS0RSNRvb)zi2Mz^j~|I8N0RVsuONL}z0E~R9BxHbIyL)l%Ts&rY(uH4?9$$E$jA>lut3e0 zgDhaS1Z5r?i@rcBi6##%^`8d8n7bxS>uxm87xjqJ=x`Y{GlaW6_S=<8yOy=@fUSM$ zy>$*sP_g+O>ANp8Njr0n@S4>zZpprQRUho0`!N6hUTd^UvrqFA=S?ITM$g7S>=Xi_g_eyb zG6R{7lgrbV)VM zKv3{DMjCBMy1W4GYmO4bG~sEUOeNx^)pp(qtuI|AAg{B#1;Uih^ajM z2^kO$w(OTCeZFxI+w2#Y9BOUE-}*-1UGBA)&)NudXYE5bP@nKbT|{7w5DAD>w;;7O zl5bAnUutyPW*oVts^|ZVcm9*sls@O9FCk?guGPW1n10N z=FZgt_wn~;ywG9m15?V`;{2D363dBZAj<_R5^Mw2+?dcd<$Y*mrc+TwfUypV!99EQ z)pS)-LXpBVF=}d?t{!od2e_k1DT7wsSPCmNd5)vc^ni#vn(^RiV&<5V^0PFU>th+K zHl4R2=NgnIWiB&*U%$w(-$KkKguKAW(=@s@&QlI-qZa+P5BR{-b6Sz%I<2GUTv=4f z_jCXiM48^21!-a0d##nQ#t5yv#}(J)>no(zBSp#faoYv8XOxs;Z-gDUH=a24K&w_H z%5Sh2PrM3*sm7;Hqe3BH$BoZUQVRY_QkJdyKa5Ky-`*A5<_%V=oe_yPb>GW`J~t%K zjh&}_f~*Y{aCAjW6Q%-68#$R?{Ral&TTTROsV>e&#JP0L#tkAZ-|(j^!K6Yr`eREx=E*44x95|c5grXsik4n=B7Td+IRq6 zcJ9rQ5l!5(GqiLVq@Xz{N2YKg6^HV?CLi>=WK`Li@DcVO_OClUQ*rP;qH_5#=Mz}o zB$Su0tI&%^*iVMr2oAUm%%3N&r@J42!q%2_Nr*6^mAoYRuwh9P4rySZq3SZpf$6K^ z9-#4(E~mH&_!ypv`+DCzgsS`Vfm!FpY?i{SQ<6zAvufs>F%mnc@Nw)E;qlc0eCbh> zt4+7JH2cz?Ai}i5Z@?)h7%9jd)ZaBc6!IjogO~Gu!zO`Qi3sAiUwAvjsOaV&K7pap zn|E54?GW)Jv$PA4Px~<}6`DCIiPWQPAGjBP!^{Yz{h7f$KzlqJ5;1PA{g(oYzY&r+2*qMb zxUMH&U^_7Ve%Yr4n9z8*e*%(EbVmPCe)xBLGD+-Fp@nZAXlbc)+ePcpwwJ-@|M_Py zDCc$$K@rQU1%_j%PS9j2VYXk5bER{9eeuS{K@X3bg_3EVPx&3^RQR3OuoQIXYQk@r zCLYQL*FdXLti%*BganV25#N(DDW~w9RZawJcY{7Fv&zCvkKNKc=*lNaMj}DFW8MO^ zAu_HIm~O=vwb0onpgW6?N6^AF1p%6dEg6FKDJUp+jB@@BYmM7)Ihvy`+X)|kt9^8z z<1H!@Pn_L=fO2G&*>4zBYrl5_|KQ{2q^y{f3d_bPYHuQFloa;)lORhh^?^?=0oN31 zMFxoGw9<(q#8<6_Rl$cP=viN`41MS*rjhDS%eL^&_`O#V@uFs}_ClNOP9ah0kCvTcj)PQ%am9#uDOyf($Ujm~*{oCnu^5TD#ANs?|Re3vw*E z3KZQLzw%l8Vcz6s^R1&d-Cw;qbaU$?ptGgT)oASYBtp_O2dT>t7Z=QYny4kH190C~ zk|Da0XCw5xT88yr)SO{`cuFHeFg|zg%k%N;(z0VvDB9gZ<3fTryj!q4lX}qZ^r-}p z`@?mSi*|>efwsy7JF)E2@`vcX%cdE>On(iv@I)E31*OCYN6*-vk|AFY$`|DF+ zo}BVKk_+rM#uZ%ljP6D+2dzhI5BL!{al(X zUu4_@VQetQ6x^~L{(Uq>3Qqgv7y>0`Ouj*-7c2X)c6u~$FB%Sxv3iqmGfd&@+jv&r zv|kc$(wym9`R2A4+~zUsJZDUVkCnXR63f|)sh(Vemg$3~T?j|qD{g?NhQlZN=72}X zF#=y^{FgH^9zouB;(aoMF5P&IbJ`@eHlJGhZqFF^v z2|jT05CrZ(bfJ79}1pXF{LD= z@|G8ekEk8|5CwG4M$UOKWo^89yOgYP2^vn)iv!R^ErEx6sx+evi21W`{ng97-Y$R? z2Y4i4;=w>OTaHJZz~6TpNnM?;)F!xvSZ25uHoZMIUYYizTo9d`>jbkGJ#+W2ZZf(DpxKp1ql_B{UGBt_z=K76f+FnIHYNPJAkI;IKI z+@F@%|3I-l$c;Th6Lt3H>pZ$I5_Bz!Q6ksswEaDw(^1TqA2RN7B<{{A(>M*t*+I?D zg(EHD>vL9i3Bzj&kxHj~-f7Wftr|0?V0IW^?^gQfF2qzgzUbBG2tiyJ+KLcha7*l9 znbMZUhz`C|htcYWiN8Yh4$hu3O0@**@r8P?*T3>Zkf-LXRl1ciQ}A}KZXZEksYvf~ z7st7KZ!*)J%C^;xp*;!F6zTKP@C5Flnvgmmk)MC9H4Ij$|98i!?^r=s#|Bx?Dr>ZFfEs3KT}5f+tHLl*2kBy5=?w;TNCE zt34iWN0%yIB1tXx4>qHU^GsXd3FMy=;+&2Q`rAeXaf90FL18RB@0+ZqMfek;Z} zhoxNDSk)pfOd(#)Q|Qx??&dWEXcxlLiRA&(l=Ge7biujRWRoaPAZ~`G@&henK{Rm& zn8E@?V~9R1X{pZ#T542CY(*J1PO5#0c2Avft_2GEE(hz9eg&IVdSpD&tQ9~miqcLM zfrc;Y0rI60V5tVof#xX0-u(wUQ4^jo#7xYL4y19X_`nU~^;fIZvPPD=^kokt!+S(t z@&0^e-E`|@;9)-o>whNAZ6iv$P?T?l%d7yu_OHcFBaTl3pp!+23F9UJs$F&_W@lyu$#uSDY7ODHi*~p~?ZTFyjM)>}@;h?cR;A1f9nq7ULFH z%ZA%#=JDuS8nAH|+m1A5MEHH#reCk!5ruN)+rr&{;oJV%SH!>TRmeDli;%(!Jz}Kh zLP5%p>(0Ly_)k)-V^-F^Kq+~t!ha(_TxL@N|k~S z-%T>b`<1M)Hr*&W@FxQ9Ku@jVDT`3Fa`qQ=Xx?;I8})ao7qM?>{vntURP0)ECm^Qt5h;aeSAlj=bZzKl0G~>!(=PFb=~cO?G>*XcaH;KWTX`@N#5`d(mt;L zAg+ypKXvTrJ+`N<`4`OGV_thZYRGW0D9qjd-1diW!NTP53&MOksbTtX5{bRh%WFV+ zFn0VZ$&!hK;b304=G#x@jLCk3o!C;QwN!s1w?zq&{W+AC(`)oTwc`0yah_aO5`N{1 zbfcY&@V&AL23KlW~uK?#|nW0H?9;s}NKbL|vBDuz8Ew!d; zxk&0ZIhZy(c-{ja$9Rm$zP{aGxctV*Xhh(S^!WzlN2mIwpX7?wuK`QY;AYr9^KUZ? z<2r;Hu0d4Lb4RCy7c1^{BQ25)sn;yP{<&uUV_0Q}b(KBYHB^Rq^<(v%(WI|ghneIu z!=V0*(_TdK%kudr32s8MkTvZ@hFH@ zp2|#Q4=Lf#XPlakfQO2dKERH6x3@a9SKl!CJbcckE}~_bfk$y`iC%+umgONGA<{#8 zd0d&O;tQ)8o}CHv>&=K!-1THL%j@K_oJ~s9#X7UtpxC%diS%8Ka9RNciscVUbyaC) zTP`Aa74B^FN(+dRKSihw=eP#nxm)}e_n>Ze=k(D;x=vwrQD5FvpTg2iMM=3%%!LQ{ zNI#4R-Wk2R##`$T{abcDi98-A)T?LqVus@~d`a6pHv zgN}cHD6(pJSh262i*rr<+RgHz18n`56yq+b=|AHWo6W^fuQCqA}iq?<`A(aB6D)M6zk??S7k9`y;&8mw?3y8 zc-;2&&U}qM)DsO$gZ@vo)r7FMH;VSwCQ|ZiF(H#HUBi*9>ASe1$n}g*1JT;Mr^0Dw zJ-}4{+*IDldl@IJtLG_~d>K+w|R-~t<#-v9#~e9{&=b z;N&PJB=6eEgEV2$Nc8}pf%pSj2Mq)qEF3?@B|M1KyM6Dq?-|X5F-(dEQ$UkHA`*Yh zqZ4YUhCTn@<%_;YL7haH;Oz;*HHHT%N52_19-X<=+H92k^KKQnYhiyJ;k>F+y<#(= zmk$Z461x6ucEk zA3t{Um;XcfwTU_j{CG42GD5*jc->cQQ-QBv0kF3i4rFbAeSkml>)uSn7wi_Iog_hf zyoTn+7LV;ehX1N&`|fr~Cv-gvB$?9+fqY0U?Z~Rt!pQnBTBzJHt(!kn2_A^X49tU! z?5sCBM`MyhGr%h~;cB0l_ny_fAo{cfuj0qu=*)wiaobEU_`QSks$WF6j?{EQk>ra% zluuFrs(fln{!hv$^UGJPvL&S*3try6+j6q_W^A$AE0J5tPh*>(BB4sHdiXGu&R&{{ zjzGYx1c|-P8XVm;mFbNWsDL2nm+{l%l*YT9+~lsNYHI>Avp!!6^T)XAcqBDk9(Df ztF3k>hx91qx^OpZ@FsVxyXL3gG0HqN*Y1_~p5e*4x0dFfZwo1=<)=x@%9BK7^w3DJ zk@IMPfkpL)3ui~9q_t#)zsVKq#jaC!aV^oKSs;r%fqkUG_{H?(O9fwb*(o)HSLHrg zZ|$o4&PQvQ-F>_#e6>~LMA5NHX!)zu)PT5{pwm9sJI1GICParl`1Qo*29wc`ErN}v zRThjzs)$R=#~o8}(ZE!$UqJu+waOWTq`-PLs^Qs(&n}56P|jW=Px50_a6>qX2z<4K zAQSi-#=L_H6+#pSs5L^&k`SLN`y! zyUEfujC$QiwPS<7p%gouxc&6NulOsvF%v5f1@hd^MMyl;v_p8_31k7M#cP*7`FGN_m)Y)|WxM`P0b$-LrnxMcgNCAR) zBP3&rCnlx(J&Z3`!#^RG{Si5qo?a&Q2Op%UUJ3h*=He28LFp(XH|k z)=JkJKJ03YJ>T^f@aO>K2G&SPWC}gkzOVQ@#528&ZRT#1jC8#NH6OPu&LH93SMAYXa}&9_`7p3k*)wRb-kEa9SbE!IETqBOfzJ+=de zf%IZ^yj)h~g8o)siD^U4Xj^inEUGUOkcJa=W%ksLIf6|PLr0e=#4T$;!JaWi5<&a4 z2PJgMz)Z zuLV^smEQcO`%yTE&w}S&=rFv@4Vg)H4`J{8;8fhwMpXvlaUj-Zd$Qs_Xlz zL^*M9=&?RdwD9t%mu^H{km#v_ka^H38ZnqkiJf8(k8qP%EKAg0?6`Qafvdlyu}u86 zpTv*Ym=yX{2;5_41V5Dol$EXSPT>PBMeE?kaSqigMmsd(m@ZOk7h~%9-sNJ2RRt<@14~zVZ7;NihLlW5zP@*XQvU5RdUMz@wBy z)N4Lv)7*j5t{Vy{wg~2#MDo@6>Dk2QBlFVT8O~TGT^<(M-V#6uD~O-^f+}LFpJcPv zpE7j8obh?rJZWFht4&X8U;OM}dXw+;WiM_(XF-uxg4QKrBQ(xYM(L-$RQVleYm!=SqVm#T1d-l?0wP^Nij)LV zdJ_;(5F!F1HPWRwrT5+vN(iKQ?)U83duH$XpFQWpe3{>T@JEdC=E?Ki<+|2d z*Se6~kB2db2K|Wg@fB_omj=avZ=BNQ0cPM|(?9871IimL-n0rdZq(2 zCDk5_A}1=KPQ5VYP|7(l^+Zb+&B>8v$ivKL8444uz!pyF4HDdG;5Ja~Oqc!p_JTvO z%5R@g_2(B5a?}8vp)~}fJjH>Ie5qiX(Pf8ngOT;Yd)$O13O?ZvRiT?QDGkg6SHvug z9#8-PWC|=OgPQ(Ya~QKpc*r~+f%RPfxYm}Dx`>$NzR!PbuP3MO5k#txFs&rvimJjku7zrgz1 zlURlmB%C5fQ9A{T{BdBv-I3MH6gd1Xl`c{@72-iyZ2^F9I6p|K0+t};;3ue4!IdC$ z5|=jq$+)U*?h{xw@|FASz9G|;!n<-&`>KK$ulu~7UO>{`)V&S*0;)F7u zxtDuL7ZO#peOQONPVVN~-#f?re5ou{1pb|Sn+0p$4XuIixVhoPI*j;tMDC1s$AoBx zURo5ZcgbA6S`jZhZ3C$%e_Q*|N~!yAE754);<7GaM>m9`VT$*GNzYFqSzc`aI$q;M zd3^8)|Na(D`kk!ozrkp7@dWc_w!8Ln>-x^R5ANkDTCX5I83P zdrtnp{ON6{YCCxewfm#+@KU4IVpAaTnI?SiN8TZ54p1jWQB}JqFi4(7M5Vi^Zh}t7 zS=#@&Q=eXH@f&8H(fieWCH@c9Qd>(b+B_O@RS3os!f^yL=ay%u_W!CX@gR=E*bKxR zx=YYg(h%&hg^#ojo~bbMyA~lAVCY#8ve40~44C%+MQ8#lger6nl!9aHd53&t!@f@H>5c zu!SRJ}u+LGX z*;YflslHCi%~$=Ma{9F<_cz*C8Rs2oTG0gvoe6`EoxqvVT}VN``o7~%%yhZ#^es|r3mo8&i7H1%TYi)V7n zdNx_ncy#UQ&8i#UFE_O@ef|KkB7@!K$s8kP1Wx}96+;o2^70cVsuw-t_x-)e_F}ay zIBi+g9W<`UpI?T=!saU{Lr3?v(+X{-B5(W-%rne%XFbF3_BArJt_PDSfqRL+O8!JL zC0-zf)&nS>t`i+4Q+_XPF+qOhBz=cALKO!k;cG&t{T!uVrqdz~Vb$=q1PDHl{GOzb zJ-F8r>4xNT`R-jXo45CJ=bYJUul?5h4o4G7^J0#~YHCs+r43neHjelh!mAOm6r(Ek ze8KR`mk7C|rh~<%gGkc5#i=iy;nxw^Rm@%3Lf51WnM)#x#8wFA-}p+#_7M)f=(R0K z)UPot4yJ4u1hF(vFrFaU9dK&z;=e3Yb)}f}S3csI-%!4x`Ta93k205Ob-!ivT zrL<+|nP+wzRW$0q<%xfzZey&q{OrfQrJq0P+qj|FzaXrW+H1BU&gne+XV-qQY3Y9B zRcs#ABVzEP@nG9ra;i*@U{aRv!6w!hFeh4i{TyrYx0|o2U}s?NXDFQH z`j$&@*WOO45X;M3X9eEcIb{d#DzGKFQu;1tN<zYVKIMxC^ zk!SN${jxP;s70vi`5}Zu!^^2uC#-J5kKgfp+rGnYx7^j(!cT|7?<-#dRJ#HMt@;b0 zN$noc1+Sfpp)yf5UMyDa4lbo9vbNT6>o!_%hF9nIHE#-=K6biFn6=cs6b5@%vbsnA z&sNNx6k-5WO{pL0s)w25hCvvy^}3(v86xv0o_oa8 z8fvZEk0?M)&S6cF5vO(S9$pL1+Y8>_i!9b1wL=y*Zc<)SWn~35ZQEJjEl01UJigmg z_^5a-@Ubw>i7yxoTipo8^puG-nU8vA25Ka86I@{9Hn$A+EmHsuTY3BS2 z(wFDR8Lt(1cin%9uHe7jK0k9*<6%1)$K4{{3^A%EzXR1NgN!6ioJahzLJQl7=Os)y zl`1yrLT#$MnK;u2pH^L75nkSYDx}*n6t^csEF+Z=_Q6r%g8aTm0tW;-3nT=Jw&sW9 zpa$eO^eoKvtEvu$p&We$$#S`(Nx#p*{hJ*_Nacsr#?w_L+GCz;ix}$bOpmmIG^AMCeQ?VE z28t*lNb&4`pLI<`vPyJ$S*;e53&d^WWNC7l`dLk)HUeZ`gnNmvH~F%^WZX*|;8G!) zaaeOHDQP92xkZ&7|C^IkgXn`-n|B!gR$S^TRA|oqfh!7?=&%x9`~EInY{2OC-F_yP zp6QY^<`>~lsVF@q2Xz$2l2VsR__oGUmi}UkXNhH!)aC}8Sf)CUJfQNa4amx<)8w(37 zbsi?sEo>ELjy{HND5ovauup&I8BFKoO~2YI74@iFl9NjP6S(U_E*%##Yt;{jacTz1wFo2`|9*C$fJ^8;a>M z8~p#UB1a`OZQ|A)X7>KlNKyG_+&SbYE9mLtxq(X3dFt^cu}XEAI8i{QmVWskZG$)C zNmM@~ss^BGxbCU{W$g7Y>LrCtajFoRduj(Vls=n`7ltHLuAD_fGS}!Y(!Eqg1(169 z31WZ;(P6oDt4CGGm>BsJH1j(8=k@C#Bk#gA%8cMjVECj=^=QDH92`viw~Pq|0Wjuz z6b^^ACeN`U)s!(G^e9N!e0>k?olDXZ0^IX3K3UIBu zjUPXFQy1%BQ~#Qk5M2eaqWqF7_drX1Y^q8V3x8%QlA^$z7!QDDCE=H^wXH~s;5mZ5 zqE$7-6erOU0IP<5%U0UV9R2Y`eufWvbS%aAO25Q(ec#=vQtNtu_06+B-zfehkQ;?3 zf*_`HARfVOJ2ka6X_hkkw^cy&hp)tYIp-a|$BgL|B+&CD8uWg6c=sp$QPLvp{CW%f zPkEUOgv4DH773lY^xfUX2Q`<%>10GI4ozvtah+HzXwwb$p!Uf@DqLARl!q={2qggnV9Tol)p>uEn+ef03+P}wT9*~P-ipd)YPqVBnO zwjGUhRL4+)IGXf!FA28Qk_0kB6<2}?`_D%B?CTw1cCQ;leprc z1Xm11;AzOkhkvLF#t*59J46Anq6$eM7OybW0t-!N3xZz*>FMo%v|o>o)+jHnQ58Q$ z@P-7{bKNB4AVo@Yw*|89x)}a8;Vac3>A^Val!Xc*{BH#l%c{=cf4v7HZ@4pj*a>+P zh5ZYQT*xCm_UYqKEp07+d>%&Pe8Wa`BjhKKwd;cGR@ypM z$H}z0K@;JXRwR*;a+WuUE7<1j;=wv(vf{*2pp!(`PKtO1FK^dP<)8H6*da0_e*B_L zK%t&Z@=G3%SLgIAsX~{;ZN{EG4yx100NX|u}0etGH&O<&R=PRu+VIdH#%s1p&l7y2(-t?yO`e=Gr*VVFLQtoBWVfC@Xxf*J1 z5lU-r)IZ0%No<_01Q?D>eG7dXsRC{^BdLw>j;M^7fD5QY34{19!V=35g;U!mj?bf} zWxKl`IZg(({tvZNJDM@8UBnuPtK%VhKD>P z(9A<(8j7?=LNxNMY-V}J9Ut%YF?rV@BSJ>qS=(drr~iqe_*a54z4m&`_ zPzzT}IGPrB>VXq2B!1@w2K5pfO5kj&#%Q19MO`PTKSsAJeIMCf+5Q5+#+J9x4ZD6j z7`791kWOm61noiL(DvmB5#)}~2|{xo83~vyH1pQK@8wrFQTxn|pkdujuGxi_7jcJy=V(0c@t|)vvz{v`puLMCmy-uJt zhD5M^d^B#_Z{gr2xtwBtP$Iq~r@>M39~8U9cZ4!YzK+m{&FGketeDEWrYGUeJYxd5 zMC;t~XH0E~jsa+^kHzfXuKKyzuJ?=R8Qe$T5p2N%TO>qz&!ZFg(Ct$8HBIW*>H<5A zLkeWJ6_vvwcO4E)67zRBiFt590@Tb!9LY=^;LBbvibXo?+mDpn<2cim3{`cr-hPM9 zrdhs4`rno~_H7rsIIL>D&@aeXA(iqgKOs{d&y4q|rCVo#ouR3{O^`f!K zk~z(TATKNus0MnVb!#1=NgfV9tl;CtLu3aro=G?IG*vg|Z5IE1nmSlGBW8LN*mke+@rNge;f%#u!Eb0;!URz>M2SExlqA-{ zEB)Fn(%S?7gn5Ffn6c`)>_C3BG=>4liNhQZA#a|32Nr;}wyU2hbR8dFA5W$s<~?U{ zs{I--wEgX>suT46>l-^5tSO9uCpc3m6{ONlGh5E+1cg0r^t_Aob?4Zr!VUM+TS%{W*?ts-m zxBHebFLiOyE{Z>zcMPUp+B#&T-S$U@aCm@;t5>s1o?TP#9aB*R%Aj z?hsQBB7@N6dC&?1Nh=2p^C8({9|LfD-r!a~xw9bF`hvsLi$1lu9h>Te6m6U3@x_cC zHk{ix6c@}zfspViW>-~4vcW#tIm$hOu0g8`ovu6J|Ai{Y?MMuN35$vf@g)jx%yQy9 zUIpc(ezt{6;`i4aUr6_TRuabcLhMFQT8UaAN?7ez7V^I*5)g=P@W(FqC8?F| zdL8Dx6vO_nYdJ^1GP>To-BX@{1Drv2U{U#P>{kIbLqE;^4X^595@Zax%#6Wk5ZBi! z;x)gFH@6J2_*6A~0o}}Nw&vJt?4R#isGAGt@`%Jn;av!MM8%N1Bl1(o7eWGcKg-=e zzCg$G*(iG_3%=K4h-M*N{Hi9qXC)*RME6{&YXdeLR=MHh16yn zMV_65-0j~_31dUFWVL?LQknf2l$dzG9!A|4E|0yDZ*l8`Px*|k=O^? z>mxMVw$Ho2QB2*N5JZ8qd`e>8t1H1+2J(dO&7@h)Q*V~UBEG5q z8;1#L%P~{r*TkfUV=YDK4j8C7dVs~W#u>;icDEIz>JLlHu#c_wJ3i*Bqtow{W9?`t zxp47?Lrv|@Hzg=Cgo^wD)rqR?CP~e4e#a+hv@0ma71iFp*{VgIEBIsJ`cWd}ZoME-0 z`p(byo)fP>7t){AGJ5({m-FBloWt|^@T%izzqi%dcjqiXPtZ20nVsq@Gd@q5BN+<( zgbH0~isVngJ`!?m1mg}(%$$o+7oF)>$Y$`+H%qzld#DKwyjNAS6PD) zg8SwVTykLi&De-T!vL?X9@02=X5~{Z*p9iZi3~%llWU#a?3$8)3*BNH?X9d_K7Xf2 zcs`cAjb1&*y8yQ$uwo~-+7K7UAMN`ILaoz>7L+5>sV^x&ypvmZZ=p9B)1RiiVc#~V zHSsC1GB)${GW;sBUqWFt$D!~4tWFS_FMr{^ob4kLTAZfj>zY)1t`Zih%Qg}9phElZ z9kMBUtq#AMRaWbU#+lwEWc7&pSu@*%t$i=kibt ze5f1j-xZ462@5a=f{ZSq3`g^KoC!{=hTYCe)91zF@Xj)It_1%X)m0mnTfBcq*qrag z=-?)E>*~UXW+kj0+1eS4FD1qnU#G&K`BW~cb;(q8MP#PWXEV@BFYU4$LZ%TW5A(oG zaI_&VW9>>n1=nl_SH_|Nt5{=GAXOjlmkg5;7Aj z9+r^U$9Gj%hAvWm4#lC~*}I&XzRR##yj!04d72#7y;;*=)4Wn$8{i#dpUroREz&eO z@|?)eM2V9iY6|0z%GF zXie)$b+g884E!4jOfuTnl^@!@-ZwB1jcceo(Fw zycglDFP**BGaf!27G99gmJ^$_a7eW7L;4twVFJ{-2t)%y9(E5zcIV~ZGllvLsf35E z^}UJLXH&1};e~ufzejrRftvYBm^0Z5KLC||fX!mDo1HgetnK?ipkC+tVryH73^9EvSMwA+9_auYJ-+*PpBl% zra~p2ZsKnawy-I^Y9H3bSL{^o=7%ou6b#mctj;xz5On=|#$t73;aGgjbMCdo=}@m* z-y~77N+!PY)Qb^!!|XkuOWCnLh2b=KUWVI(Kx|cpBpi-Tc$EL1n*Hc}nHCoXTJ)t> z6JxQMI7}_{+u%#(SHRn$CSauIt?%mZjpVp@A4Ld`D(Om7jOwRom0K8#F7OK=LU?X;Yp#j`KsErwmQf7I`^T zZPyx4=f?$mUwfQl=~$N>CvNZExb}EW_`GjnWPX9-{SEFqvuBTFZ5%g#CUSAV8S*qx zH!T=^Rt-|N_aTfq+Zx`vgz!l&r30(k(eNZQ(|WP}{?Ke}-4di79e>IMO#Wsogo-?v zXtS^X8l?HsWBKSQukIRcyaMZxW*|5wfLhZP2Z=ztuVMR>A}t?z$=t7oIR!g+aor7| zwTBqZzdTLq2ih5hy5c}2KDrrOs>ok@WT3n&@#?|bS`6B!7TO9nukQ9l>SI~`6V<-PddH;WtOgJ7)I=5&FklKv znt;p=QLiK<=RbLEMaZzg(KRUsd~fW}RH&}MY%S(>MNXAM*#L%ho;xz7K zXR0aUv5Wgo7!S&m6sGSf3Q&dV;?FdRqrb%TH)A&@0kVD~6sqI^t99;OLcn2>TR8P2 zTvURp*gOj(k|S`~wC-1RqZdZ4@0CqXZ1Y5-k||x%ZI%%Ea%8JMf@&kf%dKGJboEPg zU?!7=Lrm1?gSAA%e!Az~I}=zqK8`TF)Xz89s!X#fbbd%G`J!V(ou;C1g{&SaHR#z^akZfZ^FS`OFDZNEh6G>gu_@KJqg!H$ z*^;W)icA8$KCTB_#M?Povng9V`K$$V)!kYLzz!?Y3q5hLC{*H=+q|ty8Pgy?K~X1#trL$KOrz+`{wbO1u}f0_|yB$-(RhpZ#+JrW!J1o`OECF zpC!!~VbTY5U;HA*7WNp)wuz7;(9IhlE#FStO}jjmtgMp~`AfCzM{t$LceQ@W$6T3( zeATs~-6@a1#w?24<8*zst;Mny+`9&4GTPAr$hvL75M_o@v4rC9V@jAB%ZU{AbOU&Wl zoJWF)zXCNDU>y)4m!Zws3qvh4F3g|kk?Q9vE)`esq-d(~2rLPV17L@F3718Q*dt|u z)w(o7eVV0-utc^ik$`?G7f>Ttc3^}fD0TqGi&?h=XkVitMeR1UsM>rbgCv{O<#o!9 z+4lrzPSXAVy`e%4iE<%II21TK2s(eL7Nmz;TJazjIDxjr+EUE3G2{m=H=2W%(1PnU zzf~V=PuUBSFq>`(<%ONw_e$yW-AMgDqXf)(J;EgV2hJNZ=lnTP^UQ`ylv#4pKIe$} zjRmfO)FfU0Q*%Rj(X#((wuHZSiN^dL%b@8TvxHDFgD(K^`;a+Oj_h4yqy? z8S&U(|FmxMqAOMpKnG!Ecd?^iC>yVlO8~sL!de~6P$`6{=M9-ddt17rGj_SrCpnQa z3o5Qa*dTmx_rFvlo&kSnMRuxRz;-9fF%2>jy7g+u4nyxS2XJL1OJem3t3<*fpAS_N z-S)>96-jLE_=h-;gH3g&5qUJ7+$&Vo_ zK(IH}VSBLx?~`su6~TgmHLRxG_38G@%^hx_z)f5G|15CR*Q7#N{`2(1wGlty95rr9 z=LrUA3UqF|_Bc-O$(*6&JWTMUC>;r>xR`YK5s!=*9$h!& zZG{H?0$&qJ8A4+3$-Dq)kXQ$jU?l__BWV_HVjRM|`-XNsF4gVt^l_>di`=lKy|Tx?T(rsFE@Ax(jwoDqFS zhzmh~0h2h#bOhL#7MZV&)xSvEj2hljarpsPi!SLgdr10xPz^Oe`Xsq; zSkFni-t(8Brm=rU7Y8*qlqWs_cf}y&3V8Uclzw%ZQTs8HH?lYoAMDRuJD!+cOPd(6 z5XJzduhKI)6xZ_IMOJ%}I7;wH;K!c?aZ|sVYJwdmI2+hr84^6BudhV+-g8KsH__Vi z8(W6Q3xzPA_-DYN{R8AOK>{0ao4|`L{EGlvDAP6?eU@gAbE))$g=YUoLz6scoo8Kj1=4X%{#|_<4IRSN%l-*u^GuhV5jnCsa z-`smz$$ow5y|aigB?Zj#5F$|@(GQsYB8os^J2cvSG7(kK9m@LQ^3X~of06>7-~EO_ zXM=nl9|h;aOD*AGI$4s_k&a%GbCp1nfMFpijQDxzO~D%ycLPR0g}ZPr8A{S#zvFpk zsr=5ZJ-a0w_rlyugk+$EDd9Pe{_iA1Sa7aGy zf8XxTf*0YEVH-coJrxvBh{jk=mZ(S9?AYvV=X;uCE3Jb8h(;JBmy_tMN%cIb&G03h zMV&5CdF~sMv6@FtP-r^iMrV48iw<=`rn!`8<#{UU?R!*$R5Zh%KmNByOScBO%J*2| z5Ii;MEpR5?hO;-hEf_Kc2CWB1-H#p9U3_@quibQwDR&1+t-yinD#>sZLX0q84EL(R zPQxF*!mX+EJyMGj#}pl-^S>YPnOyD5-U?0pq4uOpdTkvZtu8`PY0bP`TexVervg{z z3|t)8$nT+?8<#|U{kE%VMsUDg>RyaY2rb{JO|hJ^wo@x+(2-scNjQGpBptBCtEN1@ zTrjgTLvFW)|9#8>n|;nxB@mRF3U{CkptulF0!OQ2gLdo@{L4)L=RW1aWYzkF+z5@w zO27S#Z@kAHqO-FMY7@0WCo}`2NOA$Ks8b%~zVY54s`y`js8|HC&Xh9SykR$i#nYd^8{wJph;E zGGPmOEzCgC2~Ojb3?%7s*#8fP0%EWWZ>y`~hy&gGP;wAB;s47`_=JPRJoDmq;nQkf z*h;F|IKJz9p;1U}NV?AF0*rcC^v*Z>92cUSH^9IRTFU6Hx* zm+AC5DreXDTEraKHciMtcvVM=wB_uM5X8 zJf^x5a6>fb#*ys>Bl@+d9R?7%^pdkNPxfLIk({az0?MB#kL6ytKa;?>ICf6jG1`Me zCv|clWGKrt_6zM*QP1x%6A}$U>?2|j&V0BRq0T#YXTiVZje7#e|bKi6! zl5YQJ>KD$-ce?z;=&Qh&y@vQTSK;*yI+=KNSN+Np51~3Qo>&$K!`IfXY+bB(c@-*k z^2C_LmCJRF7|;X37{Vn;yZMM}A2epNNkJuMKfj_b#kM&rlb2ha0$+fCtp-=G_zgz5 zytmznm9dKI^qH_FOxe~XU#|T+E_CZ-ZSuK`A8TVo;+_hhACjodF^MJf0$+)qaS|+- zfc~o)I~P+bJo>Cm?@IXU*s6Rw??>-QZ7tgCA{Cq`vOqj@ZkVVNh%rN%V_6$Z2qHVo z786|#EmcWsA1%Y)X$AAX_2)s4PhO?LrGA59HN9SBa+R>=E&(2OOI^G!;$>*cg}8f> zHhz}8suTVwydXchnEVv0{h|qqoobszhKJDSTd!MjWk54LTwKGImTZ>a`$=}BKNhXJ zA=!~);P=dko*pN$kQCN(Jy4nW4a#0^A-_X^pUS{PNol%Je7#pAuV}^goRb<0LMO1D zaxM$&W-{v72ugtb%FYgGO-q$O3#>;GJD-)Lh7py(;5%M%x9v`AOuMvQTW(j z@`G%Hi%NbH{iYt}(xsE#gUts4MSoT4`paZaX=mk})m?+-zA>VPXCkYiB=$bMAK_q$ zMSJl=0AI#S(w&lC=jPCxItgVz27LCLn|^&|zqJzY9`?S1E=KIIGM0+qfY$}HUx3nM zmEK%RQ0xfmstH(Bu_*IQCzo}${I+SR)V?6z+A8YU$js3lG_OvNY?T5YK6_y>&S%iL zS=Moq;q%hK=c_5R{KUpuNB``SpKz4_c}RBVCfbw{b6P-mBg~wqz3*X8HI6G zYl!Ob;M2E7h_Y#yZlo}I+;Omr9xz=>(|#zfKDW?i5b6uU1_4mkLVKIwIT@A$i8-yb zSf*^0dQ95*3qA3(A)X*3LJNt?$W|qA!!Z+mW;M9S37>2NvpN-=pDBN;x-=-tii|yX z-}u~bB-8dy8Rso{5U9&Wc#{5k6m|er&sCRj!|;SSqY0UPmN@D`?t?e-A=E?S!-v%F8;Vye!>3nm!^jc39znNcHl2lqMH1B zYfMo&WRHPKywi{4uN9`V)ZrDa;#xs3hZ>Z@3|Pa1`iO835)1jQ`sGfX;WsPb_sL?# zZ@I%Ib#HUPIy8go>}C6^7st%r2TLP-c8w*fkM90OH!bcsU$)Jd_v!cp9GkCT+$k^pS{+GZu==|li{981%D&z!#G{r$YM~HrnN+f2)DNfciK_?j z+(T2&ege9)0TN#QTz-yinw&m#ll!TekHw);F@xxM2mCzDbtb^{Kn|E$Paz$r1d?k0 z=G?UiD&CI)=`ZxI#1iDI`XDZ<19C2qb#MnEHj-B@$)Ho!-~yXY@af))XI(b$6TxSX zHkmK=)3mp6R`U6$J^wt}Dp?hF%-${9TY95c>zt^7r+U1^VyMP_%qUuPL|*@$^zNry z&z*dByGN=VGk;>cYCr|sTFf)l`4iX^N?&96R_{y|GF3RV@r(C+2PLILIcnk^%@7R` zC8YkLGLE8{z=%0X1b5Ww8`ysCAFAm?YWxu=4nk5eBjQ&vV2Ei68k(=OEFAxj) z{-mE8G4Ft3Ctycckt<-F`hUpz?|-O@z-w_RdGI#W>pmRB677zEs7AnuX%Na<9)(|w zQUD=+MjoqCg*N|x?Dy}g3m}HT+4x1(xiCu2I-IKs)5r(=qzU?|hUTZPKyf z$oPf@z&XBLCeQuE7Q^O31`D2ij3td6|0~qsALQWw_NN}oPJ&^f@x68Ns*0bs3bU_B{F?*Ae^ngv zHhfCRcdPx>ZC&xwsMfQ>=C8`!(~@wB^q&YW(oJmH9zG+2B$Bs&Y@fPjxq-*;J07Vl zX{sKtHa7fQYpGKHIYxqmF~-*X{*dG@`T@0b`mEv`>S5Mi3x_T15u-Cy7wGPXDNz}N zMEn0*J^Zg;b1uNyxP^r2$1cE%ICpCn;p`?Xo@bBh;J+qYUPi)+=HK6291$y_QRbHf zpXWLNX&c+kq|X;IujP0B4lpm-P#t3zgJq%LF3KNjx^$k`KcBgY`C%D+3~nVlOC|jO zxT(zjj!U}#h-5rSC0!+x@+LQ3GM*^EMV*)fiOjSoCe+{rQJ9rTcun}7SHjxCcYNE2 z`UuScZ<3gK^YAvlyqpf%dGb$li#SmJKbO7mALaiS{-4`;fX~wZ8UKGl8}m=-NMHiR zTi7ZJM^d={lFGS|e*M-5~nP6AP z++)3(GNkFUlc8QpT)ac+;XG9B%ikX0J(Wd0WJ&4VtK@1B8Z&1~5n&$QSRl9`+9J>~5SP7*! zl&W#!p&alR>rT&A^U`{grZPQF!KTWLI7jJ6R_=8`lGKGpkLG9ymE(796*fEy!_B{H zKQdB=?V5zM>hP`!j}O7IyT~NW;r&w3zYOGLY;aZ36YT}g91jeIi`FS(zb4(RKU{37 z^mmNhr}cSMUz@=r>RSPvF4MwpP2rDYLAYHAU~dQP$liPs(`MDyZp1@_JNA)diXu?~ zu`Yt6hAMZ9+#P(5(B>SHhH4vb+_l|3D<(cQ+8I34u3E?D$Z%DVx1dQJgNx3uTEqxm z-Q2S`hGdXm+_wBl^{fXGG? z#Laci#jhSTkC4i(^ z6y6QQ;WC?;Q{Br5ThRCiB-73W01w*vLr-s7kv0D}KD5&IhpJ)pM5x>i(24Fc`Isvq z?L>?946DJNh{fzP!4Xv%#-oz5Dv^f)xX!X0%IR7F)oSjq)Xh0&QG^(;q4% zs2+~pK+b#H`dGM(_ zZz}0oY>pf-l{9wF3EXB2@=4LkHb2kOGORQ@viuBP?t1)WchAa#3kUXyFkm%^wEIZsb=Xx z^nNc>&*pq)%TTt<5&MZaJC?pZLD0eUhjw=X3VK zVTqk8A$uMY$yLkU0vp>oR0+K|Z#DJZM=$ShQxsj;#oMN$RS&hP-Y28lkWonP7BxzH z%k>tlbBvsSs(y~~!A3?zMD?n~R-En3=9zT9LIas{Ko>>U!Gm;A`k;4qKc_4sU9E3^H&Q8oS_W_fz*` zwRJdSX{72ltJZCI$5?U+*lB|U3+EM*v8yn~K)Cf^xY{CNlxc1Al$WpE=Jg`a{A9@+ z<^JxX`#*XMY7>j!!b^-Yt?EvMw73;4KdHaW{+L^qHFJW1`YP`ct|B{S2zLK&a>gQ!52U|G4;4&ymo4}2qd zi5y0`JR?>0J}60ES3Oqk+Pp8s1?D7|5*mL%5wLKT;J)kQ^U}~f6f$1&e7+%ErNo8H z;<3^CrcY_a^;+l} zi4L@GnciYcm!%VVu@Czlv=x|Xa zPMXEDC58Gf^XPLH>)bbs?t6PbJ>C&Q#&A1c`|3Z<15)pLnTZU%2_XSDzIZ9bgz(+X z4-$nK#uJPDXdSc6-qzyyB*Omw8$q0xo=dw$ta{nn0GToy>U4fS?aL#{MR)6#e8A%r z?e*?<7GHhxJB&jTBrvY)hEBzLrk-t|=U4WcuH0+y?0MI_blU_DmviV4PhIACL0{#` z;f~`mB#T#hbqPN_Q>VHwXouLll`Q#i*3q!rzbwv zbjW^u?w+Exot4UX<7L{d`Q7#Kg2`dz*CPoCLCm=u z!#Az%i+ixhQYj+%|LW@5#u*hF$gIj za@GvCqbBDxv3qfg9yd=!F+-nXZ62%SF-KRtcXaH@)w;})t`w_mlZ@+T^@99$KfZLuK(AlSWM;#&j#tCllvIneY6 zzQs%`p?7bM-siqw-*Z!|50#?Js^e+?GcoX@mg#kuJ9a-##eeq(hHUg!RlZ@jtAj5G zLqLB{m%zLQbS!)U+II7`n}1J~(TLFHce&4hsy>~{bJE|j|M8B=uXh?gfb#s8Pu=TWS~B| zj++IQqa=&%7@TS>ntt0H_I~H>T~lGqIl_-7kuD6+zsWoUcjc3=Ia{)_vb_|^dqFob z?nc@j8xWQod6U#i3ho*e&_{&_%;eZ?4WZ-81iGqXyEr09Ax3&lGAEn6MZ_^ z*@8s~hi18}ok;qI-Bo)>oz8|XeFob;^}pZV(nL?feiJDMc?+P(^d$%qOU4(Yb}r+r z7oB(bpQ%f41~E@MhaVP2W)#lLT6c<0<%>HBGhBK4&L@wG?m;M z@}W;P(9gOx-sID%in?~1YbMlTvI;KOJgGWp4&E^wkxlo`)WYwH(nj!B@wnag=@7_c zb6|S^rbS^!58fEVXh^JALhAO(hCfJ}f2cB`_+!eXxB3kr9^4a}B%?Y`-2?9BFt zOCnEjGt<{;O!E=iyXPu1qMxB|0-u9A*d#trY+o6IJ|$)_nNzKSK&a@Ws6oCghYnrKWG(U~&2n zl^g1qt3H$T0Hi1(C7Xlnn65z`tix*C6JqH*(zo)quW&k!%I)C7qw-CR;X?g^y$eQW zH0Kj9FsYil%(JAl6%g~ULW#=nwaJXlJo z6LP~&(C%Q~WNM+&pF-3@;uc{Ap;6~C(=zY_6 {1>RVq|f|Upu@ktXD5MsfKMQB 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 ## Examples diff --git a/docs/sections/pipeline_samples/papers/apigen.md b/docs/sections/pipeline_samples/papers/apigen.md new file mode 100644 index 000000000..8cb034c18 --- /dev/null +++ b/docs/sections/pipeline_samples/papers/apigen.md @@ -0,0 +1,239 @@ +--- +hide: toc +--- + +# Create Function-Calling datasets with APIGen + +This example will introduce [APIGen: Automated Pipeline for Generating Verifiable and Diverse Function-Calling Datasets](https://arxiv.org/abs/2406.18518), a data generation pipeline designed to synthesize verifiable high-quality datasets for function-calling applications. + +## Replication + +The following figure showcases the APIGen framework: + +![APIGen framework](../../../assets/tutorials-assets/overview-apigen.jpg) + +Now, let's walk through the key steps illustrated in the figure: + +- [`DataSampler`](https://distilabel.argilla.io/dev/components-gallery/step/datasampler/): With the help of this step and the original [Salesforce/xlam-function-calling-60k](https://huggingface.co/datasets/Salesforce/xlam-function-calling-60k) we are getting the Seed QA Data Sampler for the prompt template. + +- [`APIGenGenerator`](https://distilabel.argilla.io/dev/components-gallery/task/apigengenerator/): This step does the job of the *Query-Answer Generator*, including the format checker from *Stage 1: Format Checker* thanks to the structured output generation. + +- [`APIGenExecutionChecker`](https://distilabel.argilla.io/dev/components-gallery/task/apigenexecutionchecker/): This step is in charge of the *Stage 2: Execution Checker*. + +- [`APIGenSemanticChecker`](https://distilabel.argilla.io/dev/components-gallery/task/apigensemanticchecker/): Step in charge of running *Stage 3: Semantic Checker*, can use the same or a different LLM, we are using the same as in [`APIGenGenerator`](https://distilabel.argilla.io/dev/components-gallery/task/apigengenerator/) step. + +The current implementation hasn't utilized the *Diverse Prompt Library*. To incorporate it, one could either adjust the prompt template within the [`APIGenGenerator`](https://distilabel.argilla.io/dev/components-gallery/task/apigengenerator/) or develop a new sampler specifically for this purpose. As for the *API Sampler*, while no specific data is shared here, we've created illustrative examples to demonstrate the pipeline's functionality. These examples represent a mix of data that could be used to replicate the sampler's output. + +## Data preparation + +The original paper tells about the data they used and give some hints, but nothing was shared. In this example, we will write a bunch of examples by hand to showcase how this pipeline can be built. + +Assume we have the following function names, and corresponding descriptions of their behaviour: + +```python +data = [ + { + "func_name": "final_velocity", + "func_desc": "Calculates the final velocity of an object given its initial velocity, acceleration, and time.", + }, + { + "func_name": "permutation_count", + "func_desc": "Calculates the number of permutations of k elements from a set of n elements.", + }, + { + "func_name": "getdivision", + "func_desc": "Divides two numbers by making an API call to a division service.", + }, + { + "func_name": "binary_addition", + "func_desc": "Adds two binary numbers and returns the result as a binary string.", + }, + { + "func_name": "swapi_planet_resource", + "func_desc": "get a specific planets resource", + }, + { + "func_name": "disney_character", + "func_desc": "Find a specific character using this endpoint", + } +] +``` + +The original paper refers to both python functions and APIs, but we will make use of python functions exclusively for simplicity. In order to execute and check this functions/APIs, we need access to the code, which we have moved to a python file: [lib_apigen.py](../../../../examples/lib_apigen.py). All this functions are executable, but we also need access to their *tool* representation. For this, we will make use of transformers' *get_json_schema* function[^1]. + +[^1]: Read this nice blog post for more information on tools and the reasoning behind `get_json_schema`: [Tool Use, Unified](https://huggingface.co/blog/unified-tool-use). + +We have all the machinery prepared in our libpath, except from the *tool* definition. With the help of our helper function `load_module_from_path` we will load this python module, collect all the tools, and add them to each row in our `data` variable. + +```python +from distilabel.steps.tasks.apigen.utils import load_module_from_path + +libpath_module = load_module_from_path(libpath) +tools = getattr(libpath_module, "get_tools")() # call get_tools() + +for row in data: + # The tools should have a mix where both the correct and irrelevant tools are present. + row.update({"tools": [tools[row["func_name"]]]}) +``` + +Now we have all the necessary data for our prompt. Additionally, we will make use of the original dataset as few-shot examples to enhance the model: + +```python +ds_og = ( + load_dataset("Salesforce/xlam-function-calling-60k", split="train") + .shuffle(seed=42) + .select(range(500)) + .to_list() +) +``` + +We have just loaded a subset and transformed it to a list of dictionaries, as we will use it in the [`DataSampler`](https://distilabel.argilla.io/dev/components-gallery/steps/datasampler/) `GeneratorStep`, grabbing random examples from the original dataset. + +## Building the Pipeline + +Now that we've walked through each component, it's time to see how it all comes together, here's the Pipeline code: + +```python +with Pipeline(name="apigen-example") as pipeline: + loader_seeds = LoadDataFromDicts(data=data) # (1) + + sampler = DataSampler( # (2) + data=ds_og, + size=2, + samples=len(data), + batch_size=8, + ) + + prep_examples = PrepareExamples() # This step will add the 'examples' column + + combine_steps = CombineOutputs() # (3) + + model_id = "meta-llama/Meta-Llama-3.1-70B-Instruct" + llm=InferenceEndpointsLLM( # (4) + model_id=model_id, + tokenizer_id=model_id, + generation_kwargs={ + "temperature": 0.7, + "max_new_tokens": 2048, + }, + ) + apigen = APIGenGenerator( # (5) + llm=llm, + use_default_structured_output=True, + ) + + execution_checker = APIGenExecutionChecker(libpath=str(libpath)) # (6) + semantic_checker = APIGenSemanticChecker(llm=llm) # (7) + + sampler >> prep_examples + ( + [loader_seeds, prep_examples] + >> combine_steps + >> apigen + >> execution_checker + >> semantic_checker + ) +``` + +1. Load the data seeds we are going to use to generate our function calling dataset. + +2. The `DataSampler` together with `PrepareExamples` will be used to help us create the few-shot +examples from the original dataset to be fed in our prompt. + +3. Combine both columns to obtain a single stream of data + +4. Will reuse the same LLM for the generation and the semantic checks. + +5. Creates the `query` and `answers` that will be used together with the `tools` to fine-tune a new model. Will generate the structured outputs to ensure we have valid JSON formatted answers. + +6. Adds columns `keep_row_after_execution_check` and `execution_result`. + +7. Adds columns `keep_row_after_semantic_check` and `thought`. + +## Script and final dataset + +To see all the pieces in place, take a look at the full pipeline, as well as an example row that would be generated from this pipeline. + +??? Run + + ```python + python examples/pipeline_apigen.py + ``` + +```python title="pipeline_apigen.py" +--8<-- "examples/pipeline_apigen.py" +``` + +Example row: + +```json +{ + "func_name": "final_velocity", + "func_desc": "Calculates the final velocity of an object given its initial velocity, acceleration, and time.", + "tools": [ + { + "function": { + "description": "Calculates the final velocity of an object given its initial velocity, acceleration, and time.", + "name": "final_velocity", + "parameters": { + "properties": { + "acceleration": { + "description": "The acceleration of the object.", + "type": "number" + }, + "initial_velocity": { + "description": "The initial velocity of the object.", + "type": "number" + }, + "time": { + "description": "The time elapsed.", + "type": "number" + } + }, + "required": [ + "initial_velocity", + "acceleration", + "time" + ], + "type": "object" + } + }, + "type": "function" + } + ], + "examples": "## Query:\nRetrieve the first 15 comments for post ID '12345' from the Tokapi mobile API.\n## Answers:\n[{\"name\": \"v1_post_post_id_comments\", \"arguments\": {\"post_id\": \"12345\", \"count\": 15}}]\n\n## Query:\nRetrieve the detailed recipe for the cake with ID 'cake101'.\n## Answers:\n[{\"name\": \"detailed_cake_recipe_by_id\", \"arguments\": {\"is_id\": \"cake101\"}}]\n\n## Query:\nWhat are the frequently asked questions and their answers for Coca-Cola Company? Also, what are the suggested tickers based on Coca-Cola Company?\n## Answers:\n[{\"name\": \"symbols_faq\", \"arguments\": {\"ticker_slug\": \"KO\"}}, {\"name\": \"symbols_suggested\", \"arguments\": {\"ticker_slug\": \"KO\"}}]", + "query": "What would be the final velocity of an object that starts at rest and accelerates at 9.8 m/s^2 for 10 seconds.", + "answers": "[{\"arguments\": {\"acceleration\": \"9.8\", \"initial_velocity\": \"0\", \"time\": \"10\"}, \"name\": \"final_velocity\"}]", + "distilabel_metadata": { + "raw_input_a_p_i_gen_generator_0": [ + { + "content": "You are a data labeler. Your responsibility is to generate a set of diverse queries and corresponding answers for the given functions in JSON format.\n\nConstruct queries and answers that exemplify how to use these functions in a practical scenario. Include in each query specific, plausible values for each parameter. For instance, if the function requires a date, use a typical and reasonable date.\n\nEnsure the query:\n- Is clear and concise\n- Demonstrates typical use cases\n- Includes all necessary parameters in a meaningful way. For numerical parameters, it could be either numbers or words\n- Across a variety level of difficulties, ranging from beginner and advanced use cases\n- The corresponding result's parameter types and ranges match with the function's descriptions\n\nEnsure the answer:\n- Is a list of function calls in JSON format\n- The length of the answer list should be equal to the number of requests in the query\n- Can solve all the requests in the query effectively", + "role": "system" + }, + { + "content": "Here are examples of queries and the corresponding answers for similar functions:\n## Query:\nRetrieve the first 15 comments for post ID '12345' from the Tokapi mobile API.\n## Answers:\n[{\"name\": \"v1_post_post_id_comments\", \"arguments\": {\"post_id\": \"12345\", \"count\": 15}}]\n\n## Query:\nRetrieve the detailed recipe for the cake with ID 'cake101'.\n## Answers:\n[{\"name\": \"detailed_cake_recipe_by_id\", \"arguments\": {\"is_id\": \"cake101\"}}]\n\n## Query:\nWhat are the frequently asked questions and their answers for Coca-Cola Company? Also, what are the suggested tickers based on Coca-Cola Company?\n## Answers:\n[{\"name\": \"symbols_faq\", \"arguments\": {\"ticker_slug\": \"KO\"}}, {\"name\": \"symbols_suggested\", \"arguments\": {\"ticker_slug\": \"KO\"}}]\n\nNote that the query could be interpreted as a combination of several independent requests.\n\nBased on these examples, generate 1 diverse query and answer pairs for the function `final_velocity`.\nThe detailed function description is the following:\nCalculates the final velocity of an object given its initial velocity, acceleration, and time.\n\nThese are the available tools to help you:\n[{'type': 'function', 'function': {'name': 'final_velocity', 'description': 'Calculates the final velocity of an object given its initial velocity, acceleration, and time.', 'parameters': {'type': 'object', 'properties': {'initial_velocity': {'type': 'number', 'description': 'The initial velocity of the object.'}, 'acceleration': {'type': 'number', 'description': 'The acceleration of the object.'}, 'time': {'type': 'number', 'description': 'The time elapsed.'}}, 'required': ['initial_velocity', 'acceleration', 'time']}}}]\n\nThe output MUST strictly adhere to the following JSON format, and NO other text MUST be included:\n```json\n[\n {\n \"query\": \"The generated query.\",\n \"answers\": [\n {\n \"name\": \"api_name\",\n \"arguments\": {\n \"arg_name\": \"value\"\n ... (more arguments as required)\n }\n },\n ... (more API calls as required)\n ]\n }\n]\n```\n\nNow please generate 1 diverse query and answer pairs following the above format.", + "role": "user" + } + ], + "raw_input_a_p_i_gen_semantic_checker_0": [ + { + "content": "As a data quality evaluator, you must assess the alignment between a user query, corresponding function calls, and their execution results.\nThese function calls and results are generated by other models, and your task is to ensure these results accurately reflect the user\u2019s intentions.\n\nDo not pass if:\n1. The function call does not align with the query\u2019s objective, or the input arguments appear incorrect.\n2. The function call and arguments are not properly chosen from the available functions.\n3. The number of function calls does not correspond to the user\u2019s intentions.\n4. The execution results are irrelevant and do not match the function\u2019s purpose.\n5. The execution results contain errors or reflect that the function calls were not executed successfully.", + "role": "system" + }, + { + "content": "Given Information:\n- All Available Functions:\nCalculates the final velocity of an object given its initial velocity, acceleration, and time.\n- User Query: What would be the final velocity of an object that starts at rest and accelerates at 9.8 m/s^2 for 10 seconds.\n- Generated Function Calls: [{\"arguments\": {\"acceleration\": \"9.8\", \"initial_velocity\": \"0\", \"time\": \"10\"}, \"name\": \"final_velocity\"}]\n- Execution Results: ['9.8']\n\nNote: The query may have multiple intentions. Functions may be placeholders, and execution results may be truncated due to length, which is acceptable and should not cause a failure.\n\nThe main decision factor is wheather the function calls accurately reflect the query's intentions and the function descriptions.\nProvide your reasoning in the thought section and decide if the data passes (answer yes or no).\nIf not passing, concisely explain your reasons in the thought section; otherwise, leave this section blank.\n\nYour response MUST strictly adhere to the following JSON format, and NO other text MUST be included.\n```\n{\n \"thought\": \"Concisely describe your reasoning here\",\n \"passes\": \"yes\" or \"no\"\n}\n```\n", + "role": "user" + } + ], + "raw_output_a_p_i_gen_generator_0": "{\"pairs\": [\n {\n \"answers\": [\n {\n \"arguments\": {\n \"acceleration\": \"9.8\",\n \"initial_velocity\": \"0\",\n \"time\": \"10\"\n },\n \"name\": \"final_velocity\"\n }\n ],\n \"query\": \"What would be the final velocity of an object that starts at rest and accelerates at 9.8 m/s^2 for 10 seconds.\"\n }\n]}", + "raw_output_a_p_i_gen_semantic_checker_0": "{\n \"thought\": \"\",\n \"passes\": \"yes\"\n}" + }, + "model_name": "meta-llama/Meta-Llama-3.1-70B-Instruct", + "keep_row_after_execution_check": true, + "execution_result": [ + "9.8" + ], + "thought": "", + "keep_row_after_semantic_check": true +} +``` diff --git a/examples/lib_apigen.py b/examples/lib_apigen.py new file mode 100644 index 000000000..d49f414e6 --- /dev/null +++ b/examples/lib_apigen.py @@ -0,0 +1,146 @@ +# Copyright 2023-present, Argilla, Inc. +# +# 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 typing import Any, Dict, Optional + + +def final_velocity(initial_velocity: float, acceleration: float, time: float) -> int: + """Calculates the final velocity of an object given its initial velocity, acceleration, and time. + + Args: + initial_velocity: The initial velocity of the object. + acceleration: The acceleration of the object. + time: The time elapsed. + + Returns: + The final velocity + """ + # Tool: + # {"name": "final_velocity", "description": "Calculates the final velocity of an object given its initial velocity, acceleration, and time.", "parameters": {"initial_velocity": {"description": "The initial velocity of the object.", "type": "float"}, "acceleration": {"description": "The acceleration of the object.", "type": "float"}, "time": {"description": "The time elapsed.", "type": "float"}}} + # Answer: + # {"name": "final_velocity", "arguments": {"initial_velocity": 5, "acceleration": 1.5, "time": 40}} + return initial_velocity + acceleration * time + + +def permutation_count(n: int, k: int) -> int: + """Calculates the number of permutations of k elements from a set of n elements. + + Args: + n: The total number of elements in the set. + k: The number of elements to choose for the permutation. + + Returns: + The number of permutations. + """ + # Tool: + # {"name": "permutation_count", "description": "Calculates the number of permutations of k elements from a set of n elements.", "parameters": {"n": {"description": "The total number of elements in the set.", "type": "int"}, "k": {"description": "The number of elements to choose for the permutation.", "type": "int"}}} + # Answer: + # {"name": "permutation_count", "arguments": {"n": 10, "k": 3}} + import math + + return math.factorial(n) / math.factorial(n - k) + + +def getdivision(dividend: int, divisor: int) -> float: + """Divides two numbers by making an API call to a division service. + + Args: + dividend: The dividend in the division operation. + divisor: The divisor in the division operation. + + Returns: + Division of the 2 numbers. + """ + # Tool: + # {"name": "getdivision", "description": "Divides two numbers by making an API call to a division service.", "parameters": {"divisor": {"description": "The divisor in the division operation.", "type": "int", "default": ""}, "dividend": {"description": "The dividend in the division operation.", "type": "int", "default": ""}}} + # Answer: + # {"name": "getdivision", "arguments": {"divisor": 25, "dividend": 100}} + return dividend / divisor + + +def binary_addition(a: str, b: str) -> str: + """Adds two binary numbers and returns the result as a binary string. + + Args: + a: The first binary number. + b: The second binary number. + + Raises: + ValueError: On invalid binary number. + + Returns: + Binary string of the sum of the two numbers. + """ + # Tool: + # {"name": "binary_addition", "description": "Adds two binary numbers and returns the result as a binary string.", "parameters": {"a": {"description": "The first binary number.", "type": "str"}, "b": {"description": "The second binary number.", "type": "str"}}} + # Answer: + # {"name": "binary_addition", "arguments": {"a": "1010", "b": "1101"}} + if not set(a).issubset("01") or not set(b).issubset("01"): + raise ValueError("Invalid binary number") + + return bin(int(a, 2) + int(b, 2))[2:] + + +def _make_request(url: str, params: Optional[Dict[str, Any]] = None): + import requests + + req = requests.get(url, params=params) + return req.json() + + +def swapi_planet_resource(id: str) -> Dict[str, Any]: + """get a specific planets resource + + Args: + id: identifier of the planet + + Returns: + Information about the planet. + """ + # url = "https://swapi.dev/api/planets/1" + return _make_request(r"https://swapi.dev/api/planets/", params={"id": id}) + + +def disney_character(name: str) -> Dict[str, Any]: + """Find a specific character using this endpoint + + Args: + name: Name of the character to look for. + + Returns: + Infrmation about the character. + """ + # Example: + # url = "https://api.disneyapi.dev/character" + # params = {"name": "mulan"} + return _make_request(r"https://api.disneyapi.dev/character", params={"name": name}) + + +def get_lib(): + return { + "swapi_planet_resource": swapi_planet_resource, + "disney_character": disney_character, + "final_velocity": final_velocity, + "permutation_count": permutation_count, + "getdivision": getdivision, + "binary_addition": binary_addition, + } + + +def get_tools() -> Dict[str, Dict[str, Any]]: + """Returns the tool representation of the functions in the library.""" + # TODO: Improve the `get_json_schema`, it fails on a lot of examples. + from transformers.utils import get_json_schema + + return {name: get_json_schema(func) for name, func in get_lib().items()} diff --git a/examples/pipeline_apigen.py b/examples/pipeline_apigen.py new file mode 100644 index 000000000..e63e16e39 --- /dev/null +++ b/examples/pipeline_apigen.py @@ -0,0 +1,116 @@ +# Copyright 2023-present, Argilla, Inc. +# +# 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 pathlib import Path + +from datasets import load_dataset + +from distilabel.llms import InferenceEndpointsLLM +from distilabel.pipeline import Pipeline +from distilabel.steps import CombineOutputs, DataSampler, LoadDataFromDicts +from distilabel.steps.tasks import ( + APIGenExecutionChecker, + APIGenGenerator, + APIGenSemanticChecker, +) +from distilabel.steps.tasks.apigen.utils import PrepareExamples, load_module_from_path + +libpath = Path(__file__).parent / "lib_apigen.py" + +data = [ + { + "func_name": "final_velocity", + "func_desc": "Calculates the final velocity of an object given its initial velocity, acceleration, and time.", + }, + { + "func_name": "permutation_count", + "func_desc": "Calculates the number of permutations of k elements from a set of n elements.", + }, + { + "func_name": "getdivision", + "func_desc": "Divides two numbers by making an API call to a division service.", + }, + { + "func_name": "binary_addition", + "func_desc": "Adds two binary numbers and returns the result as a binary string.", + }, + { + "func_name": "swapi_planet_resource", + "func_desc": "get a specific planets resource", + }, + { + "func_name": "disney_character", + "func_desc": "Find a specific character using this endpoint", + }, +] + +libpath_module = load_module_from_path(libpath) +tools = libpath_module.get_tools() # call get_tools() + +# TODO: Add in the tools between 0 and 2 extra tools to make the task more challenging. +for row in data: + # The tools should have a mix where both the correct and irrelevant tools are present. + row.update({"tools": [tools[row["func_name"]]]}) + + +ds_og = ( + load_dataset("Salesforce/xlam-function-calling-60k", split="train") + .shuffle(seed=42) + .select(range(500)) + .to_list() +) + + +with Pipeline(name="APIGenPipeline") as pipeline: + loader_seeds = LoadDataFromDicts(data=data) + sampler = DataSampler( + data=ds_og, + size=2, + samples=len(data), + batch_size=8, + ) + + prep_examples = PrepareExamples() + + model_id = "meta-llama/Meta-Llama-3.1-70B-Instruct" + llm = InferenceEndpointsLLM( + model_id=model_id, + tokenizer_id=model_id, + generation_kwargs={ + "temperature": 0.7, + "max_new_tokens": 2048, + }, + ) + apigen = APIGenGenerator( + llm=llm, + use_default_structured_output=True, + ) + combine_steps = CombineOutputs() + + execution_checker = APIGenExecutionChecker(libpath=str(libpath)) + semantic_checker = APIGenSemanticChecker(llm=llm) + + sampler >> prep_examples + ( + [loader_seeds, prep_examples] + >> combine_steps + >> apigen + >> execution_checker + >> semantic_checker + ) + + +if __name__ == "__main__": + distiset = pipeline.run() + print(distiset["default"]["train"][0]) diff --git a/mkdocs.yml b/mkdocs.yml index 2ef623467..3c26a6cc1 100644 --- a/mkdocs.yml +++ b/mkdocs.yml @@ -208,6 +208,7 @@ nav: - Instruction Backtranslation: "sections/pipeline_samples/papers/instruction_backtranslation.md" - Prometheus 2: "sections/pipeline_samples/papers/prometheus.md" - UltraFeedback: "sections/pipeline_samples/papers/ultrafeedback.md" + - APIGen: "sections/pipeline_samples/papers/apigen.md" - Examples: - Benchmarking with distilabel: "sections/pipeline_samples/examples/benchmarking_with_distilabel.md" - Structured generation with outlines: "sections/pipeline_samples/examples/llama_cpp_with_outlines.md" diff --git a/src/distilabel/distiset.py b/src/distilabel/distiset.py index b6b31f7a5..8e52c667d 100644 --- a/src/distilabel/distiset.py +++ b/src/distilabel/distiset.py @@ -695,8 +695,9 @@ def _grab_citations(dag: "DAG") -> List[str]: for ref in references.values(): try: bibtex_refs.append(get_bibtex(ref)) - except ValueError as e: - print(f"Error: {e}") + except ValueError: + # No need to inform in this case, it's noise + pass except AttributeError as e: print( f"Couldn't obtain the bibtex format for the ref: '{ref}', error: {e}" diff --git a/src/distilabel/llms/_dummy.py b/src/distilabel/llms/_dummy.py new file mode 100644 index 000000000..740f98cd4 --- /dev/null +++ b/src/distilabel/llms/_dummy.py @@ -0,0 +1,70 @@ +# Copyright 2023-present, Argilla, Inc. +# +# 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 typing import TYPE_CHECKING, Any, List + +from distilabel.llms.base import LLM, AsyncLLM +from distilabel.llms.mixins.magpie import MagpieChatTemplateMixin + +if TYPE_CHECKING: + from distilabel.llms.typing import GenerateOutput + from distilabel.steps.tasks.typing import FormattedInput + + +class DummyAsyncLLM(AsyncLLM): + structured_output: Any = None + + def load(self) -> None: + pass + + @property + def model_name(self) -> str: + return "test" + + async def agenerate( # type: ignore + self, input: "FormattedInput", num_generations: int = 1 + ) -> "GenerateOutput": + return ["output" for _ in range(num_generations)] + + +class DummySyncLLM(LLM): + structured_output: Any = None + + def load(self) -> None: + super().load() + + @property + def model_name(self) -> str: + return "test" + + def generate( # type: ignore + self, inputs: "FormattedInput", num_generations: int = 1 + ) -> "GenerateOutput": + return [["output" for _ in range(num_generations)] for _ in range(len(inputs))] + + +class DummyMagpieLLM(LLM, MagpieChatTemplateMixin): + def load(self) -> None: + pass + + @property + def model_name(self) -> str: + return "test" + + def generate( + self, inputs: List["FormattedInput"], num_generations: int = 1, **kwargs: Any + ) -> List["GenerateOutput"]: + return [ + ["Hello Magpie" for _ in range(num_generations)] for _ in range(len(inputs)) + ] diff --git a/src/distilabel/steps/__init__.py b/src/distilabel/steps/__init__.py index 79c10a268..cc1be59f9 100644 --- a/src/distilabel/steps/__init__.py +++ b/src/distilabel/steps/__init__.py @@ -45,6 +45,7 @@ FormatTextGenerationSFT, ) from distilabel.steps.generators.data import LoadDataFromDicts +from distilabel.steps.generators.data_sampler import DataSampler from distilabel.steps.generators.huggingface import ( LoadDataFromDisk, LoadDataFromFileSystem, @@ -83,6 +84,7 @@ "FormatChatGenerationSFT", "FormatTextGenerationSFT", "LoadDataFromDicts", + "DataSampler", "LoadDataFromDisk", "LoadDataFromFileSystem", "LoadDataFromHub", diff --git a/src/distilabel/steps/generators/data_sampler.py b/src/distilabel/steps/generators/data_sampler.py new file mode 100644 index 000000000..6b2e55bf0 --- /dev/null +++ b/src/distilabel/steps/generators/data_sampler.py @@ -0,0 +1,179 @@ +# Copyright 2023-present, Argilla, Inc. +# +# 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. + +import random +from itertools import islice +from typing import TYPE_CHECKING, Any, Dict, List + +from pydantic import Field +from typing_extensions import override + +from distilabel.steps.base import GeneratorStep + +if TYPE_CHECKING: + from distilabel.steps.base import GeneratorStepOutput + + +class DataSampler(GeneratorStep): + """Step to sample from a dataset. + + `GeneratorStep` that samples from a dataset and yields it in batches. + This step is useful when you have a pipeline that can benefit from using examples + in the prompts for example as few-shot learning, that can be changing on each row. + For example, you can pass a list of dictionaries with N examples and generate M samples + from it (assuming you have another step loading data, this M should have the same size + as the data being loaded in that step). The size S argument is the number of samples per + row generated, so each example would contain S examples to be used as examples. + + Attributes: + data: The list of dictionaries to sample from. + size: Number of samples per example. For example in a few-shot learning scenario, + the number of few-shot examples that will be generated per example. Defaults to 2. + samples: Number of examples that will be generated by the step in total. + If used with another loader step, this should be the same as the number + of samples in the loader step. Defaults to 100. + + Output columns: + - dynamic (based on the keys found on the first dictionary of the list): The columns + of the dataset. + + Categories: + - load + + Examples: + Sample data from a list of dictionaries: + + ```python + from distilabel.steps import DataSampler + + sampler = DataSampler( + data=[{"sample": f"sample {i}"} for i in range(30)], + samples=10, + size=2, + batch_size=4 + ) + sampler.load() + + result = next(sampler.process()) + # >>> result + # ([{'sample': ['sample 7', 'sample 0']}, {'sample': ['sample 2', 'sample 21']}, {'sample': ['sample 17', 'sample 12']}, {'sample': ['sample 2', 'sample 14']}], False) + ``` + + Pipeline with a loader and a sampler combined in a single stream: + + ```python + from datasets import load_dataset + + from distilabel.steps import LoadDataFromDicts, DataSampler + from distilabel.steps.tasks.apigen.utils import PrepareExamples + from distilabel.pipeline import Pipeline + + ds = ( + load_dataset("Salesforce/xlam-function-calling-60k", split="train") + .shuffle(seed=42) + .select(range(500)) + .to_list() + ) + data = [ + { + "func_name": "final_velocity", + "func_desc": "Calculates the final velocity of an object given its initial velocity, acceleration, and time.", + }, + { + "func_name": "permutation_count", + "func_desc": "Calculates the number of permutations of k elements from a set of n elements.", + }, + { + "func_name": "getdivision", + "func_desc": "Divides two numbers by making an API call to a division service.", + }, + ] + with Pipeline(name="APIGenPipeline") as pipeline: + loader_seeds = LoadDataFromDicts(data=data) + sampler = DataSampler( + data=ds, + size=2, + samples=len(data), + batch_size=8, + ) + prep_examples = PrepareExamples() + + sampler >> prep_examples + ( + [loader_seeds, prep_examples] + >> combine_steps + ) + # Now we have a single stream of data with the loader and the sampler data + ``` + """ + + data: List[Dict[str, Any]] = Field(default_factory=list, exclude=True) + size: int = Field( + default=2, + description=( + "Number of samples per example. For example in a few-shot learning scenario, the number " + "of few-shot examples that will be generated per example." + ), + ) + samples: int = Field( + default=100, + description=( + "Number of examples that will be generated by the step in total. " + "If used with another loader step, this should be the same as the number of " + "samples in the loader step." + ), + ) + + @override + def process(self, offset: int = 0) -> "GeneratorStepOutput": # type: ignore + """Yields batches from a list of dictionaries. + + Args: + offset: The offset to start the generation from. Defaults to `0`. + + Yields: + A list of Python dictionaries as read from the inputs (propagated in batches) + and a flag indicating whether the yield batch is the last one. + """ + + total_samples = 0 + + while total_samples < self.samples: + batch = [] + bs = min(self.batch_size, self.samples - total_samples) + for _ in range(self.batch_size): + choices = random.choices(self.data, k=self.size) + choices = self._transform_data(choices) + batch.extend(choices) + total_samples += bs + batch = list(islice(batch, bs)) + yield (batch, True if total_samples >= self.samples else False) + batch = [] + + @staticmethod + def _transform_data(data: List[Dict[str, Any]]) -> List[Dict[str, Any]]: + if not data: + return [] + + result = {key: [] for key in data[0].keys()} + + for item in data: + for key, value in item.items(): + result[key].append(value) + + return [result] + + @property + def outputs(self) -> List[str]: + return list(self.data[0].keys()) diff --git a/src/distilabel/steps/generators/huggingface.py b/src/distilabel/steps/generators/huggingface.py index f6e782a75..721b3d408 100644 --- a/src/distilabel/steps/generators/huggingface.py +++ b/src/distilabel/steps/generators/huggingface.py @@ -219,11 +219,11 @@ def _get_dataset_num_examples(self) -> int: Returns: The number of examples in the dataset. """ - return ( - self._dataset_info[self.config if self.config else "default"] - .splits[self.split] - .num_examples - ) + default_config = self.config + if not default_config: + default_config = list(self._dataset_info.keys())[0] + + return self._dataset_info[default_config].splits[self.split].num_examples def _get_dataset_columns(self) -> List[str]: """Get the columns of the dataset, based on the `config` runtime parameter provided. diff --git a/src/distilabel/steps/tasks/__init__.py b/src/distilabel/steps/tasks/__init__.py index c7b7d7239..065567a57 100644 --- a/src/distilabel/steps/tasks/__init__.py +++ b/src/distilabel/steps/tasks/__init__.py @@ -12,6 +12,9 @@ # See the License for the specific language governing permissions and # limitations under the License. +from distilabel.steps.tasks.apigen.execution_checker import APIGenExecutionChecker +from distilabel.steps.tasks.apigen.generator import APIGenGenerator +from distilabel.steps.tasks.apigen.semantic_checker import APIGenSemanticChecker from distilabel.steps.tasks.argilla_labeller import ArgillaLabeller from distilabel.steps.tasks.base import GeneratorTask, Task from distilabel.steps.tasks.complexity_scorer import ComplexityScorer @@ -54,6 +57,9 @@ "GeneratorTask", "Task", "ArgillaLabeller", + "APIGenExecutionChecker", + "APIGenGenerator", + "APIGenSemanticChecker", "ComplexityScorer", "EvolInstruct", "EvolComplexity", diff --git a/src/distilabel/steps/tasks/apigen/__init__.py b/src/distilabel/steps/tasks/apigen/__init__.py new file mode 100644 index 000000000..20ce00bda --- /dev/null +++ b/src/distilabel/steps/tasks/apigen/__init__.py @@ -0,0 +1,14 @@ +# Copyright 2023-present, Argilla, Inc. +# +# 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/src/distilabel/steps/tasks/apigen/execution_checker.py b/src/distilabel/steps/tasks/apigen/execution_checker.py new file mode 100644 index 000000000..7d30dd1f7 --- /dev/null +++ b/src/distilabel/steps/tasks/apigen/execution_checker.py @@ -0,0 +1,268 @@ +# Copyright 2023-present, Argilla, Inc. +# +# 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. + +# - Try to import the function from a given module +# - If function, try to import it and run it +# - If fails, track the error message, and return it + +import inspect +import json +from pathlib import Path +from typing import TYPE_CHECKING, Callable, Union + +from pydantic import Field, PrivateAttr +from typing_extensions import override + +from distilabel.steps.base import Step, StepInput +from distilabel.steps.tasks.apigen.utils import ( + execute_from_response, + load_module_from_path, +) + +if TYPE_CHECKING: + from types import ModuleType + + from distilabel.steps.typing import StepColumns, StepOutput + + +class APIGenExecutionChecker(Step): + """Executes the generated function calls. + + This step checks if a given answer from a model as generated by `APIGenGenerator` + can be executed against the given library (given by `libpath`, which is a string + pointing to a python .py file with functions). + + Attributes: + libpath: The path to the library where we will retrieve the functions. + It can also point to a folder with the functions. In this case, the folder + layout should be a folder with .py files, each containing a single function, + the name of the function being the same as the filename. + check_is_dangerous: Bool to exclude some potentially dangerous functions, it contains + some heuristics found while testing. This functions can run subprocesses, deal with + the OS, or have other potentially dangerous operations. Defaults to True. + + Input columns: + - answers (`str`): List with arguments to be passed to the function, + dumped as a string from a list of dictionaries. Should be loaded using + `json.loads`. + + Output columns: + - keep_row_after_execution_check (`bool`): Whether the function should be kept or not. + - execution_result (`str`): The result from executing the function. + + Categories: + - filtering + - execution + + References: + - [APIGen: Automated Pipeline for Generating Verifiable and Diverse Function-Calling Datasets](https://arxiv.org/abs/2406.18518) + - [Salesforce/xlam-function-calling-60k](https://huggingface.co/datasets/Salesforce/xlam-function-calling-60k) + + Examples: + Execute a function from a given library with the answer from an LLM: + + ```python + from distilabel.steps.tasks import APIGenExecutionChecker + + # For the libpath you can use as an example the file at the tests folder: + # ../distilabel/tests/unit/steps/tasks/apigen/_sample_module.py + task = APIGenExecutionChecker( + libpath="../distilabel/tests/unit/steps/tasks/apigen/_sample_module.py", + ) + task.load() + + res = next( + task.process( + [ + { + "answers": [ + { + "arguments": { + "initial_velocity": 0.2, + "acceleration": 0.1, + "time": 0.5, + }, + "name": "final_velocity", + } + ], + } + ] + ) + ) + res + #[{'answers': [{'arguments': {'initial_velocity': 0.2, 'acceleration': 0.1, 'time': 0.5}, 'name': 'final_velocity'}], 'keep_row_after_execution_check': True, 'execution_result': ['0.25']}] + ``` + """ + + libpath: str = Field( + default=..., + description=( + "The path to the library where we will retrieve the functions, " + "or a folder with python files named the same as the functions they contain.", + ), + ) + check_is_dangerous: bool = Field( + default=True, + description=( + "Bool to exclude some potentially dangerous functions, it contains " + "some heuristics found while testing. This functions can run subprocesses, " + "deal with the OS, or have other potentially dangerous operations.", + ), + ) + + _toolbox: Union["ModuleType", None] = PrivateAttr(None) + + def load(self) -> None: + """Loads the library where the functions will be extracted from.""" + super().load() + if Path(self.libpath).suffix == ".py": + self._toolbox = load_module_from_path(self.libpath) + + def unload(self) -> None: + self._toolbox = None + + @property + def inputs(self) -> "StepColumns": + """The inputs for the task are those found in the original dataset.""" + return ["answers"] + + @property + def outputs(self) -> "StepColumns": + """The outputs are the columns required by `APIGenGenerator` task.""" + return ["keep_row_after_execution_check", "execution_result"] + + def _get_function(self, function_name: str) -> Callable: + """Retrieves the function from the toolbox. + + Args: + function_name: The name of the function to retrieve. + + Returns: + Callable: The function to be executed. + """ + if self._toolbox: + return getattr(self._toolbox, function_name, None) + try: + toolbox = load_module_from_path( + str(Path(self.libpath) / f"{function_name}.py") + ) + return getattr(toolbox, function_name, None) + except FileNotFoundError: + return None + except Exception as e: + self._logger.warning(f"Error loading function '{function_name}': {e}") + return None + + def _is_dangerous(self, function: Callable) -> bool: + """Checks if a function is dangerous to remove it. + Contains a list of heuristics to avoid executing possibly dangerous functions. + """ + source_code = inspect.getsource(function) + # We don't want to execute functions that use subprocess + if ( + ("subprocess." in source_code) + or ("os.system(" in source_code) + or ("input(" in source_code) + # Avoiding threading + or ("threading.Thread(" in source_code) + or ("exec(" in source_code) + # Avoiding argparse (not sure why) + or ("argparse.ArgumentParser(" in source_code) + # Avoiding logging changing the levels to not mess with the logs + or (".setLevel(" in source_code) + # Don't run a test battery + or ("unittest.main(" in source_code) + # Avoid exiting the program + or ("sys.exit(" in source_code) + or ("exit(" in source_code) + or ("raise SystemExit(" in source_code) + or ("multiprocessing.Pool(" in source_code) + ): + return True + return False + + @override + def process(self, inputs: StepInput) -> "StepOutput": + """Checks the answer to see if it can be executed. + Captures the possible errors and returns them. + + If a single example is provided, it is copied to avoid raising an error. + + Args: + inputs: A list of dictionaries with the input data. + + Yields: + A list of dictionaries with the output data. + """ + for input in inputs: + output = [] + if input["answers"]: + answers = json.loads(input["answers"]) + else: + input.update( + **{ + "keep_row_after_execution_check": False, + "execution_result": ["No answers were provided."], + } + ) + continue + for answer in answers: + if answer is None: + output.append( + { + "keep": False, + "execution_result": "Nothing was generated for this answer.", + } + ) + continue + + function_name = answer.get("name", None) + arguments = answer.get("arguments", None) + + self._logger.debug( + f"Executing function '{function_name}' with arguments: {arguments}" + ) + function = self._get_function(function_name) + + if self.check_is_dangerous: + if function and self._is_dangerous(function): + function = None + + if function is None: + output.append( + { + "keep": False, + "execution_result": f"Function '{function_name}' not found.", + } + ) + else: + execution = execute_from_response(function, arguments) + output.append( + { + "keep": execution["keep"], + "execution_result": execution["execution_result"], + } + ) + # We only consider a good response if all the answers were executed successfully, + # but keep the reasons for further review if needed. + input.update( + **{ + "keep_row_after_execution_check": all( + o["keep"] is True for o in output + ), + "execution_result": [o["execution_result"] for o in output], + } + ) + + yield inputs diff --git a/src/distilabel/steps/tasks/apigen/generator.py b/src/distilabel/steps/tasks/apigen/generator.py new file mode 100644 index 000000000..c1c691e37 --- /dev/null +++ b/src/distilabel/steps/tasks/apigen/generator.py @@ -0,0 +1,448 @@ +# Copyright 2023-present, Argilla, Inc. +# +# 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. + +import importlib.resources as importlib_resources +import json +import random +from typing import TYPE_CHECKING, Any, Callable, Dict, Final, List, Union + +import orjson +from jinja2 import Template +from pydantic import PrivateAttr +from typing_extensions import override + +from distilabel.steps.tasks.apigen.utils import remove_fences +from distilabel.steps.tasks.base import Task + +if TYPE_CHECKING: + from distilabel.steps.tasks.typing import ChatType + from distilabel.steps.typing import StepColumns + + +SYSTEM_PROMPT_API_GEN: Final[str] = """\ +You are a data labeler. Your responsibility is to generate a set of diverse queries and corresponding answers for the given functions in JSON format. + +Construct queries and answers that exemplify how to use these functions in a practical scenario. Include in each query specific, plausible values for each parameter. For instance, if the function requires a date, use a typical and reasonable date. + +Ensure the query: +- Is clear and concise +- Demonstrates typical use cases +- Includes all necessary parameters in a meaningful way. For numerical parameters, it could be either numbers or words +- Across a variety level of difficulties, ranging from beginner and advanced use cases +- The corresponding result's parameter types and ranges match with the function's descriptions + +Ensure the answer: +- Is a list of function calls in JSON format +- The length of the answer list should be equal to the number of requests in the query +- Can solve all the requests in the query effectively""" + + +class APIGenGenerator(Task): + """Generate queries and answers for the given functions in JSON format. + + The `APIGenGenerator` is inspired by the APIGen pipeline, which was designed to generate + verifiable and diverse function-calling datasets. The task generates a set of diverse queries + and corresponding answers for the given functions in JSON format. + + Attributes: + system_prompt: The system prompt to guide the user in the generation of queries and answers. + use_tools: Whether to use the tools available in the prompt to generate the queries and answers. + In case the tools are given in the input, they will be added to the prompt. + number: The number of queries to generate. It can be a list, where each number will be + chosen randomly, or a dictionary with the number of queries and the probability of each. + I.e: `number=1`, `number=[1, 2, 3]`, `number={1: 0.5, 2: 0.3, 3: 0.2}` are all valid inputs. + It corresponds to the number of parallel queries to generate. + use_default_structured_output: Whether to use the default structured output or not. + + Input columns: + - examples (`str`): Examples used as few shots to guide the model. + - func_name (`str`): Name for the function to generate. + - func_desc (`str`): Description of what the function should do. + - tools (`str`): JSON formatted string containing the tool representation of the function. + + Output columns: + - query (`str`): The list of queries. + - answers (`str`): JSON formatted string with the list of answers, containing the info as + a dictionary to be passed to the functions. + + Categories: + - text-generation + + References: + - [APIGen: Automated Pipeline for Generating Verifiable and Diverse Function-Calling Datasets](https://arxiv.org/abs/2406.18518) + - [Salesforce/xlam-function-calling-60k](https://huggingface.co/datasets/Salesforce/xlam-function-calling-60k) + + Examples: + Generate without structured output (original implementation): + + ```python + from distilabel.steps.tasks import ApiGenGenerator + from distilabel.llms import InferenceEndpointsLLM + + llm=InferenceEndpointsLLM( + model_id="meta-llama/Meta-Llama-3.1-70B-Instruct", + generation_kwargs={ + "temperature": 0.7, + "max_new_tokens": 1024, + }, + ) + apigen = ApiGenGenerator( + use_default_structured_output=False, + llm=llm + ) + apigen.load() + + res = next( + apigen.process( + [ + { + "examples": 'QUERY:\nWhat is the binary sum of 10010 and 11101?\nANSWER:\n[{"name": "binary_addition", "arguments": {"a": "10010", "b": "11101"}}]', + "func_name": "getrandommovie", + "func_desc": "Returns a list of random movies from a database by calling an external API." + } + ] + ) + ) + res + # [{'examples': 'QUERY:\nWhat is the binary sum of 10010 and 11101?\nANSWER:\n[{"name": "binary_addition", "arguments": {"a": "10010", "b": "11101"}}]', + # 'number': 1, + # 'func_name': 'getrandommovie', + # 'func_desc': 'Returns a list of random movies from a database by calling an external API.', + # 'queries': ['I want to watch a movie tonight, can you recommend a random one from your database?', + # 'Give me 5 random movie suggestions from your database to plan my weekend.'], + # 'answers': [[{'name': 'getrandommovie', 'arguments': {}}], + # [{'name': 'getrandommovie', 'arguments': {}}, + # {'name': 'getrandommovie', 'arguments': {}}, + # {'name': 'getrandommovie', 'arguments': {}}, + # {'name': 'getrandommovie', 'arguments': {}}, + # {'name': 'getrandommovie', 'arguments': {}}]], + # 'raw_input_api_gen_generator_0': [{'role': 'system', + # 'content': "You are a data labeler. Your responsibility is to generate a set of diverse queries and corresponding answers for the given functions in JSON format.\n\nConstruct queries and answers that exemplify how to use these functions in a practical scenario. Include in each query specific, plausible values for each parameter. For instance, if the function requires a date, use a typical and reasonable date.\n\nEnsure the query:\n- Is clear and concise\n- Demonstrates typical use cases\n- Includes all necessary parameters in a meaningful way. For numerical parameters, it could be either numbers or words\n- Across a variety level of difficulties, ranging from beginner and advanced use cases\n- The corresponding result's parameter types and ranges match with the function's descriptions\n\nEnsure the answer:\n- Is a list of function calls in JSON format\n- The length of the answer list should be equal to the number of requests in the query\n- Can solve all the requests in the query effectively"}, + # {'role': 'user', + # 'content': 'Here are examples of queries and the corresponding answers for similar functions:\nQUERY:\nWhat is the binary sum of 10010 and 11101?\nANSWER:\n[{"name": "binary_addition", "arguments": {"a": "10010", "b": "11101"}}]\n\nNote that the query could be interpreted as a combination of several independent requests.\nBased on these examples, generate 2 diverse query and answer pairs for the function `getrandommovie`\nThe detailed function description is the following:\nReturns a list of random movies from a database by calling an external API.\n\nThe output MUST strictly adhere to the following JSON format, and NO other text MUST be included:\n```json\n[\n {\n "query": "The generated query.",\n "answers": [\n {\n "name": "api_name",\n "arguments": {\n "arg_name": "value"\n ... (more arguments as required)\n }\n },\n ... (more API calls as required)\n ]\n }\n]\n```\n\nNow please generate 2 diverse query and answer pairs following the above format.'}]}, + # 'model_name': 'meta-llama/Meta-Llama-3.1-70B-Instruct'}] + ``` + + Generate with structured output: + + ```python + from distilabel.steps.tasks import ApiGenGenerator + from distilabel.llms import InferenceEndpointsLLM + + llm=InferenceEndpointsLLM( + model_id="meta-llama/Meta-Llama-3.1-70B-Instruct", + tokenizer="meta-llama/Meta-Llama-3.1-70B-Instruct", + generation_kwargs={ + "temperature": 0.7, + "max_new_tokens": 1024, + }, + ) + apigen = ApiGenGenerator( + use_default_structured_output=True, + llm=llm + ) + apigen.load() + + res_struct = next( + apigen.process( + [ + { + "examples": 'QUERY:\nWhat is the binary sum of 10010 and 11101?\nANSWER:\n[{"name": "binary_addition", "arguments": {"a": "10010", "b": "11101"}}]', + "func_name": "getrandommovie", + "func_desc": "Returns a list of random movies from a database by calling an external API." + } + ] + ) + ) + res_struct + # [{'examples': 'QUERY:\nWhat is the binary sum of 10010 and 11101?\nANSWER:\n[{"name": "binary_addition", "arguments": {"a": "10010", "b": "11101"}}]', + # 'number': 1, + # 'func_name': 'getrandommovie', + # 'func_desc': 'Returns a list of random movies from a database by calling an external API.', + # 'queries': ["I'm bored and want to watch a movie. Can you suggest some movies?", + # "My family and I are planning a movie night. We can't decide on what to watch. Can you suggest some random movie titles?"], + # 'answers': [[{'arguments': {}, 'name': 'getrandommovie'}], + # [{'arguments': {}, 'name': 'getrandommovie'}]], + # 'raw_input_api_gen_generator_0': [{'role': 'system', + # 'content': "You are a data labeler. Your responsibility is to generate a set of diverse queries and corresponding answers for the given functions in JSON format.\n\nConstruct queries and answers that exemplify how to use these functions in a practical scenario. Include in each query specific, plausible values for each parameter. For instance, if the function requires a date, use a typical and reasonable date.\n\nEnsure the query:\n- Is clear and concise\n- Demonstrates typical use cases\n- Includes all necessary parameters in a meaningful way. For numerical parameters, it could be either numbers or words\n- Across a variety level of difficulties, ranging from beginner and advanced use cases\n- The corresponding result's parameter types and ranges match with the function's descriptions\n\nEnsure the answer:\n- Is a list of function calls in JSON format\n- The length of the answer list should be equal to the number of requests in the query\n- Can solve all the requests in the query effectively"}, + # {'role': 'user', + # 'content': 'Here are examples of queries and the corresponding answers for similar functions:\nQUERY:\nWhat is the binary sum of 10010 and 11101?\nANSWER:\n[{"name": "binary_addition", "arguments": {"a": "10010", "b": "11101"}}]\n\nNote that the query could be interpreted as a combination of several independent requests.\nBased on these examples, generate 2 diverse query and answer pairs for the function `getrandommovie`\nThe detailed function description is the following:\nReturns a list of random movies from a database by calling an external API.\n\nNow please generate 2 diverse query and answer pairs following the above format.'}]}, + # 'model_name': 'meta-llama/Meta-Llama-3.1-70B-Instruct'}] + ``` + """ + + system_prompt: str = SYSTEM_PROMPT_API_GEN + use_default_structured_output: bool = False + number: Union[int, List[int], Dict[int, float]] = 1 + use_tools: bool = True + + _number: Union[int, None] = PrivateAttr(None) + _fn_parallel_queries: Union[Callable[[], str], None] = PrivateAttr(None) + _format_inst: Union[str, None] = PrivateAttr(None) + + def load(self) -> None: + """Loads the template for the generator prompt.""" + super().load() + _path = str( + importlib_resources.files("distilabel") + / "steps" + / "tasks" + / "templates" + / "apigen" + / "generator.jinja2" + ) + self._template = Template(open(_path).read()) + self._format_inst = self._set_format_inst() + + def _parallel_queries(self, number: int) -> Callable[[int], str]: + """Prepares the function to update the parallel queries guide in the prompt. + + Raises: + ValueError: if `is_parallel` is not a boolean or a list of floats. + + Returns: + The function to generate the parallel queries guide. + """ + if number > 1: + return ( + "It can contain multiple parallel queries in natural language for the given functions. " + "They could use either the same function with different arguments or different functions.\n" + ) + return "" + + def _get_number(self) -> int: + """Generates the number of queries to generate in a single call. + The number must be set to `_number` to avoid changing the original value + when calling `_default_error`. + """ + if isinstance(self.number, list): + self._number = random.choice(self.number) + elif isinstance(self.number, dict): + self._number = random.choices( + list(self.number.keys()), list(self.number.values()) + )[0] + else: + self._number = self.number + return self._number + + def _set_format_inst(self) -> str: + """Prepares the function to generate the formatted instructions for the prompt. + + If the default structured output is used, returns an empty string because nothing + else is needed, otherwise, returns the original addition to the prompt to guide the model + to generate a formatted JSON. + """ + return ( + "\nThe output MUST strictly adhere to the following JSON format, and NO other text MUST be included:\n" + "```\n" + "[\n" + " {\n" + ' "query": "The generated query.",\n' + ' "answers": [\n' + " {\n" + ' "name": "api_name",\n' + ' "arguments": {\n' + ' "arg_name": "value"\n' + " ... (more arguments as required)\n" + " }\n" + " },\n" + " ... (more API calls as required)\n" + " ]\n" + " }\n" + "]\n" + "```\n" + ) + + def _get_func_desc(self, input: Dict[str, Any]) -> str: + """If available and required, will use the info from the tools in the + prompt for extra information. Otherwise will use jut the function description. + """ + if not self.use_tools: + return input["func_desc"] + extra = "" # Extra information from the tools (if available will be added) + if "tools" in input: + extra = f"\n\nThis is the available tool to guide you (respect the order of the parameters):\n{input['tools']}" + return input["func_desc"] + extra + + @property + def inputs(self) -> "StepColumns": + """The inputs for the task.""" + return { + "examples": True, + "func_name": True, + "func_desc": True, + "tools": False, + } + + def format_input(self, input: Dict[str, Any]) -> "ChatType": + """The input is formatted as a `ChatType`.""" + number = self._get_number() + parallel_queries = self._parallel_queries(number) + return [ + {"role": "system", "content": self.system_prompt}, + { + "role": "user", + "content": self._template.render( + examples=input["examples"], + parallel_queries=parallel_queries, + number=number, + func_name=input["func_name"], + func_desc=self._get_func_desc(input), + format_inst=self._format_inst, + ), + }, + ] + + @property + def outputs(self) -> "StepColumns": + """The output for the task are the queries and corresponding answers.""" + return ["query", "answers", "model_name"] + + def format_output( + self, output: Union[str, None], input: Dict[str, Any] + ) -> Dict[str, Any]: + """The output is formatted as a list with the score of each instruction. + + Args: + output: the raw output of the LLM. + input: the input to the task. Used for obtaining the number of responses. + + Returns: + A dict with the queries and answers pairs. + The answers are an array of answers corresponding to the query. + Each answer is represented as an object with the following properties: + - name (string): The name of the tool used to generate the answer. + - arguments (object): An object representing the arguments passed to the tool to generate the answer. + Each argument is represented as a key-value pair, where the key is the parameter name and the + value is the corresponding value. + """ + if output is None: + return self._default_error(input) + + if not self.use_default_structured_output: + output = remove_fences(output) + + try: + pairs = orjson.loads(output) + except orjson.JSONDecodeError: + return self._default_error(input) + + pairs = pairs["pairs"] if self.use_default_structured_output else pairs + + return self._format_output(pairs, input) + + def _format_output( + self, pairs: Dict[str, Any], input: Dict[str, Any] + ) -> Dict[str, Any]: + """Parses the response, returning a dictionary with queries and answers. + + Args: + pairs: The parsed dictionary from the LLM's output. + input: The input from the `LLM`. + + Returns: + Formatted output, where the `queries` are a list of strings, and the `answers` + are a list of objects. + """ + try: + input.update( + **{ + "query": pairs[0]["query"], + "answers": json.dumps(pairs[0]["answers"]), + } + ) + return input + except Exception as e: + self._logger.error(f"Error formatting output: {e}, pairs: '{pairs}'") + return self._default_error(input) + + def _default_error(self, input: Dict[str, Any]) -> Dict[str, Any]: + """Returns a default error output, to fill the responses in case of failure.""" + input.update( + **{ + "query": None, + "answers": json.dumps([None] * self._number), + } + ) + return input + + @override + def get_structured_output(self) -> Dict[str, Any]: + """Creates the json schema to be passed to the LLM, to enforce generating + a dictionary with the output which can be directly parsed as a python dictionary. + + The schema corresponds to the following: + + ```python + from typing import Dict, List + from pydantic import BaseModel + + + class Answer(BaseModel): + name: str + arguments: Dict[str, str] + + class QueryAnswer(BaseModel): + query: str + answers: List[Answer] + + class QueryAnswerPairs(BaseModel): + pairs: List[QueryAnswer] + + json.dumps(QueryAnswerPairs.model_json_schema(), indent=4) + ``` + + Returns: + JSON Schema of the response to enforce. + """ + return { + "$defs": { + "Answer": { + "properties": { + "name": {"title": "Name", "type": "string"}, + "arguments": { + "additionalProperties": {"type": "string"}, + "title": "Arguments", + "type": "object", + }, + }, + "required": ["name", "arguments"], + "title": "Answer", + "type": "object", + }, + "QueryAnswer": { + "properties": { + "query": {"title": "Query", "type": "string"}, + "answers": { + "items": {"$ref": "#/$defs/Answer"}, + "title": "Answers", + "type": "array", + }, + }, + "required": ["query", "answers"], + "title": "QueryAnswer", + "type": "object", + }, + }, + "properties": { + "pairs": { + "items": {"$ref": "#/$defs/QueryAnswer"}, + "title": "Pairs", + "type": "array", + } + }, + "required": ["pairs"], + "title": "QueryAnswerPairs", + "type": "object", + } diff --git a/src/distilabel/steps/tasks/apigen/semantic_checker.py b/src/distilabel/steps/tasks/apigen/semantic_checker.py new file mode 100644 index 000000000..5ec7cdc57 --- /dev/null +++ b/src/distilabel/steps/tasks/apigen/semantic_checker.py @@ -0,0 +1,308 @@ +# Copyright 2023-present, Argilla, Inc. +# +# 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. + +import importlib.resources as importlib_resources +from typing import TYPE_CHECKING, Any, Dict, Final, Union + +import orjson +from jinja2 import Template +from pydantic import PrivateAttr +from typing_extensions import override + +from distilabel.steps.tasks.apigen.utils import remove_fences +from distilabel.steps.tasks.base import Task + +if TYPE_CHECKING: + from distilabel.steps.tasks.typing import ChatType + from distilabel.steps.typing import StepColumns + + +SYSTEM_PROMPT_SEMANTIC_CHECKER: Final[str] = """\ +As a data quality evaluator, you must assess the alignment between a user query, corresponding function calls, and their execution results. +These function calls and results are generated by other models, and your task is to ensure these results accurately reflect the user’s intentions. + +Do not pass if: +1. The function call does not align with the query’s objective, or the input arguments appear incorrect. +2. The function call and arguments are not properly chosen from the available functions. +3. The number of function calls does not correspond to the user’s intentions. +4. The execution results are irrelevant and do not match the function’s purpose. +5. The execution results contain errors or reflect that the function calls were not executed successfully. +""".rstrip() + + +class APIGenSemanticChecker(Task): + r"""Generate queries and answers for the given functions in JSON format. + + The `APIGenGenerator` is inspired by the APIGen pipeline, which was designed to generate + verifiable and diverse function-calling datasets. The task generates a set of diverse queries + and corresponding answers for the given functions in JSON format. + + Attributes: + system_prompt: System prompt for the task. Has a default one. + exclude_failed_execution: Whether to exclude failed executions (won't run on those + rows that have a False in `keep_row_after_execution_check` column, which + comes from running `APIGenExecutionChecker`). Defaults to True. + + Input columns: + - func_desc (`str`): Description of what the function should do. + - query (`str`): Instruction from the user. + - answers (`str`): JSON encoded list with arguments to be passed to the function/API. + Should be loaded using `json.loads`. + - execution_result (`str`): Result of the function/API executed. + + Output columns: + - thought (`str`): Reasoning for the output on whether to keep this output or not. + - keep_row_after_semantic_check (`bool`): True or False, can be used to filter + afterwards. + + Categories: + - filtering + - text-generation + + References: + - [APIGen: Automated Pipeline for Generating Verifiable and Diverse Function-Calling Datasets](https://arxiv.org/abs/2406.18518) + - [Salesforce/xlam-function-calling-60k](https://huggingface.co/datasets/Salesforce/xlam-function-calling-60k) + + Examples: + + Semantic checker for generated function calls (original implementation): + + ```python + from distilabel.steps.tasks import APIGenSemanticChecker + from distilabel.llms import InferenceEndpointsLLM + + llm=InferenceEndpointsLLM( + model_id="meta-llama/Meta-Llama-3.1-70B-Instruct", + generation_kwargs={ + "temperature": 0.7, + "max_new_tokens": 1024, + }, + ) + semantic_checker = APIGenSemanticChecker( + use_default_structured_output=False, + llm=llm + ) + semantic_checker.load() + + res = next( + semantic_checker.process( + [ + { + "func_desc": "Fetch information about a specific cat breed from the Cat Breeds API.", + "query": "What information can be obtained about the Maine Coon cat breed?", + "answers": json.dumps([{"name": "get_breed_information", "arguments": {"breed": "Maine Coon"}}]), + "execution_result": "The Maine Coon is a big and hairy breed of cat", + } + ] + ) + ) + res + # [{'func_desc': 'Fetch information about a specific cat breed from the Cat Breeds API.', + # 'query': 'What information can be obtained about the Maine Coon cat breed?', + # 'answers': [{"name": "get_breed_information", "arguments": {"breed": "Maine Coon"}}], + # 'execution_result': 'The Maine Coon is a big and hairy breed of cat', + # 'thought': '', + # 'keep_row_after_semantic_check': True, + # 'raw_input_a_p_i_gen_semantic_checker_0': [{'role': 'system', + # 'content': 'As a data quality evaluator, you must assess the alignment between a user query, corresponding function calls, and their execution results.\nThese function calls and results are generated by other models, and your task is to ensure these results accurately reflect the user’s intentions.\n\nDo not pass if:\n1. The function call does not align with the query’s objective, or the input arguments appear incorrect.\n2. The function call and arguments are not properly chosen from the available functions.\n3. The number of function calls does not correspond to the user’s intentions.\n4. The execution results are irrelevant and do not match the function’s purpose.\n5. The execution results contain errors or reflect that the function calls were not executed successfully.\n'}, + # {'role': 'user', + # 'content': 'Given Information:\n- All Available Functions:\nFetch information about a specific cat breed from the Cat Breeds API.\n- User Query: What information can be obtained about the Maine Coon cat breed?\n- Generated Function Calls: [{"name": "get_breed_information", "arguments": {"breed": "Maine Coon"}}]\n- Execution Results: The Maine Coon is a big and hairy breed of cat\n\nNote: The query may have multiple intentions. Functions may be placeholders, and execution results may be truncated due to length, which is acceptable and should not cause a failure.\n\nThe main decision factor is wheather the function calls accurately reflect the query\'s intentions and the function descriptions.\nProvide your reasoning in the thought section and decide if the data passes (answer yes or no).\nIf not passing, concisely explain your reasons in the thought section; otherwise, leave this section blank.\n\nYour response MUST strictly adhere to the following JSON format, and NO other text MUST be included.\n```\n{\n "thought": "Concisely describe your reasoning here",\n "pass": "yes" or "no"\n}\n```\n'}]}, + # 'model_name': 'meta-llama/Meta-Llama-3.1-70B-Instruct'}] + ``` + + Semantic checker for generated function calls (structured output): + + ```python + from distilabel.steps.tasks import APIGenSemanticChecker + from distilabel.llms import InferenceEndpointsLLM + + llm=InferenceEndpointsLLM( + model_id="meta-llama/Meta-Llama-3.1-70B-Instruct", + generation_kwargs={ + "temperature": 0.7, + "max_new_tokens": 1024, + }, + ) + semantic_checker = APIGenSemanticChecker( + use_default_structured_output=True, + llm=llm + ) + semantic_checker.load() + + res = next( + semantic_checker.process( + [ + { + "func_desc": "Fetch information about a specific cat breed from the Cat Breeds API.", + "query": "What information can be obtained about the Maine Coon cat breed?", + "answers": json.dumps([{"name": "get_breed_information", "arguments": {"breed": "Maine Coon"}}]), + "execution_result": "The Maine Coon is a big and hairy breed of cat", + } + ] + ) + ) + res + # [{'func_desc': 'Fetch information about a specific cat breed from the Cat Breeds API.', + # 'query': 'What information can be obtained about the Maine Coon cat breed?', + # 'answers': [{"name": "get_breed_information", "arguments": {"breed": "Maine Coon"}}], + # 'execution_result': 'The Maine Coon is a big and hairy breed of cat', + # 'keep_row_after_semantic_check': True, + # 'thought': '', + # 'raw_input_a_p_i_gen_semantic_checker_0': [{'role': 'system', + # 'content': 'As a data quality evaluator, you must assess the alignment between a user query, corresponding function calls, and their execution results.\nThese function calls and results are generated by other models, and your task is to ensure these results accurately reflect the user’s intentions.\n\nDo not pass if:\n1. The function call does not align with the query’s objective, or the input arguments appear incorrect.\n2. The function call and arguments are not properly chosen from the available functions.\n3. The number of function calls does not correspond to the user’s intentions.\n4. The execution results are irrelevant and do not match the function’s purpose.\n5. The execution results contain errors or reflect that the function calls were not executed successfully.\n'}, + # {'role': 'user', + # 'content': 'Given Information:\n- All Available Functions:\nFetch information about a specific cat breed from the Cat Breeds API.\n- User Query: What information can be obtained about the Maine Coon cat breed?\n- Generated Function Calls: [{"name": "get_breed_information", "arguments": {"breed": "Maine Coon"}}]\n- Execution Results: The Maine Coon is a big and hairy breed of cat\n\nNote: The query may have multiple intentions. Functions may be placeholders, and execution results may be truncated due to length, which is acceptable and should not cause a failure.\n\nThe main decision factor is wheather the function calls accurately reflect the query\'s intentions and the function descriptions.\nProvide your reasoning in the thought section and decide if the data passes (answer yes or no).\nIf not passing, concisely explain your reasons in the thought section; otherwise, leave this section blank.\n'}]}, + # 'model_name': 'meta-llama/Meta-Llama-3.1-70B-Instruct'}] + ``` + """ + + system_prompt: str = SYSTEM_PROMPT_SEMANTIC_CHECKER + use_default_structured_output: bool = False + + _format_inst: Union[str, None] = PrivateAttr(None) + + def load(self) -> None: + """Loads the template for the generator prompt.""" + super().load() + _path = str( + importlib_resources.files("distilabel") + / "steps" + / "tasks" + / "templates" + / "apigen" + / "semantic_checker.jinja2" + ) + + self._template = Template(open(_path).read()) + self._format_inst = self._set_format_inst() + + def _set_format_inst(self) -> str: + """Prepares the function to generate the formatted instructions for the prompt. + + If the default structured output is used, returns an empty string because nothing + else is needed, otherwise, returns the original addition to the prompt to guide the model + to generate a formatted JSON. + """ + return ( + "\nYour response MUST strictly adhere to the following JSON format, and NO other text MUST be included.\n" + "```\n" + "{\n" + ' "thought": "Concisely describe your reasoning here",\n' + ' "passes": "yes" or "no"\n' + "}\n" + "```\n" + ) + + @property + def inputs(self) -> "StepColumns": + """The inputs for the task.""" + return { + "func_desc": True, + "query": True, + "answers": True, + "execution_result": True, + "keep_row_after_execution_check": True, + } + + def format_input(self, input: Dict[str, Any]) -> "ChatType": + """The input is formatted as a `ChatType`.""" + return [ + {"role": "system", "content": self.system_prompt}, + { + "role": "user", + "content": self._template.render( + func_desc=input["func_desc"], + query=input["query"] or "", + func_call=input["answers"] or "", + execution_result=input["execution_result"], + format_inst=self._format_inst, + ), + }, + ] + + @property + def outputs(self) -> "StepColumns": + """The output for the task are the queries and corresponding answers.""" + return ["keep_row_after_semantic_check", "thought"] + + def format_output( + self, output: Union[str, None], input: Dict[str, Any] + ) -> Dict[str, Any]: + """The output is formatted as a list with the score of each instruction. + + Args: + output: the raw output of the LLM. + input: the input to the task. Used for obtaining the number of responses. + + Returns: + A dict with the queries and answers pairs. + The answers are an array of answers corresponding to the query. + Each answer is represented as an object with the following properties: + - name (string): The name of the tool used to generate the answer. + - arguments (object): An object representing the arguments passed to the tool to generate the answer. + Each argument is represented as a key-value pair, where the key is the parameter name and the + value is the corresponding value. + """ + if output is None: + return self._default_error(input) + + output = remove_fences(output) + + try: + result = orjson.loads(output) + # Update the column name and change to bool + result["keep_row_after_semantic_check"] = ( + result.pop("passes").lower() == "yes" + ) + input.update(**result) + return input + except orjson.JSONDecodeError: + return self._default_error(input) + + def _default_error(self, input: Dict[str, Any]) -> Dict[str, Any]: + """Default error message for the task.""" + input.update({"thought": None, "keep_row_after_semantic_check": None}) + return input + + @override + def get_structured_output(self) -> Dict[str, Any]: + """Creates the json schema to be passed to the LLM, to enforce generating + a dictionary with the output which can be directly parsed as a python dictionary. + + The schema corresponds to the following: + + ```python + from typing import Literal + from pydantic import BaseModel + import json + + class Checker(BaseModel): + thought: str + passes: Literal["yes", "no"] + + json.dumps(Checker.model_json_schema(), indent=4) + ``` + + Returns: + JSON Schema of the response to enforce. + """ + return { + "properties": { + "thought": {"title": "Thought", "type": "string"}, + "passes": {"enum": ["yes", "no"], "title": "Passes", "type": "string"}, + }, + "required": ["thought", "passes"], + "title": "Checker", + "type": "object", + } diff --git a/src/distilabel/steps/tasks/apigen/utils.py b/src/distilabel/steps/tasks/apigen/utils.py new file mode 100644 index 000000000..85ff0b764 --- /dev/null +++ b/src/distilabel/steps/tasks/apigen/utils.py @@ -0,0 +1,194 @@ +# Copyright 2023-present, Argilla, Inc. +# +# 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. + +import importlib.util +import re +import signal +from typing import TYPE_CHECKING, Any, Callable, Dict, TypedDict, Union + +from distilabel.steps.base import Step, StepInput + +if TYPE_CHECKING: + from types import ModuleType + + from distilabel.steps.typing import StepColumns, StepOutput + + +class PrepareExamples(Step): + r"""Helper step to create examples from `query` and `answers` pairs used as Few Shots in APIGen. + + Attributes: + template (str): The template to format the examples. + + Input columns: + - query (`str`): The query to generate examples from. + - answers (`str`): The answers to the query. + + Output columns: + - examples (`str`): The formatted examples. + + Categories: + - format + + Examples: + Generate examples for APIGen: + + ```python + from distilabel.steps.tasks.apigen.utils import PrepareExamples + + prepare_examples = PrepareExamples() + result = next(prepare_examples.process( + [ + { + "query": ['I need the area of circles with radius 2.5, 5, and 7.5 inches, please.', 'Can you provide the current locations of buses and trolleys on route 12?'], + "answers": ['[{"name": "circle_area", "arguments": {"radius": 2.5}}, {"name": "circle_area", "arguments": {"radius": 5}}, {"name": "circle_area", "arguments": {"radius": 7.5}}]', '[{"name": "bus_trolley_locations", "arguments": {"route": "12"}}]'] + } + ] + ) + # result + # [{'examples': '## Query:\nI need the area of circles with radius 2.5, 5, and 7.5 inches, please.\n## Answers:\n[{"name": "circle_area", "arguments": {"radius": 2.5}}, {"name": "circle_area", "arguments": {"radius": 5}}, {"name": "circle_area", "arguments": {"radius": 7.5}}]\n\n## Query:\nCan you provide the current locations of buses and trolleys on route 12?\n## Answers:\n[{"name": "bus_trolley_locations", "arguments": {"route": "12"}}]'}, {'examples': '## Query:\nI need the area of circles with radius 2.5, 5, and 7.5 inches, please.\n## Answers:\n[{"name": "circle_area", "arguments": {"radius": 2.5}}, {"name": "circle_area", "arguments": {"radius": 5}}, {"name": "circle_area", "arguments": {"radius": 7.5}}]\n\n## Query:\nCan you provide the current locations of buses and trolleys on route 12?\n## Answers:\n[{"name": "bus_trolley_locations", "arguments": {"route": "12"}}]'}] + ``` + """ + + template: str = "## Query:\n{query}\n## Answers:\n{answers}" + + @property + def inputs(self) -> "StepColumns": + return ["query", "answers"] + + @property + def outputs(self) -> "StepColumns": + return ["examples"] + + def process(self, inputs: StepInput) -> "StepOutput": + """The process prepares the data for the `APIGenGenerator` task. + + If a single example is provided, it is copied to avoid raising an error. + + Args: + inputs: A list of dictionaries with the input data. + + Yields: + A list of dictionaries with the output data. + """ + outputs = [] + for input in inputs: + example_list = [] + for query, answers in zip(input["query"], input["answers"]): + example_list.append(self.template.format(query=query, answers=answers)) + outputs.append({"examples": "\n\n".join(example_list)}) + + yield outputs + + +def load_module_from_path(path: str) -> "ModuleType": + """Loads a python module from a given path. + + Args: + path: Path pointing to the module. + + Returns: + ModuleType + + Example: + ```python + path = "/path/to/module.py" + module = load_module_from_path(path) + # And you can load functions from the module like this: + function = getattr(module, "function_name") + function(*args, **kwargs) + ``` + """ + spec = importlib.util.spec_from_file_location("module.name", path) + module = importlib.util.module_from_spec(spec) + spec.loader.exec_module(module) + return module + + +class FunctionResult(TypedDict): + keep: bool + execution_result: str + + +def execute_from_response( + function: Callable, call_answer: Union[Dict[str, Any], None] +) -> FunctionResult: + """Executes a function with the given arguments as generated by `APIGenGenerator`. + + Given that we cannot cast all the arguments arbitrarily, we try to evaluate them, + which ensures the strings can be converted to the correct type if possible (say + a list of lists of ints will be passed as such instead of its string representation). + + Args: + function: A callable object. + call_answer: The arguments to call the function, as generated by the model. + + Returns: + A container with the result of the execution and if the row should be kept. + """ + if not function: + return FunctionResult(keep=False, execution_result="Function not found") + + if call_answer: + for key, value in call_answer.items(): + if isinstance(value, str): + try: + call_answer[key] = eval(value) + except Exception: + # Leave as is and expect the function to handle it + pass + + try: + if call_answer: + result = run_function_with_timeout(function, 5, *call_answer.values()) + else: + # There can be functions that do not require arguments + result = run_function_with_timeout(function, 5) + return FunctionResult(keep=True, execution_result=str(result)) + except Exception as e: + return FunctionResult(keep=False, execution_result=str(e)) + + +def remove_json_fences(text: str) -> str: + pattern = r"^```json\n([\s\S]*)\n```$" + match = re.match(pattern, text, re.MULTILINE) + if match: + return match.group(1) + return text + + +def remove_fences(text: str) -> str: + pattern = r"^```\n([\s\S]*)\n```$" + match = re.match(pattern, text, re.MULTILINE) + if match: + return match.group(1) + return text + + +def timeout_handler(signum, frame): + raise TimeoutError("Function execution timed out") + + +def run_function_with_timeout(function: Callable, timeout: int = 5, *args: Any) -> Any: + """Run a function with a timeout, to limit the total time waiting for a result.""" + signal.signal(signal.SIGALRM, timeout_handler) + signal.alarm(timeout) + + try: + result = function(*args) + finally: + # Cancel the alarm + signal.alarm(0) + + return result diff --git a/src/distilabel/steps/tasks/templates/apigen/generator.jinja2 b/src/distilabel/steps/tasks/templates/apigen/generator.jinja2 new file mode 100644 index 000000000..cc92c725c --- /dev/null +++ b/src/distilabel/steps/tasks/templates/apigen/generator.jinja2 @@ -0,0 +1,10 @@ +Here are examples of queries and the corresponding answers for similar functions: +{{ examples }} + +Note that the query could be interpreted as a combination of several independent requests. +{{ parallel_queries }} +Based on these examples, generate {{ number }} diverse query and answer pairs for the function `{{ func_name }}`. +The detailed function description is the following: +{{ func_desc }} +{{ format_inst }} +Now please generate {{ number }} diverse query and answer pairs following the above format. \ No newline at end of file diff --git a/src/distilabel/steps/tasks/templates/apigen/semantic_checker.jinja2 b/src/distilabel/steps/tasks/templates/apigen/semantic_checker.jinja2 new file mode 100644 index 000000000..8d94357e7 --- /dev/null +++ b/src/distilabel/steps/tasks/templates/apigen/semantic_checker.jinja2 @@ -0,0 +1,13 @@ +Given Information: +- All Available Functions: +{{ func_desc }} +- User Query: {{ query }} +- Generated Function Calls: {{ func_call }} +- Execution Results: {{ execution_result }} + +Note: The query may have multiple intentions. Functions may be placeholders, and execution results may be truncated due to length, which is acceptable and should not cause a failure. + +The main decision factor is wheather the function calls accurately reflect the query's intentions and the function descriptions. +Provide your reasoning in the thought section and decide if the data passes (answer yes or no). +If not passing, concisely explain your reasons in the thought section; otherwise, leave this section blank. +{{ format_inst }} \ No newline at end of file diff --git a/src/distilabel/utils/mkdocs/components_gallery.py b/src/distilabel/utils/mkdocs/components_gallery.py index 9d5d9b59e..621f4b61d 100644 --- a/src/distilabel/utils/mkdocs/components_gallery.py +++ b/src/distilabel/utils/mkdocs/components_gallery.py @@ -90,6 +90,7 @@ "filtering": ":material-filter:", "format": ":material-format-list-bulleted:", "load": ":material-file-download:", + "execution": ":octicons-code-16:", "save": ":material-content-save:", } @@ -108,6 +109,7 @@ "filtering": "Filtering steps are used to filter the data based on some criteria.", "format": "Format steps are used to format the data.", "load": "Load steps are used to load the data.", + "execution": "Executes python functions.", "save": "Save steps are used to save the data.", } diff --git a/tests/integration/test_generator_and_sampler.py b/tests/integration/test_generator_and_sampler.py new file mode 100644 index 000000000..1bb0a457b --- /dev/null +++ b/tests/integration/test_generator_and_sampler.py @@ -0,0 +1,55 @@ +# Copyright 2023-present, Argilla, Inc. +# +# 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 distilabel.llms._dummy import DummyAsyncLLM +from distilabel.pipeline import Pipeline +from distilabel.steps import CombineOutputs, LoadDataFromDicts +from distilabel.steps.generators.data_sampler import DataSampler +from distilabel.steps.tasks import TextGeneration + + +def get_pipeline(): + with Pipeline() as pipe: + size_dataset_1 = 10 + loader_1 = LoadDataFromDicts( + data=[{"instruction": f"instruction {i}"} for i in range(size_dataset_1)] + ) + sampler = DataSampler( + data=[{"sample": f"sample {i}"} for i in range(30)], + size=2, + samples=size_dataset_1, + batch_size=8, + ) + text_generation = TextGeneration(llm=DummyAsyncLLM(), input_batch_size=8) + + combine = CombineOutputs() + [loader_1, sampler] >> combine >> text_generation + return pipe + + +def test_sampler(): + pipe = get_pipeline() + distiset = pipe.run(use_cache=False) + assert len(distiset["default"]["train"]) == 10 + row = distiset["default"]["train"][0] + assert isinstance(row["sample"], list) + assert len(row["sample"]) == 2 + assert isinstance(row["instruction"], str) + + +if __name__ == "__main__": + pipe = get_pipeline() + distiset = pipe.run(use_cache=False) + print(distiset) + print(distiset["default"]["train"][0]) diff --git a/tests/unit/steps/generators/test_data_sampler.py b/tests/unit/steps/generators/test_data_sampler.py new file mode 100644 index 000000000..32882e037 --- /dev/null +++ b/tests/unit/steps/generators/test_data_sampler.py @@ -0,0 +1,45 @@ +# Copyright 2023-present, Argilla, Inc. +# +# 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 typing import List + +import pytest + +from distilabel.steps.generators.data_sampler import DataSampler + + +@pytest.mark.parametrize( + "samples, size, batch_size, expected", + [ + (10, 2, 4, [4, 4, 2]), + (7, 5, 6, [6, 1]), + (20, 5, 20, [20]), + (20, 50, 8, [8, 8, 4]), + ], +) +def test_generator_and_sampler( + samples: int, size: int, batch_size: int, expected: List[int] +): + sampler = DataSampler( + data=[{"sample": f"sample {i}"} for i in range(30)], + size=size, + samples=samples, + batch_size=batch_size, + ) + sampler.load() + results = [item[0] for item in sampler.process()] + assert len(results) == len(expected) + assert len(results[0]) == batch_size + for i, result in enumerate(results): + assert len(result) == expected[i] diff --git a/tests/unit/steps/tasks/apigen/__init__.py b/tests/unit/steps/tasks/apigen/__init__.py new file mode 100644 index 000000000..20ce00bda --- /dev/null +++ b/tests/unit/steps/tasks/apigen/__init__.py @@ -0,0 +1,14 @@ +# Copyright 2023-present, Argilla, Inc. +# +# 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/tests/unit/steps/tasks/apigen/_sample_lib/final_velocity.py b/tests/unit/steps/tasks/apigen/_sample_lib/final_velocity.py new file mode 100644 index 000000000..abcc66214 --- /dev/null +++ b/tests/unit/steps/tasks/apigen/_sample_lib/final_velocity.py @@ -0,0 +1,27 @@ +# Copyright 2023-present, Argilla, Inc. +# +# 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. + + +def final_velocity(initial_velocity: float, acceleration: float, time: float) -> int: + """Calculates the final velocity of an object given its initial velocity, acceleration, and time. + + Args: + initial_velocity: The initial velocity of the object. + acceleration: The acceleration of the object. + time: The time elapsed. + + Returns: + The final velocity + """ + return initial_velocity + acceleration * time diff --git a/tests/unit/steps/tasks/apigen/_sample_lib/get_value.py b/tests/unit/steps/tasks/apigen/_sample_lib/get_value.py new file mode 100644 index 000000000..db3bd1bcc --- /dev/null +++ b/tests/unit/steps/tasks/apigen/_sample_lib/get_value.py @@ -0,0 +1,33 @@ +# Copyright 2023-present, Argilla, Inc. +# +# 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 typing import List, Optional, Tuple + + +def get_value(matrix: List[List[int]], indices: Tuple[int, int]) -> Optional[int]: + """Gets the value at the specified index in the matrix. + + Args: + matrix: A list of lists representing the matrix. + indices: A tuple containing the row and column indices. + """ + row_index, col_index = indices + if ( + row_index < 0 + or row_index >= len(matrix) + or col_index < 0 + or col_index >= len(matrix[row_index]) + ): + return None + return matrix[row_index][col_index] diff --git a/tests/unit/steps/tasks/apigen/_sample_module.py b/tests/unit/steps/tasks/apigen/_sample_module.py new file mode 100644 index 000000000..6e9e08502 --- /dev/null +++ b/tests/unit/steps/tasks/apigen/_sample_module.py @@ -0,0 +1,47 @@ +# Copyright 2023-present, Argilla, Inc. +# +# 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 typing import List, Optional, Tuple + + +def final_velocity(initial_velocity: float, acceleration: float, time: float) -> int: + """Calculates the final velocity of an object given its initial velocity, acceleration, and time. + + Args: + initial_velocity: The initial velocity of the object. + acceleration: The acceleration of the object. + time: The time elapsed. + + Returns: + The final velocity + """ + return initial_velocity + acceleration * time + + +def get_value(matrix: List[List[int]], indices: Tuple[int, int]) -> Optional[int]: + """Gets the value at the specified index in the matrix. + + Args: + matrix: A list of lists representing the matrix. + indices: A tuple containing the row and column indices. + """ + row_index, col_index = indices + if ( + row_index < 0 + or row_index >= len(matrix) + or col_index < 0 + or col_index >= len(matrix[row_index]) + ): + return None + return matrix[row_index][col_index] diff --git a/tests/unit/steps/tasks/apigen/test_execution_checker.py b/tests/unit/steps/tasks/apigen/test_execution_checker.py new file mode 100644 index 000000000..d70e42271 --- /dev/null +++ b/tests/unit/steps/tasks/apigen/test_execution_checker.py @@ -0,0 +1,140 @@ +# Copyright 2023-present, Argilla, Inc. +# +# 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. + +import json +from pathlib import Path +from typing import Any, Dict + +import pytest + +from distilabel.steps.tasks.apigen.execution_checker import APIGenExecutionChecker + +SAMPLE_LIB = Path(__file__).parent / "_sample_module.py" +SAMPLE_LIB_FOLDER = Path(__file__).parent / "_sample_lib" + + +class TestAPIGenExecutionChecker: + @pytest.mark.parametrize("lib", (SAMPLE_LIB, SAMPLE_LIB_FOLDER)) + @pytest.mark.parametrize( + "answers, expected", + [ + ( + { + "query": "Whats the velocity of X?", + "answers": json.dumps( + [ + { + "arguments": { + "initial_velocity": 0.2, + "acceleration": "0.1", + "time": 5, + }, + "name": "final_velocity", + } + ] + ), + }, + [ + { + "query": "Whats the velocity of X?", + "answers": json.dumps( + [ + { + "arguments": { + "initial_velocity": 0.2, + "acceleration": "0.1", + "time": 5, + }, + "name": "final_velocity", + } + ] + ), + "keep_row_after_execution_check": True, + "execution_result": ["0.7"], + } + ], + ), + ( + { + "query": "Other query", + "answers": json.dumps( + [ + { + "arguments": { + "initial_velocity": 0.2, + "acceleration": 0.1, + "time": 0.5, + }, + "name": "unknown_function", + } + ] + ), + }, + [ + { + "query": "Other query", + "answers": json.dumps( + [ + { + "arguments": { + "initial_velocity": 0.2, + "acceleration": 0.1, + "time": 0.5, + }, + "name": "unknown_function", + } + ] + ), + "keep_row_after_execution_check": False, + "execution_result": ["Function 'unknown_function' not found."], + } + ], + ), + ( + { + "query": "Other query", + "answers": '[{"arguments": {"matrix": "[[1, 2, 3], [4, 5, 6], [7, 8, 9]]", "indices": "[1, 2]"}, "name": "get_value"}]', + }, + [ + { + "query": "Other query", + "answers": '[{"arguments": {"matrix": "[[1, 2, 3], [4, 5, 6], [7, 8, 9]]", "indices": "[1, 2]"}, "name": "get_value"}]', + "keep_row_after_execution_check": True, + "execution_result": ["6"], + } + ], + ), + ( + { + "query": "Other query", + "answers": None, + }, + [ + { + "query": "Other query", + "answers": None, + "keep_row_after_execution_check": False, + "execution_result": ["No answers were provided."], + } + ], + ), + ], + ) + def test_process( + self, lib: str, answers: Dict[str, str], expected: Dict[str, Any] + ) -> None: + task = APIGenExecutionChecker(libpath=str(lib)) + task.load() + result = next(task.process([answers])) + assert result == expected diff --git a/tests/unit/steps/tasks/apigen/test_generator.py b/tests/unit/steps/tasks/apigen/test_generator.py new file mode 100644 index 000000000..a290666a6 --- /dev/null +++ b/tests/unit/steps/tasks/apigen/test_generator.py @@ -0,0 +1,172 @@ +# Copyright 2023-present, Argilla, Inc. +# +# 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. + +import random +from typing import TYPE_CHECKING, List, Union + +import pytest + +from distilabel.steps.tasks.apigen.generator import APIGenGenerator +from tests.unit.conftest import DummyLLM + +if TYPE_CHECKING: + from distilabel.llms.typing import GenerateOutput + from distilabel.steps.tasks.typing import FormattedInput + +import json + + +class DummyAPIGenLLM(DummyLLM): + use_structured_output: bool = False + number: int = 1 + + def generate( + self, inputs: List["FormattedInput"], num_generations: int = 1 + ) -> "GenerateOutput": + query_answers = [ + { + "query": "What information can be obtained about the Maine Coon cat breed?", + "answers": [ + { + "name": "get_breed_information", + "arguments": {"breed": "Maine Coon"}, + } + ] + * self.number, + } + ] + if self.use_structured_output: + query_answers = {"pairs": query_answers} + return [ + [json.dumps(query_answers) for _ in range(num_generations)] + for _ in range(len(inputs)) + ] + + +# Example of 3 rows from Salesforce/xlam-function-calling-60k +SAMPLE_DATA = [ + { + "answers": '[{"name": "get_breed_information", "arguments": {"breed": "Maine Coon"}}]', + "query": "What information can be obtained about the Maine Coon cat breed?", + "id": 3493, + "tools": '[{"name": "get_breed_information", "description": "Fetch information about a specific cat breed from the Cat Breeds API.", "parameters": {"breed": {"description": "The name of the cat breed to fetch information for.", "type": "str", "default": "aegean"}}}, {"name": "country_region_cities", "description": "Fetches a list of cities within a specified region of a given country from the GeoDB API.", "parameters": {"countryid": {"description": "An ISO-3166 country code or WikiData ID.", "type": "str", "default": "US"}, "regioncode": {"description": "An ISO-3166 or FIPS region code.", "type": "str", "default": "CA"}, "limit": {"description": "The maximum number of results to retrieve. Defaults to None.", "type": "int, optional", "default": ""}, "hateoasmode": {"description": "Include HATEOAS-style links in results. Defaults to None.", "type": "bool, optional", "default": ""}, "asciimode": {"description": "Display results using ASCII characters. Defaults to None.", "type": "bool, optional", "default": ""}, "nameprefixdefaultlangresults": {"description": "Match on names in the default language if a non-default language is requested when prefix-matching. Defaults to None.", "type": "bool, optional", "default": ""}, "timezoneids": {"description": "Only include cities in these time zones. Comma-separated values. Defaults to None.", "type": "str, optional", "default": ""}, "nameprefix": {"description": "Only include cities whose names start with this prefix. If languagecode is set, the prefix will be matched on the name as it appears in that language. Defaults to None.", "type": "str, optional", "default": ""}, "types": {"description": "Only include cities of these types (comma-separated): CITY, ADM2. Defaults to None.", "type": "str, optional", "default": ""}, "minpopulation": {"description": "Only include cities with at least this population. Defaults to None.", "type": "int, optional", "default": ""}, "languagecode": {"description": "Display results in this language. Defaults to None.", "type": "str, optional", "default": ""}, "offset": {"description": "The zero-based offset into the results. Defaults to None.", "type": "int, optional", "default": ""}, "maxpopulation": {"description": "Only include cities with no more than this population. Defaults to None.", "type": "int, optional", "default": ""}, "includedeleted": {"description": "Whether to include any cities marked deleted. Options are: ALL, SINCE_YESTERDAY, SINCE_LAST_WEEK, NONE. Defaults to None.", "type": "str, optional", "default": ""}, "sort": {"description": "How to sort the results. Format: \\u00b1SORT_FIELD,\\u00b1SORT_FIELD where SORT_FIELD = elevation, name, population. Defaults to None.", "type": "str, optional", "default": ""}}}, {"name": "company_details", "description": "Fetch details of a company from Indeed\'s API.", "parameters": {"company_id": {"description": "The unique identifier of the company to fetch details for.", "type": "str", "default": "Microsoft"}, "locality": {"description": "The locality or country code for Indeed\'s subdomain. Default is \'us\' if not provided.", "type": "str, optional", "default": ""}}}]', + }, + { + "answers": '[{"name": "mailcheck", "arguments": {"domain": "protonmail.com"}}, {"name": "mailcheck", "arguments": {"domain": "mail.com"}}, {"name": "get_products_in_category", "arguments": {"skip": 20, "limit": 25, "category": "furniture"}}]', + "query": "Check if the email domains 'protonmail.com' and 'mail.com' are valid and not temporary. Get the products from category 'furniture' in my store, skipping the first 20 items and limiting to 25 items.", + "id": 57546, + "tools": '[{"name": "mailcheck", "description": "Checks if an email domain is valid or a disposable/temporary address.", "parameters": {"domain": {"description": "The email or domain to check for validity. It is recommended to enter just the domain for user privacy.", "type": "str", "default": "mailinator.com"}}}, {"name": "get_products_in_category", "description": "Fetches a list of products from a specified category in a store with pagination.", "parameters": {"skip": {"description": "The number of items to skip before starting to collect the result set.", "type": "int", "default": ""}, "limit": {"description": "The number of items to return in the result set.", "type": "int", "default": ""}, "category": {"description": "The category from which to fetch products.", "type": "str", "default": ""}}}, {"name": "product_by_id", "description": "Fetches detailed information about a specific product from the AliExpress API using the provided product ID.", "parameters": {"product_id": {"description": "The unique identifier for the product on AliExpress.", "type": "int", "default": "32841070485"}}}]', + }, + { + "answers": '[{"name": "navigations_get_node_content", "arguments": {"is_id": 8899, "cat_id": 8899, "language": "en"}}, {"name": "navigations_get_node_content", "arguments": {"is_id": 7766, "cat_id": 7766, "language": "en"}}, {"name": "navigations_get_node_content", "arguments": {"is_id": 5544, "cat_id": 5544, "language": "fr"}}, {"name": "navigations_get_node_content", "arguments": {"is_id": 3322, "cat_id": 3322, "language": "fr"}}]', + "query": "What are the node contents for category IDs 8899 and 7766 in English and for category IDs 5544 and 3322 in French?", + "id": 8815, + "tools": '[{"name": "navigations_get_node_content", "description": "Fetches the content of a node in a navigation hierarchy.", "parameters": {"is_id": {"description": "The \'id\' field value returned from the /navigations/get-root endpoint.", "type": "int", "default": "26066300130"}, "cat_id": {"description": "The \'cat_id\' field value returned from the /navigations/get-tabs endpoint.", "type": "int", "default": "2026"}, "language": {"description": "The 2-letter language code (default is \'en\').", "type": "str, optional", "default": "en"}, "currency": {"description": "The 3-letter currency code (default is \'USD\').", "type": "str, optional", "default": "USD"}, "country": {"description": "The 2-letter country code (default is \'US\').", "type": "str, optional", "default": "US"}}}, {"name": "products_get_reviews", "description": "Fetches brief reviews of a product from the Shein API.", "parameters": {"goods_spu": {"description": "The value of \'productRelationID\' returned in the /products/list or /products/search endpoints. Defaults to \'m22022854841\'.", "type": "str, optional", "default": "m22022854841"}, "cat_id": {"description": "The value of \'cat_id\' returned in the /products/list or /products/search endpoints. Defaults to \'1727\'.", "type": "str, optional", "default": "1727"}, "sku": {"description": "The value of \'goods_sn\' returned in the /products/list or /products/search endpoints. Defaults to \'rm2202285484176751\'.", "type": "str, optional", "default": "rm2202285484176751"}, "currency": {"description": "The 3-letter currency code. Defaults to \'USD\'.", "type": "str, optional", "default": "USD"}, "goods_id": {"description": "The value of \'goods_id\' field returned in the /products/list or /products/search endpoints. Defaults to \'10196865\'.", "type": "str, optional", "default": "10196865"}, "language": {"description": "The 2-letter language code. Defaults to \'en\'.", "type": "str, optional", "default": "en"}, "country": {"description": "The 2-letter country code. Defaults to \'US\'.", "type": "str, optional", "default": "US"}}}]', + }, +] + + +class TestApiGenGenerator: + @pytest.mark.parametrize("number", [1, 2, [3]]) + @pytest.mark.parametrize("use_default_structured_output", [True, False]) + @pytest.mark.parametrize("use_tools", [True, False]) + def test_format_input( + self, + number: Union[int, List[int]], + use_default_structured_output: bool, + use_tools: bool, + ) -> None: + random.seed(42) + task = APIGenGenerator( + llm=DummyLLM(), + number=number, + use_tools=use_tools, + use_default_structured_output=use_default_structured_output, + ) + task.load() + formatted = task.format_input( + input={ + "examples": '## Query:\nWhat information can be obtained about the Maine Coon cat breed?\n## Answer:\n[{"name": "get_breed_information", "arguments": {"breed": "Maine Coon"}}]', + "func_name": "get_breed_information", + "func_desc": "Fetch information about a specific cat breed from the Cat Breeds API.", + "tools": '[{"name": "navigations_get_node_content", "description": "Fetches the content of a node in a navigation hierarchy.", "parameters": {"is_id": {"description": "The \'id\' field value returned from the /navigations/get-root endpoint.", "type": "int", "default": "26066300130"}, "cat_id": {"description": "The \'cat_id\' field value returned from the /navigations/get-tabs endpoint.", "type": "int", "default": "2026"}, "language": {"description": "The 2-letter language code (default is \'en\').", "type": "str, optional", "default": "en"}, "currency": {"description": "The 3-letter currency code (default is \'USD\').", "type": "str, optional", "default": "USD"}, "country": {"description": "The 2-letter country code (default is \'US\').", "type": "str, optional", "default": "US"}}}, {"name": "products_get_reviews", "description": "Fetches brief reviews of a product from the Shein API.", "parameters": {"goods_spu": {"description": "The value of \'productRelationID\' returned in the /products/list or /products/search endpoints. Defaults to \'m22022854841\'.", "type": "str, optional", "default": "m22022854841"}, "cat_id": {"description": "The value of \'cat_id\' returned in the /products/list or /products/search endpoints. Defaults to \'1727\'.", "type": "str, optional", "default": "1727"}, "sku": {"description": "The value of \'goods_sn\' returned in the /products/list or /products/search endpoints. Defaults to \'rm2202285484176751\'.", "type": "str, optional", "default": "rm2202285484176751"}, "currency": {"description": "The 3-letter currency code. Defaults to \'USD\'.", "type": "str, optional", "default": "USD"}, "goods_id": {"description": "The value of \'goods_id\' field returned in the /products/list or /products/search endpoints. Defaults to \'10196865\'.", "type": "str, optional", "default": "10196865"}, "language": {"description": "The 2-letter language code. Defaults to \'en\'.", "type": "str, optional", "default": "en"}, "country": {"description": "The 2-letter country code. Defaults to \'US\'.", "type": "str, optional", "default": "US"}}}]', + } + ) + + assert isinstance(formatted, list) + # Check only the user prompt, the system one should be fixed + formatted_prompt = formatted[1]["content"] + + if isinstance(number, list): + # Fix the number for the tests for simplicity + number = 3 + assert f"Now please generate {number} diverse" in formatted_prompt + + assert ( + "The output MUST strictly adhere to the following JSON format, and NO other text MUST be included:" + in formatted_prompt + ) + + tools_entry = "This is the available tool to guide you (respect the order of the parameters):" + if use_tools: + assert tools_entry in formatted_prompt + else: + assert tools_entry not in formatted_prompt + + is_parallel_check = "It can contain multiple parallel queries in natural language for the given functions. They could use either the same function with different arguments or different functions." + if number > 1: + assert is_parallel_check in formatted_prompt + else: + assert is_parallel_check not in formatted_prompt + + @pytest.mark.parametrize("number", [1, 2]) + @pytest.mark.parametrize("use_default_structured_output", [True, False]) + @pytest.mark.parametrize("use_tools", [True, False]) + def test_process( + self, + number: Union[int, List[int]], + use_default_structured_output: bool, + use_tools: bool, + ) -> None: + # Is parallel is not relevant in this case, it's only relevant for the format_input + # as it will be multiple questions in the prompt + random.seed(42) + task = APIGenGenerator( + llm=DummyAPIGenLLM( + use_structured_output=use_default_structured_output, number=number + ), + number=number, + use_tools=use_tools, + use_default_structured_output=use_default_structured_output, + ) + task.load() + result = next( + task.process( + [ + { + "examples": '## Query:\nWhat information can be obtained about the Maine Coon cat breed?\n## Answer:\n[{"name": "get_breed_information", "arguments": {"breed": "Maine Coon"}}]', + "func_name": "get_breed_information", + "func_desc": "Fetch information about a specific cat breed from the Cat Breeds API.", + "tools": '[{"name": "navigations_get_node_content", "description": "Fetches the content of a node in a navigation hierarchy.", "parameters": {"is_id": {"description": "The \'id\' field value returned from the /navigations/get-root endpoint.", "type": "int", "default": "26066300130"}, "cat_id": {"description": "The \'cat_id\' field value returned from the /navigations/get-tabs endpoint.", "type": "int", "default": "2026"}, "language": {"description": "The 2-letter language code (default is \'en\').", "type": "str, optional", "default": "en"}, "currency": {"description": "The 3-letter currency code (default is \'USD\').", "type": "str, optional", "default": "USD"}, "country": {"description": "The 2-letter country code (default is \'US\').", "type": "str, optional", "default": "US"}}}, {"name": "products_get_reviews", "description": "Fetches brief reviews of a product from the Shein API.", "parameters": {"goods_spu": {"description": "The value of \'productRelationID\' returned in the /products/list or /products/search endpoints. Defaults to \'m22022854841\'.", "type": "str, optional", "default": "m22022854841"}, "cat_id": {"description": "The value of \'cat_id\' returned in the /products/list or /products/search endpoints. Defaults to \'1727\'.", "type": "str, optional", "default": "1727"}, "sku": {"description": "The value of \'goods_sn\' returned in the /products/list or /products/search endpoints. Defaults to \'rm2202285484176751\'.", "type": "str, optional", "default": "rm2202285484176751"}, "currency": {"description": "The 3-letter currency code. Defaults to \'USD\'.", "type": "str, optional", "default": "USD"}, "goods_id": {"description": "The value of \'goods_id\' field returned in the /products/list or /products/search endpoints. Defaults to \'10196865\'.", "type": "str, optional", "default": "10196865"}, "language": {"description": "The 2-letter language code. Defaults to \'en\'.", "type": "str, optional", "default": "en"}, "country": {"description": "The 2-letter country code. Defaults to \'US\'.", "type": "str, optional", "default": "US"}}}]', + } + ] + ) + )[0] + assert "query" in result + assert "answers" in result + query = result["query"] + assert isinstance(query, str) + answers = json.loads(result["answers"]) + assert isinstance(answers, list) + assert len(answers) == number diff --git a/tests/unit/steps/tasks/apigen/test_semantic_checker.py b/tests/unit/steps/tasks/apigen/test_semantic_checker.py new file mode 100644 index 000000000..e73b71c3a --- /dev/null +++ b/tests/unit/steps/tasks/apigen/test_semantic_checker.py @@ -0,0 +1,113 @@ +# Copyright 2023-present, Argilla, Inc. +# +# 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 typing import Any, Dict + +import pytest + +from distilabel.steps.tasks.apigen.semantic_checker import APIGenSemanticChecker +from tests.unit.conftest import DummyLLM + +SAMPLE_DATA = [ + # The info can for the function description can be obtained from the tool itself + { + "func_desc": "Fetch information about a specific cat breed from the Cat Breeds API.", + "query": "What information can be obtained about the Maine Coon cat breed?", + "answers": '[{"name": "get_breed_information", "arguments": {"breed": "Maine Coon"}}]', + "execution_result": "Hopefully some info about the Maine Coon", + }, + { + "func_desc": "Checks if an email domain is valid or a disposable/temporary address.", + "query": "Check if the email domains 'protonmail.com' and 'mail.com' are valid and not temporary. Get the products from category 'furniture' in my store, skipping the first 20 items and limiting to 25 items.", + "answers": '[{"name": "mailcheck", "arguments": {"domain": "protonmail.com"}}, {"name": "mailcheck", "arguments": {"domain": "mail.com"}}, {"name": "get_products_in_category", "arguments": {"skip": 20, "limit": 25, "category": "furniture"}}]', + "execution_result": "Response for the emails", + }, + { + "func_desc": "Fetches the content of a node in a navigation hierarchy.", + "query": "What are the node contents for category IDs 8899 and 7766 in English and for category IDs 5544 and 3322 in French?", + "answers": '[{"name": "navigations_get_node_content", "arguments": {"is_id": 8899, "cat_id": 8899, "language": "en"}}, {"name": "navigations_get_node_content", "arguments": {"is_id": 7766, "cat_id": 7766, "language": "en"}}, {"name": "navigations_get_node_content", "arguments": {"is_id": 5544, "cat_id": 5544, "language": "fr"}}, {"name": "navigations_get_node_content", "arguments": {"is_id": 3322, "cat_id": 3322, "language": "fr"}}]', + "execution_result": "Response for the node contents", + }, +] + + +class TestAPIGenSemanticChecker: + @pytest.mark.parametrize("use_default_structured_output", [True, False]) + def test_format_input(self, use_default_structured_output: bool) -> None: + task = APIGenSemanticChecker( + llm=DummyLLM(), + use_default_structured_output=use_default_structured_output, + ) + task.load() + result = task.format_input(SAMPLE_DATA[0]) + assert isinstance(result, list) + formatted_prompt = result[1]["content"] + + default_structured_output_check = "Your response MUST strictly adhere to the following JSON format, and NO other text MUST be included" + assert default_structured_output_check in formatted_prompt + assert ( + '- Generated Function Calls: [{"name": "get_breed_information", "arguments": {"breed": "Maine Coon"}}]' + in formatted_prompt + ) + assert ( + "- All Available Functions:\nFetch information about a specific cat breed from the Cat Breeds API." + in formatted_prompt + ) + assert ( + "- Execution Results: Hopefully some info about the Maine Coon" + in formatted_prompt + ) + + @pytest.mark.parametrize( + "result, expected", + [ + ( + '{"thought": "thought", "keep_row_after_semantic_check": "no", "passes": "no"}', + { + "thought": "thought", + "keep_row_after_semantic_check": False, + "answers": '[{"name": "get_breed_information", "arguments": {"breed": "Maine Coon"}}]', + "execution_result": "Hopefully some info about the Maine Coon", + "func_desc": "Fetch information about a specific cat breed from the Cat Breeds API.", + "query": "What information can be obtained about the Maine Coon cat breed?", + }, + ), + ( + None, + { + "thought": None, + "keep_row_after_semantic_check": None, + "answers": '[{"name": "get_breed_information", "arguments": {"breed": "Maine Coon"}}]', + "execution_result": "Hopefully some info about the Maine Coon", + "func_desc": "Fetch information about a specific cat breed from the Cat Breeds API.", + "query": "What information can be obtained about the Maine Coon cat breed?", + }, + ), + ( + "wrong", + { + "thought": None, + "keep_row_after_semantic_check": None, + "answers": '[{"name": "get_breed_information", "arguments": {"breed": "Maine Coon"}}]', + "execution_result": "Hopefully some info about the Maine Coon", + "func_desc": "Fetch information about a specific cat breed from the Cat Breeds API.", + "query": "What information can be obtained about the Maine Coon cat breed?", + }, + ), + ], + ) + def test_format_output(self, result: str, expected: Dict[str, Any]) -> None: + task = APIGenSemanticChecker(llm=DummyLLM()) + task.load() + assert task.format_output(result, SAMPLE_DATA[0]) == expected diff --git a/tests/unit/steps/tasks/apigen/test_utils.py b/tests/unit/steps/tasks/apigen/test_utils.py new file mode 100644 index 000000000..00707f17a --- /dev/null +++ b/tests/unit/steps/tasks/apigen/test_utils.py @@ -0,0 +1,77 @@ +# Copyright 2023-present, Argilla, Inc. +# +# 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 pathlib import Path +from typing import Any, Dict + +import pytest + +from distilabel.steps.tasks.apigen.utils import ( + execute_from_response, + load_module_from_path, +) + + +@pytest.mark.parametrize( + "function_name, answer, expected_result", + [ + ( + "final_velocity", + {"initial_velocity": 10, "acceleration": 5, "time": 2}, + {"execution_result": "20", "keep": True}, + ), + # In this case, internally we should cast the arguments + ( + "final_velocity", + {"initial_velocity": "10", "acceleration": "5", "time": "2"}, + {"execution_result": "20", "keep": True}, + ), + # Different names for the arguments but correctly positioned + ( + "final_velocity", + {"v0": "10", "a": "5", "t": "2"}, + {"execution_result": "20", "keep": True}, + ), + # Fail casting one of the values + ( + "final_velocity", + {"initial_velocity": "10", "acceleration": "5", "time": "1m/s"}, + { + "execution_result": "unsupported operand type(s) for +: 'int' and 'str'", + "keep": False, + }, + ), + ( + "final_velocity", + {"initial_velocity": 10, "acceleration": 5}, + { + "execution_result": "final_velocity() missing 1 required positional argument: 'time'", + "keep": False, + }, + ), + ( + "unknwown_function", + {"initial_velocity": 10, "acceleration": 5, "time": 2}, + {"execution_result": "Function not found", "keep": False}, + ), + ], +) +def test_execute_from_response( + function_name: str, answer: Dict[str, Any], expected_result: Dict[str, Any] +): + libpath = Path(__file__).parent / "_sample_module.py" + libpath = load_module_from_path(libpath) + final_velocity = getattr(libpath, function_name, None) + result = execute_from_response(final_velocity, answer) + assert result == expected_result From 87683f04d809be1005589bd74b1ca2ad2b1e73da Mon Sep 17 00:00:00 2001 From: Agus Date: Mon, 7 Oct 2024 15:45:13 +0200 Subject: [PATCH 12/23] Pretty print (#934) * Add integration test to showcase the prompts * Add a base print method so the Tasks can pretty print their prompts easily * Update base method to allow automatic pretty printing * Add optional argument instead of the default, update method name and return type * Fix type hint * Add example in docstrings * Add section in docs for the print method --- .../how_to_guides/tasks/task_print.png | Bin 0 -> 140892 bytes .../how_to_guides/basic/task/index.md | 69 +++++++++++++ src/distilabel/steps/tasks/base.py | 91 +++++++++++++++++- .../steps/tasks/complexity_scorer.py | 14 +++ .../steps/tasks/evol_instruct/base.py | 6 ++ .../steps/tasks/evol_instruct/generator.py | 4 + .../steps/tasks/evol_quality/base.py | 4 + .../steps/tasks/improving_text_embeddings.py | 15 +-- .../steps/tasks/magpie/generator.py | 6 ++ src/distilabel/steps/tasks/quality_scorer.py | 11 +++ src/distilabel/steps/tasks/ultrafeedback.py | 11 +++ tests/integration/test_prints.py | 71 ++++++++++++++ 12 files changed, 294 insertions(+), 8 deletions(-) create mode 100644 docs/assets/images/sections/how_to_guides/tasks/task_print.png create mode 100644 tests/integration/test_prints.py diff --git a/docs/assets/images/sections/how_to_guides/tasks/task_print.png b/docs/assets/images/sections/how_to_guides/tasks/task_print.png new file mode 100644 index 0000000000000000000000000000000000000000..95498c8c6c1518ba1d3e8ec077d5aaf099c78fd3 GIT binary patch literal 140892 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 SojC;mlfAAal`HYbqyGc#DRU73 literal 0 HcmV?d00001 diff --git a/docs/sections/how_to_guides/basic/task/index.md b/docs/sections/how_to_guides/basic/task/index.md index 510459970..7aa2049f4 100644 --- a/docs/sections/how_to_guides/basic/task/index.md +++ b/docs/sections/how_to_guides/basic/task/index.md @@ -57,6 +57,75 @@ As shown above, the [`TextGeneration`][distilabel.steps.tasks.TextGeneration] ta ) ``` +### Task.print + +!!! Info + New since version `1.4.0`, [`Task.print`][distilabel.steps.tasks.base._Task.print] `Task.print` method. + +The `Tasks` include a handy method to show what the prompt formatted for an `LLM` would look like, let's see an example with [`UltraFeedback`][distilabel.steps.tasks.ultrafeedback.UltraFeedback], but it applies to any other `Task`. + +```python +from distilabel.steps.tasks import UltraFeedback +from distilabel.llms.huggingface import InferenceEndpointsLLM + +uf = UltraFeedback( + llm=InferenceEndpointsLLM( + model_id="meta-llama/Meta-Llama-3.1-70B-Instruct", + ), +) +uf.load() +uf.print() +``` + +The result will be a rendered prompt, with the System prompt (if contained for the task) and the User prompt, rendered with rich (it will show exactly the same in a jupyter notebook). + +![task-print](../../../../assets/images/sections/how_to_guides/tasks/task_print.png) + +In case you want to test with a custom input, you can pass an example to the tasks` `format_input` method (or generate it on your own depending on the task), and pass it to the print method so that it shows your example: + + +```python +uf.print( + uf.format_input({"instruction": "test", "generations": ["1", "2"]}) +) +``` + +??? "Using a DummyLLM to avoid loading one" + + In case you don't want to load an LLM to render the template, you can create a dummy one like the ones we could use for testing. + + ```python + from distilabel.llms.base import LLM + from distilabel.llms.mixins.magpie import MagpieChatTemplateMixin + + class DummyLLM(AsyncLLM, MagpieChatTemplateMixin): + structured_output: Any = None + magpie_pre_query_template: str = "llama3" + + def load(self) -> None: + pass + + @property + def model_name(self) -> str: + return "test" + + def generate( + self, input: "FormattedInput", num_generations: int = 1 + ) -> "GenerateOutput": + return ["output" for _ in range(num_generations)] + ``` + + You can use this `LLM` just as any of the other ones to `load` your task and call `print`: + + ```python + uf = UltraFeedback(llm=DummyLLM()) + uf.load() + uf.print() + ``` + +!!! Note + When creating a custom task, the `print` method will be available by default, but it is limited to the most common scenarios for the inputs. If you test your new task and find it's not working as expected (for example, if your task contains one input consisting of a list of texts instead of a single one), you should override the `_sample_input` method. You can inspect the [`UltraFeedback`][distilabel.steps.tasks.ultrafeedback.UltraFeedback] source code for this. + ## Specifying the number of generations and grouping generations All the `Task`s have a `num_generations` attribute that allows defining the number of generations that we want to have per input. We can update the example above to generate 3 completions per input: diff --git a/src/distilabel/steps/tasks/base.py b/src/distilabel/steps/tasks/base.py index d73bafd60..0524749e2 100644 --- a/src/distilabel/steps/tasks/base.py +++ b/src/distilabel/steps/tasks/base.py @@ -14,7 +14,7 @@ import importlib from abc import ABC, abstractmethod -from typing import TYPE_CHECKING, Any, Dict, List, Union +from typing import TYPE_CHECKING, Any, Dict, List, Optional, Union from pydantic import Field, PrivateAttr from typing_extensions import override @@ -34,7 +34,7 @@ if TYPE_CHECKING: from distilabel.llms.typing import GenerateOutput - from distilabel.steps.tasks.typing import FormattedInput + from distilabel.steps.tasks.typing import ChatType, FormattedInput from distilabel.steps.typing import StepOutput @@ -276,6 +276,93 @@ def get_structured_output(self) -> Union[Dict[str, Any], None]: """ return None + def _sample_input(self) -> "ChatType": + """Returns a sample input to be used in the `print` method. + Tasks that don't adhere to a format input that returns a map of the type + str -> str should override this method to return a sample input. + """ + return self.format_input( + {input: f"" for input in self.inputs} + ) + + def print(self, sample_input: Optional["ChatType"] = None) -> None: + """Prints a sample input to the console using the `rich` library. + Helper method to visualize the prompt of the task. + + Args: + sample_input: A sample input to be printed. If not provided, a default will be + generated using the `_sample_input` method, which can be overriden by + subclasses. This should correspond to the same example you could pass to + the `format_input` method. + The variables be named by default. + + Examples: + Print the URIAL prompt: + + ```python + from distilabel.steps.tasks import URIAL + from distilabel.llms.huggingface import InferenceEndpointsLLM + + # Consider this as a placeholder for your actual LLM. + urial = URIAL( + llm=InferenceEndpointsLLM( + model_id="meta-llama/Meta-Llama-3.1-70B-Instruct", + ), + ) + urial.load() + urial.print() + ╭─────────────────────────────────────── Prompt: URIAL ────────────────────────────────────────╮ + │ ╭────────────────────────────────────── User Message ───────────────────────────────────────╮ │ + │ │ # Instruction │ │ + │ │ │ │ + │ │ Below is a list of conversations between a human and an AI assistant (you). │ │ + │ │ Users place their queries under "# User:", and your responses are under "# Assistant:". │ │ + │ │ You are a helpful, respectful, and honest assistant. │ │ + │ │ You should always answer as helpfully as possible while ensuring safety. │ │ + │ │ Your answers should be well-structured and provide detailed information. They should also │ │ + │ │ have an engaging tone. │ │ + │ │ Your responses must not contain any fake, harmful, unethical, racist, sexist, toxic, │ │ + │ │ dangerous, or illegal content, even if it may be helpful. │ │ + │ │ Your response must be socially responsible, and thus you can refuse to answer some │ │ + │ │ controversial topics. │ │ + │ │ │ │ + │ │ │ │ + │ │ # User: │ │ + │ │ │ │ + │ │ │ │ + │ │ │ │ + │ │ # Assistant: │ │ + │ ╰───────────────────────────────────────────────────────────────────────────────────────────╯ │ + ╰───────────────────────────────────────────────────────────────────────────────────────────────╯ + ``` + """ + from rich.console import Console, Group + from rich.panel import Panel + from rich.text import Text + + console = Console() + sample_input = sample_input or self._sample_input() + + panels = [] + for item in sample_input: + content = Text.assemble((item.get("content", ""),)) + panel = Panel( + content, + title=f"[bold][magenta]{item.get('role', '').capitalize()} Message[/magenta][/bold]", + border_style="light_cyan3", + ) + panels.append(panel) + + # Create a group of panels + # Wrap the group in an outer panel + outer_panel = Panel( + Group(*panels), + title=f"[bold][magenta]Prompt: {type(self).__name__} [/magenta][/bold]", + border_style="light_cyan3", + expand=False, + ) + console.print(outer_panel) + class Task(_Task, Step): """Task is a class that implements the `_Task` abstract class and adds the `Step` diff --git a/src/distilabel/steps/tasks/complexity_scorer.py b/src/distilabel/steps/tasks/complexity_scorer.py index 9ee8befa5..401e3b760 100644 --- a/src/distilabel/steps/tasks/complexity_scorer.py +++ b/src/distilabel/steps/tasks/complexity_scorer.py @@ -239,3 +239,17 @@ def _format_structured_output( return orjson.loads(output) except orjson.JSONDecodeError: return {"scores": [None] * len(input["instructions"])} + + @override + def _sample_input(self) -> "ChatType": + """Returns a sample input to be used in the `print` method. + Tasks that don't adhere to a format input that returns a map of the type + str -> str should override this method to return a sample input. + """ + return self.format_input( + { + "instructions": [ + f"" for i in range(2) + ], + } + ) diff --git a/src/distilabel/steps/tasks/evol_instruct/base.py b/src/distilabel/steps/tasks/evol_instruct/base.py index ea73f2503..95f271a11 100644 --- a/src/distilabel/steps/tasks/evol_instruct/base.py +++ b/src/distilabel/steps/tasks/evol_instruct/base.py @@ -388,3 +388,9 @@ def process(self, inputs: StepInput) -> "StepOutput": # type: ignore ): input.update(self.format_output(instruction, answers[idx])) yield inputs + + @override + def _sample_input(self) -> ChatType: + return self.format_input( + self._apply_random_mutation("") + ) diff --git a/src/distilabel/steps/tasks/evol_instruct/generator.py b/src/distilabel/steps/tasks/evol_instruct/generator.py index bc15655ba..1f56c866a 100644 --- a/src/distilabel/steps/tasks/evol_instruct/generator.py +++ b/src/distilabel/steps/tasks/evol_instruct/generator.py @@ -347,3 +347,7 @@ def process(self, offset: int = 0) -> "GeneratorStepOutput": # type: ignore ], True, ) + + @override + def _sample_input(self) -> "ChatType": + return self._apply_random_mutation(iter_no=0)[0] diff --git a/src/distilabel/steps/tasks/evol_quality/base.py b/src/distilabel/steps/tasks/evol_quality/base.py index 743deeb4f..5c899aa68 100644 --- a/src/distilabel/steps/tasks/evol_quality/base.py +++ b/src/distilabel/steps/tasks/evol_quality/base.py @@ -271,3 +271,7 @@ def process(self, inputs: StepInput) -> "StepOutput": # type: ignore yield inputs self._logger.info(f"🎉 Finished evolving {len(responses)} instructions!") + + @override + def _sample_input(self) -> ChatType: + return self.format_input("") diff --git a/src/distilabel/steps/tasks/improving_text_embeddings.py b/src/distilabel/steps/tasks/improving_text_embeddings.py index a23b9dbba..d806e3ade 100644 --- a/src/distilabel/steps/tasks/improving_text_embeddings.py +++ b/src/distilabel/steps/tasks/improving_text_embeddings.py @@ -12,17 +12,12 @@ # See the License for the specific language governing permissions and # limitations under the License. +import importlib.resources as importlib_resources import random import re -import sys from abc import ABC, abstractmethod from typing import Any, Dict, List, Literal, Optional, Union -if sys.version_info < (3, 9): - import importlib_resources -else: - import importlib.resources as importlib_resources - from jinja2 import Template from pydantic import Field, PrivateAttr from typing_extensions import override @@ -232,6 +227,10 @@ def process(self, offset: int = 0) -> GeneratorStepOutput: # type: ignore ) yield task_outputs, True + @override + def _sample_input(self) -> ChatType: + return self.prompt + # IMPLEMENTED TASKS class EmbeddingTaskGenerator(GeneratorTask): @@ -402,6 +401,10 @@ def format_output( pass return {"tasks": output} + @override + def _sample_input(self) -> ChatType: + return self.prompt + class GenerateTextRetrievalData(_EmbeddingDataGeneration): """Generate text retrieval data with an `LLM` to later on train an embedding model. diff --git a/src/distilabel/steps/tasks/magpie/generator.py b/src/distilabel/steps/tasks/magpie/generator.py index 2df8bf621..c1e413d32 100644 --- a/src/distilabel/steps/tasks/magpie/generator.py +++ b/src/distilabel/steps/tasks/magpie/generator.py @@ -15,6 +15,7 @@ from typing import TYPE_CHECKING, Any, Dict, Union from pydantic import Field +from typing_extensions import override from distilabel.errors import DistilabelUserError from distilabel.llms.mixins.magpie import MagpieChatTemplateMixin @@ -23,6 +24,7 @@ from distilabel.steps.tasks.magpie.base import MagpieBase if TYPE_CHECKING: + from distilabel.steps.tasks.typing import ChatType from distilabel.steps.typing import GeneratorStepOutput, StepColumns @@ -312,3 +314,7 @@ def process(self, offset: int = 0) -> "GeneratorStepOutput": ) generated += rows_to_generate # type: ignore yield (conversations, generated == self.num_rows) + + @override + def _sample_input(self) -> "ChatType": + return self._generate_with_pre_query_template(inputs=[{}]) diff --git a/src/distilabel/steps/tasks/quality_scorer.py b/src/distilabel/steps/tasks/quality_scorer.py index 57b7e38e2..604f2a027 100644 --- a/src/distilabel/steps/tasks/quality_scorer.py +++ b/src/distilabel/steps/tasks/quality_scorer.py @@ -262,3 +262,14 @@ def _format_structured_output( return orjson.loads(output) except orjson.JSONDecodeError: return {"scores": [None] * len(input["responses"])} + + @override + def _sample_input(self) -> ChatType: + return self.format_input( + { + "instruction": f"", + "responses": [ + f"" for i in range(2) + ], + } + ) diff --git a/src/distilabel/steps/tasks/ultrafeedback.py b/src/distilabel/steps/tasks/ultrafeedback.py index 04af9c177..aeb57bda3 100644 --- a/src/distilabel/steps/tasks/ultrafeedback.py +++ b/src/distilabel/steps/tasks/ultrafeedback.py @@ -480,3 +480,14 @@ def _format_structured_output( "types": [None] * len(input["generations"]), "rationales-for-ratings": [None] * len(input["generations"]), } + + @override + def _sample_input(self) -> ChatType: + return self.format_input( + { + "instruction": f"", + "generations": [ + f"" for i in range(2) + ], + } + ) diff --git a/tests/integration/test_prints.py b/tests/integration/test_prints.py new file mode 100644 index 000000000..1deda9df7 --- /dev/null +++ b/tests/integration/test_prints.py @@ -0,0 +1,71 @@ +# Copyright 2023-present, Argilla, Inc. +# +# 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 functools import partial + +import pytest + +from distilabel.llms.mixins.magpie import MagpieChatTemplateMixin +from distilabel.steps import tasks as tasks_ +from tests.unit.conftest import DummyLLM + +# The tasks not listed here don't have a print method (or don't have a print method that works) +tasks = [ + tasks_.ComplexityScorer, + partial(tasks_.EvolInstruct, num_evolutions=1), + partial(tasks_.EvolComplexity, num_evolutions=1), + partial(tasks_.EvolComplexityGenerator, num_instructions=1), + partial(tasks_.EvolInstructGenerator, num_instructions=1), + partial(tasks_.EvolQuality, num_evolutions=1), + tasks_.Genstruct, + partial( + tasks_.BitextRetrievalGenerator, + source_language="English", + target_language="Spanish", + unit="sentence", + difficulty="elementary school", + high_score="4", + low_score="2.5", + ), + partial(tasks_.EmbeddingTaskGenerator, category="text-retrieval"), + tasks_.GenerateLongTextMatchingData, + tasks_.GenerateShortTextMatchingData, + tasks_.GenerateTextClassificationData, + tasks_.GenerateTextRetrievalData, + tasks_.MonolingualTripletGenerator, + tasks_.InstructionBacktranslation, + tasks_.Magpie, + tasks_.MagpieGenerator, + partial(tasks_.PrometheusEval, mode="absolute", rubric="factual-validity"), + tasks_.QualityScorer, + tasks_.SelfInstruct, + partial(tasks_.GenerateSentencePair, action="paraphrase"), + tasks_.UltraFeedback, + tasks_.URIAL, +] + + +class TestLLM(DummyLLM, MagpieChatTemplateMixin): + magpie_pre_query_template: str = "llama3" + + +llm = TestLLM() + + +@pytest.mark.parametrize("task", tasks) +def test_prints(task): + t = task(llm=llm) + t.load() + t.print() + t.unload() From e027f99393d14a6f51ae508eab663274b233ed29 Mon Sep 17 00:00:00 2001 From: Agus Date: Mon, 7 Oct 2024 15:52:58 +0200 Subject: [PATCH 13/23] Add `CLAIR` task (#926) * Redirect import of CLAIR * Add jinja2 template for CLAIR * Add CLAIR task * Add tests for CLAIR task * Update example in docstrings * Add tutorial to reproduce CLAIR * Show new tutorial in the gallery and fix rendering issue in docstrings --- docs/assets/pipelines/clair.png | Bin 0 -> 527548 bytes docs/sections/pipeline_samples/index.md | 15 ++ .../sections/pipeline_samples/papers/clair.md | 84 ++++++++ mkdocs.yml | 1 + src/distilabel/steps/tasks/__init__.py | 2 + src/distilabel/steps/tasks/clair.py | 199 ++++++++++++++++++ .../steps/tasks/templates/clair.jinja2 | 7 + tests/unit/steps/tasks/test_clair.py | 74 +++++++ 8 files changed, 382 insertions(+) create mode 100644 docs/assets/pipelines/clair.png create mode 100644 docs/sections/pipeline_samples/papers/clair.md create mode 100644 src/distilabel/steps/tasks/clair.py create mode 100644 src/distilabel/steps/tasks/templates/clair.jinja2 create mode 100644 tests/unit/steps/tasks/test_clair.py diff --git a/docs/assets/pipelines/clair.png b/docs/assets/pipelines/clair.png new file mode 100644 index 0000000000000000000000000000000000000000..c80e801f9075d04fc1e44a3d5f1f641962278b94 GIT binary patch literal 527548 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∈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