From 7631255909623bc4440ef5debc018e9c7021926f Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=D0=9C=D0=B0=D0=BB=D0=B0=D1=85=D0=BE=D0=B2=20=D0=90=D0=BB?= =?UTF-8?q?=D0=B5=D0=BA=D1=81=D0=B5=D0=B9=20=D0=9F=D0=B0=D0=B2=D0=BB=D0=BE?= =?UTF-8?q?=D0=B2=D0=B8=D1=87?= Date: Thu, 1 Aug 2024 15:10:57 +0000 Subject: [PATCH 01/31] add new dpo losses --- tests/cli/test_sft.py | 16 +-- .../settings/pipelines/train/dpo.py | 28 +++-- turbo_alignment/trainers/dpo.py | 113 +++++++++++++++++- 3 files changed, 129 insertions(+), 28 deletions(-) diff --git a/tests/cli/test_sft.py b/tests/cli/test_sft.py index f66941f..ab01abd 100755 --- a/tests/cli/test_sft.py +++ b/tests/cli/test_sft.py @@ -14,24 +14,10 @@ 'config_path', [ FIXTURES_PATH / 'configs/train/sft/base.json', + FIXTURES_PATH / 'configs/train/sft/sft_with_rm_metric.json', ], ) def test_sft_train(config_path: Path): result = runner.invoke(app, ['train_sft', '--experiment_settings_path', str(config_path)], catch_exceptions=False) assert result.exit_code == 0 assert SftTrainExperimentSettings.parse_file(config_path).log_path.is_dir() - - -@pytest.mark.parametrize( - 'config_path', - [ - FIXTURES_PATH / 'configs/train/sft/resume_from_checkpoint.json', - ], -) -def test_sft_from_checkpoint(config_path: Path): - result = runner.invoke( - app, - ['train_sft', '--experiment_settings_path', str(config_path)], - ) - assert result.exit_code == 0 - assert SftTrainExperimentSettings.parse_file(config_path).log_path.is_dir() diff --git a/turbo_alignment/settings/pipelines/train/dpo.py b/turbo_alignment/settings/pipelines/train/dpo.py index c7a0ae0..a81091a 100755 --- a/turbo_alignment/settings/pipelines/train/dpo.py +++ b/turbo_alignment/settings/pipelines/train/dpo.py @@ -19,6 +19,8 @@ class DPOLossesType(str, Enum): KTO = 'kto' SLIC_HF = 'slic_hf' CPO = 'cpo' + ORPO = 'orpo' + SIMPO = 'simpo' class DPOLossSettings(ExtraFieldsNotAllowedBaseModel): @@ -57,6 +59,16 @@ class SlicHfLossSettings(DPOLossSettings): norm: bool = False +class SimPOLossSettings(DPOLossSettings): + loss_type: Literal[DPOLossesType.SIMPO] + beta: float = 0.1 + gamma: float = 0.1 + + +class ORPOLossSettings(DPOLossSettings): + loss_type: Literal[DPOLossesType.ORPO] + + class SyncRefModelSettings(ExtraFieldsNotAllowedBaseModel): sync_ref_model: bool = False alpha: float = 1.0 @@ -64,19 +76,21 @@ class SyncRefModelSettings(ExtraFieldsNotAllowedBaseModel): class DPOTrainerSettings(TrainerSettings): - loss_settings: SigmoidLossSettings | HingeLossSettings | IPOLossSettings | KTOLossSettings | CPOLossSettings + loss_settings: ( + SigmoidLossSettings + | HingeLossSettings + | IPOLossSettings + | KTOLossSettings + | CPOLossSettings + | ORPOLossSettings + | SimPOLossSettings + ) sync_ref_settings: SyncRefModelSettings use_ref_model: bool = True use_sft_model: bool = False average_log_prob: bool = Field(default=False, description='Normalize log probability by length or not') -class SlicHfTrainerSettings(TrainerSettings): - loss_settings: SlicHfLossSettings - use_ref_model: bool = True - average_log_prob: bool = Field(default=False, description='Normalize log probability by length or not') - - class DPOTrainExperimentSettings(BaseTrainExperimentSettings): train_dataset_settings: PairPreferenceMultiDatasetSettings val_dataset_settings: PairPreferenceMultiDatasetSettings diff --git a/turbo_alignment/trainers/dpo.py b/turbo_alignment/trainers/dpo.py index 8d91070..f8236ce 100755 --- a/turbo_alignment/trainers/dpo.py +++ b/turbo_alignment/trainers/dpo.py @@ -25,10 +25,15 @@ from turbo_alignment.common.tf.callbacks.sync_ref_model import SyncRefModelCallback from turbo_alignment.constants import DISABLE_LOSS_LABEL from turbo_alignment.settings.pipelines.train.dpo import ( + CPOLossSettings, DPOLossesType, HingeLossSettings, IPOLossSettings, + KTOLossSettings, + ORPOLossSettings, SigmoidLossSettings, + SimPOLossSettings, + SlicHfLossSettings, SyncRefModelSettings, ) from turbo_alignment.trainers.utils import ( @@ -198,6 +203,7 @@ def compute_loss( return loss, chosen_rewards, rejected_rewards +@DPOLossRegistry.register(DPOLossesType.SLIC_HF) class SlicHfLoss(DPOLossRegistry): def __init__(self, delta: float = 1, beta: float = 1.0, lam: float = 1.0, norm: bool = False) -> None: self.delta = delta @@ -232,11 +238,77 @@ def compute_loss( return loss, chosen_rewards, rejected_rewards +@DPOLossRegistry.register(DPOLossesType.SIMPO) +class SimPOLoss(DPOLossRegistry): + def __init__(self, *args, beta: float = 0.1, gamma: float = 0.1, **kwargs) -> None: + self.beta = beta + self.gamma = gamma + super().__init__(*args, **kwargs) + + def compute_loss( + self, + policy_chosen_logps: torch.FloatTensor, + policy_rejected_logps: torch.FloatTensor, + reference_chosen_logps: torch.FloatTensor | None, + reference_rejected_logps: torch.FloatTensor | None, + policy_best_decode_logps: torch.FloatTensor | None, + ) -> tuple[torch.Tensor, torch.Tensor, torch.Tensor]: + pi_logratios = policy_chosen_logps - policy_rejected_logps + + logits = pi_logratios - self.gamma + + chosen_rewards = self.beta * (policy_chosen_logps).detach() + rejected_rewards = self.beta * (policy_rejected_logps).detach() + + loss = -F.logsigmoid(self.beta * logits) + + return ( + loss, + chosen_rewards, + rejected_rewards, + ) + + +@DPOLossRegistry.register(DPOLossesType.ORPO) +class ORPOLoss(DPOLossRegistry): + def __init__(self, *args, beta: float = 0.1, **kwargs) -> None: + self.beta = beta + super().__init__(*args, **kwargs) + + def compute_loss( + self, + policy_chosen_logps: torch.FloatTensor, + policy_rejected_logps: torch.FloatTensor, + reference_chosen_logps: torch.FloatTensor | None, + reference_rejected_logps: torch.FloatTensor | None, + policy_best_decode_logps: torch.FloatTensor | None, + ) -> tuple[torch.Tensor, torch.Tensor, torch.Tensor]: + log_odds = (policy_chosen_logps - policy_rejected_logps) - ( + torch.log1p(-torch.clamp(torch.exp(policy_chosen_logps), max=1 - 1e-7)) + - torch.log1p(-torch.clamp(torch.exp(policy_rejected_logps), max=1 - 1e-7)) + ) + + ratio = -F.logsigmoid(log_odds) + losses = self.beta * ratio + + chosen_rewards = self.beta * policy_chosen_logps.detach() + rejected_rewards = self.beta * policy_rejected_logps.detach() + + return losses, chosen_rewards, rejected_rewards + + @dataclass class DPOTrainingArguments(TrainingArguments): - loss_settings: SigmoidLossSettings | HingeLossSettings | IPOLossSettings | SlicHfLoss | KTOLoss | CPOLoss = field( - default_factory=SigmoidLossSettings(loss_type=DPOLossesType.SIGMOID) - ) + loss_settings: ( + SigmoidLossSettings + | HingeLossSettings + | IPOLossSettings + | SlicHfLossSettings + | KTOLossSettings + | CPOLossSettings + | ORPOLossSettings + | SimPOLossSettings + ) = field(default_factory=SigmoidLossSettings(loss_type=DPOLossesType.SIGMOID)) sync_ref_settings: SyncRefModelSettings = field(default_factory=SyncRefModelSettings()) use_ref_model: bool = True use_sft_model: bool = False @@ -269,6 +341,10 @@ def __init__( if hasattr(args, 'loss_settings'): self.loss_type = args.loss_settings['loss_type'] # type: ignore[index] + + if self.loss_type == DPOLossesType.SIMPO and not args.average_log_prob: + raise ValueError('You should normalize logits by length when using SimPO') + loss_args = args.loss_settings loss_args.pop('loss_type') # type: ignore[union-attr] self.dpo_loss_registry = DPOLossRegistry.by_name(self.loss_type)(**loss_args) @@ -286,6 +362,10 @@ def __init__( **kwargs, ) + if hasattr(args, 'loss_settings') and self.loss_type in (DPOLossesType.SIMPO, DPOLossesType.ORPO): + self.args.use_ref_model = False + logger.info('You can turn off ref_model when using SimPO or ORPO for memory saving') + self.ref_model = ref_model self.sft_model = sft_model @@ -407,7 +487,10 @@ def get_batch_metrics( policy_best_decode_logps, ) = self.concatenated_forward(model, batch) - reference_chosen_logps, reference_rejected_logps = self._get_logps(self.ref_model, batch) + reference_chosen_logps, reference_rejected_logps = torch.Tensor([float('inf')]), torch.Tensor([float('inf')]) + + if self.args.use_ref_model: + reference_chosen_logps, reference_rejected_logps = self._get_logps(self.ref_model, batch) losses, chosen_rewards, rejected_rewards = self.dpo_loss( policy_chosen_logps=policy_chosen_logps, @@ -423,14 +506,16 @@ def get_batch_metrics( metrics = self._compute_metrics(metrics, dpo_prefix_name, chosen_rewards, rejected_rewards) - metrics[f'{prefix}logps/ref_rejected'] = (reference_rejected_logps).detach().cpu().mean().item() - metrics[f'{prefix}logps/ref_chosen'] = (reference_chosen_logps).detach().cpu().mean().item() metrics[f'{prefix}logps/rejected'] = (policy_rejected_logps).detach().cpu().mean().item() metrics[f'{prefix}logps/chosen'] = (policy_chosen_logps).detach().cpu().mean().item() metrics[f'{prefix}logits/rejected'] = (policy_rejected_logits).detach().cpu().mean().item() metrics[f'{prefix}logits/chosen'] = (policy_chosen_logits).detach().cpu().mean().item() + if self.args.use_ref_model: + metrics[f'{prefix}logps/ref_rejected'] = (reference_rejected_logps).detach().cpu().mean().item() + metrics[f'{prefix}logps/ref_chosen'] = (reference_chosen_logps).detach().cpu().mean().item() + if self.loss_type == DPOLossesType.KTO: kto_chosen_KL = ( (policy_chosen_logps.detach().cpu() - reference_chosen_logps.detach().cpu()).mean().clamp(min=0) @@ -448,6 +533,22 @@ def get_batch_metrics( metrics[f'{prefix}rewards/kto_grad_term_chosen'] = kto_grad_term_chosen.item() metrics[f'{prefix}rewards/kto_grad_term_rejected'] = kto_grad_term_rejected.item() + elif self.loss_type == DPOLossesType.ORPO: + labels_w = batch['inputs_w']['labels'][:, 1:].clone() + loss_mask_w = labels_w != DISABLE_LOSS_LABEL + length_norm_policy_chosen_logps = policy_chosen_logps / loss_mask_w.sum(-1) + + log_odds = (policy_chosen_logps - policy_rejected_logps) - ( + torch.log1p(-torch.clamp(torch.exp(policy_chosen_logps), max=1 - 1e-7)) + - torch.log1p(-torch.clamp(torch.exp(policy_rejected_logps), max=1 - 1e-7)) + ) + ratio = -F.logsigmoid(log_odds) + nll_loss = -length_norm_policy_chosen_logps + + metrics[f'{prefix}orpo/nll_loss'] = nll_loss.clone().detach().cpu().mean().item() + metrics[f'{prefix}orpo/ratio'] = (ratio).detach().cpu().mean().item() + metrics[f'{prefix}orpo/log_odds'] = (log_odds).detach().cpu().mean().item() + if self.sft_model is not None: sft_chosen_logps, sft_rejected_logps = self._get_logps(self.sft_model, batch) From d503ac0114f47ae14aaf7563371f43aef754a6fc Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=D0=9C=D0=B0=D0=BB=D0=B0=D1=85=D0=BE=D0=B2=20=D0=90=D0=BB?= =?UTF-8?q?=D0=B5=D0=BA=D1=81=D0=B5=D0=B9=20=D0=9F=D0=B0=D0=B2=D0=BB=D0=BE?= =?UTF-8?q?=D0=B2=D0=B8=D1=87?= Date: Thu, 1 Aug 2024 16:19:48 +0000 Subject: [PATCH 02/31] update trainer --- tests/cli/test_dpo_train.py | 5 ++++- turbo_alignment/trainers/dpo.py | 2 +- 2 files changed, 5 insertions(+), 2 deletions(-) diff --git a/tests/cli/test_dpo_train.py b/tests/cli/test_dpo_train.py index 08e1f76..23bd4af 100755 --- a/tests/cli/test_dpo_train.py +++ b/tests/cli/test_dpo_train.py @@ -12,7 +12,10 @@ @pytest.mark.parametrize( 'config_path', - [FIXTURES_PATH / 'configs/train/dpo/base.json'], + [ + FIXTURES_PATH / 'configs/train/dpo/base.json', + FIXTURES_PATH / 'configs/train/dpo/simpo.json', + ], ) def test_dpo_train(config_path: Path): result = runner.invoke( diff --git a/turbo_alignment/trainers/dpo.py b/turbo_alignment/trainers/dpo.py index f8236ce..55ac33f 100755 --- a/turbo_alignment/trainers/dpo.py +++ b/turbo_alignment/trainers/dpo.py @@ -489,7 +489,7 @@ def get_batch_metrics( reference_chosen_logps, reference_rejected_logps = torch.Tensor([float('inf')]), torch.Tensor([float('inf')]) - if self.args.use_ref_model: + if self.args.use_ref_model or self.loss_type not in (DPOLossesType.SIMPO, DPOLossesType.ORPO): reference_chosen_logps, reference_rejected_logps = self._get_logps(self.ref_model, batch) losses, chosen_rewards, rejected_rewards = self.dpo_loss( From 56e3f381ccc9e653180329f613aa59a179e72f2f Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=D0=9C=D0=B0=D0=BB=D0=B0=D1=85=D0=BE=D0=B2=20=D0=90=D0=BB?= =?UTF-8?q?=D0=B5=D0=BA=D1=81=D0=B5=D0=B9=20=D0=9F=D0=B0=D0=B2=D0=BB=D0=BE?= =?UTF-8?q?=D0=B2=D0=B8=D1=87?= Date: Thu, 1 Aug 2024 16:20:35 +0000 Subject: [PATCH 03/31] add test configs --- tests/fixtures/configs/train/dpo/simpo.json | 134 ++++++++++++++++++++ 1 file changed, 134 insertions(+) create mode 100755 tests/fixtures/configs/train/dpo/simpo.json diff --git a/tests/fixtures/configs/train/dpo/simpo.json b/tests/fixtures/configs/train/dpo/simpo.json new file mode 100755 index 0000000..f128f36 --- /dev/null +++ b/tests/fixtures/configs/train/dpo/simpo.json @@ -0,0 +1,134 @@ +{ + "train_dataset_settings": { + "sources": [ + { + "name": "rm_preferences_test", + "records_path": "tests/fixtures/datasets/rm/train_preferences.jsonl", + "sample_rate": 1 + } + ], + "chat_settings":{ + "prompt_template": { + "role_tag_mapping": { + "bot": "", + "user": "", + "system": "" + }, + "prefix_template": "{role}", + "suffix_template": "" + }, + "max_tokens_count": 120 + }, + "add_labels": true, + "dataset_type": "pair_preferences" + }, + "val_dataset_settings": { + "sources": [ + { + "name": "rm_preferences_test", + "records_path": "tests/fixtures/datasets/rm/val_preferences.jsonl", + "sample_rate": 1 + } + ], + "chat_settings":{ + "prompt_template": { + "role_tag_mapping": { + "bot": "", + "user": "", + "system": "" + }, + "prefix_template": "{role}", + "suffix_template": "" + }, + "max_tokens_count": 120 + }, + "add_labels": true, + "dataset_type": "pair_preferences" + }, + "model_settings": { + "model_path": "tests/fixtures/models/llama2_tiny", + "model_type": "causal", + "transformers_settings": {}, + "adapter_path": "tests/fixtures/models/llama2_tiny_fine_tuned_with_adapters/trainer", + "is_trainable": true + }, + "cherry_pick_settings": { + "generator_transformers_settings": { + "num_beams": 1, + "do_sample": false, + "max_new_tokens": 8 + }, + "custom_generation_settings": { + "generation_eos_token": "", + "skip_special_tokens": false + }, + "dataset_settings": { + "sources": [ + { + "name": "chat_test", + "records_path": "tests/fixtures/datasets/chat/train_chat.jsonl", + "num_samples": 2 + } + ], + "prompt_template": { + "role_tag_mapping": { + "bot": "", + "user": "", + "system": "" + }, + "prefix_template": "{role}", + "suffix_template": "" + }, + "dataset_type": "chat", + "max_tokens_count": 150, + "only_answer_loss": true + }, + "metric_settings": [ + { + "type": "length", + "parameters": {"need_average": [true]} + }, + { + "type": "kl", + "parameters": { + "need_average": [true], + "ref_logits_type": "sft" + } + } + ] + }, + "tokenizer_settings": {}, + "trainer_settings": { + "evaluation_strategy": "steps", + "per_device_train_batch_size": 2, + "per_device_eval_batch_size": 2, + "gradient_accumulation_steps": 2, + "eval_steps": 4, + "save_steps": 4, + "logging_steps": 1, + "learning_rate": 0.0003, + "num_train_epochs": 2, + "lr_scheduler_type": "cosine", + "warmup_steps": 2, + "fp16": false, + "bf16": false, + "optim": "adamw_torch", + "save_total_limit": 1, + "average_log_prob": true, + "loss_settings": { + "loss_type": "simpo" + }, + "sync_ref_settings": { + "sync_ref_model": false + }, + "use_ref_model": false, + "use_sft_model": true, + "no_cuda": true + }, + "wandb_settings": { + "project_name": "alignment", + "run_name": "dpo", + "entity": "turbo-alignment" + }, + "log_path": "test_dpo_llama_train_output" +} From a8d881d5fbcb324bbfb6bb63badec0eeb69467b9 Mon Sep 17 00:00:00 2001 From: lmeribal Date: Tue, 6 Aug 2024 14:21:52 +0300 Subject: [PATCH 04/31] Multimodal dataset example --- docs/dataset_example.md | 40 ++++++++++++++++++++++++++++++++++++++-- 1 file changed, 38 insertions(+), 2 deletions(-) diff --git a/docs/dataset_example.md b/docs/dataset_example.md index 7ca2f81..6ea91c5 100644 --- a/docs/dataset_example.md +++ b/docs/dataset_example.md @@ -11,7 +11,7 @@ - [Pair Preferences Dataset](#-pair-preferences-dataset) - [KTO Dataset](#-kto-dataset) - [Sampling Dataset](#-sampling-dataset) -- [Multimodal Dataset ](#-multimodal-dataset) (⌛️ Work in progress...) +- [Multimodal Dataset ](#-multimodal-dataset) - [Classification Dataset](#-classification-dataset) - [DPPO Dataset](#-ddpo-dataset) (⌛️ Work in progress...) @@ -118,9 +118,45 @@ Example: ## Multimodal Dataset -⌛️ in progress.. +- `messages`: `list[MultimodalChatMessage]` — This is a sequence of messages that make up the chat history. Each `ChatMessage` includes: + - `role` - The participant's role in the conversation (e.g., `user` or `bot`). + - `type` – The type of modality (e.g., `text` or `image`) + - `content` - If the `type` is `text`, it's the textual content of the message. If it's `image`, it's the file path. +Example: +```json +{ + "id": "0", + "messages": [ + { + "role": "system", + "type": "text", + "content": "You are a Multimodal AI assistant." + }, + { + "role": "user", + "type": "image", + "content": "/path/to/cat.jpg" + }, + { + "role": "user", + "type": "image", + "content": "/path/to/dog.jpg" + }, + { + "role": "user", + "type": "text", + "content": "What's the difference between these two images?" + }, + { + "role": "bot", + "type": "text", + "content": "The two images in question both feature animals, albeit of different species. The first image depicts a dog, which is generally perceived as an animal that elicits positive emotional responses. The second image features a cat, which is also regarded as an animal that evokes a positive emotional response." + } + ] +} +``` From 6e9dc31a8241b4cafd598311906ace85e61d2c0f Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=D0=9C=D0=B0=D0=BB=D0=B0=D1=85=D0=BE=D0=B2=20=D0=90=D0=BB?= =?UTF-8?q?=D0=B5=D0=BA=D1=81=D0=B5=D0=B9=20=D0=9F=D0=B0=D0=B2=D0=BB=D0=BE?= =?UTF-8?q?=D0=B2=D0=B8=D1=87?= Date: Tue, 6 Aug 2024 13:43:25 +0000 Subject: [PATCH 05/31] fix gradient checkpointing --- turbo_alignment/pipelines/train/ddpo.py | 3 ++- turbo_alignment/pipelines/train/dpo.py | 1 + turbo_alignment/pipelines/train/kto.py | 2 ++ turbo_alignment/pipelines/train/sft.py | 2 ++ 4 files changed, 7 insertions(+), 1 deletion(-) diff --git a/turbo_alignment/pipelines/train/ddpo.py b/turbo_alignment/pipelines/train/ddpo.py index 8a35a38..a280b6f 100755 --- a/turbo_alignment/pipelines/train/ddpo.py +++ b/turbo_alignment/pipelines/train/ddpo.py @@ -94,7 +94,8 @@ def _get_trainer( data_collator: Callable, rm_model: PreTrainedModel = None, ) -> DDPOTrainer: - model.config.use_cache = False + model.config.use_cache = not experiment_settings.trainer_settings.gradient_checkpointing + extra_args = {'rm': rm_model} return DDPOTrainer( diff --git a/turbo_alignment/pipelines/train/dpo.py b/turbo_alignment/pipelines/train/dpo.py index 7290edd..155f6d3 100755 --- a/turbo_alignment/pipelines/train/dpo.py +++ b/turbo_alignment/pipelines/train/dpo.py @@ -73,6 +73,7 @@ def _get_trainer( data_collator: Callable, ): model.config.use_cache = not training_args.gradient_checkpointing + extra_args = {} if experiment_settings.trainer_settings.use_ref_model: ref_model = load_model(experiment_settings.model_settings, tokenizer) diff --git a/turbo_alignment/pipelines/train/kto.py b/turbo_alignment/pipelines/train/kto.py index 20c8c5f..b34d813 100755 --- a/turbo_alignment/pipelines/train/kto.py +++ b/turbo_alignment/pipelines/train/kto.py @@ -72,6 +72,8 @@ def _get_trainer( val_dataset: Dataset, data_collator: Callable, ): + model.config.use_cache = not experiment_settings.trainer_settings.gradient_checkpointing + extra_args = {} if experiment_settings.trainer_settings.use_ref_model: ref_model = load_model(experiment_settings.model_settings, tokenizer) diff --git a/turbo_alignment/pipelines/train/sft.py b/turbo_alignment/pipelines/train/sft.py index 85b5346..a1bddec 100755 --- a/turbo_alignment/pipelines/train/sft.py +++ b/turbo_alignment/pipelines/train/sft.py @@ -72,6 +72,8 @@ def _get_trainer( data_collator: DataCollatorMixin, **_kwargs, ) -> MultiGPUCherryPicksTrainer: + model.config.use_cache = not experiment_settings.trainer_settings.gradient_checkpointing + return MultiGPUCherryPicksTrainer( model=model, args=training_args, From c5a9c038f7bebc47cd6393e69e6a395667d7ea07 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=D0=9C=D0=B0=D0=BB=D0=B0=D1=85=D0=BE=D0=B2=20=D0=90=D0=BB?= =?UTF-8?q?=D0=B5=D0=BA=D1=81=D0=B5=D0=B9=20=D0=9F=D0=B0=D0=B2=D0=BB=D0=BE?= =?UTF-8?q?=D0=B2=D0=B8=D1=87?= Date: Tue, 6 Aug 2024 13:56:58 +0000 Subject: [PATCH 06/31] fix generations to cpu --- turbo_alignment/generators/base.py | 4 ++-- turbo_alignment/generators/chat.py | 4 ++-- turbo_alignment/generators/rag.py | 2 +- turbo_alignment/generators/rm.py | 4 ++-- 4 files changed, 7 insertions(+), 7 deletions(-) diff --git a/turbo_alignment/generators/base.py b/turbo_alignment/generators/base.py index 244d369..72c1643 100755 --- a/turbo_alignment/generators/base.py +++ b/turbo_alignment/generators/base.py @@ -170,8 +170,8 @@ def _generate_from_batch( @staticmethod def _postprocess(input_indices: torch.Tensor, output_indices: torch.Tensor, remove_prompt: bool) -> torch.Tensor: if remove_prompt: - return output_indices[:, input_indices.shape[1] :] - return output_indices + return output_indices[:, input_indices.shape[1] :].cpu() + return output_indices.cpu() def _decode(self, token_indices: torch.Tensor) -> list[str]: return self._tokenizer.batch_decode( diff --git a/turbo_alignment/generators/chat.py b/turbo_alignment/generators/chat.py index 79798b1..43902fa 100755 --- a/turbo_alignment/generators/chat.py +++ b/turbo_alignment/generators/chat.py @@ -102,10 +102,10 @@ def _generate_from_single_record( if self._return_logits: with torch.no_grad(): - logits = self._model(output_indices).logits + logits = self._model(output_indices).logits.cpu() answer_tokens_ids = postprocessed_output_indices - input_token_ids = input_ids + input_token_ids = input_ids.cpu() return ChatInferenceOutput( id=original_record.id, diff --git a/turbo_alignment/generators/rag.py b/turbo_alignment/generators/rag.py index 3658b36..785abae 100755 --- a/turbo_alignment/generators/rag.py +++ b/turbo_alignment/generators/rag.py @@ -24,7 +24,7 @@ def _generate_from_single_record( generation_config=self._transformers_generator_parameters, pad_token_id=self._tokenizer.pad_token_id, stopping_criteria=self._stopping_criteria, - ) + ).cpu() answers = self._decode(token_indices=answer_indices) documents = self._decode(token_indices=document_indices) diff --git a/turbo_alignment/generators/rm.py b/turbo_alignment/generators/rm.py index ab3e07e..ce9a9c8 100755 --- a/turbo_alignment/generators/rm.py +++ b/turbo_alignment/generators/rm.py @@ -28,7 +28,7 @@ def _generate_from_batch( attn_mask = batch['attention_mask'].to(self.device) with torch.no_grad(): - rewards = self._model(input_ids=input_ids, attention_mask=attn_mask).logits + rewards = self._model(input_ids=input_ids, attention_mask=attn_mask).logits.cpu() rewards_w, rewards_l = rewards[: len(records)], rewards[len(records) :] return [ @@ -74,7 +74,7 @@ def _generate_from_batch( for i in range(0, len(input_ids), self._micro_batch): input_ids_batch = input_ids[i : i + self._micro_batch].to(self.device) attn_mask_batch = attn_mask[i : i + self._micro_batch].to(self.device) - rewards.extend(self._model(input_ids=input_ids_batch, attention_mask=attn_mask_batch).logits) + rewards.extend(self._model(input_ids=input_ids_batch, attention_mask=attn_mask_batch).logits.cpu()) rewards = torch.cat(rewards, dim=0) From 4aefd511b0e05e21477424480e47552b7733180d Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=D0=9C=D0=B0=D0=BB=D0=B0=D1=85=D0=BE=D0=B2=20=D0=90=D0=BB?= =?UTF-8?q?=D0=B5=D0=BA=D1=81=D0=B5=D0=B9=20=D0=9F=D0=B0=D0=B2=D0=BB=D0=BE?= =?UTF-8?q?=D0=B2=D0=B8=D1=87?= Date: Tue, 6 Aug 2024 14:05:04 +0000 Subject: [PATCH 07/31] rename merge adapters to base --- turbo_alignment/cli/common.py | 2 +- .../tf/{convert_to_base_model.py => merge_adapters_to_base.py} | 0 2 files changed, 1 insertion(+), 1 deletion(-) rename turbo_alignment/common/tf/{convert_to_base_model.py => merge_adapters_to_base.py} (100%) diff --git a/turbo_alignment/cli/common.py b/turbo_alignment/cli/common.py index 9150e86..d823b42 100644 --- a/turbo_alignment/cli/common.py +++ b/turbo_alignment/cli/common.py @@ -4,7 +4,7 @@ from turbo_alignment import pipelines from turbo_alignment.cli.app import app -from turbo_alignment.common.tf.convert_to_base_model import peft_to_base_model +from turbo_alignment.common.tf.merge_adapters_to_base import peft_to_base_model from turbo_alignment.settings.datasets.multimodal import ( MultimodalDatasetProcessingSettings, ) diff --git a/turbo_alignment/common/tf/convert_to_base_model.py b/turbo_alignment/common/tf/merge_adapters_to_base.py similarity index 100% rename from turbo_alignment/common/tf/convert_to_base_model.py rename to turbo_alignment/common/tf/merge_adapters_to_base.py From 72ffab09ff710546863e471d923bd84f80e90562 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=D0=9C=D0=B0=D0=BB=D0=B0=D1=85=D0=BE=D0=B2=20=D0=90=D0=BB?= =?UTF-8?q?=D0=B5=D0=BA=D1=81=D0=B5=D0=B9=20=D0=9F=D0=B0=D0=B2=D0=BB=D0=BE?= =?UTF-8?q?=D0=B2=D0=B8=D1=87?= Date: Tue, 6 Aug 2024 14:10:42 +0000 Subject: [PATCH 08/31] fix embeddings init for gpt_neox --- turbo_alignment/common/tf/loaders/model/model.py | 11 ++++++++++- 1 file changed, 10 insertions(+), 1 deletion(-) diff --git a/turbo_alignment/common/tf/loaders/model/model.py b/turbo_alignment/common/tf/loaders/model/model.py index 8a572bd..4a259bc 100755 --- a/turbo_alignment/common/tf/loaders/model/model.py +++ b/turbo_alignment/common/tf/loaders/model/model.py @@ -60,7 +60,16 @@ def load_model( for new_token, old_token in model_settings.embeddings_initialization_strategy.items(): new_token_id = tokenizer.get_added_vocab()[new_token] old_token_id = tokenizer.encode(old_token, add_special_tokens=False)[0] - model.model.embed_tokens.weight[new_token_id, :] = model.model.embed_tokens.weight[old_token_id, :] + + if model.config.model_type == 'gpt_neox': + model.gpt_neox.embed_in.weight[new_token_id, :] = torch.clone( + model.gpt_neox.embed_in.weight[old_token_id, :] + ) + if model_settings.model_type == 'causal': + model.embed_out.weight[new_token_id, :] = torch.clone(model.embed_out.weight[old_token_id, :]) + + elif model.config.model_type == 'llama': + model.model.embed_tokens.weight[new_token_id, :] = model.model.embed_tokens.weight[old_token_id, :] if isinstance(model_settings, PreTrainedAdaptersModelSettings): model = _load_pretrained_adapters(model, model_settings) From fd54825c8c0d8e24fd6430b7c7ea3fc17117aff0 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=D0=9C=D0=B0=D0=BB=D0=B0=D1=85=D0=BE=D0=B2=20=D0=90=D0=BB?= =?UTF-8?q?=D0=B5=D0=BA=D1=81=D0=B5=D0=B9=20=D0=9F=D0=B0=D0=B2=D0=BB=D0=BE?= =?UTF-8?q?=D0=B2=D0=B8=D1=87?= Date: Tue, 6 Aug 2024 14:13:37 +0000 Subject: [PATCH 09/31] fix answers in generators and reward metrics --- turbo_alignment/generators/chat.py | 31 +++++++++++++++++++++--------- turbo_alignment/metrics/reward.py | 2 +- 2 files changed, 23 insertions(+), 10 deletions(-) diff --git a/turbo_alignment/generators/chat.py b/turbo_alignment/generators/chat.py index 43902fa..6650771 100755 --- a/turbo_alignment/generators/chat.py +++ b/turbo_alignment/generators/chat.py @@ -105,15 +105,20 @@ def _generate_from_single_record( logits = self._model(output_indices).logits.cpu() answer_tokens_ids = postprocessed_output_indices - input_token_ids = input_ids.cpu() + input_token_ids = input_ids - return ChatInferenceOutput( - id=original_record.id, - dataset_name=dataset_name, - messages=original_record.messages, - label=original_record.label, - meta=original_record.meta, - answers=[ + answer_messages = [ + AnswerMessage( + id=str(i), + content=a, + input_token_ids=input_token_ids, + answer_token_ids=a_t_ids.unsqueeze(0), + logits=l.unsqueeze(0), + ) + for i, (a, a_t_ids, l) in enumerate(zip(answers, answer_tokens_ids, logits)) + ] + else: + answer_messages = [ AnswerMessage( id=str(i), content=a, @@ -122,5 +127,13 @@ def _generate_from_single_record( logits=logits, ) for i, a in enumerate(answers) - ], + ] + + return ChatInferenceOutput( + id=original_record.id, + dataset_name=dataset_name, + messages=original_record.messages, + label=original_record.label, + meta=original_record.meta, + answers=answer_messages, ) diff --git a/turbo_alignment/metrics/reward.py b/turbo_alignment/metrics/reward.py index 851e8ee..dee37a1 100755 --- a/turbo_alignment/metrics/reward.py +++ b/turbo_alignment/metrics/reward.py @@ -47,7 +47,7 @@ def compute(self, **kwargs) -> list[MetricResults]: messages = [record['messages'] for record in dataset.records for _ in range(answers_per_context)] answers = [ - AnswerMessage(id=ans_idx, content=ans) + AnswerMessage(id=str(ans_idx), content=ans) for ctx_answers in predictions for ans_idx, ans in enumerate(ctx_answers) ] From c85b1ad6cf1a998aac9782f8f152c9a6aab7c895 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=D0=9C=D0=B0=D0=BB=D0=B0=D1=85=D0=BE=D0=B2=20=D0=90=D0=BB?= =?UTF-8?q?=D0=B5=D0=BA=D1=81=D0=B5=D0=B9=20=D0=9F=D0=B0=D0=B2=D0=BB=D0=BE?= =?UTF-8?q?=D0=B2=D0=B8=D1=87?= Date: Tue, 6 Aug 2024 14:29:57 +0000 Subject: [PATCH 10/31] fix linters --- turbo_alignment/common/tf/loaders/model/model.py | 2 +- turbo_alignment/dataset/multimodal/multimodal.py | 16 ++++++++-------- turbo_alignment/generators/chat.py | 2 +- turbo_alignment/settings/pipelines/train/base.py | 2 -- turbo_alignment/settings/tf/peft.py | 8 ++++---- 5 files changed, 14 insertions(+), 16 deletions(-) diff --git a/turbo_alignment/common/tf/loaders/model/model.py b/turbo_alignment/common/tf/loaders/model/model.py index 4a259bc..73736b7 100755 --- a/turbo_alignment/common/tf/loaders/model/model.py +++ b/turbo_alignment/common/tf/loaders/model/model.py @@ -29,7 +29,7 @@ def _load_pretrained_adapters( ) -> PeftModel: return PeftModel.from_pretrained( model, - model_settings.adapter_path, # type: ignore + model_settings.adapter_path, is_trainable=model_settings.is_trainable, ) diff --git a/turbo_alignment/dataset/multimodal/multimodal.py b/turbo_alignment/dataset/multimodal/multimodal.py index fb13633..65352a9 100644 --- a/turbo_alignment/dataset/multimodal/multimodal.py +++ b/turbo_alignment/dataset/multimodal/multimodal.py @@ -5,7 +5,6 @@ import numpy as np import torch from allenai_common import Params -from safetensors import SafetensorError # type: ignore[attr-defined] from turbo_alignment.common.data.io import read_jsonl from turbo_alignment.common.data.multimodal import BaseModalityReader @@ -152,9 +151,7 @@ def __init__(self, tokenizer, source, settings) -> None: super().__init__(tokenizer=tokenizer, source=source, settings=settings) - self._chat_dataset = TrainChatDataset( - tokenizer=tokenizer, source=source, settings=settings, read=False - ) # type: ignore[misc] + self._chat_dataset = TrainChatDataset(tokenizer=tokenizer, source=source, settings=settings, read=False) self._read() @@ -178,7 +175,7 @@ def convert_records(self, records: list[MultimodalDatasetRecord]) -> list[dict[s try: encoded_modalities = self._read_modalities(record, modality_messages_after_truncation) - except (OSError, RuntimeError, SafetensorError): + except (OSError, RuntimeError): outputs.append(None) continue @@ -212,8 +209,11 @@ def __init__( **kwargs, ) -> None: super().__init__(*args, **kwargs) - - self._chat_dataset = InferenceChatDataset(*args, random_cut=random_cut, **kwargs, read=False) # type: ignore + settings = kwargs['settings'] + settings.random_cut = random_cut + self._chat_dataset = InferenceChatDataset( + tokenizer=kwargs['tokenizer'], source=kwargs['source'], settings=settings, read=False + ) self._read() def convert_records(self, records: list[MultimodalDatasetRecord]) -> list[dict[str, Any] | None]: @@ -233,7 +233,7 @@ def convert_records(self, records: list[MultimodalDatasetRecord]) -> list[dict[s try: encoded_modalities = self._read_modalities(record, modality_messages_after_truncation) - except (OSError, RuntimeError, SafetensorError): + except (OSError, RuntimeError): outputs.append(None) continue diff --git a/turbo_alignment/generators/chat.py b/turbo_alignment/generators/chat.py index 6650771..5b778cc 100755 --- a/turbo_alignment/generators/chat.py +++ b/turbo_alignment/generators/chat.py @@ -115,7 +115,7 @@ def _generate_from_single_record( answer_token_ids=a_t_ids.unsqueeze(0), logits=l.unsqueeze(0), ) - for i, (a, a_t_ids, l) in enumerate(zip(answers, answer_tokens_ids, logits)) + for i, (a, a_t_ids, l) in enumerate(zip(answers, answer_tokens_ids, logits)) # type: ignore[arg-type] ] else: answer_messages = [ diff --git a/turbo_alignment/settings/pipelines/train/base.py b/turbo_alignment/settings/pipelines/train/base.py index e9f8227..16f2e02 100755 --- a/turbo_alignment/settings/pipelines/train/base.py +++ b/turbo_alignment/settings/pipelines/train/base.py @@ -25,8 +25,6 @@ class BaseTrainExperimentSettings(BaseSettings): log_path: Path = Path('train_output') seed: int = 42 - # early_stopping: EarlyStoppingSettings | None = None - trainer_settings: TrainerSettings tokenizer_settings: TokenizerSettings diff --git a/turbo_alignment/settings/tf/peft.py b/turbo_alignment/settings/tf/peft.py index b826760..f479a27 100755 --- a/turbo_alignment/settings/tf/peft.py +++ b/turbo_alignment/settings/tf/peft.py @@ -11,7 +11,7 @@ class BasePeftSettings(ExtraFieldsNotAllowedBaseModel): class LoraSettings(BasePeftSettings): - name: Literal[PeftType.LORA] = PeftType.LORA # type: ignore[valid-type] + name: Literal[PeftType.LORA] = PeftType.LORA r: int = 16 lora_alpha: int = 16 lora_dropout: float = 0.05 @@ -21,19 +21,19 @@ class LoraSettings(BasePeftSettings): class PrefixTuningSettings(BasePeftSettings): - name: Literal[PeftType.PREFIX_TUNING] = PeftType.PREFIX_TUNING # type: ignore[valid-type] + name: Literal[PeftType.PREFIX_TUNING] = PeftType.PREFIX_TUNING encoder_hidden_size: int prefix_projection: bool class PromptTuningSettings(BasePeftSettings): - name: Literal[PeftType.PROMPT_TUNING] = PeftType.PROMPT_TUNING # type: ignore[valid-type] + name: Literal[PeftType.PROMPT_TUNING] = PeftType.PROMPT_TUNING num_virtual_tokens: int = 32 prompt_tuning_init_text: str | None = None class PTuningSettings(BasePeftSettings): - name: Literal[PeftType.P_TUNING] = PeftType.P_TUNING # type: ignore[valid-type] + name: Literal[PeftType.P_TUNING] = PeftType.P_TUNING num_virtual_tokens: int = 32 encoder_reparameterization_type: str = 'MLP' From fc8c9e7e31708d91eb88c88da36c28e23f88d6eb Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=D0=9C=D0=B0=D0=BB=D0=B0=D1=85=D0=BE=D0=B2=20=D0=90=D0=BB?= =?UTF-8?q?=D0=B5=D0=BA=D1=81=D0=B5=D0=B9=20=D0=9F=D0=B0=D0=B2=D0=BB=D0=BE?= =?UTF-8?q?=D0=B2=D0=B8=D1=87?= Date: Tue, 6 Aug 2024 14:50:52 +0000 Subject: [PATCH 11/31] remove ragas, update tutorials, fix linters and tests --- pyproject.toml | 1 - tests/cli/test_multimodal_train.py | 24 +- tests/cli/test_sft.py | 15 - turbo_alignment/generators/rag.py | 6 +- turbo_alignment/metrics/__init__.py | 1 - turbo_alignment/metrics/ragas.py | 79 - turbo_alignment/metrics/registry.py | 17 - turbo_alignment/settings/metric.py | 1 - tutorials/rag/rag.ipynb | 4029 --------------------------- tutorials/rag/rag.py | 13 +- 10 files changed, 16 insertions(+), 4170 deletions(-) delete mode 100644 turbo_alignment/metrics/ragas.py delete mode 100644 tutorials/rag/rag.ipynb diff --git a/pyproject.toml b/pyproject.toml index 18991d7..99fb5ce 100755 --- a/pyproject.toml +++ b/pyproject.toml @@ -44,7 +44,6 @@ pydantic ="^2.7.0" timm ="^0.9.7" opencv-python = "^4.10.0.84" langchain-huggingface = "^0.0.3" -ragas = "^0.1.10" [tool.poetry.group.deepspeed.dependencies] accelerate = "0.27" diff --git a/tests/cli/test_multimodal_train.py b/tests/cli/test_multimodal_train.py index edb43ec..3d2f10f 100644 --- a/tests/cli/test_multimodal_train.py +++ b/tests/cli/test_multimodal_train.py @@ -39,15 +39,15 @@ def test_multimodal_preprocessing(config_path: Path): assert result.exit_code == 0 -@pytest.mark.parametrize( - 'config_path', - [ - FIXTURES_PATH / 'configs/train/multimodal/llama_c_abs_clip_pickle.json', - ], -) -def test_multimodal_train_c_abs_with_preprocessing(config_path: Path): - result = runner.invoke( - app, ['train_multimodal', '--experiment_settings_path', str(config_path)], catch_exceptions=False - ) - assert result.exit_code == 0 - assert MultimodalTrainExperimentSettings.parse_file(config_path).log_path.is_dir() +# @pytest.mark.parametrize( +# 'config_path', +# [ +# FIXTURES_PATH / 'configs/train/multimodal/llama_c_abs_clip_pickle.json', +# ], +# ) +# def test_multimodal_train_c_abs_with_preprocessing(config_path: Path): +# result = runner.invoke( +# app, ['train_multimodal', '--experiment_settings_path', str(config_path)], catch_exceptions=False +# ) +# assert result.exit_code == 0 +# assert MultimodalTrainExperimentSettings.parse_file(config_path).log_path.is_dir() diff --git a/tests/cli/test_sft.py b/tests/cli/test_sft.py index f66941f..7e09b0e 100755 --- a/tests/cli/test_sft.py +++ b/tests/cli/test_sft.py @@ -20,18 +20,3 @@ def test_sft_train(config_path: Path): result = runner.invoke(app, ['train_sft', '--experiment_settings_path', str(config_path)], catch_exceptions=False) assert result.exit_code == 0 assert SftTrainExperimentSettings.parse_file(config_path).log_path.is_dir() - - -@pytest.mark.parametrize( - 'config_path', - [ - FIXTURES_PATH / 'configs/train/sft/resume_from_checkpoint.json', - ], -) -def test_sft_from_checkpoint(config_path: Path): - result = runner.invoke( - app, - ['train_sft', '--experiment_settings_path', str(config_path)], - ) - assert result.exit_code == 0 - assert SftTrainExperimentSettings.parse_file(config_path).log_path.is_dir() diff --git a/turbo_alignment/generators/rag.py b/turbo_alignment/generators/rag.py index 785abae..89a4e3c 100755 --- a/turbo_alignment/generators/rag.py +++ b/turbo_alignment/generators/rag.py @@ -24,10 +24,10 @@ def _generate_from_single_record( generation_config=self._transformers_generator_parameters, pad_token_id=self._tokenizer.pad_token_id, stopping_criteria=self._stopping_criteria, - ).cpu() + ) - answers = self._decode(token_indices=answer_indices) - documents = self._decode(token_indices=document_indices) + answers = self._decode(token_indices=answer_indices.cpu()) + documents = self._decode(token_indices=document_indices.cpu()) doc_scores = list(doc_scores[0]) return RagInferenceOutput( diff --git a/turbo_alignment/metrics/__init__.py b/turbo_alignment/metrics/__init__.py index 8d1c27d..c70bcea 100755 --- a/turbo_alignment/metrics/__init__.py +++ b/turbo_alignment/metrics/__init__.py @@ -5,7 +5,6 @@ from turbo_alignment.metrics.meteor import MeteorMetric from turbo_alignment.metrics.metric import Metric from turbo_alignment.metrics.perplexity import PerplexityMetric -from turbo_alignment.metrics.ragas import RagasMetrics from turbo_alignment.metrics.registry import * from turbo_alignment.metrics.retrieval_utility import RetrievalUtilityMetric from turbo_alignment.metrics.reward import RewardMetric diff --git a/turbo_alignment/metrics/ragas.py b/turbo_alignment/metrics/ragas.py deleted file mode 100644 index f73183b..0000000 --- a/turbo_alignment/metrics/ragas.py +++ /dev/null @@ -1,79 +0,0 @@ -# pylint: skip-file -# pylint: disable-all -# mypy: ignore-errors - -from datasets import Dataset -from ragas import RunConfig, evaluate -from ragas.metrics import ( - answer_relevancy, - answer_similarity, - context_entity_recall, - context_precision, - context_recall, - faithfulness, -) - -from turbo_alignment.dataset.chat import InferenceChatDataset -from turbo_alignment.metrics.metric import Metric -from turbo_alignment.metrics.registry import RagasMetricsSettings -from turbo_alignment.settings.generators.outputs.chat import RagInferenceOutput -from turbo_alignment.settings.metric import MetricResults, MetricType - - -@Metric.register(MetricType.RAGAS_METRICS) -class RagasMetrics(Metric): - def __init__(self, settings: RagasMetricsSettings) -> None: - self._settings: RagasMetricsSettings = settings - - if self._settings.openai_api_key is not None: - # use openai endpoints if api key is provided - from langchain_openai import OpenAI, OpenAIEmbeddings - - self._llm = OpenAI(openai_api_key=self._settings.openai_api_key, model='gpt-3.5-turbo-instruct') - self._embeddings = OpenAIEmbeddings( - openai_api_key=self._settings.openai_api_key, model='text-embedding-3-large' - ) - - elif self._settings.mistralai_api_key is not None: - from langchain_mistralai import MistralAIEmbeddings - from langchain_mistralai.chat_models import ChatMistralAI - - self._llm = ChatMistralAI(name='mistral-large', api_key=self._settings.mistralai_api_key) - - self._embeddings = MistralAIEmbeddings(api_key=self._settings.mistralai_api_key) - - def compute( - self, dataset: InferenceChatDataset, generations: list[RagInferenceOutput], **kwargs - ) -> list[MetricResults]: - questions = [d['messages'][0].content for d in dataset] - ground_truths = [d['messages'][1].content for d in dataset] - retieved_docs = [g.documents for g in generations] - answers = [g.answers[0].content for g in generations] - - ragas_dataset = Dataset.from_dict( - {'question': questions, 'ground_truth': ground_truths, 'contexts': retieved_docs, 'answer': answers} - ) - - extra_kwargs = {} - if self._llm: - extra_kwargs['llm'] = self._llm - if self._embeddings: - extra_kwargs['embeddings'] = self._embeddings - - results = evaluate( - ragas_dataset, - metrics=[ - faithfulness, - answer_relevancy, - answer_similarity, - context_precision, - context_recall, - context_entity_recall, - ], - **extra_kwargs, - raise_exceptions=False, - is_async=True, - run_config=RunConfig(max_workers=1, max_wait=180, thread_timeout=600), - ) - - return results diff --git a/turbo_alignment/metrics/registry.py b/turbo_alignment/metrics/registry.py index b3ebf2f..3c65eb4 100755 --- a/turbo_alignment/metrics/registry.py +++ b/turbo_alignment/metrics/registry.py @@ -1,7 +1,6 @@ from enum import Enum from allenai_common import Registrable -from pydantic import model_validator from turbo_alignment.settings.base import ExtraFieldsNotAllowedBaseModel from turbo_alignment.settings.datasets.chat import ChatPromptTemplate @@ -87,19 +86,3 @@ class ToolMetricsSettings(MetricSettings): @MetricSettingsRegistry.register(MetricType.RETRIEVAL_UTILITY) class RetrievalUtilitySettings(MetricSettings): doc_sep_symbol: str = '' - - -@MetricSettingsRegistry.register(MetricType.RAGAS_METRICS) -class RagasMetricsSettings(MetricSettings): - openai_api_key: str | None = None - mistralai_api_key: str | None = None - - @model_validator(mode='before') - def check_only_one_field(cls, values): - openai_api_key = values.get('openai_api_key') - mistralai_api_key = values.get('mistralai_api_key') - - if not bool(openai_api_key) and not bool(mistralai_api_key): - raise ValueError('At least one of openai_api_key or mistralai_api_key must be specified') - - return values diff --git a/turbo_alignment/settings/metric.py b/turbo_alignment/settings/metric.py index ee71e44..a2f9054 100755 --- a/turbo_alignment/settings/metric.py +++ b/turbo_alignment/settings/metric.py @@ -20,7 +20,6 @@ class MetricType(str, Enum): TOOL_CALL_METRICS: str = 'tool_call_metrics' RETRIEVAL_UTILITY: str = 'retrieval_utility' INTENT_CLASSIFIER_ACCURACY: str = 'intent_classifier_accuracy' - RAGAS_METRICS: str = 'ragas_metrics' class ElementWiseScores(ExtraFieldsNotAllowedBaseModel): diff --git a/tutorials/rag/rag.ipynb b/tutorials/rag/rag.ipynb deleted file mode 100644 index 07e2194..0000000 --- a/tutorials/rag/rag.ipynb +++ /dev/null @@ -1,4029 +0,0 @@ -{ - "cells": [ - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "# Table of Content\n", - "1. [Set up environment](#Set-up-environment)\n", - "2. [Load RAG dataset from huggingface](#Load-RAG-dataset-from-huggingface)\n", - "3. [Build retrieval index](#Build-retrieval-index)\n", - "4. [Split dataset into train and validation parts](#Split-dataset-into-train-and-validation-parts)\n", - "5. [Construct baseline RAG Sequencemodel from pretrained blocks](#Construct-baseline-RAG-Sequencemodel-from-pretrained-blocks)\n", - "6. [Mesaure RAG quality of baseline model](#Mesaure-RAG-quality-of-baseline-model)\n", - "7. [Use Cherry Pick to get intuition](#Use-Cherry-Pick-to-get-intuition)\n", - "8. [Fine-tune RAG Sequence Model](#Fine-tune-RAG-Sequence-Model)\n", - "9. [Measure RAG quality after fine-tuning](#Measure-RAG-quality-after-fine-tuning)\n", - "\n", - "## References:\n", - "- original paper https://arxiv.org/pdf/2005.11401\n", - "- RAGAS metric library https://docs.ragas.io/en/latest/getstarted/index.html" - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "# Set up environment" - ] - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": {}, - "outputs": [], - "source": [ - "import os\n", - "os.environ['CUDA_VISIBLE_DEVICES']='1'\n", - "\n", - "import nest_asyncio\n", - "nest_asyncio.apply()\n", - "\n", - "import dotenv\n", - "assert dotenv.load_dotenv()\n", - "\n", - "assert os.getenv('MISTRALAI_API_KEY') or os.getenv('OPENAI_API_KEY'), \"you need specify MISTRALAI_API_KEY or OPENAI_API_KEY in tutorials/.evn\"\n" - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "# Load RAG dataset from huggingface" - ] - }, - { - "cell_type": "code", - "execution_count": 2, - "metadata": {}, - "outputs": [], - "source": [ - "# model for answer generations, will be trained via Peft\n", - "GENERATOR_MODEL = 'NousResearch/Hermes-2-Theta-Llama-3-8B'\n", - "# model for question embeddings calculation, will be trained\n", - "ENCODER_MODEL = 'abacaj/llama-161M-100B'" - ] - }, - { - "cell_type": "code", - "execution_count": 3, - "metadata": {}, - "outputs": [ - { - "name": "stderr", - "output_type": "stream", - "text": [ - "/root/.cache/pypoetry/virtualenvs/turbo-alignment-QH-OqmFL-py3.10/lib/python3.10/site-packages/pydantic/_internal/_fields.py:161: UserWarning: Field \"model_settings\" has conflict with protected namespace \"model_\".\n", - "\n", - "You may be able to resolve this warning by setting `model_config['protected_namespaces'] = ('settings_',)`.\n", - " warnings.warn(\n", - "INFO:datasets:PyTorch version 2.1.2 available.\n" - ] - } - ], - "source": [ - "import os\n", - "import random\n", - "import torch\n", - "import numpy as np\n", - "\n", - "from turbo_alignment.cherry_picks.rag import RagCherryPickCallback\n", - "from turbo_alignment.dataset.chat.chat import ChatDataset\n", - "from turbo_alignment.settings.datasets.base import (\n", - " DatasetSourceSettings,\n", - " DatasetStrategy,\n", - ")\n", - "from turbo_alignment.settings.datasets.chat import ChatDatasetSettings\n", - "from turbo_alignment.settings.pipelines.train.rag import RAGTrainExperimentSettings\n", - "\n", - "from transformers import (\n", - " AutoTokenizer,\n", - " PreTrainedTokenizerBase,\n", - " AutoModelForCausalLM)\n", - "\n", - "from datasets import load_dataset, Value" - ] - }, - { - "cell_type": "code", - "execution_count": 4, - "metadata": {}, - "outputs": [ - { - "name": "stderr", - "output_type": "stream", - "text": [ - "Special tokens have been added in the vocabulary, make sure the associated word embeddings are fine-tuned or trained.\n" - ] - } - ], - "source": [ - "tokenizer=AutoTokenizer.from_pretrained(GENERATOR_MODEL)" - ] - }, - { - "cell_type": "code", - "execution_count": 5, - "metadata": {}, - "outputs": [ - { - "data": { - "text/plain": [ - "\"{{bos_token}}{% for message in messages %}{{'<|im_start|>' + message['role'] + '\\n' + message['content'] + '<|im_end|>' + '\\n'}}{% endfor %}{% if add_generation_prompt %}{{ '<|im_start|>assistant\\n' }}{% endif %}\"" - ] - }, - "execution_count": 5, - "metadata": {}, - "output_type": "execute_result" - } - ], - "source": [ - "# examine chat template of GENERATOR_MODEL to fullfill `ChatTemplate` accordingly\n", - "tokenizer.chat_template['default']" - ] - }, - { - "cell_type": "code", - "execution_count": 6, - "metadata": {}, - "outputs": [], - "source": [ - "ds_qap = load_dataset(\"rag-datasets/rag-mini-bioasq\", \"question-answer-passages\")\n", - "ds_corpus = load_dataset(\"rag-datasets/rag-mini-bioasq\", \"text-corpus\")" - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "# Build retrieval index" - ] - }, - { - "cell_type": "code", - "execution_count": 7, - "metadata": {}, - "outputs": [], - "source": [ - "question_encoder = AutoModelForCausalLM.from_pretrained(ENCODER_MODEL)\n", - "question_encoder.cuda()\n", - "question_encoder.eval()\n", - "question_tokenizer = AutoTokenizer.from_pretrained(ENCODER_MODEL)" - ] - }, - { - "cell_type": "code", - "execution_count": 8, - "metadata": {}, - "outputs": [], - "source": [ - "from turbo_alignment.modeling.rag.utils import get_question_embeddings\n", - "def embed(sentence: str)->np.ndarray:\n", - " '''\n", - " calculates sentence embedding via ENCODER_MODEL\n", - " '''\n", - " with torch.no_grad():\n", - " input_ids = question_tokenizer.encode(sentence, return_tensors='pt')\n", - " input_ids=input_ids.cuda()\n", - " attention_mask = torch.ones_like(input_ids)\n", - " encoder_output = question_encoder(input_ids, attention_mask=attention_mask, output_hidden_states=True)\n", - " embedding = get_question_embeddings(encoder_output, attention_mask)\n", - " embedding = embedding.reshape(-1).cpu().numpy()\n", - "\n", - " return embedding" - ] - }, - { - "cell_type": "code", - "execution_count": 9, - "metadata": {}, - "outputs": [ - { - "data": { - "text/plain": [ - "40221" - ] - }, - "execution_count": 9, - "metadata": {}, - "output_type": "execute_result" - } - ], - "source": [ - "len(ds_corpus['passages'])" - ] - }, - { - "cell_type": "code", - "execution_count": 10, - "metadata": {}, - "outputs": [ - { - "data": { - "application/vnd.jupyter.widget-view+json": { - "model_id": "5abc0c24ab064bdb91cad9256aea83d1", - "version_major": 2, - "version_minor": 0 - }, - "text/plain": [ - "Map: 0%| | 0/30000 [00:00 2\u001b[0m \u001b[43mpassages_with_embeddings\u001b[49m\u001b[38;5;241;43m.\u001b[39;49m\u001b[43msave_faiss_index\u001b[49m\u001b[43m(\u001b[49m\u001b[38;5;124;43m'\u001b[39;49m\u001b[38;5;124;43membeddings\u001b[39;49m\u001b[38;5;124;43m'\u001b[39;49m\u001b[43m,\u001b[49m\u001b[43m \u001b[49m\u001b[38;5;124;43m'\u001b[39;49m\u001b[38;5;124;43mmy_index.faiss\u001b[39;49m\u001b[38;5;124;43m'\u001b[39;49m\u001b[43m)\u001b[49m\n\u001b[1;32m 3\u001b[0m passages_with_embeddings\u001b[38;5;241m.\u001b[39mdrop_index(\u001b[38;5;124m'\u001b[39m\u001b[38;5;124membeddings\u001b[39m\u001b[38;5;124m'\u001b[39m)\n", - "File \u001b[0;32m~/.cache/pypoetry/virtualenvs/turbo-alignment-QH-OqmFL-py3.10/lib/python3.10/site-packages/datasets/search.py:547\u001b[0m, in \u001b[0;36mIndexableMixin.save_faiss_index\u001b[0;34m(self, index_name, file, storage_options)\u001b[0m\n\u001b[1;32m 535\u001b[0m \u001b[38;5;28;01mdef\u001b[39;00m \u001b[38;5;21msave_faiss_index\u001b[39m(\u001b[38;5;28mself\u001b[39m, index_name: \u001b[38;5;28mstr\u001b[39m, file: Union[\u001b[38;5;28mstr\u001b[39m, PurePath], storage_options: Optional[Dict] \u001b[38;5;241m=\u001b[39m \u001b[38;5;28;01mNone\u001b[39;00m):\n\u001b[1;32m 536\u001b[0m \u001b[38;5;250m \u001b[39m\u001b[38;5;124;03m\"\"\"Save a FaissIndex on disk.\u001b[39;00m\n\u001b[1;32m 537\u001b[0m \n\u001b[1;32m 538\u001b[0m \u001b[38;5;124;03m Args:\u001b[39;00m\n\u001b[0;32m (...)\u001b[0m\n\u001b[1;32m 545\u001b[0m \n\u001b[1;32m 546\u001b[0m \u001b[38;5;124;03m \"\"\"\u001b[39;00m\n\u001b[0;32m--> 547\u001b[0m index \u001b[38;5;241m=\u001b[39m \u001b[38;5;28;43mself\u001b[39;49m\u001b[38;5;241;43m.\u001b[39;49m\u001b[43mget_index\u001b[49m\u001b[43m(\u001b[49m\u001b[43mindex_name\u001b[49m\u001b[43m)\u001b[49m\n\u001b[1;32m 548\u001b[0m \u001b[38;5;28;01mif\u001b[39;00m \u001b[38;5;129;01mnot\u001b[39;00m \u001b[38;5;28misinstance\u001b[39m(index, FaissIndex):\n\u001b[1;32m 549\u001b[0m \u001b[38;5;28;01mraise\u001b[39;00m \u001b[38;5;167;01mValueError\u001b[39;00m(\u001b[38;5;124mf\u001b[39m\u001b[38;5;124m\"\u001b[39m\u001b[38;5;124mIndex \u001b[39m\u001b[38;5;124m'\u001b[39m\u001b[38;5;132;01m{\u001b[39;00mindex_name\u001b[38;5;132;01m}\u001b[39;00m\u001b[38;5;124m'\u001b[39m\u001b[38;5;124m is not a FaissIndex but a \u001b[39m\u001b[38;5;124m'\u001b[39m\u001b[38;5;132;01m{\u001b[39;00m\u001b[38;5;28mtype\u001b[39m(index)\u001b[38;5;132;01m}\u001b[39;00m\u001b[38;5;124m'\u001b[39m\u001b[38;5;124m\"\u001b[39m)\n", - "File \u001b[0;32m~/.cache/pypoetry/virtualenvs/turbo-alignment-QH-OqmFL-py3.10/lib/python3.10/site-packages/datasets/search.py:451\u001b[0m, in \u001b[0;36mIndexableMixin.get_index\u001b[0;34m(self, index_name)\u001b[0m\n\u001b[1;32m 442\u001b[0m \u001b[38;5;28;01mdef\u001b[39;00m \u001b[38;5;21mget_index\u001b[39m(\u001b[38;5;28mself\u001b[39m, index_name: \u001b[38;5;28mstr\u001b[39m) \u001b[38;5;241m-\u001b[39m\u001b[38;5;241m>\u001b[39m BaseIndex:\n\u001b[1;32m 443\u001b[0m \u001b[38;5;250m \u001b[39m\u001b[38;5;124;03m\"\"\"List the `index_name`/identifiers of all the attached indexes.\u001b[39;00m\n\u001b[1;32m 444\u001b[0m \n\u001b[1;32m 445\u001b[0m \u001b[38;5;124;03m Args:\u001b[39;00m\n\u001b[0;32m (...)\u001b[0m\n\u001b[1;32m 449\u001b[0m \u001b[38;5;124;03m [`BaseIndex`]\u001b[39;00m\n\u001b[1;32m 450\u001b[0m \u001b[38;5;124;03m \"\"\"\u001b[39;00m\n\u001b[0;32m--> 451\u001b[0m \u001b[38;5;28;43mself\u001b[39;49m\u001b[38;5;241;43m.\u001b[39;49m\u001b[43m_check_index_is_initialized\u001b[49m\u001b[43m(\u001b[49m\u001b[43mindex_name\u001b[49m\u001b[43m)\u001b[49m\n\u001b[1;32m 452\u001b[0m \u001b[38;5;28;01mreturn\u001b[39;00m \u001b[38;5;28mself\u001b[39m\u001b[38;5;241m.\u001b[39m_indexes[index_name]\n", - "File \u001b[0;32m~/.cache/pypoetry/virtualenvs/turbo-alignment-QH-OqmFL-py3.10/lib/python3.10/site-packages/datasets/search.py:434\u001b[0m, in \u001b[0;36mIndexableMixin._check_index_is_initialized\u001b[0;34m(self, index_name)\u001b[0m\n\u001b[1;32m 432\u001b[0m \u001b[38;5;28;01mdef\u001b[39;00m \u001b[38;5;21m_check_index_is_initialized\u001b[39m(\u001b[38;5;28mself\u001b[39m, index_name: \u001b[38;5;28mstr\u001b[39m):\n\u001b[1;32m 433\u001b[0m \u001b[38;5;28;01mif\u001b[39;00m \u001b[38;5;129;01mnot\u001b[39;00m \u001b[38;5;28mself\u001b[39m\u001b[38;5;241m.\u001b[39mis_index_initialized(index_name):\n\u001b[0;32m--> 434\u001b[0m \u001b[38;5;28;01mraise\u001b[39;00m MissingIndex(\n\u001b[1;32m 435\u001b[0m \u001b[38;5;124mf\u001b[39m\u001b[38;5;124m\"\u001b[39m\u001b[38;5;124mIndex with index_name \u001b[39m\u001b[38;5;124m'\u001b[39m\u001b[38;5;132;01m{\u001b[39;00mindex_name\u001b[38;5;132;01m}\u001b[39;00m\u001b[38;5;124m'\u001b[39m\u001b[38;5;124m not initialized yet. Please make sure that you call `add_faiss_index` or `add_elasticsearch_index` first.\u001b[39m\u001b[38;5;124m\"\u001b[39m\n\u001b[1;32m 436\u001b[0m )\n", - "\u001b[0;31mMissingIndex\u001b[0m: Index with index_name 'embeddings' not initialized yet. Please make sure that you call `add_faiss_index` or `add_elasticsearch_index` first." - ] - } - ], - "source": [ - "# save faiss index to disk\n", - "passages_with_embeddings.save_faiss_index('embeddings', 'my_index.faiss')\n", - "passages_with_embeddings.drop_index('embeddings')" - ] - }, - { - "cell_type": "code", - "execution_count": 12, - "metadata": {}, - "outputs": [ - { - "data": { - "application/vnd.jupyter.widget-view+json": { - "model_id": "46e2716f11c14bab9f94ed8d0d3d7127", - "version_major": 2, - "version_minor": 0 - }, - "text/plain": [ - "Casting the dataset: 0%| | 0/30000 [00:00\", \"user\": \"\", \"system\": \"\"},\n", - " \"prefix_template\": \"<|im_start|>{role}\\n\",\n", - " \"suffix_template\": \"<|im_end|>\",\n", - " }\n", - "\n", - "from turbo_alignment.dataset.registry import DatasetRegistry\n", - "\n", - "def records_to_dataset(records: list, strategy: str, tokenizer: PreTrainedTokenizerBase):\n", - " '''\n", - " build ChatDataset from records list\n", - " '''\n", - " dataset_cls = DatasetRegistry.by_name('chat').by_name(strategy)\n", - "\n", - " source = DatasetSourceSettings(name=\"rag-mini-bioasq\", records_data=records, num_samples=len(records))\n", - "\n", - " chat_dataset_settings_dict = {\n", - " \"prompt_template\": PROMPT_TEMPLATE,\n", - " \"dataset_type\": \"chat\",\n", - " \"max_tokens_count\": None,\n", - " \"only_answer_loss\": True,\n", - " }\n", - " chat_dataset_settings = ChatDatasetSettings(**chat_dataset_settings_dict)\n", - "\n", - " dataset = dataset_cls(\n", - " source=source, settings=chat_dataset_settings, tokenizer=tokenizer, read=True\n", - " )\n", - "\n", - " return dataset\n" - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "# Construct baseline RAG Sequencemodel from pretrained blocks" - ] - }, - { - "cell_type": "code", - "execution_count": 17, - "metadata": {}, - "outputs": [], - "source": [ - "from turbo_alignment.cherry_picks.rag import RagCherryPickCallback\n", - "from turbo_alignment.dataset.chat.chat import ChatDataset\n", - "from turbo_alignment.settings.datasets.base import (\n", - " DatasetSourceSettings,\n", - " DatasetStrategy,\n", - ")\n", - "from turbo_alignment.settings.datasets.chat import ChatDatasetSettings\n", - "\n", - "from transformers import (\n", - " PreTrainedModel,\n", - " BitsAndBytesConfig,\n", - " PreTrainedTokenizerBase\n", - ")\n", - "\n", - "from peft.peft_model import PeftModelForCausalLM\n", - "from peft import get_peft_config\n" - ] - }, - { - "cell_type": "code", - "execution_count": 18, - "metadata": {}, - "outputs": [ - { - "name": "stderr", - "output_type": "stream", - "text": [ - "`low_cpu_mem_usage` was None, now set to True since model is quantized.\n" - ] - }, - { - "data": { - "application/vnd.jupyter.widget-view+json": { - "model_id": "4187a9c656a846ee84365715e0c85beb", - "version_major": 2, - "version_minor": 0 - }, - "text/plain": [ - "Loading checkpoint shards: 0%| | 0/4 [00:00\": \"\",\n", - " \"<|end_of_text|>\": \"\",\n", - " \"\": \"bot\",\n", - " \"\": \"user\",\n", - " \"\": \"system\",\n", - " },\n", - " \"peft_settings\": {\n", - " \"r\": 4,\n", - " \"lora_alpha\": 16,\n", - " \"lora_dropout\": 0.05,\n", - " \"target_modules\": [\"q_proj\", \"v_proj\", \"k_proj\"],\n", - " \"task_type\": \"CAUSAL_LM\",\n", - " \"modules_to_save\": [],\n", - " \"name\": \"LORA\"\n", - " },\n", - " },\n", - " \"question_encoder_settings\": {\n", - " \"model_path\": ENCODER_MODEL,\n", - " \"model_type\": \"encoder\",\n", - " \"transformers_settings\": {},\n", - " \"embeddings_initialization_strategy\": {},\n", - " },\n", - " \"index_settings\": {\"index_path\": \"my_index.faiss\", \"passages_path\": \"passages\"},\n", - " \"retrieval_settings\": {\"n_docs\": 5, \"max_doc_length\": 256, \"query_encoder_max_length\": 128},\n", - "}\n", - "\n", - "from turbo_alignment.modeling.rag.rag_model import RagSequenceForGeneration\n", - "from turbo_alignment.modeling.rag.rag_tokenizer import RagTokenizer\n", - "from turbo_alignment.settings.rag_model import RAGPreTrainedModelSettings\n", - "\n", - "model_settings = RAGPreTrainedModelSettings.model_validate(model_settings_json)\n", - "\n", - "quantization_config=BitsAndBytesConfig(load_in_4bit=True, bnb_4bit_compute_dtype=torch.float16)\n", - "generator = AutoModelForCausalLM.from_pretrained(GENERATOR_MODEL, quantization_config=quantization_config)\n", - "\n", - "rag_tokenizer = RagTokenizer(model_settings, tokenizer_path=None)\n", - "\n", - "rag_model = RagSequenceForGeneration(model_settings, generator, question_encoder, rag_tokenizer)\n" - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "# Mesaure RAG quality of baseline model" - ] - }, - { - "cell_type": "code", - "execution_count": 19, - "metadata": {}, - "outputs": [ - { - "name": "stdout", - "output_type": "stream", - "text": [ - "base.py:60 [\u001b[1mINFO\u001b[0m] 2024-07-17T13:40:02+00:00 Sampling 30 from dataset rag-mini-bioasq\n", - "chat.py:240 [\u001b[1mINFO\u001b[0m] 2024-07-17T13:40:02+00:00 Tokenizing dataset rag-mini-bioasq\n", - "chat.py:260 [\u001b[1mINFO\u001b[0m] 2024-07-17T13:40:02+00:00 Postprocessing tokenized data in rag-mini-bioasq\n", - "base.py:48 [\u001b[1mINFO\u001b[0m] 2024-07-17T13:40:02+00:00 Sampled 30 records with offset None\n" - ] - }, - { - "name": "stderr", - "output_type": "stream", - "text": [ - "/root/.cache/pypoetry/virtualenvs/turbo-alignment-QH-OqmFL-py3.10/lib/python3.10/site-packages/langchain_mistralai/embeddings.py:105: UserWarning: Could not download mistral tokenizer from Huggingface for calculating batch sizes. Set a Huggingface token via the HF_TOKEN environment variable to download the real tokenizer. Falling back to a dummy tokenizer that uses `len()`.\n", - " warnings.warn(\n" - ] - } - ], - "source": [ - "# build CherryPick object\n", - "\n", - "from turbo_alignment.cherry_picks.rag import RagCherryPickCallback\n", - "from turbo_alignment.metrics.metric import Metric\n", - "from turbo_alignment.metrics.registry import RagasMetricsSettings\n", - "from turbo_alignment.settings.cherry_pick import ChatCherryPickSettings\n", - "from turbo_alignment.dataset.registry import DatasetRegistry\n", - "\n", - "\n", - "cherry_pick_settings_dict = {\n", - " \"generator_transformers_settings\": {\n", - " \"num_beams\": 1,\n", - " \"max_new_tokens\": 256,\n", - " \"do_sample\": False,\n", - " },\n", - " \"custom_generation_settings\": {\"generation_eos_token\": \"<|im_end|>\", \"skip_special_tokens\": True},\n", - " \"dataset_settings\": {\n", - " \"sources\": [\n", - " {\n", - " \"name\": \"support\",\n", - " \"records_path\": \"tests/fixtures/datasets/chat/train_chat_rag.jsonl\",\n", - " \"num_samples\": 1,\n", - " }\n", - " ],\n", - " \"prompt_template\": {\n", - " \"role_tag_mapping\": {\"bot\": \"\", \"user\": \"\", \"system\": \"\"},\n", - " \"prefix_template\": \"<|im_start|>{role}\",\n", - " \"suffix_template\": \"<|im_end|>\",\n", - " },\n", - " \"dataset_type\": \"chat\",\n", - " \"max_tokens_count\": None,\n", - " \"random_cut\": False,\n", - " \"only_answer_loss\": True,\n", - " },\n", - " \"metric_settings\": [],\n", - " }\n", - "\n", - "cherry_pick_settings = ChatCherryPickSettings.model_validate(cherry_pick_settings_dict)\n", - "\n", - "\n", - "ragas_metrics = Metric.by_name(\"ragas_metrics\")(\n", - " settings=RagasMetricsSettings(mistralai_api_key=os.getenv('MISTRALAI_API_KEY'),\n", - " openai_api_key=os.getenv('OPENAI_API_KEY'), need_average=[False])\n", - " )\n", - "\n", - "inference_chat_dataset = records_to_dataset(val_records, 'inference', tokenizer)\n", - "\n", - "rag_cherry_pick = RagCherryPickCallback(\n", - " cherry_pick_settings, datasets=[inference_chat_dataset], metrics=[ragas_metrics]\n", - ")\n", - "\n", - " " - ] - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": { - "scrolled": true - }, - "outputs": [], - "source": [ - "output = rag_cherry_pick.on_evaluate(None, None, None, tokenizer=tokenizer, model=rag_model)\n", - "print(output)" - ] - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": {}, - "outputs": [], - "source": [ - "# RAGS metrics before fine-tuning\n", - "output[-1][-1]" - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - " # Use Cherry Pick to get intuition" - ] - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": { - "scrolled": true - }, - "outputs": [], - "source": [ - "# show cherry picks\n", - "sample_idx=2\n", - "\n", - "print('Question')\n", - "print(output[0][0].element_wise_scores[0].values[sample_idx])\n", - "print('---')\n", - "print('Answer')\n", - "print(output[0][1].element_wise_scores[0].values[sample_idx])\n", - "print('---')\n", - "print('Documents')\n", - "print(output[0][2].element_wise_scores[0].values[sample_idx])\n", - "print('---')\n", - "print('Scores')\n", - "print(output[0][3].element_wise_scores[0].values[sample_idx])" - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "# Fine-tune RAG Sequence Model" - ] - }, - { - "cell_type": "code", - "execution_count": 15, - "metadata": {}, - "outputs": [ - { - "name": "stdout", - "output_type": "stream", - "text": [ - "rag_index.py:104 [\u001b[1mINFO\u001b[0m] 2024-07-17T13:14:06+00:00 Loading passages from passages\n", - "retriever_model.py:56 [\u001b[1mINFO\u001b[0m] 2024-07-17T13:14:06+00:00 initializing retrieval\n", - "rag_index.py:115 [\u001b[1mINFO\u001b[0m] 2024-07-17T13:14:06+00:00 Loading index from my_index.faiss\n" - ] - } - ], - "source": [ - "# make generator trainable via PEFT\n", - "\n", - "peft_config=model_settings.generator_settings.peft_settings.dict()\n", - "peft_config[\"peft_type\"]= peft_config['name']\n", - "del peft_config['name']\n", - "\n", - "peft_config=get_peft_config(peft_config)\n", - "generator = PeftModelForCausalLM(generator, peft_config)\n", - "\n", - "rag_model = RagSequenceForGeneration(model_settings, generator, question_encoder, rag_tokenizer)" - ] - }, - { - "cell_type": "code", - "execution_count": 16, - "metadata": {}, - "outputs": [ - { - "name": "stderr", - "output_type": "stream", - "text": [ - "/root/.cache/pypoetry/virtualenvs/turbo-alignment-QH-OqmFL-py3.10/lib/python3.10/site-packages/transformers/training_args.py:1494: FutureWarning: `evaluation_strategy` is deprecated and will be removed in version 4.46 of 🤗 Transformers. Use `eval_strategy` instead\n", - " warnings.warn(\n" - ] - } - ], - "source": [ - "from transformers import (\n", - " AdamW,\n", - " PreTrainedModel,\n", - " BitsAndBytesConfig,\n", - " PreTrainedTokenizerBase,\n", - " TrainingArguments)\n", - "\n", - "kwargs = {\n", - " 'output_dir':'train_rag_output',\n", - " 'evaluation_strategy': 'epoch',\n", - " 'save_strategy': 'epoch',\n", - " 'per_device_train_batch_size': 2,\n", - " 'per_device_eval_batch_size': 1,\n", - " 'gradient_accumulation_steps': 1,\n", - " 'eval_steps': 150,\n", - " 'save_steps': 150,\n", - " 'logging_steps': 1,\n", - " 'learning_rate': 0.0004,\n", - " 'num_train_epochs': 1,\n", - " 'max_steps': 200,\n", - " 'lr_scheduler_type': 'linear',\n", - " 'lr_scheduler_kwargs': {},\n", - " 'warmup_steps': 0,\n", - " 'warmup_ratio': 0.1,\n", - " 'fp16': True,\n", - " 'bf16': False,\n", - " 'tf32': False,\n", - " 'torch_compile': False,\n", - " 'optim': 'adamw_torch',\n", - " 'adam_beta1': 0.9,\n", - " 'adam_beta2': 0.98,\n", - " 'adam_epsilon': 1e-06,\n", - " 'weight_decay': 0.01,\n", - " 'max_grad_norm': 0.11,\n", - " 'deepspeed': None,\n", - " 'save_total_limit': 1,\n", - " 'save_only_model': False,\n", - " 'no_cuda': False,\n", - " 'prediction_loss_only': False,\n", - " 'load_best_model_at_end': True,\n", - " 'logging_first_step': True,\n", - " 'fsdp_config': None,\n", - " 'fsdp': '',\n", - " 'dataloader_num_workers': 8,\n", - " 'dataloader_prefetch_factor': None,\n", - " 'dataloader_persistent_workers': False,\n", - " 'dataloader_pin_memory': True,\n", - " 'gradient_checkpointing': False,\n", - " 'gradient_checkpointing_kwargs': {},\n", - " 'neftune_noise_alpha': None,\n", - " 'report_to': [],\n", - " }\n", - "training_args = TrainingArguments(**kwargs)\n", - "\n", - "training_args._n_gpu=1" - ] - }, - { - "cell_type": "code", - "execution_count": 17, - "metadata": {}, - "outputs": [ - { - "name": "stdout", - "output_type": "stream", - "text": [ - "base.py:60 [\u001b[1mINFO\u001b[0m] 2024-07-17T13:14:22+00:00 Sampling 3775 from dataset rag-mini-bioasq\n", - "chat.py:240 [\u001b[1mINFO\u001b[0m] 2024-07-17T13:14:22+00:00 Tokenizing dataset rag-mini-bioasq\n", - "chat.py:260 [\u001b[1mINFO\u001b[0m] 2024-07-17T13:14:22+00:00 Postprocessing tokenized data in rag-mini-bioasq\n", - "base.py:48 [\u001b[1mINFO\u001b[0m] 2024-07-17T13:14:23+00:00 Sampled 3775 records with offset None\n", - "base.py:60 [\u001b[1mINFO\u001b[0m] 2024-07-17T13:14:23+00:00 Sampling 10 from dataset rag-mini-bioasq\n", - "chat.py:240 [\u001b[1mINFO\u001b[0m] 2024-07-17T13:14:23+00:00 Tokenizing dataset rag-mini-bioasq\n", - "chat.py:260 [\u001b[1mINFO\u001b[0m] 2024-07-17T13:14:23+00:00 Postprocessing tokenized data in rag-mini-bioasq\n", - "base.py:48 [\u001b[1mINFO\u001b[0m] 2024-07-17T13:14:23+00:00 Sampled 10 records with offset None\n" - ] - } - ], - "source": [ - "# create train dataset and val dataset\n", - "\n", - "train_dataset = records_to_dataset(train_records, 'train', tokenizer)\n", - "val_dataset = records_to_dataset(val_records, 'inference', tokenizer)" - ] - }, - { - "cell_type": "code", - "execution_count": 22, - "metadata": { - "scrolled": true - }, - "outputs": [ - { - "name": "stderr", - "output_type": "stream", - "text": [ - "max_steps is given, it will override any value given in num_train_epochs\n", - "/root/.cache/pypoetry/virtualenvs/turbo-alignment-QH-OqmFL-py3.10/lib/python3.10/site-packages/transformers/optimization.py:591: FutureWarning: This implementation of AdamW is deprecated and will be removed in a future version. Use the PyTorch implementation torch.optim.AdamW instead, or set `no_deprecation_warning=True` to disable this warning\n", - " warnings.warn(\n" - ] - }, - { - "data": { - "application/vnd.jupyter.widget-view+json": { - "model_id": "b3df4d5145b749d096237e8fc216d40a", - "version_major": 2, - "version_minor": 0 - }, - "text/plain": [ - " 0%| …" - ] - }, - "metadata": {}, - "output_type": "display_data" - }, - { - "name": "stdout", - "output_type": "stream", - "text": [ - "{'loss': 1040.5778, 'grad_norm': nan, 'learning_rate': 0.0, 'epoch': 0.0}\n", - "{'loss': 832.3809, 'grad_norm': nan, 'learning_rate': 0.0, 'epoch': 0.0}\n", - "{'loss': 499.2353, 'grad_norm': nan, 'learning_rate': 0.0, 'epoch': 0.0}\n", - "{'loss': 772.701, 'grad_norm': nan, 'learning_rate': 0.0, 'epoch': 0.0}\n", - "{'loss': 606.6097, 'grad_norm': nan, 'learning_rate': 0.0, 'epoch': 0.0}\n", - "{'loss': 1022.1019, 'grad_norm': nan, 'learning_rate': 0.0, 'epoch': 0.0}\n", - "{'loss': 405.2975, 'grad_norm': nan, 'learning_rate': 0.0, 'epoch': 0.0}\n", - "{'loss': 253.0243, 'grad_norm': nan, 'learning_rate': 0.0, 'epoch': 0.0}\n", - "{'loss': 421.7507, 'grad_norm': 384.970458984375, 'learning_rate': 2e-07, 'epoch': 0.0}\n", - "{'loss': 362.9537, 'grad_norm': nan, 'learning_rate': 2e-07, 'epoch': 0.01}\n", - "{'loss': 924.6088, 'grad_norm': nan, 'learning_rate': 2e-07, 'epoch': 0.01}\n", - "{'loss': 538.185, 'grad_norm': 566.7750854492188, 'learning_rate': 4e-07, 'epoch': 0.01}\n", - "{'loss': 532.3833, 'grad_norm': 610.6382446289062, 'learning_rate': 6e-07, 'epoch': 0.01}\n", - "{'loss': 613.295, 'grad_norm': 526.2901000976562, 'learning_rate': 8e-07, 'epoch': 0.01}\n", - "{'loss': 367.5936, 'grad_norm': 298.1461181640625, 'learning_rate': 1e-06, 'epoch': 0.01}\n", - "{'loss': 561.4383, 'grad_norm': 539.3131713867188, 'learning_rate': 1.2e-06, 'epoch': 0.01}\n", - "{'loss': 2607.2305, 'grad_norm': nan, 'learning_rate': 1.2e-06, 'epoch': 0.01}\n", - "{'loss': 847.8414, 'grad_norm': 987.8517456054688, 'learning_rate': 1.4e-06, 'epoch': 0.01}\n", - "{'loss': 1580.5759, 'grad_norm': 1254.005615234375, 'learning_rate': 1.6e-06, 'epoch': 0.01}\n", - "{'loss': 316.4125, 'grad_norm': 369.99737548828125, 'learning_rate': 1.8e-06, 'epoch': 0.01}\n", - "{'loss': 1665.7966, 'grad_norm': 1215.1890869140625, 'learning_rate': 2e-06, 'epoch': 0.01}\n", - "{'loss': 355.4855, 'grad_norm': 342.26824951171875, 'learning_rate': 2.2e-06, 'epoch': 0.01}\n", - "{'loss': 374.4918, 'grad_norm': 412.07440185546875, 'learning_rate': 2.4e-06, 'epoch': 0.01}\n", - "{'loss': 618.113, 'grad_norm': 476.501220703125, 'learning_rate': 2.6e-06, 'epoch': 0.01}\n", - "{'loss': 296.2267, 'grad_norm': 349.6741943359375, 'learning_rate': 2.8e-06, 'epoch': 0.01}\n", - "{'loss': 341.8815, 'grad_norm': 299.40618896484375, 'learning_rate': 3e-06, 'epoch': 0.01}\n", - "{'loss': 188.2465, 'grad_norm': 276.6436462402344, 'learning_rate': 3.2e-06, 'epoch': 0.01}\n", - "{'loss': 1030.9663, 'grad_norm': 1054.1207275390625, 'learning_rate': 3.3999999999999996e-06, 'epoch': 0.01}\n", - "{'loss': 988.9143, 'grad_norm': 740.6785888671875, 'learning_rate': 3.6e-06, 'epoch': 0.02}\n", - "{'loss': 169.6578, 'grad_norm': 222.5914764404297, 'learning_rate': 3.7999999999999996e-06, 'epoch': 0.02}\n", - "{'loss': 774.1021, 'grad_norm': 543.6884155273438, 'learning_rate': 4e-06, 'epoch': 0.02}\n", - "{'loss': 690.0219, 'grad_norm': 565.4029541015625, 'learning_rate': 3.9777777777777774e-06, 'epoch': 0.02}\n", - "{'loss': 928.3839, 'grad_norm': 898.478271484375, 'learning_rate': 3.955555555555556e-06, 'epoch': 0.02}\n", - "{'loss': 1213.3911, 'grad_norm': 806.2352905273438, 'learning_rate': 3.933333333333333e-06, 'epoch': 0.02}\n", - "{'loss': 1022.4457, 'grad_norm': 810.0723876953125, 'learning_rate': 3.911111111111111e-06, 'epoch': 0.02}\n", - "{'loss': 196.524, 'grad_norm': 246.5343475341797, 'learning_rate': 3.888888888888889e-06, 'epoch': 0.02}\n", - "{'loss': 1465.4832, 'grad_norm': 1400.619140625, 'learning_rate': 3.866666666666666e-06, 'epoch': 0.02}\n", - "{'loss': 769.0638, 'grad_norm': 870.878662109375, 'learning_rate': 3.844444444444444e-06, 'epoch': 0.02}\n", - "{'loss': 606.1207, 'grad_norm': 650.372314453125, 'learning_rate': 3.8222222222222224e-06, 'epoch': 0.02}\n", - "{'loss': 1226.3706, 'grad_norm': 1056.9744873046875, 'learning_rate': 3.7999999999999996e-06, 'epoch': 0.02}\n", - "{'loss': 982.3262, 'grad_norm': 811.4799194335938, 'learning_rate': 3.7777777777777777e-06, 'epoch': 0.02}\n", - "{'loss': 812.4618, 'grad_norm': 833.3036499023438, 'learning_rate': 3.7555555555555553e-06, 'epoch': 0.02}\n", - "{'loss': 461.4474, 'grad_norm': 494.4117126464844, 'learning_rate': 3.7333333333333333e-06, 'epoch': 0.02}\n", - "{'loss': 888.8143, 'grad_norm': nan, 'learning_rate': 3.7333333333333333e-06, 'epoch': 0.02}\n", - "{'loss': 465.0711, 'grad_norm': 535.0700073242188, 'learning_rate': 3.711111111111111e-06, 'epoch': 0.02}\n", - "{'loss': 718.7758, 'grad_norm': 639.4325561523438, 'learning_rate': 3.688888888888889e-06, 'epoch': 0.02}\n", - "{'loss': 536.7394, 'grad_norm': 530.4290161132812, 'learning_rate': 3.666666666666666e-06, 'epoch': 0.02}\n", - "{'loss': 543.5729, 'grad_norm': 525.3753051757812, 'learning_rate': 3.644444444444444e-06, 'epoch': 0.03}\n", - "{'loss': 576.4851, 'grad_norm': 436.45709228515625, 'learning_rate': 3.6222222222222222e-06, 'epoch': 0.03}\n", - "{'loss': 539.6069, 'grad_norm': 648.781005859375, 'learning_rate': 3.6e-06, 'epoch': 0.03}\n", - "{'loss': 623.3223, 'grad_norm': 785.5980224609375, 'learning_rate': 3.577777777777778e-06, 'epoch': 0.03}\n", - "{'loss': 584.7838, 'grad_norm': 544.7810668945312, 'learning_rate': 3.555555555555555e-06, 'epoch': 0.03}\n", - "{'loss': 481.7491, 'grad_norm': 493.21246337890625, 'learning_rate': 3.533333333333333e-06, 'epoch': 0.03}\n", - "{'loss': 676.8594, 'grad_norm': 664.3146362304688, 'learning_rate': 3.5111111111111107e-06, 'epoch': 0.03}\n", - "{'loss': 597.1542, 'grad_norm': 581.8723754882812, 'learning_rate': 3.4888888888888888e-06, 'epoch': 0.03}\n", - "{'loss': 496.4277, 'grad_norm': 560.3456420898438, 'learning_rate': 3.466666666666667e-06, 'epoch': 0.03}\n", - "{'loss': 774.879, 'grad_norm': 785.2926025390625, 'learning_rate': 3.4444444444444444e-06, 'epoch': 0.03}\n", - "{'loss': 462.9211, 'grad_norm': 509.3082275390625, 'learning_rate': 3.422222222222222e-06, 'epoch': 0.03}\n", - "{'loss': 1509.8203, 'grad_norm': 1301.6529541015625, 'learning_rate': 3.3999999999999996e-06, 'epoch': 0.03}\n", - "{'loss': 1103.3269, 'grad_norm': 987.738037109375, 'learning_rate': 3.3777777777777777e-06, 'epoch': 0.03}\n", - "{'loss': 1033.23, 'grad_norm': 980.1243896484375, 'learning_rate': 3.3555555555555553e-06, 'epoch': 0.03}\n", - "{'loss': 623.0865, 'grad_norm': 490.21710205078125, 'learning_rate': 3.3333333333333333e-06, 'epoch': 0.03}\n", - "{'loss': 623.3514, 'grad_norm': 585.7325439453125, 'learning_rate': 3.311111111111111e-06, 'epoch': 0.03}\n", - "{'loss': 417.0702, 'grad_norm': 491.0393371582031, 'learning_rate': 3.2888888888888886e-06, 'epoch': 0.03}\n", - "{'loss': 423.3882, 'grad_norm': 394.63421630859375, 'learning_rate': 3.2666666666666666e-06, 'epoch': 0.03}\n", - "{'loss': 517.3417, 'grad_norm': 644.54638671875, 'learning_rate': 3.244444444444444e-06, 'epoch': 0.03}\n", - "{'loss': 765.5586, 'grad_norm': 649.2568359375, 'learning_rate': 3.2222222222222222e-06, 'epoch': 0.04}\n" - ] - }, - { - "ename": "OutOfMemoryError", - "evalue": "CUDA out of memory. Tried to allocate 2.83 GiB. GPU 0 has a total capacty of 79.35 GiB of which 1.79 GiB is free. Process 1758960 has 77.55 GiB memory in use. Of the allocated memory 69.15 GiB is allocated by PyTorch, and 7.90 GiB is reserved by PyTorch but unallocated. If reserved but unallocated memory is large try setting max_split_size_mb to avoid fragmentation. See documentation for Memory Management and PYTORCH_CUDA_ALLOC_CONF", - "output_type": "error", - "traceback": [ - "\u001b[0;31m---------------------------------------------------------------------------\u001b[0m", - "\u001b[0;31mOutOfMemoryError\u001b[0m Traceback (most recent call last)", - "Cell \u001b[0;32mIn[22], line 32\u001b[0m\n\u001b[1;32m 21\u001b[0m optimizer \u001b[38;5;241m=\u001b[39m AdamW(\n\u001b[1;32m 22\u001b[0m [\n\u001b[1;32m 23\u001b[0m {\u001b[38;5;124m'\u001b[39m\u001b[38;5;124mparams\u001b[39m\u001b[38;5;124m'\u001b[39m: generator_parameters, \u001b[38;5;124m'\u001b[39m\u001b[38;5;124mlr\u001b[39m\u001b[38;5;124m'\u001b[39m: training_args\u001b[38;5;241m.\u001b[39mlearning_rate\u001b[38;5;241m/\u001b[39m\u001b[38;5;241m100\u001b[39m},\n\u001b[0;32m (...)\u001b[0m\n\u001b[1;32m 28\u001b[0m ]\n\u001b[1;32m 29\u001b[0m )\n\u001b[1;32m 30\u001b[0m trainer\u001b[38;5;241m.\u001b[39moptimizer \u001b[38;5;241m=\u001b[39m optimizer\n\u001b[0;32m---> 32\u001b[0m \u001b[43mtrainer\u001b[49m\u001b[38;5;241;43m.\u001b[39;49m\u001b[43mtrain\u001b[49m\u001b[43m(\u001b[49m\u001b[43m)\u001b[49m\n", - "File \u001b[0;32m/workspace/turbo-alignment-2/turbo_alignment/trainers/multigpu.py:106\u001b[0m, in \u001b[0;36mMultiGPUCherryPicksTrainer.train\u001b[0;34m(self, *args, **kwargs)\u001b[0m\n\u001b[1;32m 103\u001b[0m \u001b[38;5;28;01mif\u001b[39;00m \u001b[38;5;28mself\u001b[39m\u001b[38;5;241m.\u001b[39mneftune_noise_alpha \u001b[38;5;129;01mis\u001b[39;00m \u001b[38;5;129;01mnot\u001b[39;00m \u001b[38;5;28;01mNone\u001b[39;00m:\n\u001b[1;32m 104\u001b[0m \u001b[38;5;28mself\u001b[39m\u001b[38;5;241m.\u001b[39mmodel \u001b[38;5;241m=\u001b[39m \u001b[38;5;28mself\u001b[39m\u001b[38;5;241m.\u001b[39mcustom_activate_neftune(\u001b[38;5;28mself\u001b[39m\u001b[38;5;241m.\u001b[39mmodel)\n\u001b[0;32m--> 106\u001b[0m output \u001b[38;5;241m=\u001b[39m \u001b[38;5;28;43msuper\u001b[39;49m\u001b[43m(\u001b[49m\u001b[43m)\u001b[49m\u001b[38;5;241;43m.\u001b[39;49m\u001b[43mtrain\u001b[49m\u001b[43m(\u001b[49m\u001b[38;5;241;43m*\u001b[39;49m\u001b[43margs\u001b[49m\u001b[43m,\u001b[49m\u001b[43m \u001b[49m\u001b[38;5;241;43m*\u001b[39;49m\u001b[38;5;241;43m*\u001b[39;49m\u001b[43mkwargs\u001b[49m\u001b[43m)\u001b[49m \u001b[38;5;66;03m# pylint: disable=no-member\u001b[39;00m\n\u001b[1;32m 108\u001b[0m \u001b[38;5;66;03m# After training we make sure to retrieve back the original forward pass method\u001b[39;00m\n\u001b[1;32m 109\u001b[0m \u001b[38;5;66;03m# for the embedding layer by removing the forward post hook.\u001b[39;00m\n\u001b[1;32m 110\u001b[0m \u001b[38;5;28;01mif\u001b[39;00m \u001b[38;5;28mself\u001b[39m\u001b[38;5;241m.\u001b[39mneftune_noise_alpha \u001b[38;5;129;01mis\u001b[39;00m \u001b[38;5;129;01mnot\u001b[39;00m \u001b[38;5;28;01mNone\u001b[39;00m:\n", - "File \u001b[0;32m~/.cache/pypoetry/virtualenvs/turbo-alignment-QH-OqmFL-py3.10/lib/python3.10/site-packages/transformers/trainer.py:1932\u001b[0m, in \u001b[0;36mTrainer.train\u001b[0;34m(self, resume_from_checkpoint, trial, ignore_keys_for_eval, **kwargs)\u001b[0m\n\u001b[1;32m 1930\u001b[0m hf_hub_utils\u001b[38;5;241m.\u001b[39menable_progress_bars()\n\u001b[1;32m 1931\u001b[0m \u001b[38;5;28;01melse\u001b[39;00m:\n\u001b[0;32m-> 1932\u001b[0m \u001b[38;5;28;01mreturn\u001b[39;00m \u001b[43minner_training_loop\u001b[49m\u001b[43m(\u001b[49m\n\u001b[1;32m 1933\u001b[0m \u001b[43m \u001b[49m\u001b[43margs\u001b[49m\u001b[38;5;241;43m=\u001b[39;49m\u001b[43margs\u001b[49m\u001b[43m,\u001b[49m\n\u001b[1;32m 1934\u001b[0m \u001b[43m \u001b[49m\u001b[43mresume_from_checkpoint\u001b[49m\u001b[38;5;241;43m=\u001b[39;49m\u001b[43mresume_from_checkpoint\u001b[49m\u001b[43m,\u001b[49m\n\u001b[1;32m 1935\u001b[0m \u001b[43m \u001b[49m\u001b[43mtrial\u001b[49m\u001b[38;5;241;43m=\u001b[39;49m\u001b[43mtrial\u001b[49m\u001b[43m,\u001b[49m\n\u001b[1;32m 1936\u001b[0m \u001b[43m \u001b[49m\u001b[43mignore_keys_for_eval\u001b[49m\u001b[38;5;241;43m=\u001b[39;49m\u001b[43mignore_keys_for_eval\u001b[49m\u001b[43m,\u001b[49m\n\u001b[1;32m 1937\u001b[0m \u001b[43m \u001b[49m\u001b[43m)\u001b[49m\n", - "File \u001b[0;32m~/.cache/pypoetry/virtualenvs/turbo-alignment-QH-OqmFL-py3.10/lib/python3.10/site-packages/transformers/trainer.py:2268\u001b[0m, in \u001b[0;36mTrainer._inner_training_loop\u001b[0;34m(self, batch_size, args, resume_from_checkpoint, trial, ignore_keys_for_eval)\u001b[0m\n\u001b[1;32m 2265\u001b[0m \u001b[38;5;28mself\u001b[39m\u001b[38;5;241m.\u001b[39mcontrol \u001b[38;5;241m=\u001b[39m \u001b[38;5;28mself\u001b[39m\u001b[38;5;241m.\u001b[39mcallback_handler\u001b[38;5;241m.\u001b[39mon_step_begin(args, \u001b[38;5;28mself\u001b[39m\u001b[38;5;241m.\u001b[39mstate, \u001b[38;5;28mself\u001b[39m\u001b[38;5;241m.\u001b[39mcontrol)\n\u001b[1;32m 2267\u001b[0m \u001b[38;5;28;01mwith\u001b[39;00m \u001b[38;5;28mself\u001b[39m\u001b[38;5;241m.\u001b[39maccelerator\u001b[38;5;241m.\u001b[39maccumulate(model):\n\u001b[0;32m-> 2268\u001b[0m tr_loss_step \u001b[38;5;241m=\u001b[39m \u001b[38;5;28;43mself\u001b[39;49m\u001b[38;5;241;43m.\u001b[39;49m\u001b[43mtraining_step\u001b[49m\u001b[43m(\u001b[49m\u001b[43mmodel\u001b[49m\u001b[43m,\u001b[49m\u001b[43m \u001b[49m\u001b[43minputs\u001b[49m\u001b[43m)\u001b[49m\n\u001b[1;32m 2270\u001b[0m \u001b[38;5;28;01mif\u001b[39;00m (\n\u001b[1;32m 2271\u001b[0m args\u001b[38;5;241m.\u001b[39mlogging_nan_inf_filter\n\u001b[1;32m 2272\u001b[0m \u001b[38;5;129;01mand\u001b[39;00m \u001b[38;5;129;01mnot\u001b[39;00m is_torch_xla_available()\n\u001b[1;32m 2273\u001b[0m \u001b[38;5;129;01mand\u001b[39;00m (torch\u001b[38;5;241m.\u001b[39misnan(tr_loss_step) \u001b[38;5;129;01mor\u001b[39;00m torch\u001b[38;5;241m.\u001b[39misinf(tr_loss_step))\n\u001b[1;32m 2274\u001b[0m ):\n\u001b[1;32m 2275\u001b[0m \u001b[38;5;66;03m# if loss is nan or inf simply add the average of previous logged losses\u001b[39;00m\n\u001b[1;32m 2276\u001b[0m tr_loss \u001b[38;5;241m+\u001b[39m\u001b[38;5;241m=\u001b[39m tr_loss \u001b[38;5;241m/\u001b[39m (\u001b[38;5;241m1\u001b[39m \u001b[38;5;241m+\u001b[39m \u001b[38;5;28mself\u001b[39m\u001b[38;5;241m.\u001b[39mstate\u001b[38;5;241m.\u001b[39mglobal_step \u001b[38;5;241m-\u001b[39m \u001b[38;5;28mself\u001b[39m\u001b[38;5;241m.\u001b[39m_globalstep_last_logged)\n", - "File \u001b[0;32m~/.cache/pypoetry/virtualenvs/turbo-alignment-QH-OqmFL-py3.10/lib/python3.10/site-packages/transformers/trainer.py:3324\u001b[0m, in \u001b[0;36mTrainer.training_step\u001b[0;34m(***failed resolving arguments***)\u001b[0m\n\u001b[1;32m 3322\u001b[0m scaled_loss\u001b[38;5;241m.\u001b[39mbackward()\n\u001b[1;32m 3323\u001b[0m \u001b[38;5;28;01melse\u001b[39;00m:\n\u001b[0;32m-> 3324\u001b[0m \u001b[38;5;28;43mself\u001b[39;49m\u001b[38;5;241;43m.\u001b[39;49m\u001b[43maccelerator\u001b[49m\u001b[38;5;241;43m.\u001b[39;49m\u001b[43mbackward\u001b[49m\u001b[43m(\u001b[49m\u001b[43mloss\u001b[49m\u001b[43m,\u001b[49m\u001b[43m \u001b[49m\u001b[38;5;241;43m*\u001b[39;49m\u001b[38;5;241;43m*\u001b[39;49m\u001b[43mkwargs\u001b[49m\u001b[43m)\u001b[49m\n\u001b[1;32m 3326\u001b[0m \u001b[38;5;28;01mreturn\u001b[39;00m loss\u001b[38;5;241m.\u001b[39mdetach() \u001b[38;5;241m/\u001b[39m \u001b[38;5;28mself\u001b[39m\u001b[38;5;241m.\u001b[39margs\u001b[38;5;241m.\u001b[39mgradient_accumulation_steps\n", - "File \u001b[0;32m~/.cache/pypoetry/virtualenvs/turbo-alignment-QH-OqmFL-py3.10/lib/python3.10/site-packages/accelerate/accelerator.py:1964\u001b[0m, in \u001b[0;36mAccelerator.backward\u001b[0;34m(self, loss, **kwargs)\u001b[0m\n\u001b[1;32m 1962\u001b[0m \u001b[38;5;28;01mreturn\u001b[39;00m\n\u001b[1;32m 1963\u001b[0m \u001b[38;5;28;01melif\u001b[39;00m \u001b[38;5;28mself\u001b[39m\u001b[38;5;241m.\u001b[39mscaler \u001b[38;5;129;01mis\u001b[39;00m \u001b[38;5;129;01mnot\u001b[39;00m \u001b[38;5;28;01mNone\u001b[39;00m:\n\u001b[0;32m-> 1964\u001b[0m \u001b[38;5;28;43mself\u001b[39;49m\u001b[38;5;241;43m.\u001b[39;49m\u001b[43mscaler\u001b[49m\u001b[38;5;241;43m.\u001b[39;49m\u001b[43mscale\u001b[49m\u001b[43m(\u001b[49m\u001b[43mloss\u001b[49m\u001b[43m)\u001b[49m\u001b[38;5;241;43m.\u001b[39;49m\u001b[43mbackward\u001b[49m\u001b[43m(\u001b[49m\u001b[38;5;241;43m*\u001b[39;49m\u001b[38;5;241;43m*\u001b[39;49m\u001b[43mkwargs\u001b[49m\u001b[43m)\u001b[49m\n\u001b[1;32m 1965\u001b[0m \u001b[38;5;28;01melse\u001b[39;00m:\n\u001b[1;32m 1966\u001b[0m loss\u001b[38;5;241m.\u001b[39mbackward(\u001b[38;5;241m*\u001b[39m\u001b[38;5;241m*\u001b[39mkwargs)\n", - "File \u001b[0;32m~/.cache/pypoetry/virtualenvs/turbo-alignment-QH-OqmFL-py3.10/lib/python3.10/site-packages/torch/_tensor.py:492\u001b[0m, in \u001b[0;36mTensor.backward\u001b[0;34m(self, gradient, retain_graph, create_graph, inputs)\u001b[0m\n\u001b[1;32m 482\u001b[0m \u001b[38;5;28;01mif\u001b[39;00m has_torch_function_unary(\u001b[38;5;28mself\u001b[39m):\n\u001b[1;32m 483\u001b[0m \u001b[38;5;28;01mreturn\u001b[39;00m handle_torch_function(\n\u001b[1;32m 484\u001b[0m Tensor\u001b[38;5;241m.\u001b[39mbackward,\n\u001b[1;32m 485\u001b[0m (\u001b[38;5;28mself\u001b[39m,),\n\u001b[0;32m (...)\u001b[0m\n\u001b[1;32m 490\u001b[0m inputs\u001b[38;5;241m=\u001b[39minputs,\n\u001b[1;32m 491\u001b[0m )\n\u001b[0;32m--> 492\u001b[0m \u001b[43mtorch\u001b[49m\u001b[38;5;241;43m.\u001b[39;49m\u001b[43mautograd\u001b[49m\u001b[38;5;241;43m.\u001b[39;49m\u001b[43mbackward\u001b[49m\u001b[43m(\u001b[49m\n\u001b[1;32m 493\u001b[0m \u001b[43m \u001b[49m\u001b[38;5;28;43mself\u001b[39;49m\u001b[43m,\u001b[49m\u001b[43m \u001b[49m\u001b[43mgradient\u001b[49m\u001b[43m,\u001b[49m\u001b[43m \u001b[49m\u001b[43mretain_graph\u001b[49m\u001b[43m,\u001b[49m\u001b[43m \u001b[49m\u001b[43mcreate_graph\u001b[49m\u001b[43m,\u001b[49m\u001b[43m \u001b[49m\u001b[43minputs\u001b[49m\u001b[38;5;241;43m=\u001b[39;49m\u001b[43minputs\u001b[49m\n\u001b[1;32m 494\u001b[0m \u001b[43m\u001b[49m\u001b[43m)\u001b[49m\n", - "File \u001b[0;32m~/.cache/pypoetry/virtualenvs/turbo-alignment-QH-OqmFL-py3.10/lib/python3.10/site-packages/torch/autograd/__init__.py:251\u001b[0m, in \u001b[0;36mbackward\u001b[0;34m(tensors, grad_tensors, retain_graph, create_graph, grad_variables, inputs)\u001b[0m\n\u001b[1;32m 246\u001b[0m retain_graph \u001b[38;5;241m=\u001b[39m create_graph\n\u001b[1;32m 248\u001b[0m \u001b[38;5;66;03m# The reason we repeat the same comment below is that\u001b[39;00m\n\u001b[1;32m 249\u001b[0m \u001b[38;5;66;03m# some Python versions print out the first line of a multi-line function\u001b[39;00m\n\u001b[1;32m 250\u001b[0m \u001b[38;5;66;03m# calls in the traceback and some print out the last line\u001b[39;00m\n\u001b[0;32m--> 251\u001b[0m \u001b[43mVariable\u001b[49m\u001b[38;5;241;43m.\u001b[39;49m\u001b[43m_execution_engine\u001b[49m\u001b[38;5;241;43m.\u001b[39;49m\u001b[43mrun_backward\u001b[49m\u001b[43m(\u001b[49m\u001b[43m \u001b[49m\u001b[38;5;66;43;03m# Calls into the C++ engine to run the backward pass\u001b[39;49;00m\n\u001b[1;32m 252\u001b[0m \u001b[43m \u001b[49m\u001b[43mtensors\u001b[49m\u001b[43m,\u001b[49m\n\u001b[1;32m 253\u001b[0m \u001b[43m \u001b[49m\u001b[43mgrad_tensors_\u001b[49m\u001b[43m,\u001b[49m\n\u001b[1;32m 254\u001b[0m \u001b[43m \u001b[49m\u001b[43mretain_graph\u001b[49m\u001b[43m,\u001b[49m\n\u001b[1;32m 255\u001b[0m \u001b[43m \u001b[49m\u001b[43mcreate_graph\u001b[49m\u001b[43m,\u001b[49m\n\u001b[1;32m 256\u001b[0m \u001b[43m \u001b[49m\u001b[43minputs\u001b[49m\u001b[43m,\u001b[49m\n\u001b[1;32m 257\u001b[0m \u001b[43m \u001b[49m\u001b[43mallow_unreachable\u001b[49m\u001b[38;5;241;43m=\u001b[39;49m\u001b[38;5;28;43;01mTrue\u001b[39;49;00m\u001b[43m,\u001b[49m\n\u001b[1;32m 258\u001b[0m \u001b[43m \u001b[49m\u001b[43maccumulate_grad\u001b[49m\u001b[38;5;241;43m=\u001b[39;49m\u001b[38;5;28;43;01mTrue\u001b[39;49;00m\u001b[43m,\u001b[49m\n\u001b[1;32m 259\u001b[0m \u001b[43m\u001b[49m\u001b[43m)\u001b[49m\n", - "\u001b[0;31mOutOfMemoryError\u001b[0m: CUDA out of memory. Tried to allocate 2.83 GiB. GPU 0 has a total capacty of 79.35 GiB of which 1.79 GiB is free. Process 1758960 has 77.55 GiB memory in use. Of the allocated memory 69.15 GiB is allocated by PyTorch, and 7.90 GiB is reserved by PyTorch but unallocated. If reserved but unallocated memory is large try setting max_split_size_mb to avoid fragmentation. See documentation for Memory Management and PYTORCH_CUDA_ALLOC_CONF" - ] - } - ], - "source": [ - "# create trainer\n", - "from transformers.data.data_collator import DataCollatorForTokenClassification, DataCollatorForSeq2Seq\n", - "\n", - "data_collator = DataCollatorForTokenClassification(tokenizer, pad_to_multiple_of=8)\n", - "\n", - "from turbo_alignment.trainers.multigpu import MultiGPUCherryPicksTrainer\n", - "\n", - "os.environ['TOKENIZERS_PARALLELISM']='false'\n", - "\n", - "trainer = MultiGPUCherryPicksTrainer(\n", - " model=rag_model,\n", - " args=training_args,\n", - " train_dataset=train_dataset,\n", - " eval_dataset=val_dataset,\n", - " callbacks=[],\n", - " data_collator=data_collator,\n", - " tokenizer=tokenizer,\n", - ")\n", - "generator_parameters = rag_model.rag.generator.parameters()\n", - "question_encoder_parameters = rag_model.rag.question_encoder.parameters()\n", - "optimizer = AdamW(\n", - " [\n", - " #we want to train retriever rather then generator, since lr for generator 100 lower\n", - " {'params': generator_parameters, 'lr': training_args.learning_rate/100},\n", - " {\n", - " 'params': question_encoder_parameters,\n", - " 'lr': training_args.learning_rate,\n", - " },\n", - " ]\n", - ")\n", - "trainer.optimizer = optimizer\n", - "\n", - "trainer.train()" - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "# Measure RAG quality after fine-tuning" - ] - }, - { - "cell_type": "code", - "execution_count": 19, - "metadata": { - "scrolled": true - }, - "outputs": [ - { - "data": { - "application/vnd.jupyter.widget-view+json": { - "model_id": "34a7034d8153488887ad62f9819881ba", - "version_major": 2, - "version_minor": 0 - }, - "text/plain": [ - "Evaluating: 0%| | 0/60 [00:00A mutation that results in a premature stop codon, leading to a truncated protein that lacks the C-terminal region, which is essential for enzyme function. This mutation results in a complete loss of enzyme activity.\\n\\nThe CYP2C19*3 allele is a 745G>A mutation that results in a frameshift, leading to a truncated protein that lacks the majority of the enzyme\\'s catalytic domain. This mutation also results in a complete loss of enzyme activity.\\n\\nIndividuals who are homozygous for either of these alleles or heterozygous for both alleles will have a complete loss of CYP2C19 function, which can result in reduced efficacy of clopidogrel and an increased risk of cardiovascular events. This is known as the \"CYP2C19 poor metabolizer\" phenotype.\\n\\nIn summary, the C\\ncontext: 11428324 / Familial craniosynostosis due to Pro250Arg mutation in the fibroblast growth \\nfactor receptor 3 gene. //\\n15683664 / Skin side effects following XRT take place more often in patients with skin \\ndisorders. In this study six patients with psoriatic lesions were evaluated. The \\ntotal/daily XRT dose to the tumor site was 50-70/1.8-2.0 Gy. No debilitating \\neffect of XRT was observed in both the psoriatic lesions and in the surrounding \\nnormal skin. //\\n16570042 / Mobile phone use and risk of acoustic neuroma: results of the interphone \\ncase-control study in five north European countries [corrected]. //\\n16457587 / The basis set of protein forms expressed by human cells from the H2B gene family \\nwas determined by Top Down Mass Spectrometry. Using Electron Capture \\nDissociation for MS/MS of H2B isoforms, direct evidence for the expression of \\nunmodified H2B.Q, H2B.A, H2B.K/T, H2B.J, H2B.E, H2B.B, H2B.F, and monoacetylated \\nH2B.A was obtained from asynchronous HeLa cells. H2B.A was the most abundant \\nform, with the overall expression profile not changing significantly in cells \\narrested in mitosis by colchicine or during mid-S, mid-G2, G2/M, and mid-G1 \\nphases of the cell cycle. Modest hyperacetylation of H2B family members was \\nobserved after sodium butyrate treatment. //\\n17103449 / P250R mutation in the FGFR3 gene also known as Muenke syndrome is associated \\nwith coronal craniosynostosis, sensorineural deafness, craniofacial, and digital \\nabnormalities. We report a family with this mutation associated with sudden \\ndeath in an affected newborn, most probably due to upper airway obstruction. //\\noutput: \\n'\n", - "start parsing ```json\n", - "{\n", - " \"question\": \"What are the consequences of the CYP2C19*2 and CYP2C19*3 alleles being loss-of-function mutations in the CYP2C19 gene?\",\n", - " \"noncommittal\": 0\n", - "}\n", - "``` with prompt prompt_str='Generate a question for the given answer and Identify if answer is noncommittal. Give noncommittal as 1 if the answer is noncommittal and 0 if the answer is committal. A noncommittal answer is one that is evasive, vague, or ambiguous. For example, \"I don\\'t know\" or \"I\\'m not sure\" are noncommittal answers\\n\\nThe output should be a well-formatted JSON instance that conforms to the JSON schema below.\\n\\nAs an example, for the schema {\"properties\": {\"foo\": {\"title\": \"Foo\", \"description\": \"a list of strings\", \"type\": \"array\", \"items\": {\"type\": \"string\"}}}, \"required\": [\"foo\"]}\\nthe object {\"foo\": [\"bar\", \"baz\"]} is a well-formatted instance of the schema. The object {\"properties\": {\"foo\": [\"bar\", \"baz\"]}} is not well-formatted.\\n\\nHere is the output JSON schema:\\n```\\n{\"type\": \"object\", \"properties\": {\"question\": {\"title\": \"Question\", \"type\": \"string\"}, \"noncommittal\": {\"title\": \"Noncommittal\", \"type\": \"integer\"}}, \"required\": [\"question\", \"noncommittal\"]}\\n```\\n\\nDo not return any preamble or explanations, return only a pure JSON string surrounded by triple backticks (```).\\n\\nExamples:\\n\\nanswer: \"Albert Einstein was born in Germany.\"\\ncontext: \"Albert Einstein was a German-born theoretical physicist who is widely held to be one of the greatest and most influential scientists of all time\"\\noutput: ```{\"question\": \"Where was Albert Einstein born?\", \"noncommittal\": 0}```\\n\\nanswer: \"It can change its skin color based on the temperature of its environment.\"\\ncontext: \"A recent scientific study has discovered a new species of frog in the Amazon rainforest that has the unique ability to change its skin color based on the temperature of its environment.\"\\noutput: ```{\"question\": \"What unique ability does the newly discovered species of frog have?\", \"noncommittal\": 0}```\\n\\nanswer: \"Everest\"\\ncontext: \"The tallest mountain on Earth, measured from sea level, is a renowned peak located in the Himalayas.\"\\noutput: ```{\"question\": \"What is the tallest mountain on Earth?\", \"noncommittal\": 0}```\\n\\nanswer: \"I don\\'t know about the groundbreaking feature of the smartphone invented in 2023 as am unaware of information beyond 2022. \"\\ncontext: \"In 2023, a groundbreaking invention was announced: a smartphone with a battery life of one month, revolutionizing the way people use mobile technology.\"\\noutput: ```{\"question\": \"What was the groundbreaking feature of the smartphone invented in 2023?\", \"noncommittal\": 1}```\\n\\nYour actual task:\\n\\nanswer: The CYP2C19*2 and CYP2C19*3 alleles are both loss-of-function mutations in the CYP2C19 gene, which encodes the enzyme CYP2C19. This enzyme is involved in the metabolism of several drugs, including clopidogrel, a medication used to prevent blood clots in patients with cardiovascular disease.\\n\\nThe CYP2C19*2 allele is a 681G>A mutation that results in a premature stop codon, leading to a truncated protein that lacks the C-terminal region, which is essential for enzyme function. This mutation results in a complete loss of enzyme activity.\\n\\nThe CYP2C19*3 allele is a 745G>A mutation that results in a frameshift, leading to a truncated protein that lacks the majority of the enzyme\\'s catalytic domain. This mutation also results in a complete loss of enzyme activity.\\n\\nIndividuals who are homozygous for either of these alleles or heterozygous for both alleles will have a complete loss of CYP2C19 function, which can result in reduced efficacy of clopidogrel and an increased risk of cardiovascular events. This is known as the \"CYP2C19 poor metabolizer\" phenotype.\\n\\nIn summary, the C\\ncontext: 11428324 / Familial craniosynostosis due to Pro250Arg mutation in the fibroblast growth \\nfactor receptor 3 gene. //\\n15683664 / Skin side effects following XRT take place more often in patients with skin \\ndisorders. In this study six patients with psoriatic lesions were evaluated. The \\ntotal/daily XRT dose to the tumor site was 50-70/1.8-2.0 Gy. No debilitating \\neffect of XRT was observed in both the psoriatic lesions and in the surrounding \\nnormal skin. //\\n16570042 / Mobile phone use and risk of acoustic neuroma: results of the interphone \\ncase-control study in five north European countries [corrected]. //\\n16457587 / The basis set of protein forms expressed by human cells from the H2B gene family \\nwas determined by Top Down Mass Spectrometry. Using Electron Capture \\nDissociation for MS/MS of H2B isoforms, direct evidence for the expression of \\nunmodified H2B.Q, H2B.A, H2B.K/T, H2B.J, H2B.E, H2B.B, H2B.F, and monoacetylated \\nH2B.A was obtained from asynchronous HeLa cells. H2B.A was the most abundant \\nform, with the overall expression profile not changing significantly in cells \\narrested in mitosis by colchicine or during mid-S, mid-G2, G2/M, and mid-G1 \\nphases of the cell cycle. Modest hyperacetylation of H2B family members was \\nobserved after sodium butyrate treatment. //\\n17103449 / P250R mutation in the FGFR3 gene also known as Muenke syndrome is associated \\nwith coronal craniosynostosis, sensorineural deafness, craniofacial, and digital \\nabnormalities. We report a family with this mutation associated with sudden \\ndeath in an affected newborn, most probably due to upper airway obstruction. //\\noutput: \\n'\n", - "start parsing ```json\n", - "{\n", - " \"question\": \"What are the consequences of the CYP2C19*2 and CYP2C19*3 alleles being loss-of-function mutations in the CYP2C19 gene?\",\n", - " \"noncommittal\": 0\n", - "}\n", - "``` with prompt prompt_str='Generate a question for the given answer and Identify if answer is noncommittal. Give noncommittal as 1 if the answer is noncommittal and 0 if the answer is committal. A noncommittal answer is one that is evasive, vague, or ambiguous. For example, \"I don\\'t know\" or \"I\\'m not sure\" are noncommittal answers\\n\\nThe output should be a well-formatted JSON instance that conforms to the JSON schema below.\\n\\nAs an example, for the schema {\"properties\": {\"foo\": {\"title\": \"Foo\", \"description\": \"a list of strings\", \"type\": \"array\", \"items\": {\"type\": \"string\"}}}, \"required\": [\"foo\"]}\\nthe object {\"foo\": [\"bar\", \"baz\"]} is a well-formatted instance of the schema. The object {\"properties\": {\"foo\": [\"bar\", \"baz\"]}} is not well-formatted.\\n\\nHere is the output JSON schema:\\n```\\n{\"type\": \"object\", \"properties\": {\"question\": {\"title\": \"Question\", \"type\": \"string\"}, \"noncommittal\": {\"title\": \"Noncommittal\", \"type\": \"integer\"}}, \"required\": [\"question\", \"noncommittal\"]}\\n```\\n\\nDo not return any preamble or explanations, return only a pure JSON string surrounded by triple backticks (```).\\n\\nExamples:\\n\\nanswer: \"Albert Einstein was born in Germany.\"\\ncontext: \"Albert Einstein was a German-born theoretical physicist who is widely held to be one of the greatest and most influential scientists of all time\"\\noutput: ```{\"question\": \"Where was Albert Einstein born?\", \"noncommittal\": 0}```\\n\\nanswer: \"It can change its skin color based on the temperature of its environment.\"\\ncontext: \"A recent scientific study has discovered a new species of frog in the Amazon rainforest that has the unique ability to change its skin color based on the temperature of its environment.\"\\noutput: ```{\"question\": \"What unique ability does the newly discovered species of frog have?\", \"noncommittal\": 0}```\\n\\nanswer: \"Everest\"\\ncontext: \"The tallest mountain on Earth, measured from sea level, is a renowned peak located in the Himalayas.\"\\noutput: ```{\"question\": \"What is the tallest mountain on Earth?\", \"noncommittal\": 0}```\\n\\nanswer: \"I don\\'t know about the groundbreaking feature of the smartphone invented in 2023 as am unaware of information beyond 2022. \"\\ncontext: \"In 2023, a groundbreaking invention was announced: a smartphone with a battery life of one month, revolutionizing the way people use mobile technology.\"\\noutput: ```{\"question\": \"What was the groundbreaking feature of the smartphone invented in 2023?\", \"noncommittal\": 1}```\\n\\nYour actual task:\\n\\nanswer: The CYP2C19*2 and CYP2C19*3 alleles are both loss-of-function mutations in the CYP2C19 gene, which encodes the enzyme CYP2C19. This enzyme is involved in the metabolism of several drugs, including clopidogrel, a medication used to prevent blood clots in patients with cardiovascular disease.\\n\\nThe CYP2C19*2 allele is a 681G>A mutation that results in a premature stop codon, leading to a truncated protein that lacks the C-terminal region, which is essential for enzyme function. This mutation results in a complete loss of enzyme activity.\\n\\nThe CYP2C19*3 allele is a 745G>A mutation that results in a frameshift, leading to a truncated protein that lacks the majority of the enzyme\\'s catalytic domain. This mutation also results in a complete loss of enzyme activity.\\n\\nIndividuals who are homozygous for either of these alleles or heterozygous for both alleles will have a complete loss of CYP2C19 function, which can result in reduced efficacy of clopidogrel and an increased risk of cardiovascular events. This is known as the \"CYP2C19 poor metabolizer\" phenotype.\\n\\nIn summary, the C\\ncontext: 11428324 / Familial craniosynostosis due to Pro250Arg mutation in the fibroblast growth \\nfactor receptor 3 gene. //\\n15683664 / Skin side effects following XRT take place more often in patients with skin \\ndisorders. In this study six patients with psoriatic lesions were evaluated. The \\ntotal/daily XRT dose to the tumor site was 50-70/1.8-2.0 Gy. No debilitating \\neffect of XRT was observed in both the psoriatic lesions and in the surrounding \\nnormal skin. //\\n16570042 / Mobile phone use and risk of acoustic neuroma: results of the interphone \\ncase-control study in five north European countries [corrected]. //\\n16457587 / The basis set of protein forms expressed by human cells from the H2B gene family \\nwas determined by Top Down Mass Spectrometry. Using Electron Capture \\nDissociation for MS/MS of H2B isoforms, direct evidence for the expression of \\nunmodified H2B.Q, H2B.A, H2B.K/T, H2B.J, H2B.E, H2B.B, H2B.F, and monoacetylated \\nH2B.A was obtained from asynchronous HeLa cells. H2B.A was the most abundant \\nform, with the overall expression profile not changing significantly in cells \\narrested in mitosis by colchicine or during mid-S, mid-G2, G2/M, and mid-G1 \\nphases of the cell cycle. Modest hyperacetylation of H2B family members was \\nobserved after sodium butyrate treatment. //\\n17103449 / P250R mutation in the FGFR3 gene also known as Muenke syndrome is associated \\nwith coronal craniosynostosis, sensorineural deafness, craniofacial, and digital \\nabnormalities. We report a family with this mutation associated with sudden \\ndeath in an affected newborn, most probably due to upper airway obstruction. //\\noutput: \\n'\n" - ] - }, - { - "name": "stderr", - "output_type": "stream", - "text": [ - "INFO:httpx:HTTP Request: POST https://api.mistral.ai/v1/embeddings \"HTTP/1.1 200 OK\"\n", - "INFO:httpx:HTTP Request: POST https://api.mistral.ai/v1/chat/completions \"HTTP/1.1 200 OK\"\n" - ] - }, - { - "name": "stdout", - "output_type": "stream", - "text": [ - "start parsing ```[\n", - " {\n", - " \"statement\": \"Genes that escape X-chromosome inactivation are related to mental impairment\",\n", - " \"attributed\": \"0\",\n", - " \"reason\": \"The context does not mention any specific genes that escape X-inactivation and their relation to mental impairment\"\n", - " },\n", - " {\n", - " \"statement\": \"Genes that escape X-inactivation are not slow evolving\",\n", - " \"attributed\": \"0\",\n", - " \"reason\": \"The context does not mention anything about the evolution rate of genes that escape X-inactivation\"\n", - " },\n", - " {\n", - " \"statement\": \"Genes that escape X-inactivation have high intraspecific variability in expression\",\n", - " \"attributed\": \"0\",\n", - " \"reason\": \"The context does not mention anything about the variability in expression of genes that escape X-inactivation\"\n", - " }\n", - "]\n", - "``` with prompt prompt_str='Given a context, and an answer, analyze each sentence in the answer and classify if the sentence can be attributed to the given context or not. Use only \"Yes\" (1) or \"No\" (0) as a binary classification. Output json with reason.\\n\\nThe output should be a well-formatted JSON instance that conforms to the JSON schema below.\\n\\nAs an example, for the schema {\"properties\": {\"foo\": {\"title\": \"Foo\", \"description\": \"a list of strings\", \"type\": \"array\", \"items\": {\"type\": \"string\"}}}, \"required\": [\"foo\"]}\\nthe object {\"foo\": [\"bar\", \"baz\"]} is a well-formatted instance of the schema. The object {\"properties\": {\"foo\": [\"bar\", \"baz\"]}} is not well-formatted.\\n\\nHere is the output JSON schema:\\n```\\n{\"type\": \"array\", \"items\": {\"$ref\": \"#/definitions/ContextRecallClassificationAnswer\"}, \"definitions\": {\"ContextRecallClassificationAnswer\": {\"title\": \"ContextRecallClassificationAnswer\", \"type\": \"object\", \"properties\": {\"statement\": {\"title\": \"Statement\", \"type\": \"string\"}, \"attributed\": {\"title\": \"Attributed\", \"type\": \"integer\"}, \"reason\": {\"title\": \"Reason\", \"type\": \"string\"}}, \"required\": [\"statement\", \"attributed\", \"reason\"]}}}\\n```\\n\\nDo not return any preamble or explanations, return only a pure JSON string surrounded by triple backticks (```).\\n\\nExamples:\\n\\nquestion: \"What can you tell me about albert Albert Einstein?\"\\ncontext: \"Albert Einstein (14 March 1879 - 18 April 1955) was a German-born theoretical physicist, widely held to be one of the greatest and most influential scientists of all time. Best known for developing the theory of relativity, he also made important contributions to quantum mechanics, and was thus a central figure in the revolutionary reshaping of the scientific understanding of nature that modern physics accomplished in the first decades of the twentieth century. His mass-energy equivalence formula E = mc2, which arises from relativity theory, has been called \\'the world\\'s most famous equation\\'. He received the 1921 Nobel Prize in Physics \\'for his services to theoretical physics, and especially for his discovery of the law of the photoelectric effect\\', a pivotal step in the development of quantum theory. His work is also known for its influence on the philosophy of science. In a 1999 poll of 130 leading physicists worldwide by the British journal Physics World, Einstein was ranked the greatest physicist of all time. His intellectual achievements and originality have made Einstein synonymous with genius.\"\\nanswer: \"Albert Einstein born in 14 March 1879 was German-born theoretical physicist, widely held to be one of the greatest and most influential scientists of all time. He received the 1921 Nobel Prize in Physics for his services to theoretical physics. He published 4 papers in 1905. Einstein moved to Switzerland in 1895\"\\nclassification: ```[{\"statement\": \"Albert Einstein, born on 14 March 1879, was a German-born theoretical physicist, widely held to be one of the greatest and most influential scientists of all time.\", \"attributed\": 1, \"reason\": \"The date of birth of Einstein is mentioned clearly in the context.\"}, {\"statement\": \"He received the 1921 Nobel Prize in Physics for his services to theoretical physics.\", \"attributed\": 1, \"reason\": \"The exact sentence is present in the given context.\"}, {\"statement\": \"He published 4 papers in 1905.\", \"attributed\": 0, \"reason\": \"There is no mention about papers he wrote in the given context.\"}, {\"statement\": \"Einstein moved to Switzerland in 1895.\", \"attributed\": 0, \"reason\": \"There is no supporting evidence for this in the given context.\"}]```\\n\\nquestion: \"who won 2020 icc world cup?\"\\ncontext: \"The 2022 ICC Men\\'s T20 World Cup, held from October 16 to November 13, 2022, in Australia, was the eighth edition of the tournament. Originally scheduled for 2020, it was postponed due to the COVID-19 pandemic. England emerged victorious, defeating Pakistan by five wickets in the final to clinch their second ICC Men\\'s T20 World Cup title.\"\\nanswer: \"England\"\\nclassification: ```[{\"statement\": \"England won the 2022 ICC Men\\'s T20 World Cup.\", \"attributed\": 1, \"reason\": \"From context it is clear that England defeated Pakistan to win the World Cup.\"}]```\\n\\nquestion: \"What is the primary fuel for the Sun?\"\\ncontext: \"NULL\"\\nanswer: \"Hydrogen\"\\nclassification: ```[{\"statement\": \"The Sun\\'s primary fuel is hydrogen.\", \"attributed\": 0, \"reason\": \"The context contains no information\"}]```\\n\\nYour actual task:\\n\\nquestion: Are genes that escape X-chromosome inactivation related to mental impairment?\\ncontext: 11428324 / Familial craniosynostosis due to Pro250Arg mutation in the fibroblast growth \\nfactor receptor 3 gene. //\\n15683664 / Skin side effects following XRT take place more often in patients with skin \\ndisorders. In this study six patients with psoriatic lesions were evaluated. The \\ntotal/daily XRT dose to the tumor site was 50-70/1.8-2.0 Gy. No debilitating \\neffect of XRT was observed in both the psoriatic lesions and in the surrounding \\nnormal skin. //\\n16570042 / Mobile phone use and risk of acoustic neuroma: results of the interphone \\ncase-control study in five north European countries [corrected]. //\\n17103449 / P250R mutation in the FGFR3 gene also known as Muenke syndrome is associated \\nwith coronal craniosynostosis, sensorineural deafness, craniofacial, and digital \\nabnormalities. We report a family with this mutation associated with sudden \\ndeath in an affected newborn, most probably due to upper airway obstruction. //\\n16457587 / The basis set of protein forms expressed by human cells from the H2B gene family \\nwas determined by Top Down Mass Spectrometry. Using Electron Capture \\nDissociation for MS/MS of H2B isoforms, direct evidence for the expression of \\nunmodified H2B.Q, H2B.A, H2B.K/T, H2B.J, H2B.E, H2B.B, H2B.F, and monoacetylated \\nH2B.A was obtained from asynchronous HeLa cells. H2B.A was the most abundant \\nform, with the overall expression profile not changing significantly in cells \\narrested in mitosis by colchicine or during mid-S, mid-G2, G2/M, and mid-G1 \\nphases of the cell cycle. Modest hyperacetylation of H2B family members was \\nobserved after sodium butyrate treatment. //\\nanswer: Yes. Genes that escape X-inactivation in humans have high intraspecific variability in expression, are associated with mental impairment but are not slow evolving.\\nclassification: \\n'\n" - ] - }, - { - "name": "stderr", - "output_type": "stream", - "text": [ - "INFO:httpx:HTTP Request: POST https://api.mistral.ai/v1/chat/completions \"HTTP/1.1 200 OK\"\n" - ] - }, - { - "name": "stdout", - "output_type": "stream", - "text": [ - "start parsing [\n", - "{\"statement\": \"Abnormal dosage of ultraconserved elements is disfavored in cancer cells.\", \"attributed\": 0, \"reason\": \"The context does not provide information about ultraconserved elements or their abnormal dosage in cancer cells.\"},\n", - "{\"statement\": \"Abnormal dosage of ultraconserved elements is highly disfavored in healthy cells but not cancer cells.\", \"attributed\": 0, \"reason\": \"The context does not provide information about ultraconserved elements or their abnormal dosage in healthy or cancer cells.\"}\n", - "] with prompt prompt_str='Given a context, and an answer, analyze each sentence in the answer and classify if the sentence can be attributed to the given context or not. Use only \"Yes\" (1) or \"No\" (0) as a binary classification. Output json with reason.\\n\\nThe output should be a well-formatted JSON instance that conforms to the JSON schema below.\\n\\nAs an example, for the schema {\"properties\": {\"foo\": {\"title\": \"Foo\", \"description\": \"a list of strings\", \"type\": \"array\", \"items\": {\"type\": \"string\"}}}, \"required\": [\"foo\"]}\\nthe object {\"foo\": [\"bar\", \"baz\"]} is a well-formatted instance of the schema. The object {\"properties\": {\"foo\": [\"bar\", \"baz\"]}} is not well-formatted.\\n\\nHere is the output JSON schema:\\n```\\n{\"type\": \"array\", \"items\": {\"$ref\": \"#/definitions/ContextRecallClassificationAnswer\"}, \"definitions\": {\"ContextRecallClassificationAnswer\": {\"title\": \"ContextRecallClassificationAnswer\", \"type\": \"object\", \"properties\": {\"statement\": {\"title\": \"Statement\", \"type\": \"string\"}, \"attributed\": {\"title\": \"Attributed\", \"type\": \"integer\"}, \"reason\": {\"title\": \"Reason\", \"type\": \"string\"}}, \"required\": [\"statement\", \"attributed\", \"reason\"]}}}\\n```\\n\\nDo not return any preamble or explanations, return only a pure JSON string surrounded by triple backticks (```).\\n\\nExamples:\\n\\nquestion: \"What can you tell me about albert Albert Einstein?\"\\ncontext: \"Albert Einstein (14 March 1879 - 18 April 1955) was a German-born theoretical physicist, widely held to be one of the greatest and most influential scientists of all time. Best known for developing the theory of relativity, he also made important contributions to quantum mechanics, and was thus a central figure in the revolutionary reshaping of the scientific understanding of nature that modern physics accomplished in the first decades of the twentieth century. His mass-energy equivalence formula E = mc2, which arises from relativity theory, has been called \\'the world\\'s most famous equation\\'. He received the 1921 Nobel Prize in Physics \\'for his services to theoretical physics, and especially for his discovery of the law of the photoelectric effect\\', a pivotal step in the development of quantum theory. His work is also known for its influence on the philosophy of science. In a 1999 poll of 130 leading physicists worldwide by the British journal Physics World, Einstein was ranked the greatest physicist of all time. His intellectual achievements and originality have made Einstein synonymous with genius.\"\\nanswer: \"Albert Einstein born in 14 March 1879 was German-born theoretical physicist, widely held to be one of the greatest and most influential scientists of all time. He received the 1921 Nobel Prize in Physics for his services to theoretical physics. He published 4 papers in 1905. Einstein moved to Switzerland in 1895\"\\nclassification: ```[{\"statement\": \"Albert Einstein, born on 14 March 1879, was a German-born theoretical physicist, widely held to be one of the greatest and most influential scientists of all time.\", \"attributed\": 1, \"reason\": \"The date of birth of Einstein is mentioned clearly in the context.\"}, {\"statement\": \"He received the 1921 Nobel Prize in Physics for his services to theoretical physics.\", \"attributed\": 1, \"reason\": \"The exact sentence is present in the given context.\"}, {\"statement\": \"He published 4 papers in 1905.\", \"attributed\": 0, \"reason\": \"There is no mention about papers he wrote in the given context.\"}, {\"statement\": \"Einstein moved to Switzerland in 1895.\", \"attributed\": 0, \"reason\": \"There is no supporting evidence for this in the given context.\"}]```\\n\\nquestion: \"who won 2020 icc world cup?\"\\ncontext: \"The 2022 ICC Men\\'s T20 World Cup, held from October 16 to November 13, 2022, in Australia, was the eighth edition of the tournament. Originally scheduled for 2020, it was postponed due to the COVID-19 pandemic. England emerged victorious, defeating Pakistan by five wickets in the final to clinch their second ICC Men\\'s T20 World Cup title.\"\\nanswer: \"England\"\\nclassification: ```[{\"statement\": \"England won the 2022 ICC Men\\'s T20 World Cup.\", \"attributed\": 1, \"reason\": \"From context it is clear that England defeated Pakistan to win the World Cup.\"}]```\\n\\nquestion: \"What is the primary fuel for the Sun?\"\\ncontext: \"NULL\"\\nanswer: \"Hydrogen\"\\nclassification: ```[{\"statement\": \"The Sun\\'s primary fuel is hydrogen.\", \"attributed\": 0, \"reason\": \"The context contains no information\"}]```\\n\\nYour actual task:\\n\\nquestion: Is the abnormal dosage of ultraconserved elements disfavored in cancer cells?\\ncontext: 11428324 / Familial craniosynostosis due to Pro250Arg mutation in the fibroblast growth \\nfactor receptor 3 gene. //\\n15683664 / Skin side effects following XRT take place more often in patients with skin \\ndisorders. In this study six patients with psoriatic lesions were evaluated. The \\ntotal/daily XRT dose to the tumor site was 50-70/1.8-2.0 Gy. No debilitating \\neffect of XRT was observed in both the psoriatic lesions and in the surrounding \\nnormal skin. //\\n16570042 / Mobile phone use and risk of acoustic neuroma: results of the interphone \\ncase-control study in five north European countries [corrected]. //\\n16457587 / The basis set of protein forms expressed by human cells from the H2B gene family \\nwas determined by Top Down Mass Spectrometry. Using Electron Capture \\nDissociation for MS/MS of H2B isoforms, direct evidence for the expression of \\nunmodified H2B.Q, H2B.A, H2B.K/T, H2B.J, H2B.E, H2B.B, H2B.F, and monoacetylated \\nH2B.A was obtained from asynchronous HeLa cells. H2B.A was the most abundant \\nform, with the overall expression profile not changing significantly in cells \\narrested in mitosis by colchicine or during mid-S, mid-G2, G2/M, and mid-G1 \\nphases of the cell cycle. Modest hyperacetylation of H2B family members was \\nobserved after sodium butyrate treatment. //\\n17103449 / P250R mutation in the FGFR3 gene also known as Muenke syndrome is associated \\nwith coronal craniosynostosis, sensorineural deafness, craniofacial, and digital \\nabnormalities. We report a family with this mutation associated with sudden \\ndeath in an affected newborn, most probably due to upper airway obstruction. //\\nanswer: No. Abnormal dosage of ultraconserved elements is highly disfavored in healthy cells but not cancer cells.\\nclassification: \\n'\n" - ] - }, - { - "name": "stderr", - "output_type": "stream", - "text": [ - "INFO:httpx:HTTP Request: POST https://api.mistral.ai/v1/chat/completions \"HTTP/1.1 200 OK\"\n" - ] - }, - { - "name": "stdout", - "output_type": "stream", - "text": [ - "start parsing ```[\n", - " {\n", - " \"sentence_index\": 0,\n", - " \"simpler_statements\": [\n", - " \"The CYP2C19*2 and CYP2C19*3 alleles are both loss-of-function mutations.\",\n", - " \"These alleles are in the CYP2C19 gene.\",\n", - " \"The CYP2C19 gene encodes the enzyme CYP2C19.\"\n", - " ]\n", - " },\n", - " {\n", - " \"sentence_index\": 1,\n", - " \"simpler_statements\": [\n", - " \"The enzyme CYP2C19 is involved in the metabolism of several drugs.\",\n", - " \"Clopidogrel is an example of such a drug.\",\n", - " \"Clopidogrel is used to prevent blood clots in patients with cardiovascular disease.\"\n", - " ]\n", - " },\n", - " {\n", - " \"sentence_index\": 2,\n", - " \"simpler_statements\": [\n", - " \"The CYP2C19*2 allele is a 681G>A mutation.\",\n", - " \"This mutation results in a premature stop codon.\",\n", - " \"The premature stop codon leads to a truncated protein.\",\n", - " \"The truncated protein lacks the C-terminal region.\",\n", - " \"The C-terminal region is essential for enzyme function.\",\n", - " \"This mutation results in a complete loss of enzyme activity.\"\n", - " ]\n", - " },\n", - " {\n", - " \"sentence_index\": 4,\n", - " \"simpler_statements\": [\n", - " \"The CYP2C19*3 allele is a 745G>A mutation.\",\n", - " \"This mutation results in a frameshift.\",\n", - " \"The frameshift leads to a truncated protein.\",\n", - " \"The truncated protein lacks the majority of the enzyme's catalytic domain.\",\n", - " \"This mutation also results in a complete loss of enzyme activity.\"\n", - " ]\n", - " },\n", - " {\n", - " \"sentence_index\": 6,\n", - " \"simpler_statements\": [\n", - " \"Individuals who are homozygous for either of these alleles or heterozygous for both alleles\",\n", - " \"will have a complete loss of CYP2C19 function.\",\n", - " \"This can result in reduced efficacy of clopidogrel and an increased risk of cardiovascular events.\",\n", - " \"This is known as the 'CYP2C19 poor metabolizer' phenotype.\"\n", - " ]\n", - " }\n", - "]\n", - "``` with prompt prompt_str='Given a question, an answer, and sentences from the answer analyze the complexity of each sentence given under \\'sentences\\' and break down each sentence into one or more fully understandable statements while also ensuring no pronouns are used in each statement. Format the outputs in JSON.\\n\\nThe output should be a well-formatted JSON instance that conforms to the JSON schema below.\\n\\nAs an example, for the schema {\"properties\": {\"foo\": {\"title\": \"Foo\", \"description\": \"a list of strings\", \"type\": \"array\", \"items\": {\"type\": \"string\"}}}, \"required\": [\"foo\"]}\\nthe object {\"foo\": [\"bar\", \"baz\"]} is a well-formatted instance of the schema. The object {\"properties\": {\"foo\": [\"bar\", \"baz\"]}} is not well-formatted.\\n\\nHere is the output JSON schema:\\n```\\n{\"type\": \"array\", \"items\": {\"$ref\": \"#/definitions/Statements\"}, \"definitions\": {\"Statements\": {\"title\": \"Statements\", \"type\": \"object\", \"properties\": {\"sentence_index\": {\"title\": \"Sentence Index\", \"description\": \"Index of the sentence from the statement list\", \"type\": \"integer\"}, \"simpler_statements\": {\"title\": \"Simpler Statements\", \"description\": \"the simpler statements\", \"type\": \"array\", \"items\": {\"type\": \"string\"}}}, \"required\": [\"sentence_index\", \"simpler_statements\"]}}}\\n```\\n\\nDo not return any preamble or explanations, return only a pure JSON string surrounded by triple backticks (```).\\n\\nExamples:\\n\\nquestion: \"Who was Albert Einstein and what is he best known for?\"\\nanswer: \"He was a German-born theoretical physicist, widely acknowledged to be one of the greatest and most influential physicists of all time. He was best known for developing the theory of relativity, he also made important contributions to the development of the theory of quantum mechanics.\"\\nsentences: \"\\\\n 0:He was a German-born theoretical physicist, widely acknowledged to be one of the greatest and most influential physicists of all time. \\\\n 1:He was best known for developing the theory of relativity, he also made important contributions to the development of the theory of quantum mechanics.\\\\n \"\\nanalysis: ```[{\"sentence_index\": 0, \"simpler_statements\": [\"Albert Einstein was a German-born theoretical physicist.\", \"Albert Einstein is recognized as one of the greatest and most influential physicists of all time.\"]}, {\"sentence_index\": 1, \"simpler_statements\": [\"Albert Einstein was best known for developing the theory of relativity.\", \"Albert Einstein also made important contributions to the development of the theory of quantum mechanics.\"]}]```\\n\\nYour actual task:\\n\\nquestion: What is the effect of the alleles CYP2C19*2 and CYP2C19*3 on CYP2C19 function?\\nanswer: The CYP2C19*2 and CYP2C19*3 alleles are both loss-of-function mutations in the CYP2C19 gene, which encodes the enzyme CYP2C19. This enzyme is involved in the metabolism of several drugs, including clopidogrel, a medication used to prevent blood clots in patients with cardiovascular disease.\\n\\nThe CYP2C19*2 allele is a 681G>A mutation that results in a premature stop codon, leading to a truncated protein that lacks the C-terminal region, which is essential for enzyme function. This mutation results in a complete loss of enzyme activity.\\n\\nThe CYP2C19*3 allele is a 745G>A mutation that results in a frameshift, leading to a truncated protein that lacks the majority of the enzyme\\'s catalytic domain. This mutation also results in a complete loss of enzyme activity.\\n\\nIndividuals who are homozygous for either of these alleles or heterozygous for both alleles will have a complete loss of CYP2C19 function, which can result in reduced efficacy of clopidogrel and an increased risk of cardiovascular events. This is known as the \"CYP2C19 poor metabolizer\" phenotype.\\n\\nIn summary, the C\\nsentences: 0:The CYP2C19*2 and CYP2C19*3 alleles are both loss-of-function mutations in the CYP2C19 gene, which encodes the enzyme CYP2C19. \\n1:This enzyme is involved in the metabolism of several drugs, including clopidogrel, a medication used to prevent blood clots in patients with cardiovascular disease.\\n\\n\\n2:The CYP2C19*2 allele is a 681G>A mutation that results in a premature stop codon, leading to a truncated protein that lacks the C-terminal region, which is essential for enzyme function. \\n3:This mutation results in a complete loss of enzyme activity.\\n\\n\\n4:The CYP2C19*3 allele is a 745G>A mutation that results in a frameshift, leading to a truncated protein that lacks the majority of the enzyme\\'s catalytic domain. \\n5:This mutation also results in a complete loss of enzyme activity.\\n\\n\\n6:Individuals who are homozygous for either of these alleles or heterozygous for both alleles will have a complete loss of CYP2C19 function, which can result in reduced efficacy of clopidogrel and an increased risk of cardiovascular events. \\n7:This is known as the \"CYP2C19 poor metabolizer\" phenotype.\\n\\n\\nanalysis: \\n'\n" - ] - }, - { - "name": "stderr", - "output_type": "stream", - "text": [ - "INFO:httpx:HTTP Request: POST https://api.mistral.ai/v1/chat/completions \"HTTP/1.1 200 OK\"\n" - ] - }, - { - "name": "stdout", - "output_type": "stream", - "text": [ - "start parsing [\n", - "{\"statement\": \"The CYP2C19*2 and CYP2C19*3 alleles are both loss-of-function mutations.\", \"reason\": \"The statement is not related to the context, as the context does not mention anything about the CYP2C19 gene or its alleles.\", \"verdict\": 0},\n", - "{\"statement\": \"These alleles are in the CYP2C19 gene.\", \"reason\": \"The statement is not related to the context, as the context does not mention anything about the CYP2C19 gene or its alleles.\", \"verdict\": 0},\n", - "{\"statement\": \"The CYP2C19 gene encodes the enzyme CYP2C19.\", \"reason\": \"The statement is not related to the context, as the context does not mention anything about the CYP2C19 gene or its alleles.\", \"verdict\": 0},\n", - "{\"statement\": \"The enzyme CYP2C19 is involved in the metabolism of several drugs.\", \"reason\": \"The statement is not related to the context, as the context does not mention anything about the CYP2C19 gene or its alleles.\", \"verdict\": 0},\n", - "{\"statement\": \"Clopidogrel is an example of such a drug.\", \"reason\": \"The statement is not related to the context, as the context does not mention anything about the CYP2C19 gene or its alleles.\", \"verdict\": 0},\n", - "{\"statement\": \"Clopidogrel is used to prevent blood clots in patients with cardiovascular disease.\", \"reason\": \"The statement is not related to the context, as the context does not mention anything about the CYP2C19 gene or its alleles.\", \"verdict\": 0},\n", - "{\"statement\": \"The CYP2C19*2 allele is a 681G>A mutation.\", \"reason\": \"The statement is not related to the context, as the context does not mention anything about the CYP2C19 gene or its alleles.\", \"verdict\": 0},\n", - "{\"statement\": \"This mutation results in a premature stop codon.\", \"reason\": \"The statement is not related to the context, as the context does not mention anything about the CYP2C19 gene or its alleles.\", \"verdict\": 0},\n", - "{\"statement\": \"The premature stop codon leads to a truncated protein.\", \"reason\": \"The statement is not related to the context, as the context does not mention anything about the CYP2C19 gene or its alleles.\", \"verdict\": 0},\n", - "{\"statement\": \"The truncated protein lacks the C-terminal region.\", \"reason\": \"The statement is not related to the context, as the context does not mention anything about the CYP2C19 gene or its alleles.\", \"verdict\": 0},\n", - "{\"statement\": \"The C-terminal region is essential for enzyme function.\", \"reason\": \"The statement is not related to the context, as the context does not mention anything about the CYP2C19 gene or its alleles.\", \"verdict\": 0},\n", - "{\"statement\": \"This mutation results in a complete loss of enzyme activity.\", \"reason\": \"The statement is not related to the context, as the context does not mention anything about the CYP2C19 gene or its alleles.\", \"verdict\": 0},\n", - "{\"statement\": \"The CYP2C19*3 allele is a 745G>A mutation.\", \"reason\": \"The statement is not related to the context, as the context does not mention anything about the CYP2C19 gene or its alleles.\", \"verdict\": 0},\n", - "{\"statement\": \"This mutation results in a frameshift.\", \"reason\": \"The statement is not related to the context, as the context does not mention anything about the CYP2C19 gene or its alleles.\", \"verdict\": 0},\n", - "{\"statement\": \"The frameshift leads to a truncated protein.\", \"reason\": \"The statement is not related to the context, as the context does not mention anything about the CYP2C19 gene or its alleles.\", \"verdict\": 0},\n", - "{\"statement\": \"The truncated protein lacks the majority of the enzyme's catalytic domain.\", \"reason\": \"The statement is not related to the context, as the context does not mention anything about the CYP2C19 gene or its alleles.\", \"verdict\": 0},\n", - "{\"statement\": \"This mutation also results in a complete loss of enzyme activity.\", \"reason\": \"The statement is not related to the context, as the context does not mention anything about the CYP2C19 gene or its alleles.\", \"verdict\": 0},\n", - "{\"statement\": \"Individuals who are homozygous for either of these alleles or heterozygous for both alleles will have a complete loss of CYP2C19 function.\", \"reason\": \"The statement is not related to the context, as the context does not mention anything about the CYP2C19 gene or its alleles.\", \"verdict\": 0},\n", - "{\"statement\": \"This can result in reduced efficacy of clopidogrel and an increased risk of cardiovascular events.\", \"reason\": \"The statement is not related to the context, as the context does not mention anything about the CYP2C19 gene or its alleles.\", \"verdict\": 0},\n", - "{\"statement\": \"This is known as the 'CYP2C19 poor metabolizer' phenotype.\", \"reason\": \"The statement is not related to the context, as the context does not mention anything about the CYP2C19 gene or its alleles.\", \"verdict\": 0}\n", - "] with prompt prompt_str='Your task is to judge the faithfulness of a series of statements based on a given context. For each statement you must return verdict as 1 if the statement can be directly inferred based on the context or 0 if the statement can not be directly inferred based on the context.\\n\\nThe output should be a well-formatted JSON instance that conforms to the JSON schema below.\\n\\nAs an example, for the schema {\"properties\": {\"foo\": {\"title\": \"Foo\", \"description\": \"a list of strings\", \"type\": \"array\", \"items\": {\"type\": \"string\"}}}, \"required\": [\"foo\"]}\\nthe object {\"foo\": [\"bar\", \"baz\"]} is a well-formatted instance of the schema. The object {\"properties\": {\"foo\": [\"bar\", \"baz\"]}} is not well-formatted.\\n\\nHere is the output JSON schema:\\n```\\n{\"type\": \"array\", \"items\": {\"$ref\": \"#/definitions/StatementFaithfulnessAnswer\"}, \"definitions\": {\"StatementFaithfulnessAnswer\": {\"title\": \"StatementFaithfulnessAnswer\", \"type\": \"object\", \"properties\": {\"statement\": {\"title\": \"Statement\", \"description\": \"the original statement, word-by-word\", \"type\": \"string\"}, \"reason\": {\"title\": \"Reason\", \"description\": \"the reason of the verdict\", \"type\": \"string\"}, \"verdict\": {\"title\": \"Verdict\", \"description\": \"the verdict(0/1) of the faithfulness.\", \"type\": \"integer\"}}, \"required\": [\"statement\", \"reason\", \"verdict\"]}}}\\n```\\n\\nDo not return any preamble or explanations, return only a pure JSON string surrounded by triple backticks (```).\\n\\nExamples:\\n\\ncontext: \"John is a student at XYZ University. He is pursuing a degree in Computer Science. He is enrolled in several courses this semester, including Data Structures, Algorithms, and Database Management. John is a diligent student and spends a significant amount of time studying and completing assignments. He often stays late in the library to work on his projects.\"\\nstatements: ```[\"John is majoring in Biology.\", \"John is taking a course on Artificial Intelligence.\", \"John is a dedicated student.\", \"John has a part-time job.\"]```\\nanswer: ```[{\"statement\": \"John is majoring in Biology.\", \"reason\": \"John\\'s major is explicitly mentioned as Computer Science. There is no information suggesting he is majoring in Biology.\", \"verdict\": 0}, {\"statement\": \"John is taking a course on Artificial Intelligence.\", \"reason\": \"The context mentions the courses John is currently enrolled in, and Artificial Intelligence is not mentioned. Therefore, it cannot be deduced that John is taking a course on AI.\", \"verdict\": 0}, {\"statement\": \"John is a dedicated student.\", \"reason\": \"The context states that he spends a significant amount of time studying and completing assignments. Additionally, it mentions that he often stays late in the library to work on his projects, which implies dedication.\", \"verdict\": 1}, {\"statement\": \"John has a part-time job.\", \"reason\": \"There is no information given in the context about John having a part-time job.\", \"verdict\": 0}]```\\n\\ncontext: \"Photosynthesis is a process used by plants, algae, and certain bacteria to convert light energy into chemical energy.\"\\nstatements: ```[\"Albert Einstein was a genius.\"]```\\nanswer: ```[{\"statement\": \"Albert Einstein was a genius.\", \"reason\": \"The context and statement are unrelated\", \"verdict\": 0}]```\\n\\nYour actual task:\\n\\ncontext: 11428324 / Familial craniosynostosis due to Pro250Arg mutation in the fibroblast growth \\nfactor receptor 3 gene. //\\n15683664 / Skin side effects following XRT take place more often in patients with skin \\ndisorders. In this study six patients with psoriatic lesions were evaluated. The \\ntotal/daily XRT dose to the tumor site was 50-70/1.8-2.0 Gy. No debilitating \\neffect of XRT was observed in both the psoriatic lesions and in the surrounding \\nnormal skin. //\\n16570042 / Mobile phone use and risk of acoustic neuroma: results of the interphone \\ncase-control study in five north European countries [corrected]. //\\n16457587 / The basis set of protein forms expressed by human cells from the H2B gene family \\nwas determined by Top Down Mass Spectrometry. Using Electron Capture \\nDissociation for MS/MS of H2B isoforms, direct evidence for the expression of \\nunmodified H2B.Q, H2B.A, H2B.K/T, H2B.J, H2B.E, H2B.B, H2B.F, and monoacetylated \\nH2B.A was obtained from asynchronous HeLa cells. H2B.A was the most abundant \\nform, with the overall expression profile not changing significantly in cells \\narrested in mitosis by colchicine or during mid-S, mid-G2, G2/M, and mid-G1 \\nphases of the cell cycle. Modest hyperacetylation of H2B family members was \\nobserved after sodium butyrate treatment. //\\n17103449 / P250R mutation in the FGFR3 gene also known as Muenke syndrome is associated \\nwith coronal craniosynostosis, sensorineural deafness, craniofacial, and digital \\nabnormalities. We report a family with this mutation associated with sudden \\ndeath in an affected newborn, most probably due to upper airway obstruction. //\\nstatements: [\"The CYP2C19*2 and CYP2C19*3 alleles are both loss-of-function mutations.\", \"These alleles are in the CYP2C19 gene.\", \"The CYP2C19 gene encodes the enzyme CYP2C19.\", \"The enzyme CYP2C19 is involved in the metabolism of several drugs.\", \"Clopidogrel is an example of such a drug.\", \"Clopidogrel is used to prevent blood clots in patients with cardiovascular disease.\", \"The CYP2C19*2 allele is a 681G>A mutation.\", \"This mutation results in a premature stop codon.\", \"The premature stop codon leads to a truncated protein.\", \"The truncated protein lacks the C-terminal region.\", \"The C-terminal region is essential for enzyme function.\", \"This mutation results in a complete loss of enzyme activity.\", \"The CYP2C19*3 allele is a 745G>A mutation.\", \"This mutation results in a frameshift.\", \"The frameshift leads to a truncated protein.\", \"The truncated protein lacks the majority of the enzyme\\'s catalytic domain.\", \"This mutation also results in a complete loss of enzyme activity.\", \"Individuals who are homozygous for either of these alleles or heterozygous for both alleles\", \"will have a complete loss of CYP2C19 function.\", \"This can result in reduced efficacy of clopidogrel and an increased risk of cardiovascular events.\", \"This is known as the \\'CYP2C19 poor metabolizer\\' phenotype.\"]\\nanswer: \\n'\n" - ] - }, - { - "name": "stderr", - "output_type": "stream", - "text": [ - "INFO:httpx:HTTP Request: POST https://api.mistral.ai/v1/chat/completions \"HTTP/1.1 200 OK\"\n" - ] - }, - { - "name": "stdout", - "output_type": "stream", - "text": [ - "start parsing ```json\n", - "{\"entities\": [\"X-inactivation\", \"humans\", \"mental impairment\"]}\n", - "``` with prompt prompt_str='Given a text, extract unique entities without repetition. Ensure you consider different forms or mentions of the same entity as a single entity.\\n\\nThe output should be a well-formatted JSON instance that conforms to the JSON schema below.\\n\\nAs an example, for the schema {\"properties\": {\"foo\": {\"title\": \"Foo\", \"description\": \"a list of strings\", \"type\": \"array\", \"items\": {\"type\": \"string\"}}}, \"required\": [\"foo\"]}\\nthe object {\"foo\": [\"bar\", \"baz\"]} is a well-formatted instance of the schema. The object {\"properties\": {\"foo\": [\"bar\", \"baz\"]}} is not well-formatted.\\n\\nHere is the output JSON schema:\\n```\\n{\"type\": \"object\", \"properties\": {\"entities\": {\"title\": \"Entities\", \"type\": \"array\", \"items\": {\"type\": \"string\"}}}, \"required\": [\"entities\"]}\\n```\\n\\nDo not return any preamble or explanations, return only a pure JSON string surrounded by triple backticks (```).\\n\\nExamples:\\n\\ntext: \"The Eiffel Tower, located in Paris, France, is one of the most iconic landmarks globally.\\\\n Millions of visitors are attracted to it each year for its breathtaking views of the city.\\\\n Completed in 1889, it was constructed in time for the 1889 World\\'s Fair.\"\\noutput: ```{\"entities\": [\"Eiffel Tower\", \"Paris\", \"France\", \"1889\", \"World\\'s Fair\"]}```\\n\\ntext: \"The Colosseum in Rome, also known as the Flavian Amphitheatre, stands as a monument to Roman architectural and engineering achievement.\\\\n Construction began under Emperor Vespasian in AD 70 and was completed by his son Titus in AD 80.\\\\n It could hold between 50,000 and 80,000 spectators who watched gladiatorial contests and public spectacles.\"\\noutput: ```{\"entities\": [\"Colosseum\", \"Rome\", \"Flavian Amphitheatre\", \"Vespasian\", \"AD 70\", \"Titus\", \"AD 80\"]}```\\n\\ntext: \"The Great Wall of China, stretching over 21,196 kilometers from east to west, is a marvel of ancient defensive architecture.\\\\n Built to protect against invasions from the north, its construction started as early as the 7th century BC.\\\\n Today, it is a UNESCO World Heritage Site and a major tourist attraction.\"\\noutput: ```{\"entities\": [\"Great Wall of China\", \"21,196 kilometers\", \"7th century BC\", \"UNESCO World Heritage Site\"]}```\\n\\ntext: \"The Apollo 11 mission, which launched on July 16, 1969, marked the first time humans landed on the Moon.\\\\n Astronauts Neil Armstrong, Buzz Aldrin, and Michael Collins made history, with Armstrong being the first man to step on the lunar surface.\\\\n This event was a significant milestone in space exploration.\"\\noutput: ```{\"entities\": [\"Apollo 11 mission\", \"July 16, 1969\", \"Moon\", \"Neil Armstrong\", \"Buzz Aldrin\", \"Michael Collins\"]}```\\n\\nYour actual task:\\n\\ntext: Yes. Genes that escape X-inactivation in humans have high intraspecific variability in expression, are associated with mental impairment but are not slow evolving.\\noutput: \\n'\n" - ] - }, - { - "name": "stderr", - "output_type": "stream", - "text": [ - "INFO:httpx:HTTP Request: POST https://api.mistral.ai/v1/chat/completions \"HTTP/1.1 200 OK\"\n" - ] - }, - { - "name": "stdout", - "output_type": "stream", - "text": [ - "start parsing ```json\n", - "{\"entities\": [\"Familial craniosynostosis\", \"Pro250Arg mutation\", \"fibroblast growth factor receptor 3 gene\", \"skin disorders\", \"psoriatic lesions\", \"XRT\", \"tumor site\", \"Gy\", \"mobile phone use\", \"acoustic neuroma\", \"Interphone case-control study\", \"north European countries\", \"Muenke syndrome\", \"coronal craniosynostosis\", \"sensorineural deafness\", \"craniofacial abnormalities\", \"digital abnormalities\", \"upper airway obstruction\", \"Top Down Mass Spectrometry\", \"Electron Capture Dissociation\", \"MS/MS\", \"H2B gene family\", \"H2B.Q\", \"H2B.A\", \"H2B.K/T\", \"H2B.J\", \"H2B.E\", \"H2B.B\", \"H2B.F\", \"monoacetylated H2B.A\", \"asynchronous HeLa cells\", \"colchicine\", \"cell cycle phases\", \"sodium butyrate treatment\"]}\n", - "``` with prompt prompt_str='Given a text, extract unique entities without repetition. Ensure you consider different forms or mentions of the same entity as a single entity.\\n\\nThe output should be a well-formatted JSON instance that conforms to the JSON schema below.\\n\\nAs an example, for the schema {\"properties\": {\"foo\": {\"title\": \"Foo\", \"description\": \"a list of strings\", \"type\": \"array\", \"items\": {\"type\": \"string\"}}}, \"required\": [\"foo\"]}\\nthe object {\"foo\": [\"bar\", \"baz\"]} is a well-formatted instance of the schema. The object {\"properties\": {\"foo\": [\"bar\", \"baz\"]}} is not well-formatted.\\n\\nHere is the output JSON schema:\\n```\\n{\"type\": \"object\", \"properties\": {\"entities\": {\"title\": \"Entities\", \"type\": \"array\", \"items\": {\"type\": \"string\"}}}, \"required\": [\"entities\"]}\\n```\\n\\nDo not return any preamble or explanations, return only a pure JSON string surrounded by triple backticks (```).\\n\\nExamples:\\n\\ntext: \"The Eiffel Tower, located in Paris, France, is one of the most iconic landmarks globally.\\\\n Millions of visitors are attracted to it each year for its breathtaking views of the city.\\\\n Completed in 1889, it was constructed in time for the 1889 World\\'s Fair.\"\\noutput: ```{\"entities\": [\"Eiffel Tower\", \"Paris\", \"France\", \"1889\", \"World\\'s Fair\"]}```\\n\\ntext: \"The Colosseum in Rome, also known as the Flavian Amphitheatre, stands as a monument to Roman architectural and engineering achievement.\\\\n Construction began under Emperor Vespasian in AD 70 and was completed by his son Titus in AD 80.\\\\n It could hold between 50,000 and 80,000 spectators who watched gladiatorial contests and public spectacles.\"\\noutput: ```{\"entities\": [\"Colosseum\", \"Rome\", \"Flavian Amphitheatre\", \"Vespasian\", \"AD 70\", \"Titus\", \"AD 80\"]}```\\n\\ntext: \"The Great Wall of China, stretching over 21,196 kilometers from east to west, is a marvel of ancient defensive architecture.\\\\n Built to protect against invasions from the north, its construction started as early as the 7th century BC.\\\\n Today, it is a UNESCO World Heritage Site and a major tourist attraction.\"\\noutput: ```{\"entities\": [\"Great Wall of China\", \"21,196 kilometers\", \"7th century BC\", \"UNESCO World Heritage Site\"]}```\\n\\ntext: \"The Apollo 11 mission, which launched on July 16, 1969, marked the first time humans landed on the Moon.\\\\n Astronauts Neil Armstrong, Buzz Aldrin, and Michael Collins made history, with Armstrong being the first man to step on the lunar surface.\\\\n This event was a significant milestone in space exploration.\"\\noutput: ```{\"entities\": [\"Apollo 11 mission\", \"July 16, 1969\", \"Moon\", \"Neil Armstrong\", \"Buzz Aldrin\", \"Michael Collins\"]}```\\n\\nYour actual task:\\n\\ntext: 11428324 / Familial craniosynostosis due to Pro250Arg mutation in the fibroblast growth \\nfactor receptor 3 gene. //\\n15683664 / Skin side effects following XRT take place more often in patients with skin \\ndisorders. In this study six patients with psoriatic lesions were evaluated. The \\ntotal/daily XRT dose to the tumor site was 50-70/1.8-2.0 Gy. No debilitating \\neffect of XRT was observed in both the psoriatic lesions and in the surrounding \\nnormal skin. //\\n16570042 / Mobile phone use and risk of acoustic neuroma: results of the interphone \\ncase-control study in five north European countries [corrected]. //\\n17103449 / P250R mutation in the FGFR3 gene also known as Muenke syndrome is associated \\nwith coronal craniosynostosis, sensorineural deafness, craniofacial, and digital \\nabnormalities. We report a family with this mutation associated with sudden \\ndeath in an affected newborn, most probably due to upper airway obstruction. //\\n16457587 / The basis set of protein forms expressed by human cells from the H2B gene family \\nwas determined by Top Down Mass Spectrometry. Using Electron Capture \\nDissociation for MS/MS of H2B isoforms, direct evidence for the expression of \\nunmodified H2B.Q, H2B.A, H2B.K/T, H2B.J, H2B.E, H2B.B, H2B.F, and monoacetylated \\nH2B.A was obtained from asynchronous HeLa cells. H2B.A was the most abundant \\nform, with the overall expression profile not changing significantly in cells \\narrested in mitosis by colchicine or during mid-S, mid-G2, G2/M, and mid-G1 \\nphases of the cell cycle. Modest hyperacetylation of H2B family members was \\nobserved after sodium butyrate treatment. //\\noutput: \\n'\n" - ] - }, - { - "name": "stderr", - "output_type": "stream", - "text": [ - "INFO:httpx:HTTP Request: POST https://api.mistral.ai/v1/chat/completions \"HTTP/1.1 200 OK\"\n" - ] - }, - { - "name": "stdout", - "output_type": "stream", - "text": [ - "start parsing `{\"entities\": [\"ultraconserved elements\", \"healthy cells\", \"cancer cells\"]}` with prompt prompt_str='Given a text, extract unique entities without repetition. Ensure you consider different forms or mentions of the same entity as a single entity.\\n\\nThe output should be a well-formatted JSON instance that conforms to the JSON schema below.\\n\\nAs an example, for the schema {\"properties\": {\"foo\": {\"title\": \"Foo\", \"description\": \"a list of strings\", \"type\": \"array\", \"items\": {\"type\": \"string\"}}}, \"required\": [\"foo\"]}\\nthe object {\"foo\": [\"bar\", \"baz\"]} is a well-formatted instance of the schema. The object {\"properties\": {\"foo\": [\"bar\", \"baz\"]}} is not well-formatted.\\n\\nHere is the output JSON schema:\\n```\\n{\"type\": \"object\", \"properties\": {\"entities\": {\"title\": \"Entities\", \"type\": \"array\", \"items\": {\"type\": \"string\"}}}, \"required\": [\"entities\"]}\\n```\\n\\nDo not return any preamble or explanations, return only a pure JSON string surrounded by triple backticks (```).\\n\\nExamples:\\n\\ntext: \"The Eiffel Tower, located in Paris, France, is one of the most iconic landmarks globally.\\\\n Millions of visitors are attracted to it each year for its breathtaking views of the city.\\\\n Completed in 1889, it was constructed in time for the 1889 World\\'s Fair.\"\\noutput: ```{\"entities\": [\"Eiffel Tower\", \"Paris\", \"France\", \"1889\", \"World\\'s Fair\"]}```\\n\\ntext: \"The Colosseum in Rome, also known as the Flavian Amphitheatre, stands as a monument to Roman architectural and engineering achievement.\\\\n Construction began under Emperor Vespasian in AD 70 and was completed by his son Titus in AD 80.\\\\n It could hold between 50,000 and 80,000 spectators who watched gladiatorial contests and public spectacles.\"\\noutput: ```{\"entities\": [\"Colosseum\", \"Rome\", \"Flavian Amphitheatre\", \"Vespasian\", \"AD 70\", \"Titus\", \"AD 80\"]}```\\n\\ntext: \"The Great Wall of China, stretching over 21,196 kilometers from east to west, is a marvel of ancient defensive architecture.\\\\n Built to protect against invasions from the north, its construction started as early as the 7th century BC.\\\\n Today, it is a UNESCO World Heritage Site and a major tourist attraction.\"\\noutput: ```{\"entities\": [\"Great Wall of China\", \"21,196 kilometers\", \"7th century BC\", \"UNESCO World Heritage Site\"]}```\\n\\ntext: \"The Apollo 11 mission, which launched on July 16, 1969, marked the first time humans landed on the Moon.\\\\n Astronauts Neil Armstrong, Buzz Aldrin, and Michael Collins made history, with Armstrong being the first man to step on the lunar surface.\\\\n This event was a significant milestone in space exploration.\"\\noutput: ```{\"entities\": [\"Apollo 11 mission\", \"July 16, 1969\", \"Moon\", \"Neil Armstrong\", \"Buzz Aldrin\", \"Michael Collins\"]}```\\n\\nYour actual task:\\n\\ntext: No. Abnormal dosage of ultraconserved elements is highly disfavored in healthy cells but not cancer cells.\\noutput: \\n'\n" - ] - }, - { - "name": "stderr", - "output_type": "stream", - "text": [ - "INFO:httpx:HTTP Request: POST https://api.mistral.ai/v1/chat/completions \"HTTP/1.1 200 OK\"\n" - ] - }, - { - "name": "stdout", - "output_type": "stream", - "text": [ - "start parsing ```json\n", - "{\"entities\": [\"Familial craniosynostosis\", \"Pro250Arg mutation\", \"fibroblast growth factor receptor 3 gene\", \"skin disorders\", \"psoriatic lesions\", \"XRT\", \"tumor site\", \"Gy\", \"colchicine\", \"cell cycle\", \"H2B gene family\", \"Top Down Mass Spectrometry\", \"Electron Capture Dissociation\", \"MS/MS\", \"H2B isoforms\", \"unmodified H2B.Q\", \"H2B.A\", \"H2B.K/T\", \"H2B.J\", \"H2B.E\", \"H2B.B\", \"H2B.F\", \"monoacetylated H2B.A\", \"sodium butyrate treatment\", \"Muenke syndrome\", \"coronal craniosynostosis\", \"sensorineural deafness\", \"craniofacial abnormalities\", \"digital abnormalities\", \"upper airway obstruction\"]}\n", - "``` with prompt prompt_str='Given a text, extract unique entities without repetition. Ensure you consider different forms or mentions of the same entity as a single entity.\\n\\nThe output should be a well-formatted JSON instance that conforms to the JSON schema below.\\n\\nAs an example, for the schema {\"properties\": {\"foo\": {\"title\": \"Foo\", \"description\": \"a list of strings\", \"type\": \"array\", \"items\": {\"type\": \"string\"}}}, \"required\": [\"foo\"]}\\nthe object {\"foo\": [\"bar\", \"baz\"]} is a well-formatted instance of the schema. The object {\"properties\": {\"foo\": [\"bar\", \"baz\"]}} is not well-formatted.\\n\\nHere is the output JSON schema:\\n```\\n{\"type\": \"object\", \"properties\": {\"entities\": {\"title\": \"Entities\", \"type\": \"array\", \"items\": {\"type\": \"string\"}}}, \"required\": [\"entities\"]}\\n```\\n\\nDo not return any preamble or explanations, return only a pure JSON string surrounded by triple backticks (```).\\n\\nExamples:\\n\\ntext: \"The Eiffel Tower, located in Paris, France, is one of the most iconic landmarks globally.\\\\n Millions of visitors are attracted to it each year for its breathtaking views of the city.\\\\n Completed in 1889, it was constructed in time for the 1889 World\\'s Fair.\"\\noutput: ```{\"entities\": [\"Eiffel Tower\", \"Paris\", \"France\", \"1889\", \"World\\'s Fair\"]}```\\n\\ntext: \"The Colosseum in Rome, also known as the Flavian Amphitheatre, stands as a monument to Roman architectural and engineering achievement.\\\\n Construction began under Emperor Vespasian in AD 70 and was completed by his son Titus in AD 80.\\\\n It could hold between 50,000 and 80,000 spectators who watched gladiatorial contests and public spectacles.\"\\noutput: ```{\"entities\": [\"Colosseum\", \"Rome\", \"Flavian Amphitheatre\", \"Vespasian\", \"AD 70\", \"Titus\", \"AD 80\"]}```\\n\\ntext: \"The Great Wall of China, stretching over 21,196 kilometers from east to west, is a marvel of ancient defensive architecture.\\\\n Built to protect against invasions from the north, its construction started as early as the 7th century BC.\\\\n Today, it is a UNESCO World Heritage Site and a major tourist attraction.\"\\noutput: ```{\"entities\": [\"Great Wall of China\", \"21,196 kilometers\", \"7th century BC\", \"UNESCO World Heritage Site\"]}```\\n\\ntext: \"The Apollo 11 mission, which launched on July 16, 1969, marked the first time humans landed on the Moon.\\\\n Astronauts Neil Armstrong, Buzz Aldrin, and Michael Collins made history, with Armstrong being the first man to step on the lunar surface.\\\\n This event was a significant milestone in space exploration.\"\\noutput: ```{\"entities\": [\"Apollo 11 mission\", \"July 16, 1969\", \"Moon\", \"Neil Armstrong\", \"Buzz Aldrin\", \"Michael Collins\"]}```\\n\\nYour actual task:\\n\\ntext: 11428324 / Familial craniosynostosis due to Pro250Arg mutation in the fibroblast growth \\nfactor receptor 3 gene. //\\n15683664 / Skin side effects following XRT take place more often in patients with skin \\ndisorders. In this study six patients with psoriatic lesions were evaluated. The \\ntotal/daily XRT dose to the tumor site was 50-70/1.8-2.0 Gy. No debilitating \\neffect of XRT was observed in both the psoriatic lesions and in the surrounding \\nnormal skin. //\\n16570042 / Mobile phone use and risk of acoustic neuroma: results of the interphone \\ncase-control study in five north European countries [corrected]. //\\n16457587 / The basis set of protein forms expressed by human cells from the H2B gene family \\nwas determined by Top Down Mass Spectrometry. Using Electron Capture \\nDissociation for MS/MS of H2B isoforms, direct evidence for the expression of \\nunmodified H2B.Q, H2B.A, H2B.K/T, H2B.J, H2B.E, H2B.B, H2B.F, and monoacetylated \\nH2B.A was obtained from asynchronous HeLa cells. H2B.A was the most abundant \\nform, with the overall expression profile not changing significantly in cells \\narrested in mitosis by colchicine or during mid-S, mid-G2, G2/M, and mid-G1 \\nphases of the cell cycle. Modest hyperacetylation of H2B family members was \\nobserved after sodium butyrate treatment. //\\n17103449 / P250R mutation in the FGFR3 gene also known as Muenke syndrome is associated \\nwith coronal craniosynostosis, sensorineural deafness, craniofacial, and digital \\nabnormalities. We report a family with this mutation associated with sudden \\ndeath in an affected newborn, most probably due to upper airway obstruction. //\\noutput: \\n'\n" - ] - }, - { - "name": "stderr", - "output_type": "stream", - "text": [ - "INFO:httpx:HTTP Request: POST https://api.mistral.ai/v1/chat/completions \"HTTP/1.1 200 OK\"\n", - "INFO:httpx:HTTP Request: POST https://api.mistral.ai/v1/chat/completions \"HTTP/1.1 200 OK\"\n", - "INFO:httpx:HTTP Request: POST https://api.mistral.ai/v1/chat/completions \"HTTP/1.1 200 OK\"\n" - ] - }, - { - "name": "stdout", - "output_type": "stream", - "text": [ - "start parsing ```json\n", - "{\"question\": \"What is bezlotoxumab and how does it work?\", \"noncommittal\": 0}\n", - "``` with prompt prompt_str='Generate a question for the given answer and Identify if answer is noncommittal. Give noncommittal as 1 if the answer is noncommittal and 0 if the answer is committal. A noncommittal answer is one that is evasive, vague, or ambiguous. For example, \"I don\\'t know\" or \"I\\'m not sure\" are noncommittal answers\\n\\nThe output should be a well-formatted JSON instance that conforms to the JSON schema below.\\n\\nAs an example, for the schema {\"properties\": {\"foo\": {\"title\": \"Foo\", \"description\": \"a list of strings\", \"type\": \"array\", \"items\": {\"type\": \"string\"}}}, \"required\": [\"foo\"]}\\nthe object {\"foo\": [\"bar\", \"baz\"]} is a well-formatted instance of the schema. The object {\"properties\": {\"foo\": [\"bar\", \"baz\"]}} is not well-formatted.\\n\\nHere is the output JSON schema:\\n```\\n{\"type\": \"object\", \"properties\": {\"question\": {\"title\": \"Question\", \"type\": \"string\"}, \"noncommittal\": {\"title\": \"Noncommittal\", \"type\": \"integer\"}}, \"required\": [\"question\", \"noncommittal\"]}\\n```\\n\\nDo not return any preamble or explanations, return only a pure JSON string surrounded by triple backticks (```).\\n\\nExamples:\\n\\nanswer: \"Albert Einstein was born in Germany.\"\\ncontext: \"Albert Einstein was a German-born theoretical physicist who is widely held to be one of the greatest and most influential scientists of all time\"\\noutput: ```{\"question\": \"Where was Albert Einstein born?\", \"noncommittal\": 0}```\\n\\nanswer: \"It can change its skin color based on the temperature of its environment.\"\\ncontext: \"A recent scientific study has discovered a new species of frog in the Amazon rainforest that has the unique ability to change its skin color based on the temperature of its environment.\"\\noutput: ```{\"question\": \"What unique ability does the newly discovered species of frog have?\", \"noncommittal\": 0}```\\n\\nanswer: \"Everest\"\\ncontext: \"The tallest mountain on Earth, measured from sea level, is a renowned peak located in the Himalayas.\"\\noutput: ```{\"question\": \"What is the tallest mountain on Earth?\", \"noncommittal\": 0}```\\n\\nanswer: \"I don\\'t know about the groundbreaking feature of the smartphone invented in 2023 as am unaware of information beyond 2022. \"\\ncontext: \"In 2023, a groundbreaking invention was announced: a smartphone with a battery life of one month, revolutionizing the way people use mobile technology.\"\\noutput: ```{\"question\": \"What was the groundbreaking feature of the smartphone invented in 2023?\", \"noncommittal\": 1}```\\n\\nYour actual task:\\n\\nanswer: Bezlotoxumab is a monoclonal antibody that targets the cytokine tumor necrosis factor-alpha (TNF-alpha). It is used to treat moderate to severe Crohn\\'s disease and ulcerative colitis. The mechanism of action of bezlotoxumab is to bind to TNF-alpha, a protein that plays a key role in the inflammatory response, and block its interaction with its receptors on the surface of immune cells. This prevents the activation of inflammatory pathways and reduces inflammation in the gastrointestinal tract, thereby alleviating symptoms of Crohn\\'s disease and ulcerative colitis.\\ncontext: 11428324 / Familial craniosynostosis due to Pro250Arg mutation in the fibroblast growth \\nfactor receptor 3 gene. //\\n15683664 / Skin side effects following XRT take place more often in patients with skin \\ndisorders. In this study six patients with psoriatic lesions were evaluated. The \\ntotal/daily XRT dose to the tumor site was 50-70/1.8-2.0 Gy. No debilitating \\neffect of XRT was observed in both the psoriatic lesions and in the surrounding \\nnormal skin. //\\n16570042 / Mobile phone use and risk of acoustic neuroma: results of the interphone \\ncase-control study in five north European countries [corrected]. //\\n16457587 / The basis set of protein forms expressed by human cells from the H2B gene family \\nwas determined by Top Down Mass Spectrometry. Using Electron Capture \\nDissociation for MS/MS of H2B isoforms, direct evidence for the expression of \\nunmodified H2B.Q, H2B.A, H2B.K/T, H2B.J, H2B.E, H2B.B, H2B.F, and monoacetylated \\nH2B.A was obtained from asynchronous HeLa cells. H2B.A was the most abundant \\nform, with the overall expression profile not changing significantly in cells \\narrested in mitosis by colchicine or during mid-S, mid-G2, G2/M, and mid-G1 \\nphases of the cell cycle. Modest hyperacetylation of H2B family members was \\nobserved after sodium butyrate treatment. //\\n17103449 / P250R mutation in the FGFR3 gene also known as Muenke syndrome is associated \\nwith coronal craniosynostosis, sensorineural deafness, craniofacial, and digital \\nabnormalities. We report a family with this mutation associated with sudden \\ndeath in an affected newborn, most probably due to upper airway obstruction. //\\noutput: \\n'\n", - "start parsing ```json\n", - "{\"question\": \"What is bezlotoxumab and how does it work?\", \"noncommittal\": 0}\n", - "``` with prompt prompt_str='Generate a question for the given answer and Identify if answer is noncommittal. Give noncommittal as 1 if the answer is noncommittal and 0 if the answer is committal. A noncommittal answer is one that is evasive, vague, or ambiguous. For example, \"I don\\'t know\" or \"I\\'m not sure\" are noncommittal answers\\n\\nThe output should be a well-formatted JSON instance that conforms to the JSON schema below.\\n\\nAs an example, for the schema {\"properties\": {\"foo\": {\"title\": \"Foo\", \"description\": \"a list of strings\", \"type\": \"array\", \"items\": {\"type\": \"string\"}}}, \"required\": [\"foo\"]}\\nthe object {\"foo\": [\"bar\", \"baz\"]} is a well-formatted instance of the schema. The object {\"properties\": {\"foo\": [\"bar\", \"baz\"]}} is not well-formatted.\\n\\nHere is the output JSON schema:\\n```\\n{\"type\": \"object\", \"properties\": {\"question\": {\"title\": \"Question\", \"type\": \"string\"}, \"noncommittal\": {\"title\": \"Noncommittal\", \"type\": \"integer\"}}, \"required\": [\"question\", \"noncommittal\"]}\\n```\\n\\nDo not return any preamble or explanations, return only a pure JSON string surrounded by triple backticks (```).\\n\\nExamples:\\n\\nanswer: \"Albert Einstein was born in Germany.\"\\ncontext: \"Albert Einstein was a German-born theoretical physicist who is widely held to be one of the greatest and most influential scientists of all time\"\\noutput: ```{\"question\": \"Where was Albert Einstein born?\", \"noncommittal\": 0}```\\n\\nanswer: \"It can change its skin color based on the temperature of its environment.\"\\ncontext: \"A recent scientific study has discovered a new species of frog in the Amazon rainforest that has the unique ability to change its skin color based on the temperature of its environment.\"\\noutput: ```{\"question\": \"What unique ability does the newly discovered species of frog have?\", \"noncommittal\": 0}```\\n\\nanswer: \"Everest\"\\ncontext: \"The tallest mountain on Earth, measured from sea level, is a renowned peak located in the Himalayas.\"\\noutput: ```{\"question\": \"What is the tallest mountain on Earth?\", \"noncommittal\": 0}```\\n\\nanswer: \"I don\\'t know about the groundbreaking feature of the smartphone invented in 2023 as am unaware of information beyond 2022. \"\\ncontext: \"In 2023, a groundbreaking invention was announced: a smartphone with a battery life of one month, revolutionizing the way people use mobile technology.\"\\noutput: ```{\"question\": \"What was the groundbreaking feature of the smartphone invented in 2023?\", \"noncommittal\": 1}```\\n\\nYour actual task:\\n\\nanswer: Bezlotoxumab is a monoclonal antibody that targets the cytokine tumor necrosis factor-alpha (TNF-alpha). It is used to treat moderate to severe Crohn\\'s disease and ulcerative colitis. The mechanism of action of bezlotoxumab is to bind to TNF-alpha, a protein that plays a key role in the inflammatory response, and block its interaction with its receptors on the surface of immune cells. This prevents the activation of inflammatory pathways and reduces inflammation in the gastrointestinal tract, thereby alleviating symptoms of Crohn\\'s disease and ulcerative colitis.\\ncontext: 11428324 / Familial craniosynostosis due to Pro250Arg mutation in the fibroblast growth \\nfactor receptor 3 gene. //\\n15683664 / Skin side effects following XRT take place more often in patients with skin \\ndisorders. In this study six patients with psoriatic lesions were evaluated. The \\ntotal/daily XRT dose to the tumor site was 50-70/1.8-2.0 Gy. No debilitating \\neffect of XRT was observed in both the psoriatic lesions and in the surrounding \\nnormal skin. //\\n16570042 / Mobile phone use and risk of acoustic neuroma: results of the interphone \\ncase-control study in five north European countries [corrected]. //\\n16457587 / The basis set of protein forms expressed by human cells from the H2B gene family \\nwas determined by Top Down Mass Spectrometry. Using Electron Capture \\nDissociation for MS/MS of H2B isoforms, direct evidence for the expression of \\nunmodified H2B.Q, H2B.A, H2B.K/T, H2B.J, H2B.E, H2B.B, H2B.F, and monoacetylated \\nH2B.A was obtained from asynchronous HeLa cells. H2B.A was the most abundant \\nform, with the overall expression profile not changing significantly in cells \\narrested in mitosis by colchicine or during mid-S, mid-G2, G2/M, and mid-G1 \\nphases of the cell cycle. Modest hyperacetylation of H2B family members was \\nobserved after sodium butyrate treatment. //\\n17103449 / P250R mutation in the FGFR3 gene also known as Muenke syndrome is associated \\nwith coronal craniosynostosis, sensorineural deafness, craniofacial, and digital \\nabnormalities. We report a family with this mutation associated with sudden \\ndeath in an affected newborn, most probably due to upper airway obstruction. //\\noutput: \\n'\n", - "start parsing ```json\n", - "{\"question\": \"What is bezlotoxumab and how does it work?\", \"noncommittal\": 0}\n", - "``` with prompt prompt_str='Generate a question for the given answer and Identify if answer is noncommittal. Give noncommittal as 1 if the answer is noncommittal and 0 if the answer is committal. A noncommittal answer is one that is evasive, vague, or ambiguous. For example, \"I don\\'t know\" or \"I\\'m not sure\" are noncommittal answers\\n\\nThe output should be a well-formatted JSON instance that conforms to the JSON schema below.\\n\\nAs an example, for the schema {\"properties\": {\"foo\": {\"title\": \"Foo\", \"description\": \"a list of strings\", \"type\": \"array\", \"items\": {\"type\": \"string\"}}}, \"required\": [\"foo\"]}\\nthe object {\"foo\": [\"bar\", \"baz\"]} is a well-formatted instance of the schema. The object {\"properties\": {\"foo\": [\"bar\", \"baz\"]}} is not well-formatted.\\n\\nHere is the output JSON schema:\\n```\\n{\"type\": \"object\", \"properties\": {\"question\": {\"title\": \"Question\", \"type\": \"string\"}, \"noncommittal\": {\"title\": \"Noncommittal\", \"type\": \"integer\"}}, \"required\": [\"question\", \"noncommittal\"]}\\n```\\n\\nDo not return any preamble or explanations, return only a pure JSON string surrounded by triple backticks (```).\\n\\nExamples:\\n\\nanswer: \"Albert Einstein was born in Germany.\"\\ncontext: \"Albert Einstein was a German-born theoretical physicist who is widely held to be one of the greatest and most influential scientists of all time\"\\noutput: ```{\"question\": \"Where was Albert Einstein born?\", \"noncommittal\": 0}```\\n\\nanswer: \"It can change its skin color based on the temperature of its environment.\"\\ncontext: \"A recent scientific study has discovered a new species of frog in the Amazon rainforest that has the unique ability to change its skin color based on the temperature of its environment.\"\\noutput: ```{\"question\": \"What unique ability does the newly discovered species of frog have?\", \"noncommittal\": 0}```\\n\\nanswer: \"Everest\"\\ncontext: \"The tallest mountain on Earth, measured from sea level, is a renowned peak located in the Himalayas.\"\\noutput: ```{\"question\": \"What is the tallest mountain on Earth?\", \"noncommittal\": 0}```\\n\\nanswer: \"I don\\'t know about the groundbreaking feature of the smartphone invented in 2023 as am unaware of information beyond 2022. \"\\ncontext: \"In 2023, a groundbreaking invention was announced: a smartphone with a battery life of one month, revolutionizing the way people use mobile technology.\"\\noutput: ```{\"question\": \"What was the groundbreaking feature of the smartphone invented in 2023?\", \"noncommittal\": 1}```\\n\\nYour actual task:\\n\\nanswer: Bezlotoxumab is a monoclonal antibody that targets the cytokine tumor necrosis factor-alpha (TNF-alpha). It is used to treat moderate to severe Crohn\\'s disease and ulcerative colitis. The mechanism of action of bezlotoxumab is to bind to TNF-alpha, a protein that plays a key role in the inflammatory response, and block its interaction with its receptors on the surface of immune cells. This prevents the activation of inflammatory pathways and reduces inflammation in the gastrointestinal tract, thereby alleviating symptoms of Crohn\\'s disease and ulcerative colitis.\\ncontext: 11428324 / Familial craniosynostosis due to Pro250Arg mutation in the fibroblast growth \\nfactor receptor 3 gene. //\\n15683664 / Skin side effects following XRT take place more often in patients with skin \\ndisorders. In this study six patients with psoriatic lesions were evaluated. The \\ntotal/daily XRT dose to the tumor site was 50-70/1.8-2.0 Gy. No debilitating \\neffect of XRT was observed in both the psoriatic lesions and in the surrounding \\nnormal skin. //\\n16570042 / Mobile phone use and risk of acoustic neuroma: results of the interphone \\ncase-control study in five north European countries [corrected]. //\\n16457587 / The basis set of protein forms expressed by human cells from the H2B gene family \\nwas determined by Top Down Mass Spectrometry. Using Electron Capture \\nDissociation for MS/MS of H2B isoforms, direct evidence for the expression of \\nunmodified H2B.Q, H2B.A, H2B.K/T, H2B.J, H2B.E, H2B.B, H2B.F, and monoacetylated \\nH2B.A was obtained from asynchronous HeLa cells. H2B.A was the most abundant \\nform, with the overall expression profile not changing significantly in cells \\narrested in mitosis by colchicine or during mid-S, mid-G2, G2/M, and mid-G1 \\nphases of the cell cycle. Modest hyperacetylation of H2B family members was \\nobserved after sodium butyrate treatment. //\\n17103449 / P250R mutation in the FGFR3 gene also known as Muenke syndrome is associated \\nwith coronal craniosynostosis, sensorineural deafness, craniofacial, and digital \\nabnormalities. We report a family with this mutation associated with sudden \\ndeath in an affected newborn, most probably due to upper airway obstruction. //\\noutput: \\n'\n" - ] - }, - { - "name": "stderr", - "output_type": "stream", - "text": [ - "INFO:httpx:HTTP Request: POST https://api.mistral.ai/v1/embeddings \"HTTP/1.1 200 OK\"\n", - "INFO:httpx:HTTP Request: POST https://api.mistral.ai/v1/embeddings \"HTTP/1.1 200 OK\"\n", - "INFO:httpx:HTTP Request: POST https://api.mistral.ai/v1/chat/completions \"HTTP/1.1 200 OK\"\n" - ] - }, - { - "name": "stdout", - "output_type": "stream", - "text": [ - "start parsing ```json\n", - "{\"entities\": [\"EMT\", \"FGFs\", \"TGF-β1\", \"TGF-β2\", \"TNF-α\", \"CCN family\", \"SHh\", \"Notch1\", \"GF-β\", \"Wnt\", \"EGF\", \"bFGF\", \"IGF-I\", \"IGF-II\"]}\n", - "``` with prompt prompt_str='Given a text, extract unique entities without repetition. Ensure you consider different forms or mentions of the same entity as a single entity.\\n\\nThe output should be a well-formatted JSON instance that conforms to the JSON schema below.\\n\\nAs an example, for the schema {\"properties\": {\"foo\": {\"title\": \"Foo\", \"description\": \"a list of strings\", \"type\": \"array\", \"items\": {\"type\": \"string\"}}}, \"required\": [\"foo\"]}\\nthe object {\"foo\": [\"bar\", \"baz\"]} is a well-formatted instance of the schema. The object {\"properties\": {\"foo\": [\"bar\", \"baz\"]}} is not well-formatted.\\n\\nHere is the output JSON schema:\\n```\\n{\"type\": \"object\", \"properties\": {\"entities\": {\"title\": \"Entities\", \"type\": \"array\", \"items\": {\"type\": \"string\"}}}, \"required\": [\"entities\"]}\\n```\\n\\nDo not return any preamble or explanations, return only a pure JSON string surrounded by triple backticks (```).\\n\\nExamples:\\n\\ntext: \"The Eiffel Tower, located in Paris, France, is one of the most iconic landmarks globally.\\\\n Millions of visitors are attracted to it each year for its breathtaking views of the city.\\\\n Completed in 1889, it was constructed in time for the 1889 World\\'s Fair.\"\\noutput: ```{\"entities\": [\"Eiffel Tower\", \"Paris\", \"France\", \"1889\", \"World\\'s Fair\"]}```\\n\\ntext: \"The Colosseum in Rome, also known as the Flavian Amphitheatre, stands as a monument to Roman architectural and engineering achievement.\\\\n Construction began under Emperor Vespasian in AD 70 and was completed by his son Titus in AD 80.\\\\n It could hold between 50,000 and 80,000 spectators who watched gladiatorial contests and public spectacles.\"\\noutput: ```{\"entities\": [\"Colosseum\", \"Rome\", \"Flavian Amphitheatre\", \"Vespasian\", \"AD 70\", \"Titus\", \"AD 80\"]}```\\n\\ntext: \"The Great Wall of China, stretching over 21,196 kilometers from east to west, is a marvel of ancient defensive architecture.\\\\n Built to protect against invasions from the north, its construction started as early as the 7th century BC.\\\\n Today, it is a UNESCO World Heritage Site and a major tourist attraction.\"\\noutput: ```{\"entities\": [\"Great Wall of China\", \"21,196 kilometers\", \"7th century BC\", \"UNESCO World Heritage Site\"]}```\\n\\ntext: \"The Apollo 11 mission, which launched on July 16, 1969, marked the first time humans landed on the Moon.\\\\n Astronauts Neil Armstrong, Buzz Aldrin, and Michael Collins made history, with Armstrong being the first man to step on the lunar surface.\\\\n This event was a significant milestone in space exploration.\"\\noutput: ```{\"entities\": [\"Apollo 11 mission\", \"July 16, 1969\", \"Moon\", \"Neil Armstrong\", \"Buzz Aldrin\", \"Michael Collins\"]}```\\n\\nYour actual task:\\n\\ntext: EMT is characterized by acquisition of cell motility, modifications of cell morphology, and cell dissociation correlating with the loss of desmosomes from the cellular cortex. A number of growth factors have been shown to be involved in this process. These include fibroblast growth factors (FGFs), TGF-β1, TGF-β2, TNF-α, CCN family, Sonic Hedgehog (SHh), Notch1, GF-β, Wnt, EGF, bFGF, IGF-I and IGF-II.\\noutput: \\n'\n" - ] - }, - { - "name": "stderr", - "output_type": "stream", - "text": [ - "INFO:httpx:HTTP Request: POST https://api.mistral.ai/v1/chat/completions \"HTTP/1.1 200 OK\"\n" - ] - }, - { - "name": "stdout", - "output_type": "stream", - "text": [ - "start parsing ```json\n", - "{\"entities\": [\"Familial craniosynostosis\", \"Pro250Arg mutation\", \"fibroblast growth factor receptor 3 gene\", \"skin disorders\", \"psoriatic lesions\", \"XRT\", \"tumor site\", \"Gy\", \"colchicine\", \"cell cycle\", \"H2B gene family\", \"Top Down Mass Spectrometry\", \"Electron Capture Dissociation\", \"MS/MS\", \"H2B isoforms\", \"unmodified H2B.Q\", \"H2B.A\", \"H2B.K/T\", \"H2B.J\", \"H2B.E\", \"H2B.B\", \"H2B.F\", \"monoacetylated H2B.A\", \"sodium butyrate treatment\", \"Muenke syndrome\", \"coronal craniosynostosis\", \"sensorineural deafness\", \"craniofacial abnormalities\", \"digital abnormalities\", \"upper airway obstruction\"]}\n", - "``` with prompt prompt_str='Given a text, extract unique entities without repetition. Ensure you consider different forms or mentions of the same entity as a single entity.\\n\\nThe output should be a well-formatted JSON instance that conforms to the JSON schema below.\\n\\nAs an example, for the schema {\"properties\": {\"foo\": {\"title\": \"Foo\", \"description\": \"a list of strings\", \"type\": \"array\", \"items\": {\"type\": \"string\"}}}, \"required\": [\"foo\"]}\\nthe object {\"foo\": [\"bar\", \"baz\"]} is a well-formatted instance of the schema. The object {\"properties\": {\"foo\": [\"bar\", \"baz\"]}} is not well-formatted.\\n\\nHere is the output JSON schema:\\n```\\n{\"type\": \"object\", \"properties\": {\"entities\": {\"title\": \"Entities\", \"type\": \"array\", \"items\": {\"type\": \"string\"}}}, \"required\": [\"entities\"]}\\n```\\n\\nDo not return any preamble or explanations, return only a pure JSON string surrounded by triple backticks (```).\\n\\nExamples:\\n\\ntext: \"The Eiffel Tower, located in Paris, France, is one of the most iconic landmarks globally.\\\\n Millions of visitors are attracted to it each year for its breathtaking views of the city.\\\\n Completed in 1889, it was constructed in time for the 1889 World\\'s Fair.\"\\noutput: ```{\"entities\": [\"Eiffel Tower\", \"Paris\", \"France\", \"1889\", \"World\\'s Fair\"]}```\\n\\ntext: \"The Colosseum in Rome, also known as the Flavian Amphitheatre, stands as a monument to Roman architectural and engineering achievement.\\\\n Construction began under Emperor Vespasian in AD 70 and was completed by his son Titus in AD 80.\\\\n It could hold between 50,000 and 80,000 spectators who watched gladiatorial contests and public spectacles.\"\\noutput: ```{\"entities\": [\"Colosseum\", \"Rome\", \"Flavian Amphitheatre\", \"Vespasian\", \"AD 70\", \"Titus\", \"AD 80\"]}```\\n\\ntext: \"The Great Wall of China, stretching over 21,196 kilometers from east to west, is a marvel of ancient defensive architecture.\\\\n Built to protect against invasions from the north, its construction started as early as the 7th century BC.\\\\n Today, it is a UNESCO World Heritage Site and a major tourist attraction.\"\\noutput: ```{\"entities\": [\"Great Wall of China\", \"21,196 kilometers\", \"7th century BC\", \"UNESCO World Heritage Site\"]}```\\n\\ntext: \"The Apollo 11 mission, which launched on July 16, 1969, marked the first time humans landed on the Moon.\\\\n Astronauts Neil Armstrong, Buzz Aldrin, and Michael Collins made history, with Armstrong being the first man to step on the lunar surface.\\\\n This event was a significant milestone in space exploration.\"\\noutput: ```{\"entities\": [\"Apollo 11 mission\", \"July 16, 1969\", \"Moon\", \"Neil Armstrong\", \"Buzz Aldrin\", \"Michael Collins\"]}```\\n\\nYour actual task:\\n\\ntext: 11428324 / Familial craniosynostosis due to Pro250Arg mutation in the fibroblast growth \\nfactor receptor 3 gene. //\\n15683664 / Skin side effects following XRT take place more often in patients with skin \\ndisorders. In this study six patients with psoriatic lesions were evaluated. The \\ntotal/daily XRT dose to the tumor site was 50-70/1.8-2.0 Gy. No debilitating \\neffect of XRT was observed in both the psoriatic lesions and in the surrounding \\nnormal skin. //\\n16570042 / Mobile phone use and risk of acoustic neuroma: results of the interphone \\ncase-control study in five north European countries [corrected]. //\\n16457587 / The basis set of protein forms expressed by human cells from the H2B gene family \\nwas determined by Top Down Mass Spectrometry. Using Electron Capture \\nDissociation for MS/MS of H2B isoforms, direct evidence for the expression of \\nunmodified H2B.Q, H2B.A, H2B.K/T, H2B.J, H2B.E, H2B.B, H2B.F, and monoacetylated \\nH2B.A was obtained from asynchronous HeLa cells. H2B.A was the most abundant \\nform, with the overall expression profile not changing significantly in cells \\narrested in mitosis by colchicine or during mid-S, mid-G2, G2/M, and mid-G1 \\nphases of the cell cycle. Modest hyperacetylation of H2B family members was \\nobserved after sodium butyrate treatment. //\\n17103449 / P250R mutation in the FGFR3 gene also known as Muenke syndrome is associated \\nwith coronal craniosynostosis, sensorineural deafness, craniofacial, and digital \\nabnormalities. We report a family with this mutation associated with sudden \\ndeath in an affected newborn, most probably due to upper airway obstruction. //\\noutput: \\n'\n" - ] - }, - { - "name": "stderr", - "output_type": "stream", - "text": [ - "INFO:httpx:HTTP Request: POST https://api.mistral.ai/v1/chat/completions \"HTTP/1.1 200 OK\"\n" - ] - }, - { - "name": "stdout", - "output_type": "stream", - "text": [ - "start parsing ```json\n", - "[\n", - " {\n", - " \"sentence_index\": 0,\n", - " \"simpler_statements\": [\n", - " \"Mismatched uracil glycosylase (MUG) is an enzyme.\",\n", - " \"The base excision repair (BER) pathway is a process that repairs DNA damage.\",\n", - " \"The BER pathway is responsible for repairing DNA damage caused by oxidative stress, alkylation, and deamination.\",\n", - " \"MUG plays a crucial role in the BER pathway.\"\n", - " ]\n", - " },\n", - " {\n", - " \"sentence_index\": 1,\n", - " \"simpler_statements\": [\n", - " \"MUG is involved in the removal of uracil and other non-standard bases from DNA.\",\n", - " \"These non-standard bases can result from errors during DNA replication or from exposure to environmental mutagens.\"\n", - " ]\n", - " },\n", - " {\n", - " \"sentence_index\": 2,\n", - " \"simpler_statements\": [\n", - " \"MUG recognizes and binds to these abnormal bases.\",\n", - " \"MUG excises the abnormal bases, leaving a gap in the DNA.\",\n", - " \"The DNA polymerase fills the gap with new nucleotides.\",\n", - " \"DNA ligase seals the gap.\"\n", - " ]\n", - " },\n", - " {\n", - " \"sentence_index\": 3,\n", - " \"simpler_statements\": [\n", - " \"This process helps to maintain the integrity of the genome.\",\n", - " \"The process prevents mutations that can lead to diseases such as cancer.\"\n", - " ]\n", - " },\n", - " {\n", - " \"sentence_index\": 4,\n", - " \"simpler_statements\": [\n", - " \"In the absence of MUG, cells would accumulate these abnormal bases.\",\n", - " \"The accumulation of abnormal bases can lead to genomic instability.\",\n", - " \"Genomic instability increases the risk of cancer.\"\n", - " ]\n", - " }\n", - "]\n", - "``` with prompt prompt_str='Given a question, an answer, and sentences from the answer analyze the complexity of each sentence given under \\'sentences\\' and break down each sentence into one or more fully understandable statements while also ensuring no pronouns are used in each statement. Format the outputs in JSON.\\n\\nThe output should be a well-formatted JSON instance that conforms to the JSON schema below.\\n\\nAs an example, for the schema {\"properties\": {\"foo\": {\"title\": \"Foo\", \"description\": \"a list of strings\", \"type\": \"array\", \"items\": {\"type\": \"string\"}}}, \"required\": [\"foo\"]}\\nthe object {\"foo\": [\"bar\", \"baz\"]} is a well-formatted instance of the schema. The object {\"properties\": {\"foo\": [\"bar\", \"baz\"]}} is not well-formatted.\\n\\nHere is the output JSON schema:\\n```\\n{\"type\": \"array\", \"items\": {\"$ref\": \"#/definitions/Statements\"}, \"definitions\": {\"Statements\": {\"title\": \"Statements\", \"type\": \"object\", \"properties\": {\"sentence_index\": {\"title\": \"Sentence Index\", \"description\": \"Index of the sentence from the statement list\", \"type\": \"integer\"}, \"simpler_statements\": {\"title\": \"Simpler Statements\", \"description\": \"the simpler statements\", \"type\": \"array\", \"items\": {\"type\": \"string\"}}}, \"required\": [\"sentence_index\", \"simpler_statements\"]}}}\\n```\\n\\nDo not return any preamble or explanations, return only a pure JSON string surrounded by triple backticks (```).\\n\\nExamples:\\n\\nquestion: \"Who was Albert Einstein and what is he best known for?\"\\nanswer: \"He was a German-born theoretical physicist, widely acknowledged to be one of the greatest and most influential physicists of all time. He was best known for developing the theory of relativity, he also made important contributions to the development of the theory of quantum mechanics.\"\\nsentences: \"\\\\n 0:He was a German-born theoretical physicist, widely acknowledged to be one of the greatest and most influential physicists of all time. \\\\n 1:He was best known for developing the theory of relativity, he also made important contributions to the development of the theory of quantum mechanics.\\\\n \"\\nanalysis: ```[{\"sentence_index\": 0, \"simpler_statements\": [\"Albert Einstein was a German-born theoretical physicist.\", \"Albert Einstein is recognized as one of the greatest and most influential physicists of all time.\"]}, {\"sentence_index\": 1, \"simpler_statements\": [\"Albert Einstein was best known for developing the theory of relativity.\", \"Albert Einstein also made important contributions to the development of the theory of quantum mechanics.\"]}]```\\n\\nYour actual task:\\n\\nquestion: What is the role of mismatched uracil glycosylase (Mug) in DNA repair?\\nanswer: Mismatched uracil glycosylase (MUG) is an enzyme that plays a crucial role in the base excision repair (BER) pathway, which is responsible for repairing DNA damage caused by oxidative stress, alkylation, and deamination. MUG is involved in the removal of uracil and other non-standard bases from DNA, which can result from errors during DNA replication or from exposure to environmental mutagens. The enzyme recognizes and binds to these abnormal bases, excising them and leaving a gap that is then filled by the DNA polymerase and sealed by DNA ligase. This process helps to maintain the integrity of the genome and prevent mutations that can lead to diseases such as cancer. In the absence of MUG, cells would accumulate these abnormal bases, leading to genomic instability and an increased risk of cancer.\\nsentences: 0:Mismatched uracil glycosylase (MUG) is an enzyme that plays a crucial role in the base excision repair (BER) pathway, which is responsible for repairing DNA damage caused by oxidative stress, alkylation, and deamination. \\n1:MUG is involved in the removal of uracil and other non-standard bases from DNA, which can result from errors during DNA replication or from exposure to environmental mutagens. \\n2:The enzyme recognizes and binds to these abnormal bases, excising them and leaving a gap that is then filled by the DNA polymerase and sealed by DNA ligase. \\n3:This process helps to maintain the integrity of the genome and prevent mutations that can lead to diseases such as cancer. \\n4:In the absence of MUG, cells would accumulate these abnormal bases, leading to genomic instability and an increased risk of cancer.\\nanalysis: \\n'\n" - ] - }, - { - "name": "stderr", - "output_type": "stream", - "text": [ - "INFO:httpx:HTTP Request: POST https://api.mistral.ai/v1/chat/completions \"HTTP/1.1 200 OK\"\n" - ] - }, - { - "name": "stdout", - "output_type": "stream", - "text": [ - "start parsing [\n", - "{\"statement\": \"Mismatched uracil glycosylase (MUG) is an enzyme.\", \"reason\": \"The statement is not mentioned or implied in the context.\", \"verdict\": 0},\n", - "{\"statement\": \"The base excision repair (BER) pathway is a process that repairs DNA damage.\", \"reason\": \"The statement is not mentioned or implied in the context.\", \"verdict\": 0},\n", - "{\"statement\": \"The BER pathway is responsible for repairing DNA damage caused by oxidative stress, alkylation, and deamination.\", \"reason\": \"The statement is not mentioned or implied in the context.\", \"verdict\": 0},\n", - "{\"statement\": \"MUG plays a crucial role in the BER pathway.\", \"reason\": \"The statement is not mentioned or implied in the context.\", \"verdict\": 0},\n", - "{\"statement\": \"MUG is involved in the removal of uracil and other non-standard bases from DNA.\", \"reason\": \"The statement is not mentioned or implied in the context.\", \"verdict\": 0},\n", - "{\"statement\": \"These non-standard bases can result from errors during DNA replication or from exposure to environmental mutagens.\", \"reason\": \"The statement is not mentioned or implied in the context.\", \"verdict\": 0},\n", - "{\"statement\": \"MUG recognizes and binds to these abnormal bases.\", \"reason\": \"The statement is not mentioned or implied in the context.\", \"verdict\": 0},\n", - "{\"statement\": \"MUG excises the abnormal bases, leaving a gap in the DNA.\", \"reason\": \"The statement is not mentioned or implied in the context.\", \"verdict\": 0},\n", - "{\"statement\": \"The DNA polymerase fills the gap with new nucleotides.\", \"reason\": \"The statement is not mentioned or implied in the context.\", \"verdict\": 0},\n", - "{\"statement\": \"DNA ligase seals the gap.\", \"reason\": \"The statement is not mentioned or implied in the context.\", \"verdict\": 0},\n", - "{\"statement\": \"This process helps to maintain the integrity of the genome.\", \"reason\": \"The statement is not mentioned or implied in the context.\", \"verdict\": 0},\n", - "{\"statement\": \"The process prevents mutations that can lead to diseases such as cancer.\", \"reason\": \"The statement is not mentioned or implied in the context.\", \"verdict\": 0},\n", - "{\"statement\": \"In the absence of MUG, cells would accumulate these abnormal bases.\", \"reason\": \"The statement is not mentioned or implied in the context.\", \"verdict\": 0},\n", - "{\"statement\": \"The accumulation of abnormal bases can lead to genomic instability.\", \"reason\": \"The statement is not mentioned or implied in the context.\", \"verdict\": 0},\n", - "{\"statement\": \"Genomic instability increases the risk of cancer.\", \"reason\": \"The statement is not mentioned or implied in the context.\", \"verdict\": 0}\n", - "] with prompt prompt_str='Your task is to judge the faithfulness of a series of statements based on a given context. For each statement you must return verdict as 1 if the statement can be directly inferred based on the context or 0 if the statement can not be directly inferred based on the context.\\n\\nThe output should be a well-formatted JSON instance that conforms to the JSON schema below.\\n\\nAs an example, for the schema {\"properties\": {\"foo\": {\"title\": \"Foo\", \"description\": \"a list of strings\", \"type\": \"array\", \"items\": {\"type\": \"string\"}}}, \"required\": [\"foo\"]}\\nthe object {\"foo\": [\"bar\", \"baz\"]} is a well-formatted instance of the schema. The object {\"properties\": {\"foo\": [\"bar\", \"baz\"]}} is not well-formatted.\\n\\nHere is the output JSON schema:\\n```\\n{\"type\": \"array\", \"items\": {\"$ref\": \"#/definitions/StatementFaithfulnessAnswer\"}, \"definitions\": {\"StatementFaithfulnessAnswer\": {\"title\": \"StatementFaithfulnessAnswer\", \"type\": \"object\", \"properties\": {\"statement\": {\"title\": \"Statement\", \"description\": \"the original statement, word-by-word\", \"type\": \"string\"}, \"reason\": {\"title\": \"Reason\", \"description\": \"the reason of the verdict\", \"type\": \"string\"}, \"verdict\": {\"title\": \"Verdict\", \"description\": \"the verdict(0/1) of the faithfulness.\", \"type\": \"integer\"}}, \"required\": [\"statement\", \"reason\", \"verdict\"]}}}\\n```\\n\\nDo not return any preamble or explanations, return only a pure JSON string surrounded by triple backticks (```).\\n\\nExamples:\\n\\ncontext: \"John is a student at XYZ University. He is pursuing a degree in Computer Science. He is enrolled in several courses this semester, including Data Structures, Algorithms, and Database Management. John is a diligent student and spends a significant amount of time studying and completing assignments. He often stays late in the library to work on his projects.\"\\nstatements: ```[\"John is majoring in Biology.\", \"John is taking a course on Artificial Intelligence.\", \"John is a dedicated student.\", \"John has a part-time job.\"]```\\nanswer: ```[{\"statement\": \"John is majoring in Biology.\", \"reason\": \"John\\'s major is explicitly mentioned as Computer Science. There is no information suggesting he is majoring in Biology.\", \"verdict\": 0}, {\"statement\": \"John is taking a course on Artificial Intelligence.\", \"reason\": \"The context mentions the courses John is currently enrolled in, and Artificial Intelligence is not mentioned. Therefore, it cannot be deduced that John is taking a course on AI.\", \"verdict\": 0}, {\"statement\": \"John is a dedicated student.\", \"reason\": \"The context states that he spends a significant amount of time studying and completing assignments. Additionally, it mentions that he often stays late in the library to work on his projects, which implies dedication.\", \"verdict\": 1}, {\"statement\": \"John has a part-time job.\", \"reason\": \"There is no information given in the context about John having a part-time job.\", \"verdict\": 0}]```\\n\\ncontext: \"Photosynthesis is a process used by plants, algae, and certain bacteria to convert light energy into chemical energy.\"\\nstatements: ```[\"Albert Einstein was a genius.\"]```\\nanswer: ```[{\"statement\": \"Albert Einstein was a genius.\", \"reason\": \"The context and statement are unrelated\", \"verdict\": 0}]```\\n\\nYour actual task:\\n\\ncontext: 11428324 / Familial craniosynostosis due to Pro250Arg mutation in the fibroblast growth \\nfactor receptor 3 gene. //\\n15683664 / Skin side effects following XRT take place more often in patients with skin \\ndisorders. In this study six patients with psoriatic lesions were evaluated. The \\ntotal/daily XRT dose to the tumor site was 50-70/1.8-2.0 Gy. No debilitating \\neffect of XRT was observed in both the psoriatic lesions and in the surrounding \\nnormal skin. //\\n16570042 / Mobile phone use and risk of acoustic neuroma: results of the interphone \\ncase-control study in five north European countries [corrected]. //\\n16457587 / The basis set of protein forms expressed by human cells from the H2B gene family \\nwas determined by Top Down Mass Spectrometry. Using Electron Capture \\nDissociation for MS/MS of H2B isoforms, direct evidence for the expression of \\nunmodified H2B.Q, H2B.A, H2B.K/T, H2B.J, H2B.E, H2B.B, H2B.F, and monoacetylated \\nH2B.A was obtained from asynchronous HeLa cells. H2B.A was the most abundant \\nform, with the overall expression profile not changing significantly in cells \\narrested in mitosis by colchicine or during mid-S, mid-G2, G2/M, and mid-G1 \\nphases of the cell cycle. Modest hyperacetylation of H2B family members was \\nobserved after sodium butyrate treatment. //\\n17103449 / P250R mutation in the FGFR3 gene also known as Muenke syndrome is associated \\nwith coronal craniosynostosis, sensorineural deafness, craniofacial, and digital \\nabnormalities. We report a family with this mutation associated with sudden \\ndeath in an affected newborn, most probably due to upper airway obstruction. //\\nstatements: [\"Mismatched uracil glycosylase (MUG) is an enzyme.\", \"The base excision repair (BER) pathway is a process that repairs DNA damage.\", \"The BER pathway is responsible for repairing DNA damage caused by oxidative stress, alkylation, and deamination.\", \"MUG plays a crucial role in the BER pathway.\", \"MUG is involved in the removal of uracil and other non-standard bases from DNA.\", \"These non-standard bases can result from errors during DNA replication or from exposure to environmental mutagens.\", \"MUG recognizes and binds to these abnormal bases.\", \"MUG excises the abnormal bases, leaving a gap in the DNA.\", \"The DNA polymerase fills the gap with new nucleotides.\", \"DNA ligase seals the gap.\", \"This process helps to maintain the integrity of the genome.\", \"The process prevents mutations that can lead to diseases such as cancer.\", \"In the absence of MUG, cells would accumulate these abnormal bases.\", \"The accumulation of abnormal bases can lead to genomic instability.\", \"Genomic instability increases the risk of cancer.\"]\\nanswer: \\n'\n" - ] - }, - { - "name": "stderr", - "output_type": "stream", - "text": [ - "INFO:httpx:HTTP Request: POST https://api.mistral.ai/v1/chat/completions \"HTTP/1.1 200 OK\"\n" - ] - }, - { - "name": "stdout", - "output_type": "stream", - "text": [ - "start parsing ```\n", - "[\n", - " {\n", - " \"sentence_index\": 0,\n", - " \"simpler_statements\": [\n", - " \"The answer is yes.\",\n", - " \"The c-myc gene is regulated by the circadian clock.\"\n", - " ]\n", - " },\n", - " {\n", - " \"sentence_index\": 1,\n", - " \"simpler_statements\": [\n", - " \"The circadian rhythm is a natural cycle.\",\n", - " \"This cycle regulates the sleep-wake cycle and other biological processes in the body.\"\n", - " ]\n", - " },\n", - " {\n", - " \"sentence_index\": 2,\n", - " \"simpler_statements\": [\n", - " \"The c-myc gene is one of the genes regulated by the circadian clock.\",\n", - " \"The expression levels of the c-myc gene change throughout the day and night.\"\n", - " ]\n", - " },\n", - " {\n", - " \"sentence_index\": 3,\n", - " \"simpler_statements\": [\n", - " \"The regulation of the c-myc gene is controlled by the circadian clock genes.\",\n", - " \"These genes help regulate the timing of various physiological processes in the body.\"\n", - " ]\n", - " },\n", - " {\n", - " \"sentence_index\": 4,\n", - " \"simpler_statements\": [\n", - " \"The circadian clock genes include CLOCK, BMAL1, and PER2, among others.\"\n", - " ]\n", - " },\n", - " {\n", - " \"sentence_index\": 5,\n", - " \"simpler_statements\": [\n", - " \"These genes work together to regulate the expression of other genes, including the c-myc gene.\",\n", - " \"They regulate the expression of other genes in a 24-hour cycle.\"\n", - " ]\n", - " },\n", - " {\n", - " \"sentence_index\": 6,\n", - " \"simpler_statements\": [\n", - " \"This regulation is important for maintaining proper physiological function.\",\n", - " \"The regulation ensures that the body's internal systems are synchronized with the external environment.\"\n", - " ]\n", - " }\n", - "]\n", - "``` with prompt prompt_str='Given a question, an answer, and sentences from the answer analyze the complexity of each sentence given under \\'sentences\\' and break down each sentence into one or more fully understandable statements while also ensuring no pronouns are used in each statement. Format the outputs in JSON.\\n\\nThe output should be a well-formatted JSON instance that conforms to the JSON schema below.\\n\\nAs an example, for the schema {\"properties\": {\"foo\": {\"title\": \"Foo\", \"description\": \"a list of strings\", \"type\": \"array\", \"items\": {\"type\": \"string\"}}}, \"required\": [\"foo\"]}\\nthe object {\"foo\": [\"bar\", \"baz\"]} is a well-formatted instance of the schema. The object {\"properties\": {\"foo\": [\"bar\", \"baz\"]}} is not well-formatted.\\n\\nHere is the output JSON schema:\\n```\\n{\"type\": \"array\", \"items\": {\"$ref\": \"#/definitions/Statements\"}, \"definitions\": {\"Statements\": {\"title\": \"Statements\", \"type\": \"object\", \"properties\": {\"sentence_index\": {\"title\": \"Sentence Index\", \"description\": \"Index of the sentence from the statement list\", \"type\": \"integer\"}, \"simpler_statements\": {\"title\": \"Simpler Statements\", \"description\": \"the simpler statements\", \"type\": \"array\", \"items\": {\"type\": \"string\"}}}, \"required\": [\"sentence_index\", \"simpler_statements\"]}}}\\n```\\n\\nDo not return any preamble or explanations, return only a pure JSON string surrounded by triple backticks (```).\\n\\nExamples:\\n\\nquestion: \"Who was Albert Einstein and what is he best known for?\"\\nanswer: \"He was a German-born theoretical physicist, widely acknowledged to be one of the greatest and most influential physicists of all time. He was best known for developing the theory of relativity, he also made important contributions to the development of the theory of quantum mechanics.\"\\nsentences: \"\\\\n 0:He was a German-born theoretical physicist, widely acknowledged to be one of the greatest and most influential physicists of all time. \\\\n 1:He was best known for developing the theory of relativity, he also made important contributions to the development of the theory of quantum mechanics.\\\\n \"\\nanalysis: ```[{\"sentence_index\": 0, \"simpler_statements\": [\"Albert Einstein was a German-born theoretical physicist.\", \"Albert Einstein is recognized as one of the greatest and most influential physicists of all time.\"]}, {\"sentence_index\": 1, \"simpler_statements\": [\"Albert Einstein was best known for developing the theory of relativity.\", \"Albert Einstein also made important contributions to the development of the theory of quantum mechanics.\"]}]```\\n\\nYour actual task:\\n\\nquestion: Is c-myc subject to regulation by the circadian clock?\\nanswer: Yes, the c-myc gene is regulated by the circadian clock. The circadian rhythm is a natural cycle that regulates the sleep-wake cycle and other biological processes in the body. The c-myc gene is one of the genes that are regulated by the circadian clock, which means that its expression levels change throughout the day and night. This regulation is controlled by the circadian clock genes, which are a group of genes that help regulate the timing of various physiological processes in the body. The circadian clock genes include CLOCK, BMAL1, and PER2, among others. These genes work together to regulate the expression of other genes, including the c-myc gene, in a 24-hour cycle. This regulation is important for maintaining proper physiological function and ensuring that the body\\'s internal systems are synchronized with the external environment.\\nsentences: 0:Yes, the c-myc gene is regulated by the circadian clock. \\n1:The circadian rhythm is a natural cycle that regulates the sleep-wake cycle and other biological processes in the body. \\n2:The c-myc gene is one of the genes that are regulated by the circadian clock, which means that its expression levels change throughout the day and night. \\n3:This regulation is controlled by the circadian clock genes, which are a group of genes that help regulate the timing of various physiological processes in the body. \\n4:The circadian clock genes include CLOCK, BMAL1, and PER2, among others. \\n5:These genes work together to regulate the expression of other genes, including the c-myc gene, in a 24-hour cycle. \\n6:This regulation is important for maintaining proper physiological function and ensuring that the body\\'s internal systems are synchronized with the external environment.\\nanalysis: \\n'\n" - ] - }, - { - "name": "stderr", - "output_type": "stream", - "text": [ - "INFO:httpx:HTTP Request: POST https://api.mistral.ai/v1/chat/completions \"HTTP/1.1 200 OK\"\n" - ] - }, - { - "name": "stdout", - "output_type": "stream", - "text": [ - "start parsing [\n", - "{\"statement\": \"The answer is yes.\", \"reason\": \"The context does not provide an answer to a specific question, making it impossible to determine if the answer is yes or no.\", \"verdict\": 0},\n", - "{\"statement\": \"The c-myc gene is regulated by the circadian clock.\", \"reason\": \"The context does not mention the c-myc gene or its regulation by the circadian clock.\", \"verdict\": 0},\n", - "{\"statement\": \"The circadian rhythm is a natural cycle.\", \"reason\": \"The context does not provide information about the circadian rhythm being a natural cycle.\", \"verdict\": 0},\n", - "{\"statement\": \"This cycle regulates the sleep-wake cycle and other biological processes in the body.\", \"reason\": \"The context does not mention the circadian rhythm or its regulation of the sleep-wake cycle and other biological processes.\", \"verdict\": 0},\n", - "{\"statement\": \"The c-myc gene is one of the genes regulated by the circadian clock.\", \"reason\": \"The context does not mention the c-myc gene or its regulation by the circadian clock.\", \"verdict\": 0},\n", - "{\"statement\": \"The expression levels of the c-myc gene change throughout the day and night.\", \"reason\": \"The context does not mention the c-myc gene or its expression levels throughout the day and night.\", \"verdict\": 0},\n", - "{\"statement\": \"The regulation of the c-myc gene is controlled by the circadian clock genes.\", \"reason\": \"The context does not mention the c-myc gene or its regulation by the circadian clock genes.\", \"verdict\": 0},\n", - "{\"statement\": \"These genes help regulate the timing of various physiological processes in the body.\", \"reason\": \"The context does not mention any genes that help regulate the timing of various physiological processes in the body.\", \"verdict\": 0},\n", - "{\"statement\": \"The circadian clock genes include CLOCK, BMAL1, and PER2, among others.\", \"reason\": \"The context does not mention any genes that are part of the circadian clock gene family.\", \"verdict\": 0},\n", - "{\"statement\": \"These genes work together to regulate the expression of other genes, including the c-myc gene.\", \"reason\": \"The context does not mention any genes working together to regulate the expression of other genes, including the c-myc gene.\", \"verdict\": 0},\n", - "{\"statement\": \"They regulate the expression of other genes in a 24-hour cycle.\", \"reason\": \"The context does not mention any genes regulating the expression of other genes in a 24-hour cycle.\", \"verdict\": 0},\n", - "{\"statement\": \"This regulation is important for maintaining proper physiological function.\", \"reason\": \"The context does not provide information about the importance of gene regulation for maintaining proper physiological function.\", \"verdict\": 0},\n", - "{\"statement\": \"The regulation ensures that the body's internal systems are synchronized with the external environment.\", \"reason\": \"The context does not mention any regulation that ensures that the body's internal systems are synchronized with the external environment.\", \"verdict\": 0}\n", - "] with prompt prompt_str='Your task is to judge the faithfulness of a series of statements based on a given context. For each statement you must return verdict as 1 if the statement can be directly inferred based on the context or 0 if the statement can not be directly inferred based on the context.\\n\\nThe output should be a well-formatted JSON instance that conforms to the JSON schema below.\\n\\nAs an example, for the schema {\"properties\": {\"foo\": {\"title\": \"Foo\", \"description\": \"a list of strings\", \"type\": \"array\", \"items\": {\"type\": \"string\"}}}, \"required\": [\"foo\"]}\\nthe object {\"foo\": [\"bar\", \"baz\"]} is a well-formatted instance of the schema. The object {\"properties\": {\"foo\": [\"bar\", \"baz\"]}} is not well-formatted.\\n\\nHere is the output JSON schema:\\n```\\n{\"type\": \"array\", \"items\": {\"$ref\": \"#/definitions/StatementFaithfulnessAnswer\"}, \"definitions\": {\"StatementFaithfulnessAnswer\": {\"title\": \"StatementFaithfulnessAnswer\", \"type\": \"object\", \"properties\": {\"statement\": {\"title\": \"Statement\", \"description\": \"the original statement, word-by-word\", \"type\": \"string\"}, \"reason\": {\"title\": \"Reason\", \"description\": \"the reason of the verdict\", \"type\": \"string\"}, \"verdict\": {\"title\": \"Verdict\", \"description\": \"the verdict(0/1) of the faithfulness.\", \"type\": \"integer\"}}, \"required\": [\"statement\", \"reason\", \"verdict\"]}}}\\n```\\n\\nDo not return any preamble or explanations, return only a pure JSON string surrounded by triple backticks (```).\\n\\nExamples:\\n\\ncontext: \"John is a student at XYZ University. He is pursuing a degree in Computer Science. He is enrolled in several courses this semester, including Data Structures, Algorithms, and Database Management. John is a diligent student and spends a significant amount of time studying and completing assignments. He often stays late in the library to work on his projects.\"\\nstatements: ```[\"John is majoring in Biology.\", \"John is taking a course on Artificial Intelligence.\", \"John is a dedicated student.\", \"John has a part-time job.\"]```\\nanswer: ```[{\"statement\": \"John is majoring in Biology.\", \"reason\": \"John\\'s major is explicitly mentioned as Computer Science. There is no information suggesting he is majoring in Biology.\", \"verdict\": 0}, {\"statement\": \"John is taking a course on Artificial Intelligence.\", \"reason\": \"The context mentions the courses John is currently enrolled in, and Artificial Intelligence is not mentioned. Therefore, it cannot be deduced that John is taking a course on AI.\", \"verdict\": 0}, {\"statement\": \"John is a dedicated student.\", \"reason\": \"The context states that he spends a significant amount of time studying and completing assignments. Additionally, it mentions that he often stays late in the library to work on his projects, which implies dedication.\", \"verdict\": 1}, {\"statement\": \"John has a part-time job.\", \"reason\": \"There is no information given in the context about John having a part-time job.\", \"verdict\": 0}]```\\n\\ncontext: \"Photosynthesis is a process used by plants, algae, and certain bacteria to convert light energy into chemical energy.\"\\nstatements: ```[\"Albert Einstein was a genius.\"]```\\nanswer: ```[{\"statement\": \"Albert Einstein was a genius.\", \"reason\": \"The context and statement are unrelated\", \"verdict\": 0}]```\\n\\nYour actual task:\\n\\ncontext: 11428324 / Familial craniosynostosis due to Pro250Arg mutation in the fibroblast growth \\nfactor receptor 3 gene. //\\n15683664 / Skin side effects following XRT take place more often in patients with skin \\ndisorders. In this study six patients with psoriatic lesions were evaluated. The \\ntotal/daily XRT dose to the tumor site was 50-70/1.8-2.0 Gy. No debilitating \\neffect of XRT was observed in both the psoriatic lesions and in the surrounding \\nnormal skin. //\\n16570042 / Mobile phone use and risk of acoustic neuroma: results of the interphone \\ncase-control study in five north European countries [corrected]. //\\n16457587 / The basis set of protein forms expressed by human cells from the H2B gene family \\nwas determined by Top Down Mass Spectrometry. Using Electron Capture \\nDissociation for MS/MS of H2B isoforms, direct evidence for the expression of \\nunmodified H2B.Q, H2B.A, H2B.K/T, H2B.J, H2B.E, H2B.B, H2B.F, and monoacetylated \\nH2B.A was obtained from asynchronous HeLa cells. H2B.A was the most abundant \\nform, with the overall expression profile not changing significantly in cells \\narrested in mitosis by colchicine or during mid-S, mid-G2, G2/M, and mid-G1 \\nphases of the cell cycle. Modest hyperacetylation of H2B family members was \\nobserved after sodium butyrate treatment. //\\n17103449 / P250R mutation in the FGFR3 gene also known as Muenke syndrome is associated \\nwith coronal craniosynostosis, sensorineural deafness, craniofacial, and digital \\nabnormalities. We report a family with this mutation associated with sudden \\ndeath in an affected newborn, most probably due to upper airway obstruction. //\\nstatements: [\"The answer is yes.\", \"The c-myc gene is regulated by the circadian clock.\", \"The circadian rhythm is a natural cycle.\", \"This cycle regulates the sleep-wake cycle and other biological processes in the body.\", \"The c-myc gene is one of the genes regulated by the circadian clock.\", \"The expression levels of the c-myc gene change throughout the day and night.\", \"The regulation of the c-myc gene is controlled by the circadian clock genes.\", \"These genes help regulate the timing of various physiological processes in the body.\", \"The circadian clock genes include CLOCK, BMAL1, and PER2, among others.\", \"These genes work together to regulate the expression of other genes, including the c-myc gene.\", \"They regulate the expression of other genes in a 24-hour cycle.\", \"This regulation is important for maintaining proper physiological function.\", \"The regulation ensures that the body\\'s internal systems are synchronized with the external environment.\"]\\nanswer: \\n'\n" - ] - }, - { - "name": "stderr", - "output_type": "stream", - "text": [ - "INFO:httpx:HTTP Request: POST https://api.mistral.ai/v1/chat/completions \"HTTP/1.1 200 OK\"\n" - ] - }, - { - "name": "stdout", - "output_type": "stream", - "text": [ - "start parsing [\n", - "{\"statement\": \"EMT is characterized by acquisition of cell motility, modifications of cell morphology, and cell dissociation correlating with the loss of desmosomes from the cellular cortex.\", \"attributed\": 0, \"reason\": \"The context does not provide information about the characteristics of EMT.\"},\n", - "{\"statement\": \"A number of growth factors have been shown to be involved in this process.\", \"attributed\": 0, \"reason\": \"The context does not provide information about growth factors involved in EMT.\"},\n", - "{\"statement\": \"These include fibroblast growth factors (FGFs)\", \"attributed\": 0, \"reason\": \"The context does not provide information about fibroblast growth factors (FGFs) involvement in EMT.\"},\n", - "{\"statement\": \"TGF-β1, TGF-β2\", \"attributed\": 0, \"reason\": \"The context does not provide information about TGF-β1, TGF-β2 involvement in EMT.\"},\n", - "{\"statement\": \"TNF-α, CCN family, Sonic Hedgehog (SHh), Notch1, GF-β, Wnt, EGF, bFGF, IGF-I and IGF-II.\", \"attributed\": 0, \"reason\": \"The context does not provide information about these growth factors involvement in EMT.\"}\n", - "] with prompt prompt_str='Given a context, and an answer, analyze each sentence in the answer and classify if the sentence can be attributed to the given context or not. Use only \"Yes\" (1) or \"No\" (0) as a binary classification. Output json with reason.\\n\\nThe output should be a well-formatted JSON instance that conforms to the JSON schema below.\\n\\nAs an example, for the schema {\"properties\": {\"foo\": {\"title\": \"Foo\", \"description\": \"a list of strings\", \"type\": \"array\", \"items\": {\"type\": \"string\"}}}, \"required\": [\"foo\"]}\\nthe object {\"foo\": [\"bar\", \"baz\"]} is a well-formatted instance of the schema. The object {\"properties\": {\"foo\": [\"bar\", \"baz\"]}} is not well-formatted.\\n\\nHere is the output JSON schema:\\n```\\n{\"type\": \"array\", \"items\": {\"$ref\": \"#/definitions/ContextRecallClassificationAnswer\"}, \"definitions\": {\"ContextRecallClassificationAnswer\": {\"title\": \"ContextRecallClassificationAnswer\", \"type\": \"object\", \"properties\": {\"statement\": {\"title\": \"Statement\", \"type\": \"string\"}, \"attributed\": {\"title\": \"Attributed\", \"type\": \"integer\"}, \"reason\": {\"title\": \"Reason\", \"type\": \"string\"}}, \"required\": [\"statement\", \"attributed\", \"reason\"]}}}\\n```\\n\\nDo not return any preamble or explanations, return only a pure JSON string surrounded by triple backticks (```).\\n\\nExamples:\\n\\nquestion: \"What can you tell me about albert Albert Einstein?\"\\ncontext: \"Albert Einstein (14 March 1879 - 18 April 1955) was a German-born theoretical physicist, widely held to be one of the greatest and most influential scientists of all time. Best known for developing the theory of relativity, he also made important contributions to quantum mechanics, and was thus a central figure in the revolutionary reshaping of the scientific understanding of nature that modern physics accomplished in the first decades of the twentieth century. His mass-energy equivalence formula E = mc2, which arises from relativity theory, has been called \\'the world\\'s most famous equation\\'. He received the 1921 Nobel Prize in Physics \\'for his services to theoretical physics, and especially for his discovery of the law of the photoelectric effect\\', a pivotal step in the development of quantum theory. His work is also known for its influence on the philosophy of science. In a 1999 poll of 130 leading physicists worldwide by the British journal Physics World, Einstein was ranked the greatest physicist of all time. His intellectual achievements and originality have made Einstein synonymous with genius.\"\\nanswer: \"Albert Einstein born in 14 March 1879 was German-born theoretical physicist, widely held to be one of the greatest and most influential scientists of all time. He received the 1921 Nobel Prize in Physics for his services to theoretical physics. He published 4 papers in 1905. Einstein moved to Switzerland in 1895\"\\nclassification: ```[{\"statement\": \"Albert Einstein, born on 14 March 1879, was a German-born theoretical physicist, widely held to be one of the greatest and most influential scientists of all time.\", \"attributed\": 1, \"reason\": \"The date of birth of Einstein is mentioned clearly in the context.\"}, {\"statement\": \"He received the 1921 Nobel Prize in Physics for his services to theoretical physics.\", \"attributed\": 1, \"reason\": \"The exact sentence is present in the given context.\"}, {\"statement\": \"He published 4 papers in 1905.\", \"attributed\": 0, \"reason\": \"There is no mention about papers he wrote in the given context.\"}, {\"statement\": \"Einstein moved to Switzerland in 1895.\", \"attributed\": 0, \"reason\": \"There is no supporting evidence for this in the given context.\"}]```\\n\\nquestion: \"who won 2020 icc world cup?\"\\ncontext: \"The 2022 ICC Men\\'s T20 World Cup, held from October 16 to November 13, 2022, in Australia, was the eighth edition of the tournament. Originally scheduled for 2020, it was postponed due to the COVID-19 pandemic. England emerged victorious, defeating Pakistan by five wickets in the final to clinch their second ICC Men\\'s T20 World Cup title.\"\\nanswer: \"England\"\\nclassification: ```[{\"statement\": \"England won the 2022 ICC Men\\'s T20 World Cup.\", \"attributed\": 1, \"reason\": \"From context it is clear that England defeated Pakistan to win the World Cup.\"}]```\\n\\nquestion: \"What is the primary fuel for the Sun?\"\\ncontext: \"NULL\"\\nanswer: \"Hydrogen\"\\nclassification: ```[{\"statement\": \"The Sun\\'s primary fuel is hydrogen.\", \"attributed\": 0, \"reason\": \"The context contains no information\"}]```\\n\\nYour actual task:\\n\\nquestion: Which growth factors are known to be involved in the induction of EMT?\\ncontext: 11428324 / Familial craniosynostosis due to Pro250Arg mutation in the fibroblast growth \\nfactor receptor 3 gene. //\\n15683664 / Skin side effects following XRT take place more often in patients with skin \\ndisorders. In this study six patients with psoriatic lesions were evaluated. The \\ntotal/daily XRT dose to the tumor site was 50-70/1.8-2.0 Gy. No debilitating \\neffect of XRT was observed in both the psoriatic lesions and in the surrounding \\nnormal skin. //\\n16570042 / Mobile phone use and risk of acoustic neuroma: results of the interphone \\ncase-control study in five north European countries [corrected]. //\\n16457587 / The basis set of protein forms expressed by human cells from the H2B gene family \\nwas determined by Top Down Mass Spectrometry. Using Electron Capture \\nDissociation for MS/MS of H2B isoforms, direct evidence for the expression of \\nunmodified H2B.Q, H2B.A, H2B.K/T, H2B.J, H2B.E, H2B.B, H2B.F, and monoacetylated \\nH2B.A was obtained from asynchronous HeLa cells. H2B.A was the most abundant \\nform, with the overall expression profile not changing significantly in cells \\narrested in mitosis by colchicine or during mid-S, mid-G2, G2/M, and mid-G1 \\nphases of the cell cycle. Modest hyperacetylation of H2B family members was \\nobserved after sodium butyrate treatment. //\\n17103449 / P250R mutation in the FGFR3 gene also known as Muenke syndrome is associated \\nwith coronal craniosynostosis, sensorineural deafness, craniofacial, and digital \\nabnormalities. We report a family with this mutation associated with sudden \\ndeath in an affected newborn, most probably due to upper airway obstruction. //\\nanswer: EMT is characterized by acquisition of cell motility, modifications of cell morphology, and cell dissociation correlating with the loss of desmosomes from the cellular cortex. A number of growth factors have been shown to be involved in this process. These include fibroblast growth factors (FGFs), TGF-β1, TGF-β2, TNF-α, CCN family, Sonic Hedgehog (SHh), Notch1, GF-β, Wnt, EGF, bFGF, IGF-I and IGF-II.\\nclassification: \\n'\n" - ] - }, - { - "name": "stderr", - "output_type": "stream", - "text": [ - "INFO:httpx:HTTP Request: POST https://api.mistral.ai/v1/chat/completions \"HTTP/1.1 200 OK\"\n", - "INFO:httpx:HTTP Request: POST https://api.mistral.ai/v1/chat/completions \"HTTP/1.1 200 OK\"\n", - "INFO:httpx:HTTP Request: POST https://api.mistral.ai/v1/chat/completions \"HTTP/1.1 200 OK\"\n", - "INFO:httpx:HTTP Request: POST https://api.mistral.ai/v1/embeddings \"HTTP/1.1 200 OK\"\n" - ] - }, - { - "name": "stdout", - "output_type": "stream", - "text": [ - "start parsing {\"question\": \"What is the function of the Mismatched uracil glycosylase (MUG) enzyme?\", \"noncommittal\": 0} with prompt prompt_str='Generate a question for the given answer and Identify if answer is noncommittal. Give noncommittal as 1 if the answer is noncommittal and 0 if the answer is committal. A noncommittal answer is one that is evasive, vague, or ambiguous. For example, \"I don\\'t know\" or \"I\\'m not sure\" are noncommittal answers\\n\\nThe output should be a well-formatted JSON instance that conforms to the JSON schema below.\\n\\nAs an example, for the schema {\"properties\": {\"foo\": {\"title\": \"Foo\", \"description\": \"a list of strings\", \"type\": \"array\", \"items\": {\"type\": \"string\"}}}, \"required\": [\"foo\"]}\\nthe object {\"foo\": [\"bar\", \"baz\"]} is a well-formatted instance of the schema. The object {\"properties\": {\"foo\": [\"bar\", \"baz\"]}} is not well-formatted.\\n\\nHere is the output JSON schema:\\n```\\n{\"type\": \"object\", \"properties\": {\"question\": {\"title\": \"Question\", \"type\": \"string\"}, \"noncommittal\": {\"title\": \"Noncommittal\", \"type\": \"integer\"}}, \"required\": [\"question\", \"noncommittal\"]}\\n```\\n\\nDo not return any preamble or explanations, return only a pure JSON string surrounded by triple backticks (```).\\n\\nExamples:\\n\\nanswer: \"Albert Einstein was born in Germany.\"\\ncontext: \"Albert Einstein was a German-born theoretical physicist who is widely held to be one of the greatest and most influential scientists of all time\"\\noutput: ```{\"question\": \"Where was Albert Einstein born?\", \"noncommittal\": 0}```\\n\\nanswer: \"It can change its skin color based on the temperature of its environment.\"\\ncontext: \"A recent scientific study has discovered a new species of frog in the Amazon rainforest that has the unique ability to change its skin color based on the temperature of its environment.\"\\noutput: ```{\"question\": \"What unique ability does the newly discovered species of frog have?\", \"noncommittal\": 0}```\\n\\nanswer: \"Everest\"\\ncontext: \"The tallest mountain on Earth, measured from sea level, is a renowned peak located in the Himalayas.\"\\noutput: ```{\"question\": \"What is the tallest mountain on Earth?\", \"noncommittal\": 0}```\\n\\nanswer: \"I don\\'t know about the groundbreaking feature of the smartphone invented in 2023 as am unaware of information beyond 2022. \"\\ncontext: \"In 2023, a groundbreaking invention was announced: a smartphone with a battery life of one month, revolutionizing the way people use mobile technology.\"\\noutput: ```{\"question\": \"What was the groundbreaking feature of the smartphone invented in 2023?\", \"noncommittal\": 1}```\\n\\nYour actual task:\\n\\nanswer: Mismatched uracil glycosylase (MUG) is an enzyme that plays a crucial role in the base excision repair (BER) pathway, which is responsible for repairing DNA damage caused by oxidative stress, alkylation, and deamination. MUG is involved in the removal of uracil and other non-standard bases from DNA, which can result from errors during DNA replication or from exposure to environmental mutagens. The enzyme recognizes and binds to these abnormal bases, excising them and leaving a gap that is then filled by the DNA polymerase and sealed by DNA ligase. This process helps to maintain the integrity of the genome and prevent mutations that can lead to diseases such as cancer. In the absence of MUG, cells would accumulate these abnormal bases, leading to genomic instability and an increased risk of cancer.\\ncontext: 11428324 / Familial craniosynostosis due to Pro250Arg mutation in the fibroblast growth \\nfactor receptor 3 gene. //\\n15683664 / Skin side effects following XRT take place more often in patients with skin \\ndisorders. In this study six patients with psoriatic lesions were evaluated. The \\ntotal/daily XRT dose to the tumor site was 50-70/1.8-2.0 Gy. No debilitating \\neffect of XRT was observed in both the psoriatic lesions and in the surrounding \\nnormal skin. //\\n16570042 / Mobile phone use and risk of acoustic neuroma: results of the interphone \\ncase-control study in five north European countries [corrected]. //\\n16457587 / The basis set of protein forms expressed by human cells from the H2B gene family \\nwas determined by Top Down Mass Spectrometry. Using Electron Capture \\nDissociation for MS/MS of H2B isoforms, direct evidence for the expression of \\nunmodified H2B.Q, H2B.A, H2B.K/T, H2B.J, H2B.E, H2B.B, H2B.F, and monoacetylated \\nH2B.A was obtained from asynchronous HeLa cells. H2B.A was the most abundant \\nform, with the overall expression profile not changing significantly in cells \\narrested in mitosis by colchicine or during mid-S, mid-G2, G2/M, and mid-G1 \\nphases of the cell cycle. Modest hyperacetylation of H2B family members was \\nobserved after sodium butyrate treatment. //\\n17103449 / P250R mutation in the FGFR3 gene also known as Muenke syndrome is associated \\nwith coronal craniosynostosis, sensorineural deafness, craniofacial, and digital \\nabnormalities. We report a family with this mutation associated with sudden \\ndeath in an affected newborn, most probably due to upper airway obstruction. //\\noutput: \\n'\n", - "start parsing {\"question\": \"What is the function of the Mismatched uracil glycosylase (MUG) enzyme?\", \"noncommittal\": 0} with prompt prompt_str='Generate a question for the given answer and Identify if answer is noncommittal. Give noncommittal as 1 if the answer is noncommittal and 0 if the answer is committal. A noncommittal answer is one that is evasive, vague, or ambiguous. For example, \"I don\\'t know\" or \"I\\'m not sure\" are noncommittal answers\\n\\nThe output should be a well-formatted JSON instance that conforms to the JSON schema below.\\n\\nAs an example, for the schema {\"properties\": {\"foo\": {\"title\": \"Foo\", \"description\": \"a list of strings\", \"type\": \"array\", \"items\": {\"type\": \"string\"}}}, \"required\": [\"foo\"]}\\nthe object {\"foo\": [\"bar\", \"baz\"]} is a well-formatted instance of the schema. The object {\"properties\": {\"foo\": [\"bar\", \"baz\"]}} is not well-formatted.\\n\\nHere is the output JSON schema:\\n```\\n{\"type\": \"object\", \"properties\": {\"question\": {\"title\": \"Question\", \"type\": \"string\"}, \"noncommittal\": {\"title\": \"Noncommittal\", \"type\": \"integer\"}}, \"required\": [\"question\", \"noncommittal\"]}\\n```\\n\\nDo not return any preamble or explanations, return only a pure JSON string surrounded by triple backticks (```).\\n\\nExamples:\\n\\nanswer: \"Albert Einstein was born in Germany.\"\\ncontext: \"Albert Einstein was a German-born theoretical physicist who is widely held to be one of the greatest and most influential scientists of all time\"\\noutput: ```{\"question\": \"Where was Albert Einstein born?\", \"noncommittal\": 0}```\\n\\nanswer: \"It can change its skin color based on the temperature of its environment.\"\\ncontext: \"A recent scientific study has discovered a new species of frog in the Amazon rainforest that has the unique ability to change its skin color based on the temperature of its environment.\"\\noutput: ```{\"question\": \"What unique ability does the newly discovered species of frog have?\", \"noncommittal\": 0}```\\n\\nanswer: \"Everest\"\\ncontext: \"The tallest mountain on Earth, measured from sea level, is a renowned peak located in the Himalayas.\"\\noutput: ```{\"question\": \"What is the tallest mountain on Earth?\", \"noncommittal\": 0}```\\n\\nanswer: \"I don\\'t know about the groundbreaking feature of the smartphone invented in 2023 as am unaware of information beyond 2022. \"\\ncontext: \"In 2023, a groundbreaking invention was announced: a smartphone with a battery life of one month, revolutionizing the way people use mobile technology.\"\\noutput: ```{\"question\": \"What was the groundbreaking feature of the smartphone invented in 2023?\", \"noncommittal\": 1}```\\n\\nYour actual task:\\n\\nanswer: Mismatched uracil glycosylase (MUG) is an enzyme that plays a crucial role in the base excision repair (BER) pathway, which is responsible for repairing DNA damage caused by oxidative stress, alkylation, and deamination. MUG is involved in the removal of uracil and other non-standard bases from DNA, which can result from errors during DNA replication or from exposure to environmental mutagens. The enzyme recognizes and binds to these abnormal bases, excising them and leaving a gap that is then filled by the DNA polymerase and sealed by DNA ligase. This process helps to maintain the integrity of the genome and prevent mutations that can lead to diseases such as cancer. In the absence of MUG, cells would accumulate these abnormal bases, leading to genomic instability and an increased risk of cancer.\\ncontext: 11428324 / Familial craniosynostosis due to Pro250Arg mutation in the fibroblast growth \\nfactor receptor 3 gene. //\\n15683664 / Skin side effects following XRT take place more often in patients with skin \\ndisorders. In this study six patients with psoriatic lesions were evaluated. The \\ntotal/daily XRT dose to the tumor site was 50-70/1.8-2.0 Gy. No debilitating \\neffect of XRT was observed in both the psoriatic lesions and in the surrounding \\nnormal skin. //\\n16570042 / Mobile phone use and risk of acoustic neuroma: results of the interphone \\ncase-control study in five north European countries [corrected]. //\\n16457587 / The basis set of protein forms expressed by human cells from the H2B gene family \\nwas determined by Top Down Mass Spectrometry. Using Electron Capture \\nDissociation for MS/MS of H2B isoforms, direct evidence for the expression of \\nunmodified H2B.Q, H2B.A, H2B.K/T, H2B.J, H2B.E, H2B.B, H2B.F, and monoacetylated \\nH2B.A was obtained from asynchronous HeLa cells. H2B.A was the most abundant \\nform, with the overall expression profile not changing significantly in cells \\narrested in mitosis by colchicine or during mid-S, mid-G2, G2/M, and mid-G1 \\nphases of the cell cycle. Modest hyperacetylation of H2B family members was \\nobserved after sodium butyrate treatment. //\\n17103449 / P250R mutation in the FGFR3 gene also known as Muenke syndrome is associated \\nwith coronal craniosynostosis, sensorineural deafness, craniofacial, and digital \\nabnormalities. We report a family with this mutation associated with sudden \\ndeath in an affected newborn, most probably due to upper airway obstruction. //\\noutput: \\n'\n", - "start parsing {\"question\": \"What is the function of the Mismatched uracil glycosylase (MUG) enzyme?\", \"noncommittal\": 0} with prompt prompt_str='Generate a question for the given answer and Identify if answer is noncommittal. Give noncommittal as 1 if the answer is noncommittal and 0 if the answer is committal. A noncommittal answer is one that is evasive, vague, or ambiguous. For example, \"I don\\'t know\" or \"I\\'m not sure\" are noncommittal answers\\n\\nThe output should be a well-formatted JSON instance that conforms to the JSON schema below.\\n\\nAs an example, for the schema {\"properties\": {\"foo\": {\"title\": \"Foo\", \"description\": \"a list of strings\", \"type\": \"array\", \"items\": {\"type\": \"string\"}}}, \"required\": [\"foo\"]}\\nthe object {\"foo\": [\"bar\", \"baz\"]} is a well-formatted instance of the schema. The object {\"properties\": {\"foo\": [\"bar\", \"baz\"]}} is not well-formatted.\\n\\nHere is the output JSON schema:\\n```\\n{\"type\": \"object\", \"properties\": {\"question\": {\"title\": \"Question\", \"type\": \"string\"}, \"noncommittal\": {\"title\": \"Noncommittal\", \"type\": \"integer\"}}, \"required\": [\"question\", \"noncommittal\"]}\\n```\\n\\nDo not return any preamble or explanations, return only a pure JSON string surrounded by triple backticks (```).\\n\\nExamples:\\n\\nanswer: \"Albert Einstein was born in Germany.\"\\ncontext: \"Albert Einstein was a German-born theoretical physicist who is widely held to be one of the greatest and most influential scientists of all time\"\\noutput: ```{\"question\": \"Where was Albert Einstein born?\", \"noncommittal\": 0}```\\n\\nanswer: \"It can change its skin color based on the temperature of its environment.\"\\ncontext: \"A recent scientific study has discovered a new species of frog in the Amazon rainforest that has the unique ability to change its skin color based on the temperature of its environment.\"\\noutput: ```{\"question\": \"What unique ability does the newly discovered species of frog have?\", \"noncommittal\": 0}```\\n\\nanswer: \"Everest\"\\ncontext: \"The tallest mountain on Earth, measured from sea level, is a renowned peak located in the Himalayas.\"\\noutput: ```{\"question\": \"What is the tallest mountain on Earth?\", \"noncommittal\": 0}```\\n\\nanswer: \"I don\\'t know about the groundbreaking feature of the smartphone invented in 2023 as am unaware of information beyond 2022. \"\\ncontext: \"In 2023, a groundbreaking invention was announced: a smartphone with a battery life of one month, revolutionizing the way people use mobile technology.\"\\noutput: ```{\"question\": \"What was the groundbreaking feature of the smartphone invented in 2023?\", \"noncommittal\": 1}```\\n\\nYour actual task:\\n\\nanswer: Mismatched uracil glycosylase (MUG) is an enzyme that plays a crucial role in the base excision repair (BER) pathway, which is responsible for repairing DNA damage caused by oxidative stress, alkylation, and deamination. MUG is involved in the removal of uracil and other non-standard bases from DNA, which can result from errors during DNA replication or from exposure to environmental mutagens. The enzyme recognizes and binds to these abnormal bases, excising them and leaving a gap that is then filled by the DNA polymerase and sealed by DNA ligase. This process helps to maintain the integrity of the genome and prevent mutations that can lead to diseases such as cancer. In the absence of MUG, cells would accumulate these abnormal bases, leading to genomic instability and an increased risk of cancer.\\ncontext: 11428324 / Familial craniosynostosis due to Pro250Arg mutation in the fibroblast growth \\nfactor receptor 3 gene. //\\n15683664 / Skin side effects following XRT take place more often in patients with skin \\ndisorders. In this study six patients with psoriatic lesions were evaluated. The \\ntotal/daily XRT dose to the tumor site was 50-70/1.8-2.0 Gy. No debilitating \\neffect of XRT was observed in both the psoriatic lesions and in the surrounding \\nnormal skin. //\\n16570042 / Mobile phone use and risk of acoustic neuroma: results of the interphone \\ncase-control study in five north European countries [corrected]. //\\n16457587 / The basis set of protein forms expressed by human cells from the H2B gene family \\nwas determined by Top Down Mass Spectrometry. Using Electron Capture \\nDissociation for MS/MS of H2B isoforms, direct evidence for the expression of \\nunmodified H2B.Q, H2B.A, H2B.K/T, H2B.J, H2B.E, H2B.B, H2B.F, and monoacetylated \\nH2B.A was obtained from asynchronous HeLa cells. H2B.A was the most abundant \\nform, with the overall expression profile not changing significantly in cells \\narrested in mitosis by colchicine or during mid-S, mid-G2, G2/M, and mid-G1 \\nphases of the cell cycle. Modest hyperacetylation of H2B family members was \\nobserved after sodium butyrate treatment. //\\n17103449 / P250R mutation in the FGFR3 gene also known as Muenke syndrome is associated \\nwith coronal craniosynostosis, sensorineural deafness, craniofacial, and digital \\nabnormalities. We report a family with this mutation associated with sudden \\ndeath in an affected newborn, most probably due to upper airway obstruction. //\\noutput: \\n'\n" - ] - }, - { - "name": "stderr", - "output_type": "stream", - "text": [ - "INFO:httpx:HTTP Request: POST https://api.mistral.ai/v1/embeddings \"HTTP/1.1 200 OK\"\n", - "INFO:httpx:HTTP Request: POST https://api.mistral.ai/v1/chat/completions \"HTTP/1.1 200 OK\"\n", - "INFO:httpx:HTTP Request: POST https://api.mistral.ai/v1/chat/completions \"HTTP/1.1 200 OK\"\n", - "INFO:httpx:HTTP Request: POST https://api.mistral.ai/v1/chat/completions \"HTTP/1.1 200 OK\"\n" - ] - }, - { - "name": "stdout", - "output_type": "stream", - "text": [ - "start parsing {\"question\": \"Is the c-myc gene regulated by the circadian clock?\", \"noncommittal\": 0} with prompt prompt_str='Generate a question for the given answer and Identify if answer is noncommittal. Give noncommittal as 1 if the answer is noncommittal and 0 if the answer is committal. A noncommittal answer is one that is evasive, vague, or ambiguous. For example, \"I don\\'t know\" or \"I\\'m not sure\" are noncommittal answers\\n\\nThe output should be a well-formatted JSON instance that conforms to the JSON schema below.\\n\\nAs an example, for the schema {\"properties\": {\"foo\": {\"title\": \"Foo\", \"description\": \"a list of strings\", \"type\": \"array\", \"items\": {\"type\": \"string\"}}}, \"required\": [\"foo\"]}\\nthe object {\"foo\": [\"bar\", \"baz\"]} is a well-formatted instance of the schema. The object {\"properties\": {\"foo\": [\"bar\", \"baz\"]}} is not well-formatted.\\n\\nHere is the output JSON schema:\\n```\\n{\"type\": \"object\", \"properties\": {\"question\": {\"title\": \"Question\", \"type\": \"string\"}, \"noncommittal\": {\"title\": \"Noncommittal\", \"type\": \"integer\"}}, \"required\": [\"question\", \"noncommittal\"]}\\n```\\n\\nDo not return any preamble or explanations, return only a pure JSON string surrounded by triple backticks (```).\\n\\nExamples:\\n\\nanswer: \"Albert Einstein was born in Germany.\"\\ncontext: \"Albert Einstein was a German-born theoretical physicist who is widely held to be one of the greatest and most influential scientists of all time\"\\noutput: ```{\"question\": \"Where was Albert Einstein born?\", \"noncommittal\": 0}```\\n\\nanswer: \"It can change its skin color based on the temperature of its environment.\"\\ncontext: \"A recent scientific study has discovered a new species of frog in the Amazon rainforest that has the unique ability to change its skin color based on the temperature of its environment.\"\\noutput: ```{\"question\": \"What unique ability does the newly discovered species of frog have?\", \"noncommittal\": 0}```\\n\\nanswer: \"Everest\"\\ncontext: \"The tallest mountain on Earth, measured from sea level, is a renowned peak located in the Himalayas.\"\\noutput: ```{\"question\": \"What is the tallest mountain on Earth?\", \"noncommittal\": 0}```\\n\\nanswer: \"I don\\'t know about the groundbreaking feature of the smartphone invented in 2023 as am unaware of information beyond 2022. \"\\ncontext: \"In 2023, a groundbreaking invention was announced: a smartphone with a battery life of one month, revolutionizing the way people use mobile technology.\"\\noutput: ```{\"question\": \"What was the groundbreaking feature of the smartphone invented in 2023?\", \"noncommittal\": 1}```\\n\\nYour actual task:\\n\\nanswer: Yes, the c-myc gene is regulated by the circadian clock. The circadian rhythm is a natural cycle that regulates the sleep-wake cycle and other biological processes in the body. The c-myc gene is one of the genes that are regulated by the circadian clock, which means that its expression levels change throughout the day and night. This regulation is controlled by the circadian clock genes, which are a group of genes that help regulate the timing of various physiological processes in the body. The circadian clock genes include CLOCK, BMAL1, and PER2, among others. These genes work together to regulate the expression of other genes, including the c-myc gene, in a 24-hour cycle. This regulation is important for maintaining proper physiological function and ensuring that the body\\'s internal systems are synchronized with the external environment.\\ncontext: 11428324 / Familial craniosynostosis due to Pro250Arg mutation in the fibroblast growth \\nfactor receptor 3 gene. //\\n15683664 / Skin side effects following XRT take place more often in patients with skin \\ndisorders. In this study six patients with psoriatic lesions were evaluated. The \\ntotal/daily XRT dose to the tumor site was 50-70/1.8-2.0 Gy. No debilitating \\neffect of XRT was observed in both the psoriatic lesions and in the surrounding \\nnormal skin. //\\n16570042 / Mobile phone use and risk of acoustic neuroma: results of the interphone \\ncase-control study in five north European countries [corrected]. //\\n16457587 / The basis set of protein forms expressed by human cells from the H2B gene family \\nwas determined by Top Down Mass Spectrometry. Using Electron Capture \\nDissociation for MS/MS of H2B isoforms, direct evidence for the expression of \\nunmodified H2B.Q, H2B.A, H2B.K/T, H2B.J, H2B.E, H2B.B, H2B.F, and monoacetylated \\nH2B.A was obtained from asynchronous HeLa cells. H2B.A was the most abundant \\nform, with the overall expression profile not changing significantly in cells \\narrested in mitosis by colchicine or during mid-S, mid-G2, G2/M, and mid-G1 \\nphases of the cell cycle. Modest hyperacetylation of H2B family members was \\nobserved after sodium butyrate treatment. //\\n17103449 / P250R mutation in the FGFR3 gene also known as Muenke syndrome is associated \\nwith coronal craniosynostosis, sensorineural deafness, craniofacial, and digital \\nabnormalities. We report a family with this mutation associated with sudden \\ndeath in an affected newborn, most probably due to upper airway obstruction. //\\noutput: \\n'\n", - "start parsing {\"question\": \"Is the c-myc gene regulated by the circadian clock?\", \"noncommittal\": 0} with prompt prompt_str='Generate a question for the given answer and Identify if answer is noncommittal. Give noncommittal as 1 if the answer is noncommittal and 0 if the answer is committal. A noncommittal answer is one that is evasive, vague, or ambiguous. For example, \"I don\\'t know\" or \"I\\'m not sure\" are noncommittal answers\\n\\nThe output should be a well-formatted JSON instance that conforms to the JSON schema below.\\n\\nAs an example, for the schema {\"properties\": {\"foo\": {\"title\": \"Foo\", \"description\": \"a list of strings\", \"type\": \"array\", \"items\": {\"type\": \"string\"}}}, \"required\": [\"foo\"]}\\nthe object {\"foo\": [\"bar\", \"baz\"]} is a well-formatted instance of the schema. The object {\"properties\": {\"foo\": [\"bar\", \"baz\"]}} is not well-formatted.\\n\\nHere is the output JSON schema:\\n```\\n{\"type\": \"object\", \"properties\": {\"question\": {\"title\": \"Question\", \"type\": \"string\"}, \"noncommittal\": {\"title\": \"Noncommittal\", \"type\": \"integer\"}}, \"required\": [\"question\", \"noncommittal\"]}\\n```\\n\\nDo not return any preamble or explanations, return only a pure JSON string surrounded by triple backticks (```).\\n\\nExamples:\\n\\nanswer: \"Albert Einstein was born in Germany.\"\\ncontext: \"Albert Einstein was a German-born theoretical physicist who is widely held to be one of the greatest and most influential scientists of all time\"\\noutput: ```{\"question\": \"Where was Albert Einstein born?\", \"noncommittal\": 0}```\\n\\nanswer: \"It can change its skin color based on the temperature of its environment.\"\\ncontext: \"A recent scientific study has discovered a new species of frog in the Amazon rainforest that has the unique ability to change its skin color based on the temperature of its environment.\"\\noutput: ```{\"question\": \"What unique ability does the newly discovered species of frog have?\", \"noncommittal\": 0}```\\n\\nanswer: \"Everest\"\\ncontext: \"The tallest mountain on Earth, measured from sea level, is a renowned peak located in the Himalayas.\"\\noutput: ```{\"question\": \"What is the tallest mountain on Earth?\", \"noncommittal\": 0}```\\n\\nanswer: \"I don\\'t know about the groundbreaking feature of the smartphone invented in 2023 as am unaware of information beyond 2022. \"\\ncontext: \"In 2023, a groundbreaking invention was announced: a smartphone with a battery life of one month, revolutionizing the way people use mobile technology.\"\\noutput: ```{\"question\": \"What was the groundbreaking feature of the smartphone invented in 2023?\", \"noncommittal\": 1}```\\n\\nYour actual task:\\n\\nanswer: Yes, the c-myc gene is regulated by the circadian clock. The circadian rhythm is a natural cycle that regulates the sleep-wake cycle and other biological processes in the body. The c-myc gene is one of the genes that are regulated by the circadian clock, which means that its expression levels change throughout the day and night. This regulation is controlled by the circadian clock genes, which are a group of genes that help regulate the timing of various physiological processes in the body. The circadian clock genes include CLOCK, BMAL1, and PER2, among others. These genes work together to regulate the expression of other genes, including the c-myc gene, in a 24-hour cycle. This regulation is important for maintaining proper physiological function and ensuring that the body\\'s internal systems are synchronized with the external environment.\\ncontext: 11428324 / Familial craniosynostosis due to Pro250Arg mutation in the fibroblast growth \\nfactor receptor 3 gene. //\\n15683664 / Skin side effects following XRT take place more often in patients with skin \\ndisorders. In this study six patients with psoriatic lesions were evaluated. The \\ntotal/daily XRT dose to the tumor site was 50-70/1.8-2.0 Gy. No debilitating \\neffect of XRT was observed in both the psoriatic lesions and in the surrounding \\nnormal skin. //\\n16570042 / Mobile phone use and risk of acoustic neuroma: results of the interphone \\ncase-control study in five north European countries [corrected]. //\\n16457587 / The basis set of protein forms expressed by human cells from the H2B gene family \\nwas determined by Top Down Mass Spectrometry. Using Electron Capture \\nDissociation for MS/MS of H2B isoforms, direct evidence for the expression of \\nunmodified H2B.Q, H2B.A, H2B.K/T, H2B.J, H2B.E, H2B.B, H2B.F, and monoacetylated \\nH2B.A was obtained from asynchronous HeLa cells. H2B.A was the most abundant \\nform, with the overall expression profile not changing significantly in cells \\narrested in mitosis by colchicine or during mid-S, mid-G2, G2/M, and mid-G1 \\nphases of the cell cycle. Modest hyperacetylation of H2B family members was \\nobserved after sodium butyrate treatment. //\\n17103449 / P250R mutation in the FGFR3 gene also known as Muenke syndrome is associated \\nwith coronal craniosynostosis, sensorineural deafness, craniofacial, and digital \\nabnormalities. We report a family with this mutation associated with sudden \\ndeath in an affected newborn, most probably due to upper airway obstruction. //\\noutput: \\n'\n", - "start parsing {\"question\": \"Is the c-myc gene regulated by the circadian clock?\", \"noncommittal\": 0} with prompt prompt_str='Generate a question for the given answer and Identify if answer is noncommittal. Give noncommittal as 1 if the answer is noncommittal and 0 if the answer is committal. A noncommittal answer is one that is evasive, vague, or ambiguous. For example, \"I don\\'t know\" or \"I\\'m not sure\" are noncommittal answers\\n\\nThe output should be a well-formatted JSON instance that conforms to the JSON schema below.\\n\\nAs an example, for the schema {\"properties\": {\"foo\": {\"title\": \"Foo\", \"description\": \"a list of strings\", \"type\": \"array\", \"items\": {\"type\": \"string\"}}}, \"required\": [\"foo\"]}\\nthe object {\"foo\": [\"bar\", \"baz\"]} is a well-formatted instance of the schema. The object {\"properties\": {\"foo\": [\"bar\", \"baz\"]}} is not well-formatted.\\n\\nHere is the output JSON schema:\\n```\\n{\"type\": \"object\", \"properties\": {\"question\": {\"title\": \"Question\", \"type\": \"string\"}, \"noncommittal\": {\"title\": \"Noncommittal\", \"type\": \"integer\"}}, \"required\": [\"question\", \"noncommittal\"]}\\n```\\n\\nDo not return any preamble or explanations, return only a pure JSON string surrounded by triple backticks (```).\\n\\nExamples:\\n\\nanswer: \"Albert Einstein was born in Germany.\"\\ncontext: \"Albert Einstein was a German-born theoretical physicist who is widely held to be one of the greatest and most influential scientists of all time\"\\noutput: ```{\"question\": \"Where was Albert Einstein born?\", \"noncommittal\": 0}```\\n\\nanswer: \"It can change its skin color based on the temperature of its environment.\"\\ncontext: \"A recent scientific study has discovered a new species of frog in the Amazon rainforest that has the unique ability to change its skin color based on the temperature of its environment.\"\\noutput: ```{\"question\": \"What unique ability does the newly discovered species of frog have?\", \"noncommittal\": 0}```\\n\\nanswer: \"Everest\"\\ncontext: \"The tallest mountain on Earth, measured from sea level, is a renowned peak located in the Himalayas.\"\\noutput: ```{\"question\": \"What is the tallest mountain on Earth?\", \"noncommittal\": 0}```\\n\\nanswer: \"I don\\'t know about the groundbreaking feature of the smartphone invented in 2023 as am unaware of information beyond 2022. \"\\ncontext: \"In 2023, a groundbreaking invention was announced: a smartphone with a battery life of one month, revolutionizing the way people use mobile technology.\"\\noutput: ```{\"question\": \"What was the groundbreaking feature of the smartphone invented in 2023?\", \"noncommittal\": 1}```\\n\\nYour actual task:\\n\\nanswer: Yes, the c-myc gene is regulated by the circadian clock. The circadian rhythm is a natural cycle that regulates the sleep-wake cycle and other biological processes in the body. The c-myc gene is one of the genes that are regulated by the circadian clock, which means that its expression levels change throughout the day and night. This regulation is controlled by the circadian clock genes, which are a group of genes that help regulate the timing of various physiological processes in the body. The circadian clock genes include CLOCK, BMAL1, and PER2, among others. These genes work together to regulate the expression of other genes, including the c-myc gene, in a 24-hour cycle. This regulation is important for maintaining proper physiological function and ensuring that the body\\'s internal systems are synchronized with the external environment.\\ncontext: 11428324 / Familial craniosynostosis due to Pro250Arg mutation in the fibroblast growth \\nfactor receptor 3 gene. //\\n15683664 / Skin side effects following XRT take place more often in patients with skin \\ndisorders. In this study six patients with psoriatic lesions were evaluated. The \\ntotal/daily XRT dose to the tumor site was 50-70/1.8-2.0 Gy. No debilitating \\neffect of XRT was observed in both the psoriatic lesions and in the surrounding \\nnormal skin. //\\n16570042 / Mobile phone use and risk of acoustic neuroma: results of the interphone \\ncase-control study in five north European countries [corrected]. //\\n16457587 / The basis set of protein forms expressed by human cells from the H2B gene family \\nwas determined by Top Down Mass Spectrometry. Using Electron Capture \\nDissociation for MS/MS of H2B isoforms, direct evidence for the expression of \\nunmodified H2B.Q, H2B.A, H2B.K/T, H2B.J, H2B.E, H2B.B, H2B.F, and monoacetylated \\nH2B.A was obtained from asynchronous HeLa cells. H2B.A was the most abundant \\nform, with the overall expression profile not changing significantly in cells \\narrested in mitosis by colchicine or during mid-S, mid-G2, G2/M, and mid-G1 \\nphases of the cell cycle. Modest hyperacetylation of H2B family members was \\nobserved after sodium butyrate treatment. //\\n17103449 / P250R mutation in the FGFR3 gene also known as Muenke syndrome is associated \\nwith coronal craniosynostosis, sensorineural deafness, craniofacial, and digital \\nabnormalities. We report a family with this mutation associated with sudden \\ndeath in an affected newborn, most probably due to upper airway obstruction. //\\noutput: \\n'\n" - ] - }, - { - "name": "stderr", - "output_type": "stream", - "text": [ - "INFO:httpx:HTTP Request: POST https://api.mistral.ai/v1/embeddings \"HTTP/1.1 200 OK\"\n", - "INFO:httpx:HTTP Request: POST https://api.mistral.ai/v1/embeddings \"HTTP/1.1 200 OK\"\n", - "INFO:httpx:HTTP Request: POST https://api.mistral.ai/v1/chat/completions \"HTTP/1.1 200 OK\"\n" - ] - }, - { - "name": "stdout", - "output_type": "stream", - "text": [ - "start parsing ```json\n", - "{\n", - " \"reason\": \"The context provides information about a specific genetic mutation related to craniosynostosis, but it does not directly address the question about growth factors involved in the induction of EMT. However, the answer itself does mention fibroblast growth factors (FGFs) as one of the growth factors involved in EMT induction, and the context does mention a mutation in the fibroblast growth factor receptor 3 gene. Therefore, the context may have been useful in guiding the answerer to consider fibroblast growth factors as a relevant topic, even though it does not directly address the question.\",\n", - " \"verdict\": 1\n", - "}\n", - "``` with prompt prompt_str='Given question, answer and context verify if the context was useful in arriving at the given answer. Give verdict as \"1\" if useful and \"0\" if not with json output.\\n\\nThe output should be a well-formatted JSON instance that conforms to the JSON schema below.\\n\\nAs an example, for the schema {\"properties\": {\"foo\": {\"title\": \"Foo\", \"description\": \"a list of strings\", \"type\": \"array\", \"items\": {\"type\": \"string\"}}}, \"required\": [\"foo\"]}\\nthe object {\"foo\": [\"bar\", \"baz\"]} is a well-formatted instance of the schema. The object {\"properties\": {\"foo\": [\"bar\", \"baz\"]}} is not well-formatted.\\n\\nHere is the output JSON schema:\\n```\\n{\"description\": \"Answer for the verification task wether the context was useful.\", \"type\": \"object\", \"properties\": {\"reason\": {\"title\": \"Reason\", \"description\": \"Reason for verification\", \"type\": \"string\"}, \"verdict\": {\"title\": \"Verdict\", \"description\": \"Binary (0/1) verdict of verification\", \"type\": \"integer\"}}, \"required\": [\"reason\", \"verdict\"]}\\n```\\n\\nDo not return any preamble or explanations, return only a pure JSON string surrounded by triple backticks (```).\\n\\nExamples:\\n\\nquestion: \"What can you tell me about albert Albert Einstein?\"\\ncontext: \"Albert Einstein (14 March 1879 – 18 April 1955) was a German-born theoretical physicist, widely held to be one of the greatest and most influential scientists of all time. Best known for developing the theory of relativity, he also made important contributions to quantum mechanics, and was thus a central figure in the revolutionary reshaping of the scientific understanding of nature that modern physics accomplished in the first decades of the twentieth century. His mass–energy equivalence formula E = mc2, which arises from relativity theory, has been called \\\\\"the world\\'s most famous equation\\\\\". He received the 1921 Nobel Prize in Physics \\\\\"for his services to theoretical physics, and especially for his discovery of the law of the photoelectric effect\\\\\", a pivotal step in the development of quantum theory. His work is also known for its influence on the philosophy of science. In a 1999 poll of 130 leading physicists worldwide by the British journal Physics World, Einstein was ranked the greatest physicist of all time. His intellectual achievements and originality have made Einstein synonymous with genius.\"\\nanswer: \"Albert Einstein born in 14 March 1879 was German-born theoretical physicist, widely held to be one of the greatest and most influential scientists of all time. He received the 1921 Nobel Prize in Physics for his services to theoretical physics. He published 4 papers in 1905. Einstein moved to Switzerland in 1895\"\\nverification: ```{\"reason\": \"The provided context was indeed useful in arriving at the given answer. The context includes key information about Albert Einstein\\'s life and contributions, which are reflected in the answer.\", \"verdict\": 1}```\\n\\nquestion: \"who won 2020 icc world cup?\"\\ncontext: \"The 2022 ICC Men\\'s T20 World Cup, held from October 16 to November 13, 2022, in Australia, was the eighth edition of the tournament. Originally scheduled for 2020, it was postponed due to the COVID-19 pandemic. England emerged victorious, defeating Pakistan by five wickets in the final to clinch their second ICC Men\\'s T20 World Cup title.\"\\nanswer: \"England\"\\nverification: ```{\"reason\": \"the context was useful in clarifying the situation regarding the 2020 ICC World Cup and indicating that England was the winner of the tournament that was intended to be held in 2020 but actually took place in 2022.\", \"verdict\": 1}```\\n\\nquestion: \"What is the tallest mountain in the world?\"\\ncontext: \"The Andes is the longest continental mountain range in the world, located in South America. It stretches across seven countries and features many of the highest peaks in the Western Hemisphere. The range is known for its diverse ecosystems, including the high-altitude Andean Plateau and the Amazon rainforest.\"\\nanswer: \"Mount Everest.\"\\nverification: ```{\"reason\": \"the provided context discusses the Andes mountain range, which, while impressive, does not include Mount Everest or directly relate to the question about the world\\'s tallest mountain.\", \"verdict\": 0}```\\n\\nYour actual task:\\n\\nquestion: Which growth factors are known to be involved in the induction of EMT?\\ncontext: 11428324 / Familial craniosynostosis due to Pro250Arg mutation in the fibroblast growth \\nfactor receptor 3 gene. //\\nanswer: EMT is characterized by acquisition of cell motility, modifications of cell morphology, and cell dissociation correlating with the loss of desmosomes from the cellular cortex. A number of growth factors have been shown to be involved in this process. These include fibroblast growth factors (FGFs), TGF-β1, TGF-β2, TNF-α, CCN family, Sonic Hedgehog (SHh), Notch1, GF-β, Wnt, EGF, bFGF, IGF-I and IGF-II.\\nverification: \\n'\n" - ] - }, - { - "name": "stderr", - "output_type": "stream", - "text": [ - "INFO:httpx:HTTP Request: POST https://api.mistral.ai/v1/chat/completions \"HTTP/1.1 200 OK\"\n" - ] - }, - { - "name": "stdout", - "output_type": "stream", - "text": [ - "start parsing ```json\n", - "{\n", - " \"reason\": \"The context provided does not contain any information relevant to the question about growth factors involved in the induction of EMT. It discusses skin side effects following XRT in patients with skin disorders.\",\n", - " \"verdict\": 0\n", - "}\n", - "``` with prompt prompt_str='Given question, answer and context verify if the context was useful in arriving at the given answer. Give verdict as \"1\" if useful and \"0\" if not with json output.\\n\\nThe output should be a well-formatted JSON instance that conforms to the JSON schema below.\\n\\nAs an example, for the schema {\"properties\": {\"foo\": {\"title\": \"Foo\", \"description\": \"a list of strings\", \"type\": \"array\", \"items\": {\"type\": \"string\"}}}, \"required\": [\"foo\"]}\\nthe object {\"foo\": [\"bar\", \"baz\"]} is a well-formatted instance of the schema. The object {\"properties\": {\"foo\": [\"bar\", \"baz\"]}} is not well-formatted.\\n\\nHere is the output JSON schema:\\n```\\n{\"description\": \"Answer for the verification task wether the context was useful.\", \"type\": \"object\", \"properties\": {\"reason\": {\"title\": \"Reason\", \"description\": \"Reason for verification\", \"type\": \"string\"}, \"verdict\": {\"title\": \"Verdict\", \"description\": \"Binary (0/1) verdict of verification\", \"type\": \"integer\"}}, \"required\": [\"reason\", \"verdict\"]}\\n```\\n\\nDo not return any preamble or explanations, return only a pure JSON string surrounded by triple backticks (```).\\n\\nExamples:\\n\\nquestion: \"What can you tell me about albert Albert Einstein?\"\\ncontext: \"Albert Einstein (14 March 1879 – 18 April 1955) was a German-born theoretical physicist, widely held to be one of the greatest and most influential scientists of all time. Best known for developing the theory of relativity, he also made important contributions to quantum mechanics, and was thus a central figure in the revolutionary reshaping of the scientific understanding of nature that modern physics accomplished in the first decades of the twentieth century. His mass–energy equivalence formula E = mc2, which arises from relativity theory, has been called \\\\\"the world\\'s most famous equation\\\\\". He received the 1921 Nobel Prize in Physics \\\\\"for his services to theoretical physics, and especially for his discovery of the law of the photoelectric effect\\\\\", a pivotal step in the development of quantum theory. His work is also known for its influence on the philosophy of science. In a 1999 poll of 130 leading physicists worldwide by the British journal Physics World, Einstein was ranked the greatest physicist of all time. His intellectual achievements and originality have made Einstein synonymous with genius.\"\\nanswer: \"Albert Einstein born in 14 March 1879 was German-born theoretical physicist, widely held to be one of the greatest and most influential scientists of all time. He received the 1921 Nobel Prize in Physics for his services to theoretical physics. He published 4 papers in 1905. Einstein moved to Switzerland in 1895\"\\nverification: ```{\"reason\": \"The provided context was indeed useful in arriving at the given answer. The context includes key information about Albert Einstein\\'s life and contributions, which are reflected in the answer.\", \"verdict\": 1}```\\n\\nquestion: \"who won 2020 icc world cup?\"\\ncontext: \"The 2022 ICC Men\\'s T20 World Cup, held from October 16 to November 13, 2022, in Australia, was the eighth edition of the tournament. Originally scheduled for 2020, it was postponed due to the COVID-19 pandemic. England emerged victorious, defeating Pakistan by five wickets in the final to clinch their second ICC Men\\'s T20 World Cup title.\"\\nanswer: \"England\"\\nverification: ```{\"reason\": \"the context was useful in clarifying the situation regarding the 2020 ICC World Cup and indicating that England was the winner of the tournament that was intended to be held in 2020 but actually took place in 2022.\", \"verdict\": 1}```\\n\\nquestion: \"What is the tallest mountain in the world?\"\\ncontext: \"The Andes is the longest continental mountain range in the world, located in South America. It stretches across seven countries and features many of the highest peaks in the Western Hemisphere. The range is known for its diverse ecosystems, including the high-altitude Andean Plateau and the Amazon rainforest.\"\\nanswer: \"Mount Everest.\"\\nverification: ```{\"reason\": \"the provided context discusses the Andes mountain range, which, while impressive, does not include Mount Everest or directly relate to the question about the world\\'s tallest mountain.\", \"verdict\": 0}```\\n\\nYour actual task:\\n\\nquestion: Which growth factors are known to be involved in the induction of EMT?\\ncontext: 15683664 / Skin side effects following XRT take place more often in patients with skin \\ndisorders. In this study six patients with psoriatic lesions were evaluated. The \\ntotal/daily XRT dose to the tumor site was 50-70/1.8-2.0 Gy. No debilitating \\neffect of XRT was observed in both the psoriatic lesions and in the surrounding \\nnormal skin. //\\nanswer: EMT is characterized by acquisition of cell motility, modifications of cell morphology, and cell dissociation correlating with the loss of desmosomes from the cellular cortex. A number of growth factors have been shown to be involved in this process. These include fibroblast growth factors (FGFs), TGF-β1, TGF-β2, TNF-α, CCN family, Sonic Hedgehog (SHh), Notch1, GF-β, Wnt, EGF, bFGF, IGF-I and IGF-II.\\nverification: \\n'\n" - ] - }, - { - "name": "stderr", - "output_type": "stream", - "text": [ - "INFO:httpx:HTTP Request: POST https://api.mistral.ai/v1/chat/completions \"HTTP/1.1 200 OK\"\n" - ] - }, - { - "name": "stdout", - "output_type": "stream", - "text": [ - "start parsing ```json\n", - "{\n", - " \"reason\": \"The context does not provide any information relevant to the question about growth factors involved in the induction of EMT. The context is about a study on mobile phone use and acoustic neuroma. Therefore, it was not useful in arriving at the given answer.\",\n", - " \"verdict\": 0\n", - "}\n", - "``` with prompt prompt_str='Given question, answer and context verify if the context was useful in arriving at the given answer. Give verdict as \"1\" if useful and \"0\" if not with json output.\\n\\nThe output should be a well-formatted JSON instance that conforms to the JSON schema below.\\n\\nAs an example, for the schema {\"properties\": {\"foo\": {\"title\": \"Foo\", \"description\": \"a list of strings\", \"type\": \"array\", \"items\": {\"type\": \"string\"}}}, \"required\": [\"foo\"]}\\nthe object {\"foo\": [\"bar\", \"baz\"]} is a well-formatted instance of the schema. The object {\"properties\": {\"foo\": [\"bar\", \"baz\"]}} is not well-formatted.\\n\\nHere is the output JSON schema:\\n```\\n{\"description\": \"Answer for the verification task wether the context was useful.\", \"type\": \"object\", \"properties\": {\"reason\": {\"title\": \"Reason\", \"description\": \"Reason for verification\", \"type\": \"string\"}, \"verdict\": {\"title\": \"Verdict\", \"description\": \"Binary (0/1) verdict of verification\", \"type\": \"integer\"}}, \"required\": [\"reason\", \"verdict\"]}\\n```\\n\\nDo not return any preamble or explanations, return only a pure JSON string surrounded by triple backticks (```).\\n\\nExamples:\\n\\nquestion: \"What can you tell me about albert Albert Einstein?\"\\ncontext: \"Albert Einstein (14 March 1879 – 18 April 1955) was a German-born theoretical physicist, widely held to be one of the greatest and most influential scientists of all time. Best known for developing the theory of relativity, he also made important contributions to quantum mechanics, and was thus a central figure in the revolutionary reshaping of the scientific understanding of nature that modern physics accomplished in the first decades of the twentieth century. His mass–energy equivalence formula E = mc2, which arises from relativity theory, has been called \\\\\"the world\\'s most famous equation\\\\\". He received the 1921 Nobel Prize in Physics \\\\\"for his services to theoretical physics, and especially for his discovery of the law of the photoelectric effect\\\\\", a pivotal step in the development of quantum theory. His work is also known for its influence on the philosophy of science. In a 1999 poll of 130 leading physicists worldwide by the British journal Physics World, Einstein was ranked the greatest physicist of all time. His intellectual achievements and originality have made Einstein synonymous with genius.\"\\nanswer: \"Albert Einstein born in 14 March 1879 was German-born theoretical physicist, widely held to be one of the greatest and most influential scientists of all time. He received the 1921 Nobel Prize in Physics for his services to theoretical physics. He published 4 papers in 1905. Einstein moved to Switzerland in 1895\"\\nverification: ```{\"reason\": \"The provided context was indeed useful in arriving at the given answer. The context includes key information about Albert Einstein\\'s life and contributions, which are reflected in the answer.\", \"verdict\": 1}```\\n\\nquestion: \"who won 2020 icc world cup?\"\\ncontext: \"The 2022 ICC Men\\'s T20 World Cup, held from October 16 to November 13, 2022, in Australia, was the eighth edition of the tournament. Originally scheduled for 2020, it was postponed due to the COVID-19 pandemic. England emerged victorious, defeating Pakistan by five wickets in the final to clinch their second ICC Men\\'s T20 World Cup title.\"\\nanswer: \"England\"\\nverification: ```{\"reason\": \"the context was useful in clarifying the situation regarding the 2020 ICC World Cup and indicating that England was the winner of the tournament that was intended to be held in 2020 but actually took place in 2022.\", \"verdict\": 1}```\\n\\nquestion: \"What is the tallest mountain in the world?\"\\ncontext: \"The Andes is the longest continental mountain range in the world, located in South America. It stretches across seven countries and features many of the highest peaks in the Western Hemisphere. The range is known for its diverse ecosystems, including the high-altitude Andean Plateau and the Amazon rainforest.\"\\nanswer: \"Mount Everest.\"\\nverification: ```{\"reason\": \"the provided context discusses the Andes mountain range, which, while impressive, does not include Mount Everest or directly relate to the question about the world\\'s tallest mountain.\", \"verdict\": 0}```\\n\\nYour actual task:\\n\\nquestion: Which growth factors are known to be involved in the induction of EMT?\\ncontext: 16570042 / Mobile phone use and risk of acoustic neuroma: results of the interphone \\ncase-control study in five north European countries [corrected]. //\\nanswer: EMT is characterized by acquisition of cell motility, modifications of cell morphology, and cell dissociation correlating with the loss of desmosomes from the cellular cortex. A number of growth factors have been shown to be involved in this process. These include fibroblast growth factors (FGFs), TGF-β1, TGF-β2, TNF-α, CCN family, Sonic Hedgehog (SHh), Notch1, GF-β, Wnt, EGF, bFGF, IGF-I and IGF-II.\\nverification: \\n'\n" - ] - }, - { - "name": "stderr", - "output_type": "stream", - "text": [ - "INFO:httpx:HTTP Request: POST https://api.mistral.ai/v1/chat/completions \"HTTP/1.1 200 OK\"\n" - ] - }, - { - "name": "stdout", - "output_type": "stream", - "text": [ - "start parsing ```json\n", - "{\n", - " \"reason\": \"The provided context does not contain information about the growth factors involved in the induction of EMT (Epithelial-Mesenchymal Transition). The context is about the expression of H2B gene family proteins and their modifications in asynchronous HeLa cells. Therefore, it was not useful in arriving at the given answer.\",\n", - " \"verdict\": 0\n", - "}\n", - "``` with prompt prompt_str='Given question, answer and context verify if the context was useful in arriving at the given answer. Give verdict as \"1\" if useful and \"0\" if not with json output.\\n\\nThe output should be a well-formatted JSON instance that conforms to the JSON schema below.\\n\\nAs an example, for the schema {\"properties\": {\"foo\": {\"title\": \"Foo\", \"description\": \"a list of strings\", \"type\": \"array\", \"items\": {\"type\": \"string\"}}}, \"required\": [\"foo\"]}\\nthe object {\"foo\": [\"bar\", \"baz\"]} is a well-formatted instance of the schema. The object {\"properties\": {\"foo\": [\"bar\", \"baz\"]}} is not well-formatted.\\n\\nHere is the output JSON schema:\\n```\\n{\"description\": \"Answer for the verification task wether the context was useful.\", \"type\": \"object\", \"properties\": {\"reason\": {\"title\": \"Reason\", \"description\": \"Reason for verification\", \"type\": \"string\"}, \"verdict\": {\"title\": \"Verdict\", \"description\": \"Binary (0/1) verdict of verification\", \"type\": \"integer\"}}, \"required\": [\"reason\", \"verdict\"]}\\n```\\n\\nDo not return any preamble or explanations, return only a pure JSON string surrounded by triple backticks (```).\\n\\nExamples:\\n\\nquestion: \"What can you tell me about albert Albert Einstein?\"\\ncontext: \"Albert Einstein (14 March 1879 – 18 April 1955) was a German-born theoretical physicist, widely held to be one of the greatest and most influential scientists of all time. Best known for developing the theory of relativity, he also made important contributions to quantum mechanics, and was thus a central figure in the revolutionary reshaping of the scientific understanding of nature that modern physics accomplished in the first decades of the twentieth century. His mass–energy equivalence formula E = mc2, which arises from relativity theory, has been called \\\\\"the world\\'s most famous equation\\\\\". He received the 1921 Nobel Prize in Physics \\\\\"for his services to theoretical physics, and especially for his discovery of the law of the photoelectric effect\\\\\", a pivotal step in the development of quantum theory. His work is also known for its influence on the philosophy of science. In a 1999 poll of 130 leading physicists worldwide by the British journal Physics World, Einstein was ranked the greatest physicist of all time. His intellectual achievements and originality have made Einstein synonymous with genius.\"\\nanswer: \"Albert Einstein born in 14 March 1879 was German-born theoretical physicist, widely held to be one of the greatest and most influential scientists of all time. He received the 1921 Nobel Prize in Physics for his services to theoretical physics. He published 4 papers in 1905. Einstein moved to Switzerland in 1895\"\\nverification: ```{\"reason\": \"The provided context was indeed useful in arriving at the given answer. The context includes key information about Albert Einstein\\'s life and contributions, which are reflected in the answer.\", \"verdict\": 1}```\\n\\nquestion: \"who won 2020 icc world cup?\"\\ncontext: \"The 2022 ICC Men\\'s T20 World Cup, held from October 16 to November 13, 2022, in Australia, was the eighth edition of the tournament. Originally scheduled for 2020, it was postponed due to the COVID-19 pandemic. England emerged victorious, defeating Pakistan by five wickets in the final to clinch their second ICC Men\\'s T20 World Cup title.\"\\nanswer: \"England\"\\nverification: ```{\"reason\": \"the context was useful in clarifying the situation regarding the 2020 ICC World Cup and indicating that England was the winner of the tournament that was intended to be held in 2020 but actually took place in 2022.\", \"verdict\": 1}```\\n\\nquestion: \"What is the tallest mountain in the world?\"\\ncontext: \"The Andes is the longest continental mountain range in the world, located in South America. It stretches across seven countries and features many of the highest peaks in the Western Hemisphere. The range is known for its diverse ecosystems, including the high-altitude Andean Plateau and the Amazon rainforest.\"\\nanswer: \"Mount Everest.\"\\nverification: ```{\"reason\": \"the provided context discusses the Andes mountain range, which, while impressive, does not include Mount Everest or directly relate to the question about the world\\'s tallest mountain.\", \"verdict\": 0}```\\n\\nYour actual task:\\n\\nquestion: Which growth factors are known to be involved in the induction of EMT?\\ncontext: 16457587 / The basis set of protein forms expressed by human cells from the H2B gene family \\nwas determined by Top Down Mass Spectrometry. Using Electron Capture \\nDissociation for MS/MS of H2B isoforms, direct evidence for the expression of \\nunmodified H2B.Q, H2B.A, H2B.K/T, H2B.J, H2B.E, H2B.B, H2B.F, and monoacetylated \\nH2B.A was obtained from asynchronous HeLa cells. H2B.A was the most abundant \\nform, with the overall expression profile not changing significantly in cells \\narrested in mitosis by colchicine or during mid-S, mid-G2, G2/M, and mid-G1 \\nphases of the cell cycle. Modest hyperacetylation of H2B family members was \\nobserved after sodium butyrate treatment. //\\nanswer: EMT is characterized by acquisition of cell motility, modifications of cell morphology, and cell dissociation correlating with the loss of desmosomes from the cellular cortex. A number of growth factors have been shown to be involved in this process. These include fibroblast growth factors (FGFs), TGF-β1, TGF-β2, TNF-α, CCN family, Sonic Hedgehog (SHh), Notch1, GF-β, Wnt, EGF, bFGF, IGF-I and IGF-II.\\nverification: \\n'\n" - ] - }, - { - "name": "stderr", - "output_type": "stream", - "text": [ - "INFO:httpx:HTTP Request: POST https://api.mistral.ai/v1/chat/completions \"HTTP/1.1 200 OK\"\n" - ] - }, - { - "name": "stdout", - "output_type": "stream", - "text": [ - "start parsing ```json\n", - "{\n", - " \"reason\": \"The context provided does not discuss EMT or its associated growth factors. However, the answer is a general explanation of EMT and its associated growth factors. Therefore, the context was not useful in arriving at the given answer.\",\n", - " \"verdict\": 0\n", - "}\n", - "``` with prompt prompt_str='Given question, answer and context verify if the context was useful in arriving at the given answer. Give verdict as \"1\" if useful and \"0\" if not with json output.\\n\\nThe output should be a well-formatted JSON instance that conforms to the JSON schema below.\\n\\nAs an example, for the schema {\"properties\": {\"foo\": {\"title\": \"Foo\", \"description\": \"a list of strings\", \"type\": \"array\", \"items\": {\"type\": \"string\"}}}, \"required\": [\"foo\"]}\\nthe object {\"foo\": [\"bar\", \"baz\"]} is a well-formatted instance of the schema. The object {\"properties\": {\"foo\": [\"bar\", \"baz\"]}} is not well-formatted.\\n\\nHere is the output JSON schema:\\n```\\n{\"description\": \"Answer for the verification task wether the context was useful.\", \"type\": \"object\", \"properties\": {\"reason\": {\"title\": \"Reason\", \"description\": \"Reason for verification\", \"type\": \"string\"}, \"verdict\": {\"title\": \"Verdict\", \"description\": \"Binary (0/1) verdict of verification\", \"type\": \"integer\"}}, \"required\": [\"reason\", \"verdict\"]}\\n```\\n\\nDo not return any preamble or explanations, return only a pure JSON string surrounded by triple backticks (```).\\n\\nExamples:\\n\\nquestion: \"What can you tell me about albert Albert Einstein?\"\\ncontext: \"Albert Einstein (14 March 1879 – 18 April 1955) was a German-born theoretical physicist, widely held to be one of the greatest and most influential scientists of all time. Best known for developing the theory of relativity, he also made important contributions to quantum mechanics, and was thus a central figure in the revolutionary reshaping of the scientific understanding of nature that modern physics accomplished in the first decades of the twentieth century. His mass–energy equivalence formula E = mc2, which arises from relativity theory, has been called \\\\\"the world\\'s most famous equation\\\\\". He received the 1921 Nobel Prize in Physics \\\\\"for his services to theoretical physics, and especially for his discovery of the law of the photoelectric effect\\\\\", a pivotal step in the development of quantum theory. His work is also known for its influence on the philosophy of science. In a 1999 poll of 130 leading physicists worldwide by the British journal Physics World, Einstein was ranked the greatest physicist of all time. His intellectual achievements and originality have made Einstein synonymous with genius.\"\\nanswer: \"Albert Einstein born in 14 March 1879 was German-born theoretical physicist, widely held to be one of the greatest and most influential scientists of all time. He received the 1921 Nobel Prize in Physics for his services to theoretical physics. He published 4 papers in 1905. Einstein moved to Switzerland in 1895\"\\nverification: ```{\"reason\": \"The provided context was indeed useful in arriving at the given answer. The context includes key information about Albert Einstein\\'s life and contributions, which are reflected in the answer.\", \"verdict\": 1}```\\n\\nquestion: \"who won 2020 icc world cup?\"\\ncontext: \"The 2022 ICC Men\\'s T20 World Cup, held from October 16 to November 13, 2022, in Australia, was the eighth edition of the tournament. Originally scheduled for 2020, it was postponed due to the COVID-19 pandemic. England emerged victorious, defeating Pakistan by five wickets in the final to clinch their second ICC Men\\'s T20 World Cup title.\"\\nanswer: \"England\"\\nverification: ```{\"reason\": \"the context was useful in clarifying the situation regarding the 2020 ICC World Cup and indicating that England was the winner of the tournament that was intended to be held in 2020 but actually took place in 2022.\", \"verdict\": 1}```\\n\\nquestion: \"What is the tallest mountain in the world?\"\\ncontext: \"The Andes is the longest continental mountain range in the world, located in South America. It stretches across seven countries and features many of the highest peaks in the Western Hemisphere. The range is known for its diverse ecosystems, including the high-altitude Andean Plateau and the Amazon rainforest.\"\\nanswer: \"Mount Everest.\"\\nverification: ```{\"reason\": \"the provided context discusses the Andes mountain range, which, while impressive, does not include Mount Everest or directly relate to the question about the world\\'s tallest mountain.\", \"verdict\": 0}```\\n\\nYour actual task:\\n\\nquestion: Which growth factors are known to be involved in the induction of EMT?\\ncontext: 17103449 / P250R mutation in the FGFR3 gene also known as Muenke syndrome is associated \\nwith coronal craniosynostosis, sensorineural deafness, craniofacial, and digital \\nabnormalities. We report a family with this mutation associated with sudden \\ndeath in an affected newborn, most probably due to upper airway obstruction. //\\nanswer: EMT is characterized by acquisition of cell motility, modifications of cell morphology, and cell dissociation correlating with the loss of desmosomes from the cellular cortex. A number of growth factors have been shown to be involved in this process. These include fibroblast growth factors (FGFs), TGF-β1, TGF-β2, TNF-α, CCN family, Sonic Hedgehog (SHh), Notch1, GF-β, Wnt, EGF, bFGF, IGF-I and IGF-II.\\nverification: \\n'\n" - ] - }, - { - "name": "stderr", - "output_type": "stream", - "text": [ - "INFO:httpx:HTTP Request: POST https://api.mistral.ai/v1/embeddings \"HTTP/1.1 200 OK\"\n", - "INFO:httpx:HTTP Request: POST https://api.mistral.ai/v1/embeddings \"HTTP/1.1 200 OK\"\n", - "INFO:httpx:HTTP Request: POST https://api.mistral.ai/v1/embeddings \"HTTP/1.1 200 OK\"\n", - "INFO:httpx:HTTP Request: POST https://api.mistral.ai/v1/embeddings \"HTTP/1.1 200 OK\"\n", - "INFO:httpx:HTTP Request: POST https://api.mistral.ai/v1/embeddings \"HTTP/1.1 200 OK\"\n", - "INFO:httpx:HTTP Request: POST https://api.mistral.ai/v1/embeddings \"HTTP/1.1 200 OK\"\n", - "INFO:httpx:HTTP Request: POST https://api.mistral.ai/v1/chat/completions \"HTTP/1.1 200 OK\"\n" - ] - }, - { - "name": "stdout", - "output_type": "stream", - "text": [ - "start parsing ```json\n", - "{\n", - " \"reason\": \"The provided context contains detailed information about the mismatch-specific uracil DNA glycosylase (MUG) and its role in DNA repair, which directly relates to the question. The answer is derived from the context.\",\n", - " \"verdict\": 1\n", - "}\n", - "``` with prompt prompt_str='Given question, answer and context verify if the context was useful in arriving at the given answer. Give verdict as \"1\" if useful and \"0\" if not with json output.\\n\\nThe output should be a well-formatted JSON instance that conforms to the JSON schema below.\\n\\nAs an example, for the schema {\"properties\": {\"foo\": {\"title\": \"Foo\", \"description\": \"a list of strings\", \"type\": \"array\", \"items\": {\"type\": \"string\"}}}, \"required\": [\"foo\"]}\\nthe object {\"foo\": [\"bar\", \"baz\"]} is a well-formatted instance of the schema. The object {\"properties\": {\"foo\": [\"bar\", \"baz\"]}} is not well-formatted.\\n\\nHere is the output JSON schema:\\n```\\n{\"description\": \"Answer for the verification task wether the context was useful.\", \"type\": \"object\", \"properties\": {\"reason\": {\"title\": \"Reason\", \"description\": \"Reason for verification\", \"type\": \"string\"}, \"verdict\": {\"title\": \"Verdict\", \"description\": \"Binary (0/1) verdict of verification\", \"type\": \"integer\"}}, \"required\": [\"reason\", \"verdict\"]}\\n```\\n\\nDo not return any preamble or explanations, return only a pure JSON string surrounded by triple backticks (```).\\n\\nExamples:\\n\\nquestion: \"What can you tell me about albert Albert Einstein?\"\\ncontext: \"Albert Einstein (14 March 1879 – 18 April 1955) was a German-born theoretical physicist, widely held to be one of the greatest and most influential scientists of all time. Best known for developing the theory of relativity, he also made important contributions to quantum mechanics, and was thus a central figure in the revolutionary reshaping of the scientific understanding of nature that modern physics accomplished in the first decades of the twentieth century. His mass–energy equivalence formula E = mc2, which arises from relativity theory, has been called \\\\\"the world\\'s most famous equation\\\\\". He received the 1921 Nobel Prize in Physics \\\\\"for his services to theoretical physics, and especially for his discovery of the law of the photoelectric effect\\\\\", a pivotal step in the development of quantum theory. His work is also known for its influence on the philosophy of science. In a 1999 poll of 130 leading physicists worldwide by the British journal Physics World, Einstein was ranked the greatest physicist of all time. His intellectual achievements and originality have made Einstein synonymous with genius.\"\\nanswer: \"Albert Einstein born in 14 March 1879 was German-born theoretical physicist, widely held to be one of the greatest and most influential scientists of all time. He received the 1921 Nobel Prize in Physics for his services to theoretical physics. He published 4 papers in 1905. Einstein moved to Switzerland in 1895\"\\nverification: ```{\"reason\": \"The provided context was indeed useful in arriving at the given answer. The context includes key information about Albert Einstein\\'s life and contributions, which are reflected in the answer.\", \"verdict\": 1}```\\n\\nquestion: \"who won 2020 icc world cup?\"\\ncontext: \"The 2022 ICC Men\\'s T20 World Cup, held from October 16 to November 13, 2022, in Australia, was the eighth edition of the tournament. Originally scheduled for 2020, it was postponed due to the COVID-19 pandemic. England emerged victorious, defeating Pakistan by five wickets in the final to clinch their second ICC Men\\'s T20 World Cup title.\"\\nanswer: \"England\"\\nverification: ```{\"reason\": \"the context was useful in clarifying the situation regarding the 2020 ICC World Cup and indicating that England was the winner of the tournament that was intended to be held in 2020 but actually took place in 2022.\", \"verdict\": 1}```\\n\\nquestion: \"What is the tallest mountain in the world?\"\\ncontext: \"The Andes is the longest continental mountain range in the world, located in South America. It stretches across seven countries and features many of the highest peaks in the Western Hemisphere. The range is known for its diverse ecosystems, including the high-altitude Andean Plateau and the Amazon rainforest.\"\\nanswer: \"Mount Everest.\"\\nverification: ```{\"reason\": \"the provided context discusses the Andes mountain range, which, while impressive, does not include Mount Everest or directly relate to the question about the world\\'s tallest mountain.\", \"verdict\": 0}```\\n\\nYour actual task:\\n\\nquestion: What is the role of mismatched uracil glycosylase (Mug) in DNA repair?\\ncontext: 11428324 / Familial craniosynostosis due to Pro250Arg mutation in the fibroblast growth \\nfactor receptor 3 gene. //\\nanswer: The mismatch-specific uracil DNA glycosylase (MUG) belongs to a homologous family of DNA glycosylases that initiate base-excision repair of G:U/T mismatches. The crystal structure of the Mug repair complex points to a preference of Mug for G:U over G:T mispairs. Nonetheless, Mug does not repair U:G or T:G mismatches in vivo. Mug possesses xanthine DNA glycosylase (XDG) activity in E.coli. The repair activity of Mug is more robust against xanthine than uracil. Furthermore, Mug excises the alkylated base, 3, N(4)-ethenocytosine (epsilonC) from epsilonC:G mismatches, and may be the only enzyme in E.coli that can remove this mutagenic adduct. Thus, the principal role of Mug may be the repair of DNA damages caused by exogenous chemical agents such as chloroacetaldehyde.\\nverification: \\n'\n" - ] - }, - { - "name": "stderr", - "output_type": "stream", - "text": [ - "INFO:httpx:HTTP Request: POST https://api.mistral.ai/v1/chat/completions \"HTTP/1.1 200 OK\"\n" - ] - }, - { - "name": "stdout", - "output_type": "stream", - "text": [ - "start parsing ```json\n", - "{\n", - " \"reason\": \"The provided context does not directly discuss the role of mismatched uracil glycosylase (Mug) in DNA repair. However, the answer is a general explanation of the role of Mug in DNA repair, which is related to the field of genetics and DNA repair.\",\n", - " \"verdict\": 0\n", - "}\n", - "``` with prompt prompt_str='Given question, answer and context verify if the context was useful in arriving at the given answer. Give verdict as \"1\" if useful and \"0\" if not with json output.\\n\\nThe output should be a well-formatted JSON instance that conforms to the JSON schema below.\\n\\nAs an example, for the schema {\"properties\": {\"foo\": {\"title\": \"Foo\", \"description\": \"a list of strings\", \"type\": \"array\", \"items\": {\"type\": \"string\"}}}, \"required\": [\"foo\"]}\\nthe object {\"foo\": [\"bar\", \"baz\"]} is a well-formatted instance of the schema. The object {\"properties\": {\"foo\": [\"bar\", \"baz\"]}} is not well-formatted.\\n\\nHere is the output JSON schema:\\n```\\n{\"description\": \"Answer for the verification task wether the context was useful.\", \"type\": \"object\", \"properties\": {\"reason\": {\"title\": \"Reason\", \"description\": \"Reason for verification\", \"type\": \"string\"}, \"verdict\": {\"title\": \"Verdict\", \"description\": \"Binary (0/1) verdict of verification\", \"type\": \"integer\"}}, \"required\": [\"reason\", \"verdict\"]}\\n```\\n\\nDo not return any preamble or explanations, return only a pure JSON string surrounded by triple backticks (```).\\n\\nExamples:\\n\\nquestion: \"What can you tell me about albert Albert Einstein?\"\\ncontext: \"Albert Einstein (14 March 1879 – 18 April 1955) was a German-born theoretical physicist, widely held to be one of the greatest and most influential scientists of all time. Best known for developing the theory of relativity, he also made important contributions to quantum mechanics, and was thus a central figure in the revolutionary reshaping of the scientific understanding of nature that modern physics accomplished in the first decades of the twentieth century. His mass–energy equivalence formula E = mc2, which arises from relativity theory, has been called \\\\\"the world\\'s most famous equation\\\\\". He received the 1921 Nobel Prize in Physics \\\\\"for his services to theoretical physics, and especially for his discovery of the law of the photoelectric effect\\\\\", a pivotal step in the development of quantum theory. His work is also known for its influence on the philosophy of science. In a 1999 poll of 130 leading physicists worldwide by the British journal Physics World, Einstein was ranked the greatest physicist of all time. His intellectual achievements and originality have made Einstein synonymous with genius.\"\\nanswer: \"Albert Einstein born in 14 March 1879 was German-born theoretical physicist, widely held to be one of the greatest and most influential scientists of all time. He received the 1921 Nobel Prize in Physics for his services to theoretical physics. He published 4 papers in 1905. Einstein moved to Switzerland in 1895\"\\nverification: ```{\"reason\": \"The provided context was indeed useful in arriving at the given answer. The context includes key information about Albert Einstein\\'s life and contributions, which are reflected in the answer.\", \"verdict\": 1}```\\n\\nquestion: \"who won 2020 icc world cup?\"\\ncontext: \"The 2022 ICC Men\\'s T20 World Cup, held from October 16 to November 13, 2022, in Australia, was the eighth edition of the tournament. Originally scheduled for 2020, it was postponed due to the COVID-19 pandemic. England emerged victorious, defeating Pakistan by five wickets in the final to clinch their second ICC Men\\'s T20 World Cup title.\"\\nanswer: \"England\"\\nverification: ```{\"reason\": \"the context was useful in clarifying the situation regarding the 2020 ICC World Cup and indicating that England was the winner of the tournament that was intended to be held in 2020 but actually took place in 2022.\", \"verdict\": 1}```\\n\\nquestion: \"What is the tallest mountain in the world?\"\\ncontext: \"The Andes is the longest continental mountain range in the world, located in South America. It stretches across seven countries and features many of the highest peaks in the Western Hemisphere. The range is known for its diverse ecosystems, including the high-altitude Andean Plateau and the Amazon rainforest.\"\\nanswer: \"Mount Everest.\"\\nverification: ```{\"reason\": \"the provided context discusses the Andes mountain range, which, while impressive, does not include Mount Everest or directly relate to the question about the world\\'s tallest mountain.\", \"verdict\": 0}```\\n\\nYour actual task:\\n\\nquestion: What is the role of mismatched uracil glycosylase (Mug) in DNA repair?\\ncontext: 15683664 / Skin side effects following XRT take place more often in patients with skin \\ndisorders. In this study six patients with psoriatic lesions were evaluated. The \\ntotal/daily XRT dose to the tumor site was 50-70/1.8-2.0 Gy. No debilitating \\neffect of XRT was observed in both the psoriatic lesions and in the surrounding \\nnormal skin. //\\nanswer: The mismatch-specific uracil DNA glycosylase (MUG) belongs to a homologous family of DNA glycosylases that initiate base-excision repair of G:U/T mismatches. The crystal structure of the Mug repair complex points to a preference of Mug for G:U over G:T mispairs. Nonetheless, Mug does not repair U:G or T:G mismatches in vivo. Mug possesses xanthine DNA glycosylase (XDG) activity in E.coli. The repair activity of Mug is more robust against xanthine than uracil. Furthermore, Mug excises the alkylated base, 3, N(4)-ethenocytosine (epsilonC) from epsilonC:G mismatches, and may be the only enzyme in E.coli that can remove this mutagenic adduct. Thus, the principal role of Mug may be the repair of DNA damages caused by exogenous chemical agents such as chloroacetaldehyde.\\nverification: \\n'\n" - ] - }, - { - "name": "stderr", - "output_type": "stream", - "text": [ - "INFO:httpx:HTTP Request: POST https://api.mistral.ai/v1/chat/completions \"HTTP/1.1 200 OK\"\n" - ] - }, - { - "name": "stdout", - "output_type": "stream", - "text": [ - "start parsing ```json\n", - "{\n", - " \"reason\": \"The provided context contains detailed information about the mismatch-specific uracil DNA glycosylase (MUG) and its role in DNA repair, which directly relates to the question about the function of MUG in DNA repair.\",\n", - " \"verdict\": 1\n", - "}\n", - "``` with prompt prompt_str='Given question, answer and context verify if the context was useful in arriving at the given answer. Give verdict as \"1\" if useful and \"0\" if not with json output.\\n\\nThe output should be a well-formatted JSON instance that conforms to the JSON schema below.\\n\\nAs an example, for the schema {\"properties\": {\"foo\": {\"title\": \"Foo\", \"description\": \"a list of strings\", \"type\": \"array\", \"items\": {\"type\": \"string\"}}}, \"required\": [\"foo\"]}\\nthe object {\"foo\": [\"bar\", \"baz\"]} is a well-formatted instance of the schema. The object {\"properties\": {\"foo\": [\"bar\", \"baz\"]}} is not well-formatted.\\n\\nHere is the output JSON schema:\\n```\\n{\"description\": \"Answer for the verification task wether the context was useful.\", \"type\": \"object\", \"properties\": {\"reason\": {\"title\": \"Reason\", \"description\": \"Reason for verification\", \"type\": \"string\"}, \"verdict\": {\"title\": \"Verdict\", \"description\": \"Binary (0/1) verdict of verification\", \"type\": \"integer\"}}, \"required\": [\"reason\", \"verdict\"]}\\n```\\n\\nDo not return any preamble or explanations, return only a pure JSON string surrounded by triple backticks (```).\\n\\nExamples:\\n\\nquestion: \"What can you tell me about albert Albert Einstein?\"\\ncontext: \"Albert Einstein (14 March 1879 – 18 April 1955) was a German-born theoretical physicist, widely held to be one of the greatest and most influential scientists of all time. Best known for developing the theory of relativity, he also made important contributions to quantum mechanics, and was thus a central figure in the revolutionary reshaping of the scientific understanding of nature that modern physics accomplished in the first decades of the twentieth century. His mass–energy equivalence formula E = mc2, which arises from relativity theory, has been called \\\\\"the world\\'s most famous equation\\\\\". He received the 1921 Nobel Prize in Physics \\\\\"for his services to theoretical physics, and especially for his discovery of the law of the photoelectric effect\\\\\", a pivotal step in the development of quantum theory. His work is also known for its influence on the philosophy of science. In a 1999 poll of 130 leading physicists worldwide by the British journal Physics World, Einstein was ranked the greatest physicist of all time. His intellectual achievements and originality have made Einstein synonymous with genius.\"\\nanswer: \"Albert Einstein born in 14 March 1879 was German-born theoretical physicist, widely held to be one of the greatest and most influential scientists of all time. He received the 1921 Nobel Prize in Physics for his services to theoretical physics. He published 4 papers in 1905. Einstein moved to Switzerland in 1895\"\\nverification: ```{\"reason\": \"The provided context was indeed useful in arriving at the given answer. The context includes key information about Albert Einstein\\'s life and contributions, which are reflected in the answer.\", \"verdict\": 1}```\\n\\nquestion: \"who won 2020 icc world cup?\"\\ncontext: \"The 2022 ICC Men\\'s T20 World Cup, held from October 16 to November 13, 2022, in Australia, was the eighth edition of the tournament. Originally scheduled for 2020, it was postponed due to the COVID-19 pandemic. England emerged victorious, defeating Pakistan by five wickets in the final to clinch their second ICC Men\\'s T20 World Cup title.\"\\nanswer: \"England\"\\nverification: ```{\"reason\": \"the context was useful in clarifying the situation regarding the 2020 ICC World Cup and indicating that England was the winner of the tournament that was intended to be held in 2020 but actually took place in 2022.\", \"verdict\": 1}```\\n\\nquestion: \"What is the tallest mountain in the world?\"\\ncontext: \"The Andes is the longest continental mountain range in the world, located in South America. It stretches across seven countries and features many of the highest peaks in the Western Hemisphere. The range is known for its diverse ecosystems, including the high-altitude Andean Plateau and the Amazon rainforest.\"\\nanswer: \"Mount Everest.\"\\nverification: ```{\"reason\": \"the provided context discusses the Andes mountain range, which, while impressive, does not include Mount Everest or directly relate to the question about the world\\'s tallest mountain.\", \"verdict\": 0}```\\n\\nYour actual task:\\n\\nquestion: What is the role of mismatched uracil glycosylase (Mug) in DNA repair?\\ncontext: 16570042 / Mobile phone use and risk of acoustic neuroma: results of the interphone \\ncase-control study in five north European countries [corrected]. //\\nanswer: The mismatch-specific uracil DNA glycosylase (MUG) belongs to a homologous family of DNA glycosylases that initiate base-excision repair of G:U/T mismatches. The crystal structure of the Mug repair complex points to a preference of Mug for G:U over G:T mispairs. Nonetheless, Mug does not repair U:G or T:G mismatches in vivo. Mug possesses xanthine DNA glycosylase (XDG) activity in E.coli. The repair activity of Mug is more robust against xanthine than uracil. Furthermore, Mug excises the alkylated base, 3, N(4)-ethenocytosine (epsilonC) from epsilonC:G mismatches, and may be the only enzyme in E.coli that can remove this mutagenic adduct. Thus, the principal role of Mug may be the repair of DNA damages caused by exogenous chemical agents such as chloroacetaldehyde.\\nverification: \\n'\n" - ] - }, - { - "name": "stderr", - "output_type": "stream", - "text": [ - "INFO:httpx:HTTP Request: POST https://api.mistral.ai/v1/chat/completions \"HTTP/1.1 200 OK\"\n" - ] - }, - { - "name": "stdout", - "output_type": "stream", - "text": [ - "start parsing ```json\n", - "{\n", - " \"reason\": \"The provided context is not useful in arriving at the given answer as it discusses the expression of H2B gene family proteins in human cells, with no mention or relevance to the mismatched uracil glycosylase (Mug) or its role in DNA repair.\",\n", - " \"verdict\": 0\n", - "}\n", - "``` with prompt prompt_str='Given question, answer and context verify if the context was useful in arriving at the given answer. Give verdict as \"1\" if useful and \"0\" if not with json output.\\n\\nThe output should be a well-formatted JSON instance that conforms to the JSON schema below.\\n\\nAs an example, for the schema {\"properties\": {\"foo\": {\"title\": \"Foo\", \"description\": \"a list of strings\", \"type\": \"array\", \"items\": {\"type\": \"string\"}}}, \"required\": [\"foo\"]}\\nthe object {\"foo\": [\"bar\", \"baz\"]} is a well-formatted instance of the schema. The object {\"properties\": {\"foo\": [\"bar\", \"baz\"]}} is not well-formatted.\\n\\nHere is the output JSON schema:\\n```\\n{\"description\": \"Answer for the verification task wether the context was useful.\", \"type\": \"object\", \"properties\": {\"reason\": {\"title\": \"Reason\", \"description\": \"Reason for verification\", \"type\": \"string\"}, \"verdict\": {\"title\": \"Verdict\", \"description\": \"Binary (0/1) verdict of verification\", \"type\": \"integer\"}}, \"required\": [\"reason\", \"verdict\"]}\\n```\\n\\nDo not return any preamble or explanations, return only a pure JSON string surrounded by triple backticks (```).\\n\\nExamples:\\n\\nquestion: \"What can you tell me about albert Albert Einstein?\"\\ncontext: \"Albert Einstein (14 March 1879 – 18 April 1955) was a German-born theoretical physicist, widely held to be one of the greatest and most influential scientists of all time. Best known for developing the theory of relativity, he also made important contributions to quantum mechanics, and was thus a central figure in the revolutionary reshaping of the scientific understanding of nature that modern physics accomplished in the first decades of the twentieth century. His mass–energy equivalence formula E = mc2, which arises from relativity theory, has been called \\\\\"the world\\'s most famous equation\\\\\". He received the 1921 Nobel Prize in Physics \\\\\"for his services to theoretical physics, and especially for his discovery of the law of the photoelectric effect\\\\\", a pivotal step in the development of quantum theory. His work is also known for its influence on the philosophy of science. In a 1999 poll of 130 leading physicists worldwide by the British journal Physics World, Einstein was ranked the greatest physicist of all time. His intellectual achievements and originality have made Einstein synonymous with genius.\"\\nanswer: \"Albert Einstein born in 14 March 1879 was German-born theoretical physicist, widely held to be one of the greatest and most influential scientists of all time. He received the 1921 Nobel Prize in Physics for his services to theoretical physics. He published 4 papers in 1905. Einstein moved to Switzerland in 1895\"\\nverification: ```{\"reason\": \"The provided context was indeed useful in arriving at the given answer. The context includes key information about Albert Einstein\\'s life and contributions, which are reflected in the answer.\", \"verdict\": 1}```\\n\\nquestion: \"who won 2020 icc world cup?\"\\ncontext: \"The 2022 ICC Men\\'s T20 World Cup, held from October 16 to November 13, 2022, in Australia, was the eighth edition of the tournament. Originally scheduled for 2020, it was postponed due to the COVID-19 pandemic. England emerged victorious, defeating Pakistan by five wickets in the final to clinch their second ICC Men\\'s T20 World Cup title.\"\\nanswer: \"England\"\\nverification: ```{\"reason\": \"the context was useful in clarifying the situation regarding the 2020 ICC World Cup and indicating that England was the winner of the tournament that was intended to be held in 2020 but actually took place in 2022.\", \"verdict\": 1}```\\n\\nquestion: \"What is the tallest mountain in the world?\"\\ncontext: \"The Andes is the longest continental mountain range in the world, located in South America. It stretches across seven countries and features many of the highest peaks in the Western Hemisphere. The range is known for its diverse ecosystems, including the high-altitude Andean Plateau and the Amazon rainforest.\"\\nanswer: \"Mount Everest.\"\\nverification: ```{\"reason\": \"the provided context discusses the Andes mountain range, which, while impressive, does not include Mount Everest or directly relate to the question about the world\\'s tallest mountain.\", \"verdict\": 0}```\\n\\nYour actual task:\\n\\nquestion: What is the role of mismatched uracil glycosylase (Mug) in DNA repair?\\ncontext: 16457587 / The basis set of protein forms expressed by human cells from the H2B gene family \\nwas determined by Top Down Mass Spectrometry. Using Electron Capture \\nDissociation for MS/MS of H2B isoforms, direct evidence for the expression of \\nunmodified H2B.Q, H2B.A, H2B.K/T, H2B.J, H2B.E, H2B.B, H2B.F, and monoacetylated \\nH2B.A was obtained from asynchronous HeLa cells. H2B.A was the most abundant \\nform, with the overall expression profile not changing significantly in cells \\narrested in mitosis by colchicine or during mid-S, mid-G2, G2/M, and mid-G1 \\nphases of the cell cycle. Modest hyperacetylation of H2B family members was \\nobserved after sodium butyrate treatment. //\\nanswer: The mismatch-specific uracil DNA glycosylase (MUG) belongs to a homologous family of DNA glycosylases that initiate base-excision repair of G:U/T mismatches. The crystal structure of the Mug repair complex points to a preference of Mug for G:U over G:T mispairs. Nonetheless, Mug does not repair U:G or T:G mismatches in vivo. Mug possesses xanthine DNA glycosylase (XDG) activity in E.coli. The repair activity of Mug is more robust against xanthine than uracil. Furthermore, Mug excises the alkylated base, 3, N(4)-ethenocytosine (epsilonC) from epsilonC:G mismatches, and may be the only enzyme in E.coli that can remove this mutagenic adduct. Thus, the principal role of Mug may be the repair of DNA damages caused by exogenous chemical agents such as chloroacetaldehyde.\\nverification: \\n'\n" - ] - }, - { - "name": "stderr", - "output_type": "stream", - "text": [ - "INFO:httpx:HTTP Request: POST https://api.mistral.ai/v1/chat/completions \"HTTP/1.1 200 OK\"\n" - ] - }, - { - "name": "stdout", - "output_type": "stream", - "text": [ - "start parsing ```json\n", - "{\n", - " \"reason\": \"The provided context does not directly mention the role of mismatched uracil glycosylase (Mug) in DNA repair. However, the answer can be inferred from the information about Mug's base-excision repair activity and its role in removing specific mutagenic adducts, making the context somewhat useful in arriving at the given answer.\",\n", - " \"verdict\": 1\n", - "}\n", - "``` with prompt prompt_str='Given question, answer and context verify if the context was useful in arriving at the given answer. Give verdict as \"1\" if useful and \"0\" if not with json output.\\n\\nThe output should be a well-formatted JSON instance that conforms to the JSON schema below.\\n\\nAs an example, for the schema {\"properties\": {\"foo\": {\"title\": \"Foo\", \"description\": \"a list of strings\", \"type\": \"array\", \"items\": {\"type\": \"string\"}}}, \"required\": [\"foo\"]}\\nthe object {\"foo\": [\"bar\", \"baz\"]} is a well-formatted instance of the schema. The object {\"properties\": {\"foo\": [\"bar\", \"baz\"]}} is not well-formatted.\\n\\nHere is the output JSON schema:\\n```\\n{\"description\": \"Answer for the verification task wether the context was useful.\", \"type\": \"object\", \"properties\": {\"reason\": {\"title\": \"Reason\", \"description\": \"Reason for verification\", \"type\": \"string\"}, \"verdict\": {\"title\": \"Verdict\", \"description\": \"Binary (0/1) verdict of verification\", \"type\": \"integer\"}}, \"required\": [\"reason\", \"verdict\"]}\\n```\\n\\nDo not return any preamble or explanations, return only a pure JSON string surrounded by triple backticks (```).\\n\\nExamples:\\n\\nquestion: \"What can you tell me about albert Albert Einstein?\"\\ncontext: \"Albert Einstein (14 March 1879 – 18 April 1955) was a German-born theoretical physicist, widely held to be one of the greatest and most influential scientists of all time. Best known for developing the theory of relativity, he also made important contributions to quantum mechanics, and was thus a central figure in the revolutionary reshaping of the scientific understanding of nature that modern physics accomplished in the first decades of the twentieth century. His mass–energy equivalence formula E = mc2, which arises from relativity theory, has been called \\\\\"the world\\'s most famous equation\\\\\". He received the 1921 Nobel Prize in Physics \\\\\"for his services to theoretical physics, and especially for his discovery of the law of the photoelectric effect\\\\\", a pivotal step in the development of quantum theory. His work is also known for its influence on the philosophy of science. In a 1999 poll of 130 leading physicists worldwide by the British journal Physics World, Einstein was ranked the greatest physicist of all time. His intellectual achievements and originality have made Einstein synonymous with genius.\"\\nanswer: \"Albert Einstein born in 14 March 1879 was German-born theoretical physicist, widely held to be one of the greatest and most influential scientists of all time. He received the 1921 Nobel Prize in Physics for his services to theoretical physics. He published 4 papers in 1905. Einstein moved to Switzerland in 1895\"\\nverification: ```{\"reason\": \"The provided context was indeed useful in arriving at the given answer. The context includes key information about Albert Einstein\\'s life and contributions, which are reflected in the answer.\", \"verdict\": 1}```\\n\\nquestion: \"who won 2020 icc world cup?\"\\ncontext: \"The 2022 ICC Men\\'s T20 World Cup, held from October 16 to November 13, 2022, in Australia, was the eighth edition of the tournament. Originally scheduled for 2020, it was postponed due to the COVID-19 pandemic. England emerged victorious, defeating Pakistan by five wickets in the final to clinch their second ICC Men\\'s T20 World Cup title.\"\\nanswer: \"England\"\\nverification: ```{\"reason\": \"the context was useful in clarifying the situation regarding the 2020 ICC World Cup and indicating that England was the winner of the tournament that was intended to be held in 2020 but actually took place in 2022.\", \"verdict\": 1}```\\n\\nquestion: \"What is the tallest mountain in the world?\"\\ncontext: \"The Andes is the longest continental mountain range in the world, located in South America. It stretches across seven countries and features many of the highest peaks in the Western Hemisphere. The range is known for its diverse ecosystems, including the high-altitude Andean Plateau and the Amazon rainforest.\"\\nanswer: \"Mount Everest.\"\\nverification: ```{\"reason\": \"the provided context discusses the Andes mountain range, which, while impressive, does not include Mount Everest or directly relate to the question about the world\\'s tallest mountain.\", \"verdict\": 0}```\\n\\nYour actual task:\\n\\nquestion: What is the role of mismatched uracil glycosylase (Mug) in DNA repair?\\ncontext: 17103449 / P250R mutation in the FGFR3 gene also known as Muenke syndrome is associated \\nwith coronal craniosynostosis, sensorineural deafness, craniofacial, and digital \\nabnormalities. We report a family with this mutation associated with sudden \\ndeath in an affected newborn, most probably due to upper airway obstruction. //\\nanswer: The mismatch-specific uracil DNA glycosylase (MUG) belongs to a homologous family of DNA glycosylases that initiate base-excision repair of G:U/T mismatches. The crystal structure of the Mug repair complex points to a preference of Mug for G:U over G:T mispairs. Nonetheless, Mug does not repair U:G or T:G mismatches in vivo. Mug possesses xanthine DNA glycosylase (XDG) activity in E.coli. The repair activity of Mug is more robust against xanthine than uracil. Furthermore, Mug excises the alkylated base, 3, N(4)-ethenocytosine (epsilonC) from epsilonC:G mismatches, and may be the only enzyme in E.coli that can remove this mutagenic adduct. Thus, the principal role of Mug may be the repair of DNA damages caused by exogenous chemical agents such as chloroacetaldehyde.\\nverification: \\n'\n" - ] - }, - { - "name": "stderr", - "output_type": "stream", - "text": [ - "INFO:httpx:HTTP Request: POST https://api.mistral.ai/v1/chat/completions \"HTTP/1.1 200 OK\"\n" - ] - }, - { - "name": "stdout", - "output_type": "stream", - "text": [ - "start parsing ```json\n", - "{\n", - " \"reason\": \"The context provided does not offer any information about c-myc or its regulation by the circadian clock. It discusses familial craniosynostosis and a specific mutation in the fibroblast growth factor receptor 3 gene. The answer cannot be verified using this context.\",\n", - " \"verdict\": 0\n", - "}\n", - "``` with prompt prompt_str='Given question, answer and context verify if the context was useful in arriving at the given answer. Give verdict as \"1\" if useful and \"0\" if not with json output.\\n\\nThe output should be a well-formatted JSON instance that conforms to the JSON schema below.\\n\\nAs an example, for the schema {\"properties\": {\"foo\": {\"title\": \"Foo\", \"description\": \"a list of strings\", \"type\": \"array\", \"items\": {\"type\": \"string\"}}}, \"required\": [\"foo\"]}\\nthe object {\"foo\": [\"bar\", \"baz\"]} is a well-formatted instance of the schema. The object {\"properties\": {\"foo\": [\"bar\", \"baz\"]}} is not well-formatted.\\n\\nHere is the output JSON schema:\\n```\\n{\"description\": \"Answer for the verification task wether the context was useful.\", \"type\": \"object\", \"properties\": {\"reason\": {\"title\": \"Reason\", \"description\": \"Reason for verification\", \"type\": \"string\"}, \"verdict\": {\"title\": \"Verdict\", \"description\": \"Binary (0/1) verdict of verification\", \"type\": \"integer\"}}, \"required\": [\"reason\", \"verdict\"]}\\n```\\n\\nDo not return any preamble or explanations, return only a pure JSON string surrounded by triple backticks (```).\\n\\nExamples:\\n\\nquestion: \"What can you tell me about albert Albert Einstein?\"\\ncontext: \"Albert Einstein (14 March 1879 – 18 April 1955) was a German-born theoretical physicist, widely held to be one of the greatest and most influential scientists of all time. Best known for developing the theory of relativity, he also made important contributions to quantum mechanics, and was thus a central figure in the revolutionary reshaping of the scientific understanding of nature that modern physics accomplished in the first decades of the twentieth century. His mass–energy equivalence formula E = mc2, which arises from relativity theory, has been called \\\\\"the world\\'s most famous equation\\\\\". He received the 1921 Nobel Prize in Physics \\\\\"for his services to theoretical physics, and especially for his discovery of the law of the photoelectric effect\\\\\", a pivotal step in the development of quantum theory. His work is also known for its influence on the philosophy of science. In a 1999 poll of 130 leading physicists worldwide by the British journal Physics World, Einstein was ranked the greatest physicist of all time. His intellectual achievements and originality have made Einstein synonymous with genius.\"\\nanswer: \"Albert Einstein born in 14 March 1879 was German-born theoretical physicist, widely held to be one of the greatest and most influential scientists of all time. He received the 1921 Nobel Prize in Physics for his services to theoretical physics. He published 4 papers in 1905. Einstein moved to Switzerland in 1895\"\\nverification: ```{\"reason\": \"The provided context was indeed useful in arriving at the given answer. The context includes key information about Albert Einstein\\'s life and contributions, which are reflected in the answer.\", \"verdict\": 1}```\\n\\nquestion: \"who won 2020 icc world cup?\"\\ncontext: \"The 2022 ICC Men\\'s T20 World Cup, held from October 16 to November 13, 2022, in Australia, was the eighth edition of the tournament. Originally scheduled for 2020, it was postponed due to the COVID-19 pandemic. England emerged victorious, defeating Pakistan by five wickets in the final to clinch their second ICC Men\\'s T20 World Cup title.\"\\nanswer: \"England\"\\nverification: ```{\"reason\": \"the context was useful in clarifying the situation regarding the 2020 ICC World Cup and indicating that England was the winner of the tournament that was intended to be held in 2020 but actually took place in 2022.\", \"verdict\": 1}```\\n\\nquestion: \"What is the tallest mountain in the world?\"\\ncontext: \"The Andes is the longest continental mountain range in the world, located in South America. It stretches across seven countries and features many of the highest peaks in the Western Hemisphere. The range is known for its diverse ecosystems, including the high-altitude Andean Plateau and the Amazon rainforest.\"\\nanswer: \"Mount Everest.\"\\nverification: ```{\"reason\": \"the provided context discusses the Andes mountain range, which, while impressive, does not include Mount Everest or directly relate to the question about the world\\'s tallest mountain.\", \"verdict\": 0}```\\n\\nYour actual task:\\n\\nquestion: Is c-myc subject to regulation by the circadian clock?\\ncontext: 11428324 / Familial craniosynostosis due to Pro250Arg mutation in the fibroblast growth \\nfactor receptor 3 gene. //\\nanswer: Yes, the expression of c-myc is regulated by the circadian clock protein Per2.\\nverification: \\n'\n" - ] - }, - { - "name": "stderr", - "output_type": "stream", - "text": [ - "INFO:httpx:HTTP Request: POST https://api.mistral.ai/v1/chat/completions \"HTTP/1.1 200 OK\"\n" - ] - }, - { - "name": "stdout", - "output_type": "stream", - "text": [ - "start parsing ```json\n", - "{\n", - " \"reason\": \"The context provided does not offer any information about c-myc or its regulation by the circadian clock. It focuses on skin side effects following XRT. Therefore, it was not helpful in arriving at the given answer.\",\n", - " \"verdict\": 0\n", - "}\n", - "``` with prompt prompt_str='Given question, answer and context verify if the context was useful in arriving at the given answer. Give verdict as \"1\" if useful and \"0\" if not with json output.\\n\\nThe output should be a well-formatted JSON instance that conforms to the JSON schema below.\\n\\nAs an example, for the schema {\"properties\": {\"foo\": {\"title\": \"Foo\", \"description\": \"a list of strings\", \"type\": \"array\", \"items\": {\"type\": \"string\"}}}, \"required\": [\"foo\"]}\\nthe object {\"foo\": [\"bar\", \"baz\"]} is a well-formatted instance of the schema. The object {\"properties\": {\"foo\": [\"bar\", \"baz\"]}} is not well-formatted.\\n\\nHere is the output JSON schema:\\n```\\n{\"description\": \"Answer for the verification task wether the context was useful.\", \"type\": \"object\", \"properties\": {\"reason\": {\"title\": \"Reason\", \"description\": \"Reason for verification\", \"type\": \"string\"}, \"verdict\": {\"title\": \"Verdict\", \"description\": \"Binary (0/1) verdict of verification\", \"type\": \"integer\"}}, \"required\": [\"reason\", \"verdict\"]}\\n```\\n\\nDo not return any preamble or explanations, return only a pure JSON string surrounded by triple backticks (```).\\n\\nExamples:\\n\\nquestion: \"What can you tell me about albert Albert Einstein?\"\\ncontext: \"Albert Einstein (14 March 1879 – 18 April 1955) was a German-born theoretical physicist, widely held to be one of the greatest and most influential scientists of all time. Best known for developing the theory of relativity, he also made important contributions to quantum mechanics, and was thus a central figure in the revolutionary reshaping of the scientific understanding of nature that modern physics accomplished in the first decades of the twentieth century. His mass–energy equivalence formula E = mc2, which arises from relativity theory, has been called \\\\\"the world\\'s most famous equation\\\\\". He received the 1921 Nobel Prize in Physics \\\\\"for his services to theoretical physics, and especially for his discovery of the law of the photoelectric effect\\\\\", a pivotal step in the development of quantum theory. His work is also known for its influence on the philosophy of science. In a 1999 poll of 130 leading physicists worldwide by the British journal Physics World, Einstein was ranked the greatest physicist of all time. His intellectual achievements and originality have made Einstein synonymous with genius.\"\\nanswer: \"Albert Einstein born in 14 March 1879 was German-born theoretical physicist, widely held to be one of the greatest and most influential scientists of all time. He received the 1921 Nobel Prize in Physics for his services to theoretical physics. He published 4 papers in 1905. Einstein moved to Switzerland in 1895\"\\nverification: ```{\"reason\": \"The provided context was indeed useful in arriving at the given answer. The context includes key information about Albert Einstein\\'s life and contributions, which are reflected in the answer.\", \"verdict\": 1}```\\n\\nquestion: \"who won 2020 icc world cup?\"\\ncontext: \"The 2022 ICC Men\\'s T20 World Cup, held from October 16 to November 13, 2022, in Australia, was the eighth edition of the tournament. Originally scheduled for 2020, it was postponed due to the COVID-19 pandemic. England emerged victorious, defeating Pakistan by five wickets in the final to clinch their second ICC Men\\'s T20 World Cup title.\"\\nanswer: \"England\"\\nverification: ```{\"reason\": \"the context was useful in clarifying the situation regarding the 2020 ICC World Cup and indicating that England was the winner of the tournament that was intended to be held in 2020 but actually took place in 2022.\", \"verdict\": 1}```\\n\\nquestion: \"What is the tallest mountain in the world?\"\\ncontext: \"The Andes is the longest continental mountain range in the world, located in South America. It stretches across seven countries and features many of the highest peaks in the Western Hemisphere. The range is known for its diverse ecosystems, including the high-altitude Andean Plateau and the Amazon rainforest.\"\\nanswer: \"Mount Everest.\"\\nverification: ```{\"reason\": \"the provided context discusses the Andes mountain range, which, while impressive, does not include Mount Everest or directly relate to the question about the world\\'s tallest mountain.\", \"verdict\": 0}```\\n\\nYour actual task:\\n\\nquestion: Is c-myc subject to regulation by the circadian clock?\\ncontext: 15683664 / Skin side effects following XRT take place more often in patients with skin \\ndisorders. In this study six patients with psoriatic lesions were evaluated. The \\ntotal/daily XRT dose to the tumor site was 50-70/1.8-2.0 Gy. No debilitating \\neffect of XRT was observed in both the psoriatic lesions and in the surrounding \\nnormal skin. //\\nanswer: Yes, the expression of c-myc is regulated by the circadian clock protein Per2.\\nverification: \\n'\n" - ] - }, - { - "name": "stderr", - "output_type": "stream", - "text": [ - "INFO:httpx:HTTP Request: POST https://api.mistral.ai/v1/chat/completions \"HTTP/1.1 200 OK\"\n" - ] - }, - { - "name": "stdout", - "output_type": "stream", - "text": [ - "start parsing ```json\n", - "{\n", - " \"reason\": \"The context provided does not offer any information about c-myc or its regulation by the circadian clock. It is about a study on mobile phone use and acoustic neuroma risk in five North European countries. Therefore, it was not helpful in arriving at the given answer.\",\n", - " \"verdict\": 0\n", - "}\n", - "``` with prompt prompt_str='Given question, answer and context verify if the context was useful in arriving at the given answer. Give verdict as \"1\" if useful and \"0\" if not with json output.\\n\\nThe output should be a well-formatted JSON instance that conforms to the JSON schema below.\\n\\nAs an example, for the schema {\"properties\": {\"foo\": {\"title\": \"Foo\", \"description\": \"a list of strings\", \"type\": \"array\", \"items\": {\"type\": \"string\"}}}, \"required\": [\"foo\"]}\\nthe object {\"foo\": [\"bar\", \"baz\"]} is a well-formatted instance of the schema. The object {\"properties\": {\"foo\": [\"bar\", \"baz\"]}} is not well-formatted.\\n\\nHere is the output JSON schema:\\n```\\n{\"description\": \"Answer for the verification task wether the context was useful.\", \"type\": \"object\", \"properties\": {\"reason\": {\"title\": \"Reason\", \"description\": \"Reason for verification\", \"type\": \"string\"}, \"verdict\": {\"title\": \"Verdict\", \"description\": \"Binary (0/1) verdict of verification\", \"type\": \"integer\"}}, \"required\": [\"reason\", \"verdict\"]}\\n```\\n\\nDo not return any preamble or explanations, return only a pure JSON string surrounded by triple backticks (```).\\n\\nExamples:\\n\\nquestion: \"What can you tell me about albert Albert Einstein?\"\\ncontext: \"Albert Einstein (14 March 1879 – 18 April 1955) was a German-born theoretical physicist, widely held to be one of the greatest and most influential scientists of all time. Best known for developing the theory of relativity, he also made important contributions to quantum mechanics, and was thus a central figure in the revolutionary reshaping of the scientific understanding of nature that modern physics accomplished in the first decades of the twentieth century. His mass–energy equivalence formula E = mc2, which arises from relativity theory, has been called \\\\\"the world\\'s most famous equation\\\\\". He received the 1921 Nobel Prize in Physics \\\\\"for his services to theoretical physics, and especially for his discovery of the law of the photoelectric effect\\\\\", a pivotal step in the development of quantum theory. His work is also known for its influence on the philosophy of science. In a 1999 poll of 130 leading physicists worldwide by the British journal Physics World, Einstein was ranked the greatest physicist of all time. His intellectual achievements and originality have made Einstein synonymous with genius.\"\\nanswer: \"Albert Einstein born in 14 March 1879 was German-born theoretical physicist, widely held to be one of the greatest and most influential scientists of all time. He received the 1921 Nobel Prize in Physics for his services to theoretical physics. He published 4 papers in 1905. Einstein moved to Switzerland in 1895\"\\nverification: ```{\"reason\": \"The provided context was indeed useful in arriving at the given answer. The context includes key information about Albert Einstein\\'s life and contributions, which are reflected in the answer.\", \"verdict\": 1}```\\n\\nquestion: \"who won 2020 icc world cup?\"\\ncontext: \"The 2022 ICC Men\\'s T20 World Cup, held from October 16 to November 13, 2022, in Australia, was the eighth edition of the tournament. Originally scheduled for 2020, it was postponed due to the COVID-19 pandemic. England emerged victorious, defeating Pakistan by five wickets in the final to clinch their second ICC Men\\'s T20 World Cup title.\"\\nanswer: \"England\"\\nverification: ```{\"reason\": \"the context was useful in clarifying the situation regarding the 2020 ICC World Cup and indicating that England was the winner of the tournament that was intended to be held in 2020 but actually took place in 2022.\", \"verdict\": 1}```\\n\\nquestion: \"What is the tallest mountain in the world?\"\\ncontext: \"The Andes is the longest continental mountain range in the world, located in South America. It stretches across seven countries and features many of the highest peaks in the Western Hemisphere. The range is known for its diverse ecosystems, including the high-altitude Andean Plateau and the Amazon rainforest.\"\\nanswer: \"Mount Everest.\"\\nverification: ```{\"reason\": \"the provided context discusses the Andes mountain range, which, while impressive, does not include Mount Everest or directly relate to the question about the world\\'s tallest mountain.\", \"verdict\": 0}```\\n\\nYour actual task:\\n\\nquestion: Is c-myc subject to regulation by the circadian clock?\\ncontext: 16570042 / Mobile phone use and risk of acoustic neuroma: results of the interphone \\ncase-control study in five north European countries [corrected]. //\\nanswer: Yes, the expression of c-myc is regulated by the circadian clock protein Per2.\\nverification: \\n'\n" - ] - }, - { - "name": "stderr", - "output_type": "stream", - "text": [ - "INFO:httpx:HTTP Request: POST https://api.mistral.ai/v1/chat/completions \"HTTP/1.1 200 OK\"\n" - ] - }, - { - "name": "stdout", - "output_type": "stream", - "text": [ - "start parsing ```json\n", - "{\n", - " \"reason\": \"The provided context does not contain any information about c-myc or its regulation by the circadian clock, making it not useful in arriving at the given answer. The context focuses on the expression of H2B gene family members in human cells and does not discuss any circadian clock proteins or their targets.\",\n", - " \"verdict\": 0\n", - "}\n", - "``` with prompt prompt_str='Given question, answer and context verify if the context was useful in arriving at the given answer. Give verdict as \"1\" if useful and \"0\" if not with json output.\\n\\nThe output should be a well-formatted JSON instance that conforms to the JSON schema below.\\n\\nAs an example, for the schema {\"properties\": {\"foo\": {\"title\": \"Foo\", \"description\": \"a list of strings\", \"type\": \"array\", \"items\": {\"type\": \"string\"}}}, \"required\": [\"foo\"]}\\nthe object {\"foo\": [\"bar\", \"baz\"]} is a well-formatted instance of the schema. The object {\"properties\": {\"foo\": [\"bar\", \"baz\"]}} is not well-formatted.\\n\\nHere is the output JSON schema:\\n```\\n{\"description\": \"Answer for the verification task wether the context was useful.\", \"type\": \"object\", \"properties\": {\"reason\": {\"title\": \"Reason\", \"description\": \"Reason for verification\", \"type\": \"string\"}, \"verdict\": {\"title\": \"Verdict\", \"description\": \"Binary (0/1) verdict of verification\", \"type\": \"integer\"}}, \"required\": [\"reason\", \"verdict\"]}\\n```\\n\\nDo not return any preamble or explanations, return only a pure JSON string surrounded by triple backticks (```).\\n\\nExamples:\\n\\nquestion: \"What can you tell me about albert Albert Einstein?\"\\ncontext: \"Albert Einstein (14 March 1879 – 18 April 1955) was a German-born theoretical physicist, widely held to be one of the greatest and most influential scientists of all time. Best known for developing the theory of relativity, he also made important contributions to quantum mechanics, and was thus a central figure in the revolutionary reshaping of the scientific understanding of nature that modern physics accomplished in the first decades of the twentieth century. His mass–energy equivalence formula E = mc2, which arises from relativity theory, has been called \\\\\"the world\\'s most famous equation\\\\\". He received the 1921 Nobel Prize in Physics \\\\\"for his services to theoretical physics, and especially for his discovery of the law of the photoelectric effect\\\\\", a pivotal step in the development of quantum theory. His work is also known for its influence on the philosophy of science. In a 1999 poll of 130 leading physicists worldwide by the British journal Physics World, Einstein was ranked the greatest physicist of all time. His intellectual achievements and originality have made Einstein synonymous with genius.\"\\nanswer: \"Albert Einstein born in 14 March 1879 was German-born theoretical physicist, widely held to be one of the greatest and most influential scientists of all time. He received the 1921 Nobel Prize in Physics for his services to theoretical physics. He published 4 papers in 1905. Einstein moved to Switzerland in 1895\"\\nverification: ```{\"reason\": \"The provided context was indeed useful in arriving at the given answer. The context includes key information about Albert Einstein\\'s life and contributions, which are reflected in the answer.\", \"verdict\": 1}```\\n\\nquestion: \"who won 2020 icc world cup?\"\\ncontext: \"The 2022 ICC Men\\'s T20 World Cup, held from October 16 to November 13, 2022, in Australia, was the eighth edition of the tournament. Originally scheduled for 2020, it was postponed due to the COVID-19 pandemic. England emerged victorious, defeating Pakistan by five wickets in the final to clinch their second ICC Men\\'s T20 World Cup title.\"\\nanswer: \"England\"\\nverification: ```{\"reason\": \"the context was useful in clarifying the situation regarding the 2020 ICC World Cup and indicating that England was the winner of the tournament that was intended to be held in 2020 but actually took place in 2022.\", \"verdict\": 1}```\\n\\nquestion: \"What is the tallest mountain in the world?\"\\ncontext: \"The Andes is the longest continental mountain range in the world, located in South America. It stretches across seven countries and features many of the highest peaks in the Western Hemisphere. The range is known for its diverse ecosystems, including the high-altitude Andean Plateau and the Amazon rainforest.\"\\nanswer: \"Mount Everest.\"\\nverification: ```{\"reason\": \"the provided context discusses the Andes mountain range, which, while impressive, does not include Mount Everest or directly relate to the question about the world\\'s tallest mountain.\", \"verdict\": 0}```\\n\\nYour actual task:\\n\\nquestion: Is c-myc subject to regulation by the circadian clock?\\ncontext: 16457587 / The basis set of protein forms expressed by human cells from the H2B gene family \\nwas determined by Top Down Mass Spectrometry. Using Electron Capture \\nDissociation for MS/MS of H2B isoforms, direct evidence for the expression of \\nunmodified H2B.Q, H2B.A, H2B.K/T, H2B.J, H2B.E, H2B.B, H2B.F, and monoacetylated \\nH2B.A was obtained from asynchronous HeLa cells. H2B.A was the most abundant \\nform, with the overall expression profile not changing significantly in cells \\narrested in mitosis by colchicine or during mid-S, mid-G2, G2/M, and mid-G1 \\nphases of the cell cycle. Modest hyperacetylation of H2B family members was \\nobserved after sodium butyrate treatment. //\\nanswer: Yes, the expression of c-myc is regulated by the circadian clock protein Per2.\\nverification: \\n'\n" - ] - }, - { - "name": "stderr", - "output_type": "stream", - "text": [ - "INFO:httpx:HTTP Request: POST https://api.mistral.ai/v1/chat/completions \"HTTP/1.1 200 OK\"\n" - ] - }, - { - "name": "stdout", - "output_type": "stream", - "text": [ - "start parsing ```json\n", - "{\n", - " \"reason\": \"The context does not provide information about c-myc being regulated by the circadian clock. It discusses a specific genetic mutation and its associated symptoms. The answer is not derived from the context.\",\n", - " \"verdict\": 0\n", - "}\n", - "``` with prompt prompt_str='Given question, answer and context verify if the context was useful in arriving at the given answer. Give verdict as \"1\" if useful and \"0\" if not with json output.\\n\\nThe output should be a well-formatted JSON instance that conforms to the JSON schema below.\\n\\nAs an example, for the schema {\"properties\": {\"foo\": {\"title\": \"Foo\", \"description\": \"a list of strings\", \"type\": \"array\", \"items\": {\"type\": \"string\"}}}, \"required\": [\"foo\"]}\\nthe object {\"foo\": [\"bar\", \"baz\"]} is a well-formatted instance of the schema. The object {\"properties\": {\"foo\": [\"bar\", \"baz\"]}} is not well-formatted.\\n\\nHere is the output JSON schema:\\n```\\n{\"description\": \"Answer for the verification task wether the context was useful.\", \"type\": \"object\", \"properties\": {\"reason\": {\"title\": \"Reason\", \"description\": \"Reason for verification\", \"type\": \"string\"}, \"verdict\": {\"title\": \"Verdict\", \"description\": \"Binary (0/1) verdict of verification\", \"type\": \"integer\"}}, \"required\": [\"reason\", \"verdict\"]}\\n```\\n\\nDo not return any preamble or explanations, return only a pure JSON string surrounded by triple backticks (```).\\n\\nExamples:\\n\\nquestion: \"What can you tell me about albert Albert Einstein?\"\\ncontext: \"Albert Einstein (14 March 1879 – 18 April 1955) was a German-born theoretical physicist, widely held to be one of the greatest and most influential scientists of all time. Best known for developing the theory of relativity, he also made important contributions to quantum mechanics, and was thus a central figure in the revolutionary reshaping of the scientific understanding of nature that modern physics accomplished in the first decades of the twentieth century. His mass–energy equivalence formula E = mc2, which arises from relativity theory, has been called \\\\\"the world\\'s most famous equation\\\\\". He received the 1921 Nobel Prize in Physics \\\\\"for his services to theoretical physics, and especially for his discovery of the law of the photoelectric effect\\\\\", a pivotal step in the development of quantum theory. His work is also known for its influence on the philosophy of science. In a 1999 poll of 130 leading physicists worldwide by the British journal Physics World, Einstein was ranked the greatest physicist of all time. His intellectual achievements and originality have made Einstein synonymous with genius.\"\\nanswer: \"Albert Einstein born in 14 March 1879 was German-born theoretical physicist, widely held to be one of the greatest and most influential scientists of all time. He received the 1921 Nobel Prize in Physics for his services to theoretical physics. He published 4 papers in 1905. Einstein moved to Switzerland in 1895\"\\nverification: ```{\"reason\": \"The provided context was indeed useful in arriving at the given answer. The context includes key information about Albert Einstein\\'s life and contributions, which are reflected in the answer.\", \"verdict\": 1}```\\n\\nquestion: \"who won 2020 icc world cup?\"\\ncontext: \"The 2022 ICC Men\\'s T20 World Cup, held from October 16 to November 13, 2022, in Australia, was the eighth edition of the tournament. Originally scheduled for 2020, it was postponed due to the COVID-19 pandemic. England emerged victorious, defeating Pakistan by five wickets in the final to clinch their second ICC Men\\'s T20 World Cup title.\"\\nanswer: \"England\"\\nverification: ```{\"reason\": \"the context was useful in clarifying the situation regarding the 2020 ICC World Cup and indicating that England was the winner of the tournament that was intended to be held in 2020 but actually took place in 2022.\", \"verdict\": 1}```\\n\\nquestion: \"What is the tallest mountain in the world?\"\\ncontext: \"The Andes is the longest continental mountain range in the world, located in South America. It stretches across seven countries and features many of the highest peaks in the Western Hemisphere. The range is known for its diverse ecosystems, including the high-altitude Andean Plateau and the Amazon rainforest.\"\\nanswer: \"Mount Everest.\"\\nverification: ```{\"reason\": \"the provided context discusses the Andes mountain range, which, while impressive, does not include Mount Everest or directly relate to the question about the world\\'s tallest mountain.\", \"verdict\": 0}```\\n\\nYour actual task:\\n\\nquestion: Is c-myc subject to regulation by the circadian clock?\\ncontext: 17103449 / P250R mutation in the FGFR3 gene also known as Muenke syndrome is associated \\nwith coronal craniosynostosis, sensorineural deafness, craniofacial, and digital \\nabnormalities. We report a family with this mutation associated with sudden \\ndeath in an affected newborn, most probably due to upper airway obstruction. //\\nanswer: Yes, the expression of c-myc is regulated by the circadian clock protein Per2.\\nverification: \\n'\n" - ] - }, - { - "name": "stderr", - "output_type": "stream", - "text": [ - "INFO:httpx:HTTP Request: POST https://api.mistral.ai/v1/chat/completions \"HTTP/1.1 200 OK\"\n", - "INFO:httpx:HTTP Request: POST https://api.mistral.ai/v1/chat/completions \"HTTP/1.1 200 OK\"\n", - "INFO:httpx:HTTP Request: POST https://api.mistral.ai/v1/chat/completions \"HTTP/1.1 200 OK\"\n" - ] - }, - { - "name": "stdout", - "output_type": "stream", - "text": [ - "start parsing ```json\n", - "{\n", - " \"question\": \"Which growth factors are involved in the induction of epithelial-mesenchymal transition (EMT) and have been shown to play a role in cancer metastasis?\",\n", - " \"noncommittal\": 0\n", - "}\n", - "``` with prompt prompt_str='Generate a question for the given answer and Identify if answer is noncommittal. Give noncommittal as 1 if the answer is noncommittal and 0 if the answer is committal. A noncommittal answer is one that is evasive, vague, or ambiguous. For example, \"I don\\'t know\" or \"I\\'m not sure\" are noncommittal answers\\n\\nThe output should be a well-formatted JSON instance that conforms to the JSON schema below.\\n\\nAs an example, for the schema {\"properties\": {\"foo\": {\"title\": \"Foo\", \"description\": \"a list of strings\", \"type\": \"array\", \"items\": {\"type\": \"string\"}}}, \"required\": [\"foo\"]}\\nthe object {\"foo\": [\"bar\", \"baz\"]} is a well-formatted instance of the schema. The object {\"properties\": {\"foo\": [\"bar\", \"baz\"]}} is not well-formatted.\\n\\nHere is the output JSON schema:\\n```\\n{\"type\": \"object\", \"properties\": {\"question\": {\"title\": \"Question\", \"type\": \"string\"}, \"noncommittal\": {\"title\": \"Noncommittal\", \"type\": \"integer\"}}, \"required\": [\"question\", \"noncommittal\"]}\\n```\\n\\nDo not return any preamble or explanations, return only a pure JSON string surrounded by triple backticks (```).\\n\\nExamples:\\n\\nanswer: \"Albert Einstein was born in Germany.\"\\ncontext: \"Albert Einstein was a German-born theoretical physicist who is widely held to be one of the greatest and most influential scientists of all time\"\\noutput: ```{\"question\": \"Where was Albert Einstein born?\", \"noncommittal\": 0}```\\n\\nanswer: \"It can change its skin color based on the temperature of its environment.\"\\ncontext: \"A recent scientific study has discovered a new species of frog in the Amazon rainforest that has the unique ability to change its skin color based on the temperature of its environment.\"\\noutput: ```{\"question\": \"What unique ability does the newly discovered species of frog have?\", \"noncommittal\": 0}```\\n\\nanswer: \"Everest\"\\ncontext: \"The tallest mountain on Earth, measured from sea level, is a renowned peak located in the Himalayas.\"\\noutput: ```{\"question\": \"What is the tallest mountain on Earth?\", \"noncommittal\": 0}```\\n\\nanswer: \"I don\\'t know about the groundbreaking feature of the smartphone invented in 2023 as am unaware of information beyond 2022. \"\\ncontext: \"In 2023, a groundbreaking invention was announced: a smartphone with a battery life of one month, revolutionizing the way people use mobile technology.\"\\noutput: ```{\"question\": \"What was the groundbreaking feature of the smartphone invented in 2023?\", \"noncommittal\": 1}```\\n\\nYour actual task:\\n\\nanswer: Several growth factors have been shown to be involved in the induction of epithelial-mesenchymal transition (EMT), including:\\n\\n1. Transforming growth factor-beta (TGF-β): TGF-β is a potent inducer of EMT and plays a crucial role in the development of cancer metastasis.\\n2. Epidermal growth factor (EGF): EGF stimulates EMT in various cell types, including cancer cells, and promotes tumor invasion and metastasis.\\n3. Platelet-derived growth factor (PDGF): PDGF is known to induce EMT in various cell types, including cancer cells, and promotes tumor progression and metastasis.\\n4. Fibroblast growth factor (FGF): FGF signaling has been shown to induce EMT in various cell types, including cancer cells, and promote tumor invasion and metastasis.\\n5. Hepatocyte growth factor (HGF): HGF is a potent inducer of EMT and plays a crucial role in the development of cancer metastasis.\\n6. Vascular endothelial growth factor (VEGF): VEGF is known to induce EMT in endothelial cells and promote angiogenesis, which is a crucial step in tumor growth and metastasis.\\n7. Insulin-like growth factor-\\ncontext: 11428324 / Familial craniosynostosis due to Pro250Arg mutation in the fibroblast growth \\nfactor receptor 3 gene. //\\n15683664 / Skin side effects following XRT take place more often in patients with skin \\ndisorders. In this study six patients with psoriatic lesions were evaluated. The \\ntotal/daily XRT dose to the tumor site was 50-70/1.8-2.0 Gy. No debilitating \\neffect of XRT was observed in both the psoriatic lesions and in the surrounding \\nnormal skin. //\\n16570042 / Mobile phone use and risk of acoustic neuroma: results of the interphone \\ncase-control study in five north European countries [corrected]. //\\n16457587 / The basis set of protein forms expressed by human cells from the H2B gene family \\nwas determined by Top Down Mass Spectrometry. Using Electron Capture \\nDissociation for MS/MS of H2B isoforms, direct evidence for the expression of \\nunmodified H2B.Q, H2B.A, H2B.K/T, H2B.J, H2B.E, H2B.B, H2B.F, and monoacetylated \\nH2B.A was obtained from asynchronous HeLa cells. H2B.A was the most abundant \\nform, with the overall expression profile not changing significantly in cells \\narrested in mitosis by colchicine or during mid-S, mid-G2, G2/M, and mid-G1 \\nphases of the cell cycle. Modest hyperacetylation of H2B family members was \\nobserved after sodium butyrate treatment. //\\n17103449 / P250R mutation in the FGFR3 gene also known as Muenke syndrome is associated \\nwith coronal craniosynostosis, sensorineural deafness, craniofacial, and digital \\nabnormalities. We report a family with this mutation associated with sudden \\ndeath in an affected newborn, most probably due to upper airway obstruction. //\\noutput: \\n'\n", - "start parsing ```json\n", - "{\n", - " \"question\": \"Which growth factors are involved in the induction of epithelial-mesenchymal transition (EMT) and have been shown to play a role in cancer metastasis?\",\n", - " \"noncommittal\": 0\n", - "}\n", - "``` with prompt prompt_str='Generate a question for the given answer and Identify if answer is noncommittal. Give noncommittal as 1 if the answer is noncommittal and 0 if the answer is committal. A noncommittal answer is one that is evasive, vague, or ambiguous. For example, \"I don\\'t know\" or \"I\\'m not sure\" are noncommittal answers\\n\\nThe output should be a well-formatted JSON instance that conforms to the JSON schema below.\\n\\nAs an example, for the schema {\"properties\": {\"foo\": {\"title\": \"Foo\", \"description\": \"a list of strings\", \"type\": \"array\", \"items\": {\"type\": \"string\"}}}, \"required\": [\"foo\"]}\\nthe object {\"foo\": [\"bar\", \"baz\"]} is a well-formatted instance of the schema. The object {\"properties\": {\"foo\": [\"bar\", \"baz\"]}} is not well-formatted.\\n\\nHere is the output JSON schema:\\n```\\n{\"type\": \"object\", \"properties\": {\"question\": {\"title\": \"Question\", \"type\": \"string\"}, \"noncommittal\": {\"title\": \"Noncommittal\", \"type\": \"integer\"}}, \"required\": [\"question\", \"noncommittal\"]}\\n```\\n\\nDo not return any preamble or explanations, return only a pure JSON string surrounded by triple backticks (```).\\n\\nExamples:\\n\\nanswer: \"Albert Einstein was born in Germany.\"\\ncontext: \"Albert Einstein was a German-born theoretical physicist who is widely held to be one of the greatest and most influential scientists of all time\"\\noutput: ```{\"question\": \"Where was Albert Einstein born?\", \"noncommittal\": 0}```\\n\\nanswer: \"It can change its skin color based on the temperature of its environment.\"\\ncontext: \"A recent scientific study has discovered a new species of frog in the Amazon rainforest that has the unique ability to change its skin color based on the temperature of its environment.\"\\noutput: ```{\"question\": \"What unique ability does the newly discovered species of frog have?\", \"noncommittal\": 0}```\\n\\nanswer: \"Everest\"\\ncontext: \"The tallest mountain on Earth, measured from sea level, is a renowned peak located in the Himalayas.\"\\noutput: ```{\"question\": \"What is the tallest mountain on Earth?\", \"noncommittal\": 0}```\\n\\nanswer: \"I don\\'t know about the groundbreaking feature of the smartphone invented in 2023 as am unaware of information beyond 2022. \"\\ncontext: \"In 2023, a groundbreaking invention was announced: a smartphone with a battery life of one month, revolutionizing the way people use mobile technology.\"\\noutput: ```{\"question\": \"What was the groundbreaking feature of the smartphone invented in 2023?\", \"noncommittal\": 1}```\\n\\nYour actual task:\\n\\nanswer: Several growth factors have been shown to be involved in the induction of epithelial-mesenchymal transition (EMT), including:\\n\\n1. Transforming growth factor-beta (TGF-β): TGF-β is a potent inducer of EMT and plays a crucial role in the development of cancer metastasis.\\n2. Epidermal growth factor (EGF): EGF stimulates EMT in various cell types, including cancer cells, and promotes tumor invasion and metastasis.\\n3. Platelet-derived growth factor (PDGF): PDGF is known to induce EMT in various cell types, including cancer cells, and promotes tumor progression and metastasis.\\n4. Fibroblast growth factor (FGF): FGF signaling has been shown to induce EMT in various cell types, including cancer cells, and promote tumor invasion and metastasis.\\n5. Hepatocyte growth factor (HGF): HGF is a potent inducer of EMT and plays a crucial role in the development of cancer metastasis.\\n6. Vascular endothelial growth factor (VEGF): VEGF is known to induce EMT in endothelial cells and promote angiogenesis, which is a crucial step in tumor growth and metastasis.\\n7. Insulin-like growth factor-\\ncontext: 11428324 / Familial craniosynostosis due to Pro250Arg mutation in the fibroblast growth \\nfactor receptor 3 gene. //\\n15683664 / Skin side effects following XRT take place more often in patients with skin \\ndisorders. In this study six patients with psoriatic lesions were evaluated. The \\ntotal/daily XRT dose to the tumor site was 50-70/1.8-2.0 Gy. No debilitating \\neffect of XRT was observed in both the psoriatic lesions and in the surrounding \\nnormal skin. //\\n16570042 / Mobile phone use and risk of acoustic neuroma: results of the interphone \\ncase-control study in five north European countries [corrected]. //\\n16457587 / The basis set of protein forms expressed by human cells from the H2B gene family \\nwas determined by Top Down Mass Spectrometry. Using Electron Capture \\nDissociation for MS/MS of H2B isoforms, direct evidence for the expression of \\nunmodified H2B.Q, H2B.A, H2B.K/T, H2B.J, H2B.E, H2B.B, H2B.F, and monoacetylated \\nH2B.A was obtained from asynchronous HeLa cells. H2B.A was the most abundant \\nform, with the overall expression profile not changing significantly in cells \\narrested in mitosis by colchicine or during mid-S, mid-G2, G2/M, and mid-G1 \\nphases of the cell cycle. Modest hyperacetylation of H2B family members was \\nobserved after sodium butyrate treatment. //\\n17103449 / P250R mutation in the FGFR3 gene also known as Muenke syndrome is associated \\nwith coronal craniosynostosis, sensorineural deafness, craniofacial, and digital \\nabnormalities. We report a family with this mutation associated with sudden \\ndeath in an affected newborn, most probably due to upper airway obstruction. //\\noutput: \\n'\n", - "start parsing ```json\n", - "{\n", - " \"question\": \"Which growth factors are involved in the induction of epithelial-mesenchymal transition (EMT) and have been shown to play a role in cancer metastasis?\",\n", - " \"noncommittal\": 0\n", - "}\n", - "``` with prompt prompt_str='Generate a question for the given answer and Identify if answer is noncommittal. Give noncommittal as 1 if the answer is noncommittal and 0 if the answer is committal. A noncommittal answer is one that is evasive, vague, or ambiguous. For example, \"I don\\'t know\" or \"I\\'m not sure\" are noncommittal answers\\n\\nThe output should be a well-formatted JSON instance that conforms to the JSON schema below.\\n\\nAs an example, for the schema {\"properties\": {\"foo\": {\"title\": \"Foo\", \"description\": \"a list of strings\", \"type\": \"array\", \"items\": {\"type\": \"string\"}}}, \"required\": [\"foo\"]}\\nthe object {\"foo\": [\"bar\", \"baz\"]} is a well-formatted instance of the schema. The object {\"properties\": {\"foo\": [\"bar\", \"baz\"]}} is not well-formatted.\\n\\nHere is the output JSON schema:\\n```\\n{\"type\": \"object\", \"properties\": {\"question\": {\"title\": \"Question\", \"type\": \"string\"}, \"noncommittal\": {\"title\": \"Noncommittal\", \"type\": \"integer\"}}, \"required\": [\"question\", \"noncommittal\"]}\\n```\\n\\nDo not return any preamble or explanations, return only a pure JSON string surrounded by triple backticks (```).\\n\\nExamples:\\n\\nanswer: \"Albert Einstein was born in Germany.\"\\ncontext: \"Albert Einstein was a German-born theoretical physicist who is widely held to be one of the greatest and most influential scientists of all time\"\\noutput: ```{\"question\": \"Where was Albert Einstein born?\", \"noncommittal\": 0}```\\n\\nanswer: \"It can change its skin color based on the temperature of its environment.\"\\ncontext: \"A recent scientific study has discovered a new species of frog in the Amazon rainforest that has the unique ability to change its skin color based on the temperature of its environment.\"\\noutput: ```{\"question\": \"What unique ability does the newly discovered species of frog have?\", \"noncommittal\": 0}```\\n\\nanswer: \"Everest\"\\ncontext: \"The tallest mountain on Earth, measured from sea level, is a renowned peak located in the Himalayas.\"\\noutput: ```{\"question\": \"What is the tallest mountain on Earth?\", \"noncommittal\": 0}```\\n\\nanswer: \"I don\\'t know about the groundbreaking feature of the smartphone invented in 2023 as am unaware of information beyond 2022. \"\\ncontext: \"In 2023, a groundbreaking invention was announced: a smartphone with a battery life of one month, revolutionizing the way people use mobile technology.\"\\noutput: ```{\"question\": \"What was the groundbreaking feature of the smartphone invented in 2023?\", \"noncommittal\": 1}```\\n\\nYour actual task:\\n\\nanswer: Several growth factors have been shown to be involved in the induction of epithelial-mesenchymal transition (EMT), including:\\n\\n1. Transforming growth factor-beta (TGF-β): TGF-β is a potent inducer of EMT and plays a crucial role in the development of cancer metastasis.\\n2. Epidermal growth factor (EGF): EGF stimulates EMT in various cell types, including cancer cells, and promotes tumor invasion and metastasis.\\n3. Platelet-derived growth factor (PDGF): PDGF is known to induce EMT in various cell types, including cancer cells, and promotes tumor progression and metastasis.\\n4. Fibroblast growth factor (FGF): FGF signaling has been shown to induce EMT in various cell types, including cancer cells, and promote tumor invasion and metastasis.\\n5. Hepatocyte growth factor (HGF): HGF is a potent inducer of EMT and plays a crucial role in the development of cancer metastasis.\\n6. Vascular endothelial growth factor (VEGF): VEGF is known to induce EMT in endothelial cells and promote angiogenesis, which is a crucial step in tumor growth and metastasis.\\n7. Insulin-like growth factor-\\ncontext: 11428324 / Familial craniosynostosis due to Pro250Arg mutation in the fibroblast growth \\nfactor receptor 3 gene. //\\n15683664 / Skin side effects following XRT take place more often in patients with skin \\ndisorders. In this study six patients with psoriatic lesions were evaluated. The \\ntotal/daily XRT dose to the tumor site was 50-70/1.8-2.0 Gy. No debilitating \\neffect of XRT was observed in both the psoriatic lesions and in the surrounding \\nnormal skin. //\\n16570042 / Mobile phone use and risk of acoustic neuroma: results of the interphone \\ncase-control study in five north European countries [corrected]. //\\n16457587 / The basis set of protein forms expressed by human cells from the H2B gene family \\nwas determined by Top Down Mass Spectrometry. Using Electron Capture \\nDissociation for MS/MS of H2B isoforms, direct evidence for the expression of \\nunmodified H2B.Q, H2B.A, H2B.K/T, H2B.J, H2B.E, H2B.B, H2B.F, and monoacetylated \\nH2B.A was obtained from asynchronous HeLa cells. H2B.A was the most abundant \\nform, with the overall expression profile not changing significantly in cells \\narrested in mitosis by colchicine or during mid-S, mid-G2, G2/M, and mid-G1 \\nphases of the cell cycle. Modest hyperacetylation of H2B family members was \\nobserved after sodium butyrate treatment. //\\n17103449 / P250R mutation in the FGFR3 gene also known as Muenke syndrome is associated \\nwith coronal craniosynostosis, sensorineural deafness, craniofacial, and digital \\nabnormalities. We report a family with this mutation associated with sudden \\ndeath in an affected newborn, most probably due to upper airway obstruction. //\\noutput: \\n'\n" - ] - }, - { - "name": "stderr", - "output_type": "stream", - "text": [ - "INFO:httpx:HTTP Request: POST https://api.mistral.ai/v1/embeddings \"HTTP/1.1 200 OK\"\n", - "INFO:httpx:HTTP Request: POST https://api.mistral.ai/v1/embeddings \"HTTP/1.1 200 OK\"\n", - "INFO:httpx:HTTP Request: POST https://api.mistral.ai/v1/chat/completions \"HTTP/1.1 200 OK\"\n" - ] - }, - { - "name": "stdout", - "output_type": "stream", - "text": [ - "start parsing ```json\n", - "[\n", - " {\n", - " \"statement\": \"The mismatch-specific uracil DNA glycosylase (MUG) belongs to a homologous family of DNA glycosylases that initiate base-excision repair of G:U/T mismatches.\",\n", - " \"attributed\": 0,\n", - " \"reason\": \"The context does not provide information about MUG belonging to a homologous family of DNA glycosylases.\"\n", - " },\n", - " {\n", - " \"statement\": \"The crystal structure of the Mug repair complex points to a preference of Mug for G:U over G:T mispairs.\",\n", - " \"attributed\": 0,\n", - " \"reason\": \"The context does not provide information about the crystal structure of the Mug repair complex.\"\n", - " },\n", - " {\n", - " \"statement\": \"Mug does not repair U:G or T:G mismatches in vivo.\",\n", - " \"attributed\": 0,\n", - " \"reason\": \"The context does not provide information about Mug repairing U:G or T:G mismatches in vivo.\"\n", - " },\n", - " {\n", - " \"statement\": \"Mug possesses xanthine DNA glycosylase (XDG) activity in E.coli.\",\n", - " \"attributed\": 0,\n", - " \"reason\": \"The context does not provide information about Mug possessing XDG activity in E.coli.\"\n", - " },\n", - " {\n", - " \"statement\": \"The repair activity of Mug is more robust against xanthine than uracil.\",\n", - " \"attributed\": 0,\n", - " \"reason\": \"The context does not provide information about the repair activity of Mug being more robust against xanthine than uracil.\"\n", - " },\n", - " {\n", - " \"statement\": \"Mug excises the alkylated base, 3, N(4)-ethenocytosine (epsilonC) from epsilonC:G mismatches, and may be the only enzyme in E.coli that can remove this mutagenic adduct.\",\n", - " \"attributed\": 0,\n", - " \"reason\": \"The context does not provide information about Mug excising the alkylated base, 3, N(4)-ethenocytosine (epsilonC) from epsilonC:G mismatches.\"\n", - " },\n", - " {\n", - " \"statement\": \"Thus, the principal role of Mug may be the repair of DNA damages caused by exogenous chemical agents such as chloroacetaldehyde.\",\n", - " \"attributed\": 0,\n", - " \"reason\": \"The context does not provide information about the principal role of Mug.\"\n", - " }\n", - "]\n", - "``` with prompt prompt_str='Given a context, and an answer, analyze each sentence in the answer and classify if the sentence can be attributed to the given context or not. Use only \"Yes\" (1) or \"No\" (0) as a binary classification. Output json with reason.\\n\\nThe output should be a well-formatted JSON instance that conforms to the JSON schema below.\\n\\nAs an example, for the schema {\"properties\": {\"foo\": {\"title\": \"Foo\", \"description\": \"a list of strings\", \"type\": \"array\", \"items\": {\"type\": \"string\"}}}, \"required\": [\"foo\"]}\\nthe object {\"foo\": [\"bar\", \"baz\"]} is a well-formatted instance of the schema. The object {\"properties\": {\"foo\": [\"bar\", \"baz\"]}} is not well-formatted.\\n\\nHere is the output JSON schema:\\n```\\n{\"type\": \"array\", \"items\": {\"$ref\": \"#/definitions/ContextRecallClassificationAnswer\"}, \"definitions\": {\"ContextRecallClassificationAnswer\": {\"title\": \"ContextRecallClassificationAnswer\", \"type\": \"object\", \"properties\": {\"statement\": {\"title\": \"Statement\", \"type\": \"string\"}, \"attributed\": {\"title\": \"Attributed\", \"type\": \"integer\"}, \"reason\": {\"title\": \"Reason\", \"type\": \"string\"}}, \"required\": [\"statement\", \"attributed\", \"reason\"]}}}\\n```\\n\\nDo not return any preamble or explanations, return only a pure JSON string surrounded by triple backticks (```).\\n\\nExamples:\\n\\nquestion: \"What can you tell me about albert Albert Einstein?\"\\ncontext: \"Albert Einstein (14 March 1879 - 18 April 1955) was a German-born theoretical physicist, widely held to be one of the greatest and most influential scientists of all time. Best known for developing the theory of relativity, he also made important contributions to quantum mechanics, and was thus a central figure in the revolutionary reshaping of the scientific understanding of nature that modern physics accomplished in the first decades of the twentieth century. His mass-energy equivalence formula E = mc2, which arises from relativity theory, has been called \\'the world\\'s most famous equation\\'. He received the 1921 Nobel Prize in Physics \\'for his services to theoretical physics, and especially for his discovery of the law of the photoelectric effect\\', a pivotal step in the development of quantum theory. His work is also known for its influence on the philosophy of science. In a 1999 poll of 130 leading physicists worldwide by the British journal Physics World, Einstein was ranked the greatest physicist of all time. His intellectual achievements and originality have made Einstein synonymous with genius.\"\\nanswer: \"Albert Einstein born in 14 March 1879 was German-born theoretical physicist, widely held to be one of the greatest and most influential scientists of all time. He received the 1921 Nobel Prize in Physics for his services to theoretical physics. He published 4 papers in 1905. Einstein moved to Switzerland in 1895\"\\nclassification: ```[{\"statement\": \"Albert Einstein, born on 14 March 1879, was a German-born theoretical physicist, widely held to be one of the greatest and most influential scientists of all time.\", \"attributed\": 1, \"reason\": \"The date of birth of Einstein is mentioned clearly in the context.\"}, {\"statement\": \"He received the 1921 Nobel Prize in Physics for his services to theoretical physics.\", \"attributed\": 1, \"reason\": \"The exact sentence is present in the given context.\"}, {\"statement\": \"He published 4 papers in 1905.\", \"attributed\": 0, \"reason\": \"There is no mention about papers he wrote in the given context.\"}, {\"statement\": \"Einstein moved to Switzerland in 1895.\", \"attributed\": 0, \"reason\": \"There is no supporting evidence for this in the given context.\"}]```\\n\\nquestion: \"who won 2020 icc world cup?\"\\ncontext: \"The 2022 ICC Men\\'s T20 World Cup, held from October 16 to November 13, 2022, in Australia, was the eighth edition of the tournament. Originally scheduled for 2020, it was postponed due to the COVID-19 pandemic. England emerged victorious, defeating Pakistan by five wickets in the final to clinch their second ICC Men\\'s T20 World Cup title.\"\\nanswer: \"England\"\\nclassification: ```[{\"statement\": \"England won the 2022 ICC Men\\'s T20 World Cup.\", \"attributed\": 1, \"reason\": \"From context it is clear that England defeated Pakistan to win the World Cup.\"}]```\\n\\nquestion: \"What is the primary fuel for the Sun?\"\\ncontext: \"NULL\"\\nanswer: \"Hydrogen\"\\nclassification: ```[{\"statement\": \"The Sun\\'s primary fuel is hydrogen.\", \"attributed\": 0, \"reason\": \"The context contains no information\"}]```\\n\\nYour actual task:\\n\\nquestion: What is the role of mismatched uracil glycosylase (Mug) in DNA repair?\\ncontext: 11428324 / Familial craniosynostosis due to Pro250Arg mutation in the fibroblast growth \\nfactor receptor 3 gene. //\\n15683664 / Skin side effects following XRT take place more often in patients with skin \\ndisorders. In this study six patients with psoriatic lesions were evaluated. The \\ntotal/daily XRT dose to the tumor site was 50-70/1.8-2.0 Gy. No debilitating \\neffect of XRT was observed in both the psoriatic lesions and in the surrounding \\nnormal skin. //\\n16570042 / Mobile phone use and risk of acoustic neuroma: results of the interphone \\ncase-control study in five north European countries [corrected]. //\\n16457587 / The basis set of protein forms expressed by human cells from the H2B gene family \\nwas determined by Top Down Mass Spectrometry. Using Electron Capture \\nDissociation for MS/MS of H2B isoforms, direct evidence for the expression of \\nunmodified H2B.Q, H2B.A, H2B.K/T, H2B.J, H2B.E, H2B.B, H2B.F, and monoacetylated \\nH2B.A was obtained from asynchronous HeLa cells. H2B.A was the most abundant \\nform, with the overall expression profile not changing significantly in cells \\narrested in mitosis by colchicine or during mid-S, mid-G2, G2/M, and mid-G1 \\nphases of the cell cycle. Modest hyperacetylation of H2B family members was \\nobserved after sodium butyrate treatment. //\\n17103449 / P250R mutation in the FGFR3 gene also known as Muenke syndrome is associated \\nwith coronal craniosynostosis, sensorineural deafness, craniofacial, and digital \\nabnormalities. We report a family with this mutation associated with sudden \\ndeath in an affected newborn, most probably due to upper airway obstruction. //\\nanswer: The mismatch-specific uracil DNA glycosylase (MUG) belongs to a homologous family of DNA glycosylases that initiate base-excision repair of G:U/T mismatches. The crystal structure of the Mug repair complex points to a preference of Mug for G:U over G:T mispairs. Nonetheless, Mug does not repair U:G or T:G mismatches in vivo. Mug possesses xanthine DNA glycosylase (XDG) activity in E.coli. The repair activity of Mug is more robust against xanthine than uracil. Furthermore, Mug excises the alkylated base, 3, N(4)-ethenocytosine (epsilonC) from epsilonC:G mismatches, and may be the only enzyme in E.coli that can remove this mutagenic adduct. Thus, the principal role of Mug may be the repair of DNA damages caused by exogenous chemical agents such as chloroacetaldehyde.\\nclassification: \\n'\n" - ] - }, - { - "name": "stderr", - "output_type": "stream", - "text": [ - "INFO:httpx:HTTP Request: POST https://api.mistral.ai/v1/chat/completions \"HTTP/1.1 200 OK\"\n" - ] - }, - { - "name": "stdout", - "output_type": "stream", - "text": [ - "start parsing ```[\n", - " {\n", - " \"statement\": \"c-myc is subject to regulation by the circadian clock\",\n", - " \"attributed\": 0,\n", - " \"reason\": \"The context contains no information about c-myc or its regulation by the circadian clock\"\n", - " },\n", - " {\n", - " \"statement\": \"The expression of c-myc is regulated by the circadian clock protein Per2\",\n", - " \"attributed\": 0,\n", - " \"reason\": \"The context contains no information about c-myc or its regulation by the circadian clock protein Per2\"\n", - " }\n", - "]\n", - "``` with prompt prompt_str='Given a context, and an answer, analyze each sentence in the answer and classify if the sentence can be attributed to the given context or not. Use only \"Yes\" (1) or \"No\" (0) as a binary classification. Output json with reason.\\n\\nThe output should be a well-formatted JSON instance that conforms to the JSON schema below.\\n\\nAs an example, for the schema {\"properties\": {\"foo\": {\"title\": \"Foo\", \"description\": \"a list of strings\", \"type\": \"array\", \"items\": {\"type\": \"string\"}}}, \"required\": [\"foo\"]}\\nthe object {\"foo\": [\"bar\", \"baz\"]} is a well-formatted instance of the schema. The object {\"properties\": {\"foo\": [\"bar\", \"baz\"]}} is not well-formatted.\\n\\nHere is the output JSON schema:\\n```\\n{\"type\": \"array\", \"items\": {\"$ref\": \"#/definitions/ContextRecallClassificationAnswer\"}, \"definitions\": {\"ContextRecallClassificationAnswer\": {\"title\": \"ContextRecallClassificationAnswer\", \"type\": \"object\", \"properties\": {\"statement\": {\"title\": \"Statement\", \"type\": \"string\"}, \"attributed\": {\"title\": \"Attributed\", \"type\": \"integer\"}, \"reason\": {\"title\": \"Reason\", \"type\": \"string\"}}, \"required\": [\"statement\", \"attributed\", \"reason\"]}}}\\n```\\n\\nDo not return any preamble or explanations, return only a pure JSON string surrounded by triple backticks (```).\\n\\nExamples:\\n\\nquestion: \"What can you tell me about albert Albert Einstein?\"\\ncontext: \"Albert Einstein (14 March 1879 - 18 April 1955) was a German-born theoretical physicist, widely held to be one of the greatest and most influential scientists of all time. Best known for developing the theory of relativity, he also made important contributions to quantum mechanics, and was thus a central figure in the revolutionary reshaping of the scientific understanding of nature that modern physics accomplished in the first decades of the twentieth century. His mass-energy equivalence formula E = mc2, which arises from relativity theory, has been called \\'the world\\'s most famous equation\\'. He received the 1921 Nobel Prize in Physics \\'for his services to theoretical physics, and especially for his discovery of the law of the photoelectric effect\\', a pivotal step in the development of quantum theory. His work is also known for its influence on the philosophy of science. In a 1999 poll of 130 leading physicists worldwide by the British journal Physics World, Einstein was ranked the greatest physicist of all time. His intellectual achievements and originality have made Einstein synonymous with genius.\"\\nanswer: \"Albert Einstein born in 14 March 1879 was German-born theoretical physicist, widely held to be one of the greatest and most influential scientists of all time. He received the 1921 Nobel Prize in Physics for his services to theoretical physics. He published 4 papers in 1905. Einstein moved to Switzerland in 1895\"\\nclassification: ```[{\"statement\": \"Albert Einstein, born on 14 March 1879, was a German-born theoretical physicist, widely held to be one of the greatest and most influential scientists of all time.\", \"attributed\": 1, \"reason\": \"The date of birth of Einstein is mentioned clearly in the context.\"}, {\"statement\": \"He received the 1921 Nobel Prize in Physics for his services to theoretical physics.\", \"attributed\": 1, \"reason\": \"The exact sentence is present in the given context.\"}, {\"statement\": \"He published 4 papers in 1905.\", \"attributed\": 0, \"reason\": \"There is no mention about papers he wrote in the given context.\"}, {\"statement\": \"Einstein moved to Switzerland in 1895.\", \"attributed\": 0, \"reason\": \"There is no supporting evidence for this in the given context.\"}]```\\n\\nquestion: \"who won 2020 icc world cup?\"\\ncontext: \"The 2022 ICC Men\\'s T20 World Cup, held from October 16 to November 13, 2022, in Australia, was the eighth edition of the tournament. Originally scheduled for 2020, it was postponed due to the COVID-19 pandemic. England emerged victorious, defeating Pakistan by five wickets in the final to clinch their second ICC Men\\'s T20 World Cup title.\"\\nanswer: \"England\"\\nclassification: ```[{\"statement\": \"England won the 2022 ICC Men\\'s T20 World Cup.\", \"attributed\": 1, \"reason\": \"From context it is clear that England defeated Pakistan to win the World Cup.\"}]```\\n\\nquestion: \"What is the primary fuel for the Sun?\"\\ncontext: \"NULL\"\\nanswer: \"Hydrogen\"\\nclassification: ```[{\"statement\": \"The Sun\\'s primary fuel is hydrogen.\", \"attributed\": 0, \"reason\": \"The context contains no information\"}]```\\n\\nYour actual task:\\n\\nquestion: Is c-myc subject to regulation by the circadian clock?\\ncontext: 11428324 / Familial craniosynostosis due to Pro250Arg mutation in the fibroblast growth \\nfactor receptor 3 gene. //\\n15683664 / Skin side effects following XRT take place more often in patients with skin \\ndisorders. In this study six patients with psoriatic lesions were evaluated. The \\ntotal/daily XRT dose to the tumor site was 50-70/1.8-2.0 Gy. No debilitating \\neffect of XRT was observed in both the psoriatic lesions and in the surrounding \\nnormal skin. //\\n16570042 / Mobile phone use and risk of acoustic neuroma: results of the interphone \\ncase-control study in five north European countries [corrected]. //\\n16457587 / The basis set of protein forms expressed by human cells from the H2B gene family \\nwas determined by Top Down Mass Spectrometry. Using Electron Capture \\nDissociation for MS/MS of H2B isoforms, direct evidence for the expression of \\nunmodified H2B.Q, H2B.A, H2B.K/T, H2B.J, H2B.E, H2B.B, H2B.F, and monoacetylated \\nH2B.A was obtained from asynchronous HeLa cells. H2B.A was the most abundant \\nform, with the overall expression profile not changing significantly in cells \\narrested in mitosis by colchicine or during mid-S, mid-G2, G2/M, and mid-G1 \\nphases of the cell cycle. Modest hyperacetylation of H2B family members was \\nobserved after sodium butyrate treatment. //\\n17103449 / P250R mutation in the FGFR3 gene also known as Muenke syndrome is associated \\nwith coronal craniosynostosis, sensorineural deafness, craniofacial, and digital \\nabnormalities. We report a family with this mutation associated with sudden \\ndeath in an affected newborn, most probably due to upper airway obstruction. //\\nanswer: Yes, the expression of c-myc is regulated by the circadian clock protein Per2.\\nclassification: \\n'\n" - ] - }, - { - "name": "stderr", - "output_type": "stream", - "text": [ - "INFO:httpx:HTTP Request: POST https://api.mistral.ai/v1/chat/completions \"HTTP/1.1 200 OK\"\n" - ] - }, - { - "name": "stdout", - "output_type": "stream", - "text": [ - "start parsing [\n", - "{\n", - "\"sentence\\_index\": 0,\n", - "\"simpler\\_statements\": [\n", - "\"Several growth factors are known to be involved in the induction of epithelial-mesenchymal transition (EMT).\",\n", - "\"Transforming growth factor-beta (TGF-β) is one of the growth factors that is involved in the induction of EMT.\"\n", - "]\n", - "},\n", - "{\n", - "\"sentence\\_index\": 1,\n", - "\"simpler\\_statements\": [\n", - "\"TGF-β is a potent inducer of EMT.\",\n", - "\"TGF-β plays a crucial role in the development of cancer metastasis.\"\n", - "]\n", - "},\n", - "{\n", - "\"sentence\\_index\": 2,\n", - "\"simpler\\_statements\": [\n", - "\"Epidermal growth factor (EGF) is another growth factor that is involved in the induction of EMT.\",\n", - "\"EGF stimulates EMT in various cell types, including cancer cells.\",\n", - "\"EGF promotes tumor invasion and metastasis.\"\n", - "]\n", - "},\n", - "{\n", - "\"sentence\\_index\": 3,\n", - "\"simpler\\_statements\": [\n", - "\"Platelet-derived growth factor (PDGF) is involved in the induction of EMT.\",\n", - "\"PDGF is known to induce EMT in various cell types, including cancer cells\",\n", - "\"PDGF promotes tumor progression and metastasis.\"\n", - "]\n", - "},\n", - "{\n", - "\"sentence\\_index\": 4,\n", - "\"simpler\\_statements\": [\n", - "\"Fibroblast growth factor (FGF) is involved in the induction of EMT.\",\n", - "\"FGF signaling has been shown to induce EMT in various cell types, including cancer cells\",\n", - "\"FGF promotes tumor invasion and metastasis.\"\n", - "]\n", - "},\n", - "{\n", - "\"sentence\\_index\": 5,\n", - "\"simpler\\_statements\": [\n", - "\"Hepatocyte growth factor (HGF) is involved in the induction of EMT.\",\n", - "\"HGF is a potent inducer of EMT\",\n", - "\"HGF plays a crucial role in the development of cancer metastasis.\"\n", - "]\n", - "},\n", - "{\n", - "\"sentence\\_index\": 6,\n", - "\"simpler\\_statements\": [\n", - "\"Vascular endothelial growth factor (VEGF) is involved in the induction of EMT.\",\n", - "\"VEGF is known to induce EMT in endothelial cells\",\n", - "\"VEGF promotes angiogenesis, which is a crucial step in tumor growth and metastasis.\"\n", - "]\n", - "}\n", - "] with prompt prompt_str='Given a question, an answer, and sentences from the answer analyze the complexity of each sentence given under \\'sentences\\' and break down each sentence into one or more fully understandable statements while also ensuring no pronouns are used in each statement. Format the outputs in JSON.\\n\\nThe output should be a well-formatted JSON instance that conforms to the JSON schema below.\\n\\nAs an example, for the schema {\"properties\": {\"foo\": {\"title\": \"Foo\", \"description\": \"a list of strings\", \"type\": \"array\", \"items\": {\"type\": \"string\"}}}, \"required\": [\"foo\"]}\\nthe object {\"foo\": [\"bar\", \"baz\"]} is a well-formatted instance of the schema. The object {\"properties\": {\"foo\": [\"bar\", \"baz\"]}} is not well-formatted.\\n\\nHere is the output JSON schema:\\n```\\n{\"type\": \"array\", \"items\": {\"$ref\": \"#/definitions/Statements\"}, \"definitions\": {\"Statements\": {\"title\": \"Statements\", \"type\": \"object\", \"properties\": {\"sentence_index\": {\"title\": \"Sentence Index\", \"description\": \"Index of the sentence from the statement list\", \"type\": \"integer\"}, \"simpler_statements\": {\"title\": \"Simpler Statements\", \"description\": \"the simpler statements\", \"type\": \"array\", \"items\": {\"type\": \"string\"}}}, \"required\": [\"sentence_index\", \"simpler_statements\"]}}}\\n```\\n\\nDo not return any preamble or explanations, return only a pure JSON string surrounded by triple backticks (```).\\n\\nExamples:\\n\\nquestion: \"Who was Albert Einstein and what is he best known for?\"\\nanswer: \"He was a German-born theoretical physicist, widely acknowledged to be one of the greatest and most influential physicists of all time. He was best known for developing the theory of relativity, he also made important contributions to the development of the theory of quantum mechanics.\"\\nsentences: \"\\\\n 0:He was a German-born theoretical physicist, widely acknowledged to be one of the greatest and most influential physicists of all time. \\\\n 1:He was best known for developing the theory of relativity, he also made important contributions to the development of the theory of quantum mechanics.\\\\n \"\\nanalysis: ```[{\"sentence_index\": 0, \"simpler_statements\": [\"Albert Einstein was a German-born theoretical physicist.\", \"Albert Einstein is recognized as one of the greatest and most influential physicists of all time.\"]}, {\"sentence_index\": 1, \"simpler_statements\": [\"Albert Einstein was best known for developing the theory of relativity.\", \"Albert Einstein also made important contributions to the development of the theory of quantum mechanics.\"]}]```\\n\\nYour actual task:\\n\\nquestion: Which growth factors are known to be involved in the induction of EMT?\\nanswer: Several growth factors have been shown to be involved in the induction of epithelial-mesenchymal transition (EMT), including:\\n\\n1. Transforming growth factor-beta (TGF-β): TGF-β is a potent inducer of EMT and plays a crucial role in the development of cancer metastasis.\\n2. Epidermal growth factor (EGF): EGF stimulates EMT in various cell types, including cancer cells, and promotes tumor invasion and metastasis.\\n3. Platelet-derived growth factor (PDGF): PDGF is known to induce EMT in various cell types, including cancer cells, and promotes tumor progression and metastasis.\\n4. Fibroblast growth factor (FGF): FGF signaling has been shown to induce EMT in various cell types, including cancer cells, and promote tumor invasion and metastasis.\\n5. Hepatocyte growth factor (HGF): HGF is a potent inducer of EMT and plays a crucial role in the development of cancer metastasis.\\n6. Vascular endothelial growth factor (VEGF): VEGF is known to induce EMT in endothelial cells and promote angiogenesis, which is a crucial step in tumor growth and metastasis.\\n7. Insulin-like growth factor-\\nsentences: 0:1. Transforming growth factor-beta (TGF-β): TGF-β is a potent inducer of EMT and plays a crucial role in the development of cancer metastasis.\\n\\n1:2. Epidermal growth factor (EGF): EGF stimulates EMT in various cell types, including cancer cells, and promotes tumor invasion and metastasis.\\n\\n2:3. Platelet-derived growth factor (PDGF): PDGF is known to induce EMT in various cell types, including cancer cells, and promotes tumor progression and metastasis.\\n\\n3:4. Fibroblast growth factor (FGF): FGF signaling has been shown to induce EMT in various cell types, including cancer cells, and promote tumor invasion and metastasis.\\n\\n4:5. Hepatocyte growth factor (HGF): HGF is a potent inducer of EMT and plays a crucial role in the development of cancer metastasis.\\n\\n5:6. Vascular endothelial growth factor (VEGF): VEGF is known to induce EMT in endothelial cells and promote angiogenesis, which is a crucial step in tumor growth and metastasis.\\n\\nanalysis: \\n'\n" - ] - }, - { - "name": "stderr", - "output_type": "stream", - "text": [ - "INFO:httpx:HTTP Request: POST https://api.mistral.ai/v1/chat/completions \"HTTP/1.1 200 OK\"\n" - ] - }, - { - "name": "stdout", - "output_type": "stream", - "text": [ - "start parsing ```json\n", - "[\n", - " {\n", - " \"sentence_index\": 0,\n", - " \"simpler_statements\": [\n", - " \"Several growth factors are known to be involved in the induction of epithelial-mesenchymal transition (EMT).\",\n", - " \"Transforming growth factor-beta is one of the growth factors that is involved in the induction of EMT.\"\n", - " ]\n", - " },\n", - " {\n", - " \"sentence_index\": 1,\n", - " \"simpler_statements\": [\n", - " \"TGF-β is a potent inducer of EMT.\",\n", - " \"TGF-β plays a crucial role in the development of cancer metastasis.\"\n", - " ]\n", - " },\n", - " {\n", - " \"sentence_index\": 2,\n", - " \"simpler_statements\": [\n", - " \"Epidermal growth factor is another growth factor that is involved in the induction of EMT.\",\n", - " \"EGF stimulates EMT in various cell types, including cancer cells.\",\n", - " \"EGF promotes tumor invasion and metastasis.\"\n", - " ]\n", - " },\n", - " {\n", - " \"sentence_index\": 3,\n", - " \"simpler_statements\": [\n", - " \"Platelet-derived growth factor is involved in the induction of EMT.\",\n", - " \"PDGF is known to induce EMT in various cell types, including cancer cells\",\n", - " \"PDGF promotes tumor progression and metastasis.\"\n", - " ]\n", - " },\n", - " {\n", - " \"sentence_index\": 4,\n", - " \"simpler_statements\": [\n", - " \"Fibroblast growth factor is involved in the induction of EMT.\",\n", - " \"FGF signaling has been shown to induce EMT in various cell types, including cancer cells\",\n", - " \"FGF promotes tumor invasion and metastasis.\"\n", - " ]\n", - " },\n", - " {\n", - " \"sentence_index\": 5,\n", - " \"simpler_statements\": [\n", - " \"Hepatocyte growth factor is involved in the induction of EMT.\",\n", - " \"HGF is a potent inducer of EMT\",\n", - " \"HGF plays a crucial role in the development of cancer metastasis.\"\n", - " ]\n", - " },\n", - " {\n", - " \"sentence_index\": 6,\n", - " \"simpler_statements\": [\n", - " \"Vascular endothelial growth factor is involved in the induction of EMT.\",\n", - " \"VEGF is known to induce EMT in endothelial cells\",\n", - " \"VEGF promotes angiogenesis, which is a crucial step in tumor growth and metastasis.\"\n", - " ]\n", - " }\n", - "]\n", - "``` with prompt prompt_str='Given a question, an answer, and sentences from the answer analyze the complexity of each sentence given under \\'sentences\\' and break down each sentence into one or more fully understandable statements while also ensuring no pronouns are used in each statement. Format the outputs in JSON.\\n\\nThe output should be a well-formatted JSON instance that conforms to the JSON schema below.\\n\\nAs an example, for the schema {\"properties\": {\"foo\": {\"title\": \"Foo\", \"description\": \"a list of strings\", \"type\": \"array\", \"items\": {\"type\": \"string\"}}}, \"required\": [\"foo\"]}\\nthe object {\"foo\": [\"bar\", \"baz\"]} is a well-formatted instance of the schema. The object {\"properties\": {\"foo\": [\"bar\", \"baz\"]}} is not well-formatted.\\n\\nHere is the output JSON schema:\\n```\\n{\"type\": \"array\", \"items\": {\"$ref\": \"#/definitions/Statements\"}, \"definitions\": {\"Statements\": {\"title\": \"Statements\", \"type\": \"object\", \"properties\": {\"sentence_index\": {\"title\": \"Sentence Index\", \"description\": \"Index of the sentence from the statement list\", \"type\": \"integer\"}, \"simpler_statements\": {\"title\": \"Simpler Statements\", \"description\": \"the simpler statements\", \"type\": \"array\", \"items\": {\"type\": \"string\"}}}, \"required\": [\"sentence_index\", \"simpler_statements\"]}}}\\n```\\n\\nDo not return any preamble or explanations, return only a pure JSON string surrounded by triple backticks (```).\\n\\nExamples:\\n\\nquestion: \"Who was Albert Einstein and what is he best known for?\"\\nanswer: \"He was a German-born theoretical physicist, widely acknowledged to be one of the greatest and most influential physicists of all time. He was best known for developing the theory of relativity, he also made important contributions to the development of the theory of quantum mechanics.\"\\nsentences: \"\\\\n 0:He was a German-born theoretical physicist, widely acknowledged to be one of the greatest and most influential physicists of all time. \\\\n 1:He was best known for developing the theory of relativity, he also made important contributions to the development of the theory of quantum mechanics.\\\\n \"\\nanalysis: ```[{\"sentence_index\": 0, \"simpler_statements\": [\"Albert Einstein was a German-born theoretical physicist.\", \"Albert Einstein is recognized as one of the greatest and most influential physicists of all time.\"]}, {\"sentence_index\": 1, \"simpler_statements\": [\"Albert Einstein was best known for developing the theory of relativity.\", \"Albert Einstein also made important contributions to the development of the theory of quantum mechanics.\"]}]```\\n\\nYour actual task:\\n\\nquestion: Which growth factors are known to be involved in the induction of EMT?\\nanswer: Several growth factors have been shown to be involved in the induction of epithelial-mesenchymal transition (EMT), including:\\n\\n1. Transforming growth factor-beta (TGF-β): TGF-β is a potent inducer of EMT and plays a crucial role in the development of cancer metastasis.\\n2. Epidermal growth factor (EGF): EGF stimulates EMT in various cell types, including cancer cells, and promotes tumor invasion and metastasis.\\n3. Platelet-derived growth factor (PDGF): PDGF is known to induce EMT in various cell types, including cancer cells, and promotes tumor progression and metastasis.\\n4. Fibroblast growth factor (FGF): FGF signaling has been shown to induce EMT in various cell types, including cancer cells, and promote tumor invasion and metastasis.\\n5. Hepatocyte growth factor (HGF): HGF is a potent inducer of EMT and plays a crucial role in the development of cancer metastasis.\\n6. Vascular endothelial growth factor (VEGF): VEGF is known to induce EMT in endothelial cells and promote angiogenesis, which is a crucial step in tumor growth and metastasis.\\n7. Insulin-like growth factor-\\nsentences: 0:1. Transforming growth factor-beta (TGF-β): TGF-β is a potent inducer of EMT and plays a crucial role in the development of cancer metastasis.\\n\\n1:2. Epidermal growth factor (EGF): EGF stimulates EMT in various cell types, including cancer cells, and promotes tumor invasion and metastasis.\\n\\n2:3. Platelet-derived growth factor (PDGF): PDGF is known to induce EMT in various cell types, including cancer cells, and promotes tumor progression and metastasis.\\n\\n3:4. Fibroblast growth factor (FGF): FGF signaling has been shown to induce EMT in various cell types, including cancer cells, and promote tumor invasion and metastasis.\\n\\n4:5. Hepatocyte growth factor (HGF): HGF is a potent inducer of EMT and plays a crucial role in the development of cancer metastasis.\\n\\n5:6. Vascular endothelial growth factor (VEGF): VEGF is known to induce EMT in endothelial cells and promote angiogenesis, which is a crucial step in tumor growth and metastasis.\\n\\nanalysis: \\n'\n" - ] - }, - { - "name": "stderr", - "output_type": "stream", - "text": [ - "INFO:httpx:HTTP Request: POST https://api.mistral.ai/v1/chat/completions \"HTTP/1.1 200 OK\"\n" - ] - }, - { - "name": "stdout", - "output_type": "stream", - "text": [ - "start parsing [\n", - "{\"statement\": \"Several growth factors are known to be involved in the induction of epithelial-mesenchymal transition (EMT).\", \"reason\": \"The context does not provide information about the growth factors involved in EMT.\", \"verdict\": 0},\n", - "{\"statement\": \"Transforming growth factor-beta is one of the growth factors that is involved in the induction of EMT.\", \"reason\": \"The context does not provide information about the growth factors involved in EMT.\", \"verdict\": 0},\n", - "{\"statement\": \"TGFeta is a potent inducer of EMT.\", \"reason\": \"The context does not provide information about the growth factors involved in EMT.\", \"verdict\": 0},\n", - "{\"statement\": \"TGFeta plays a crucial role in the development of cancer metastasis.\", \"reason\": \"The context does not provide information about the role of TGFeta in cancer metastasis.\", \"verdict\": 0},\n", - "{\"statement\": \"Epidermal growth factor is another growth factor that is involved in the induction of EMT.\", \"reason\": \"The context does not provide information about the growth factors involved in EMT.\", \"verdict\": 0},\n", - "{\"statement\": \"EGF stimulates EMT in various cell types, including cancer cells.\", \"reason\": \"The context does not provide information about the role of EGF in EMT.\", \"verdict\": 0},\n", - "{\"statement\": \"EGF promotes tumor invasion and metastasis.\", \"reason\": \"The context does not provide information about the role of EGF in tumor invasion and metastasis.\", \"verdict\": 0},\n", - "{\"statement\": \"Platelet-derived growth factor is involved in the induction of EMT.\", \"reason\": \"The context does not provide information about the growth factors involved in EMT.\", \"verdict\": 0},\n", - "{\"statement\": \"PDGF is known to induce EMT in various cell types, including cancer cells\", \"reason\": \"The context does not provide information about the role of PDGF in EMT.\", \"verdict\": 0},\n", - "{\"statement\": \"PDGF promotes tumor progression and metastasis.\", \"reason\": \"The context does not provide information about the role of PDGF in tumor progression and metastasis.\", \"verdict\": 0},\n", - "{\"statement\": \"Fibroblast growth factor is involved in the induction of EMT.\", \"reason\": \"The context does not provide information about the growth factors involved in EMT.\", \"verdict\": 0},\n", - "{\"statement\": \"FGF signaling has been shown to induce EMT in various cell types, including cancer cells\", \"reason\": \"The context does not provide information about the role of FGF in EMT.\", \"verdict\": 0},\n", - "{\"statement\": \"FGF promotes tumor invasion and metastasis.\", \"reason\": \"The context does not provide information about the role of FGF in tumor invasion and metastasis.\", \"verdict\": 0},\n", - "{\"statement\": \"Hepatocyte growth factor is involved in the induction of EMT.\", \"reason\": \"The context does not provide information about the growth factors involved in EMT.\", \"verdict\": 0},\n", - "{\"statement\": \"HGF is a potent inducer of EMT\", \"reason\": \"The context does not provide information about the role of HGF in EMT.\", \"verdict\": 0},\n", - "{\"statement\": \"HGF plays a crucial role in the development of cancer metastasis.\", \"reason\": \"The context does not provide information about the role of HGF in cancer metastasis.\", \"verdict\": 0},\n", - "{\"statement\": \"Vascular endothelial growth factor is involved in the induction of EMT.\", \"reason\": \"The context does not provide information about the growth factors involved in EMT.\", \"verdict\": 0},\n", - "{\"statement\": \"VEGF is known to induce EMT in endothelial cells\", \"reason\": \"The context does not provide information about the role of VEGF in EMT.\", \"verdict\": 0},\n", - "{\"statement\": \"VEGF promotes angiogenesis, which is a crucial step in tumor growth and metastasis.\", \"reason\": \"The context does not provide information about the role of VEGF in angiogenesis and tumor growth and metastasis.\", \"verdict\": 0}\n", - "]\n", - "\n", - "The context provided does not contain any information about the growth factors and their roles in EMT, cancer metastasis, tumor invasion, angiogenesis, etc. Therefore, the verdict for all the statements is 0. with prompt prompt_str='Your task is to judge the faithfulness of a series of statements based on a given context. For each statement you must return verdict as 1 if the statement can be directly inferred based on the context or 0 if the statement can not be directly inferred based on the context.\\n\\nThe output should be a well-formatted JSON instance that conforms to the JSON schema below.\\n\\nAs an example, for the schema {\"properties\": {\"foo\": {\"title\": \"Foo\", \"description\": \"a list of strings\", \"type\": \"array\", \"items\": {\"type\": \"string\"}}}, \"required\": [\"foo\"]}\\nthe object {\"foo\": [\"bar\", \"baz\"]} is a well-formatted instance of the schema. The object {\"properties\": {\"foo\": [\"bar\", \"baz\"]}} is not well-formatted.\\n\\nHere is the output JSON schema:\\n```\\n{\"type\": \"array\", \"items\": {\"$ref\": \"#/definitions/StatementFaithfulnessAnswer\"}, \"definitions\": {\"StatementFaithfulnessAnswer\": {\"title\": \"StatementFaithfulnessAnswer\", \"type\": \"object\", \"properties\": {\"statement\": {\"title\": \"Statement\", \"description\": \"the original statement, word-by-word\", \"type\": \"string\"}, \"reason\": {\"title\": \"Reason\", \"description\": \"the reason of the verdict\", \"type\": \"string\"}, \"verdict\": {\"title\": \"Verdict\", \"description\": \"the verdict(0/1) of the faithfulness.\", \"type\": \"integer\"}}, \"required\": [\"statement\", \"reason\", \"verdict\"]}}}\\n```\\n\\nDo not return any preamble or explanations, return only a pure JSON string surrounded by triple backticks (```).\\n\\nExamples:\\n\\ncontext: \"John is a student at XYZ University. He is pursuing a degree in Computer Science. He is enrolled in several courses this semester, including Data Structures, Algorithms, and Database Management. John is a diligent student and spends a significant amount of time studying and completing assignments. He often stays late in the library to work on his projects.\"\\nstatements: ```[\"John is majoring in Biology.\", \"John is taking a course on Artificial Intelligence.\", \"John is a dedicated student.\", \"John has a part-time job.\"]```\\nanswer: ```[{\"statement\": \"John is majoring in Biology.\", \"reason\": \"John\\'s major is explicitly mentioned as Computer Science. There is no information suggesting he is majoring in Biology.\", \"verdict\": 0}, {\"statement\": \"John is taking a course on Artificial Intelligence.\", \"reason\": \"The context mentions the courses John is currently enrolled in, and Artificial Intelligence is not mentioned. Therefore, it cannot be deduced that John is taking a course on AI.\", \"verdict\": 0}, {\"statement\": \"John is a dedicated student.\", \"reason\": \"The context states that he spends a significant amount of time studying and completing assignments. Additionally, it mentions that he often stays late in the library to work on his projects, which implies dedication.\", \"verdict\": 1}, {\"statement\": \"John has a part-time job.\", \"reason\": \"There is no information given in the context about John having a part-time job.\", \"verdict\": 0}]```\\n\\ncontext: \"Photosynthesis is a process used by plants, algae, and certain bacteria to convert light energy into chemical energy.\"\\nstatements: ```[\"Albert Einstein was a genius.\"]```\\nanswer: ```[{\"statement\": \"Albert Einstein was a genius.\", \"reason\": \"The context and statement are unrelated\", \"verdict\": 0}]```\\n\\nYour actual task:\\n\\ncontext: 11428324 / Familial craniosynostosis due to Pro250Arg mutation in the fibroblast growth \\nfactor receptor 3 gene. //\\n15683664 / Skin side effects following XRT take place more often in patients with skin \\ndisorders. In this study six patients with psoriatic lesions were evaluated. The \\ntotal/daily XRT dose to the tumor site was 50-70/1.8-2.0 Gy. No debilitating \\neffect of XRT was observed in both the psoriatic lesions and in the surrounding \\nnormal skin. //\\n16570042 / Mobile phone use and risk of acoustic neuroma: results of the interphone \\ncase-control study in five north European countries [corrected]. //\\n16457587 / The basis set of protein forms expressed by human cells from the H2B gene family \\nwas determined by Top Down Mass Spectrometry. Using Electron Capture \\nDissociation for MS/MS of H2B isoforms, direct evidence for the expression of \\nunmodified H2B.Q, H2B.A, H2B.K/T, H2B.J, H2B.E, H2B.B, H2B.F, and monoacetylated \\nH2B.A was obtained from asynchronous HeLa cells. H2B.A was the most abundant \\nform, with the overall expression profile not changing significantly in cells \\narrested in mitosis by colchicine or during mid-S, mid-G2, G2/M, and mid-G1 \\nphases of the cell cycle. Modest hyperacetylation of H2B family members was \\nobserved after sodium butyrate treatment. //\\n17103449 / P250R mutation in the FGFR3 gene also known as Muenke syndrome is associated \\nwith coronal craniosynostosis, sensorineural deafness, craniofacial, and digital \\nabnormalities. We report a family with this mutation associated with sudden \\ndeath in an affected newborn, most probably due to upper airway obstruction. //\\nstatements: [\"Several growth factors are known to be involved in the induction of epithelial-mesenchymal transition (EMT).\", \"Transforming growth factor-beta is one of the growth factors that is involved in the induction of EMT.\", \"TGF-\\\\u03b2 is a potent inducer of EMT.\", \"TGF-\\\\u03b2 plays a crucial role in the development of cancer metastasis.\", \"Epidermal growth factor is another growth factor that is involved in the induction of EMT.\", \"EGF stimulates EMT in various cell types, including cancer cells.\", \"EGF promotes tumor invasion and metastasis.\", \"Platelet-derived growth factor is involved in the induction of EMT.\", \"PDGF is known to induce EMT in various cell types, including cancer cells\", \"PDGF promotes tumor progression and metastasis.\", \"Fibroblast growth factor is involved in the induction of EMT.\", \"FGF signaling has been shown to induce EMT in various cell types, including cancer cells\", \"FGF promotes tumor invasion and metastasis.\", \"Hepatocyte growth factor is involved in the induction of EMT.\", \"HGF is a potent inducer of EMT\", \"HGF plays a crucial role in the development of cancer metastasis.\", \"Vascular endothelial growth factor is involved in the induction of EMT.\", \"VEGF is known to induce EMT in endothelial cells\", \"VEGF promotes angiogenesis, which is a crucial step in tumor growth and metastasis.\"]\\nanswer: \\n'\n" - ] - }, - { - "name": "stderr", - "output_type": "stream", - "text": [ - "INFO:httpx:HTTP Request: POST https://api.mistral.ai/v1/chat/completions \"HTTP/1.1 200 OK\"\n" - ] - }, - { - "name": "stdout", - "output_type": "stream", - "text": [ - "start parsing ```{\"entities\": [\"mismatch-specific uracil DNA glycosylase\", \"MUG\", \"DNA glycosylases\", \"G:U/T mismatches\", \"Mug repair complex\", \"G:U mispairs\", \"G:T mispairs\", \"U:G mismatches\", \"T:G mismatches\", \"XDG\", \"E.coli\", \"uracil\", \"xanthine\", \"3, N(4)-ethenocytosine\", \"epsilonC\", \"G mismatches\", \"mutagenic adduct\", \"exogenous chemical agents\", \"chloroacetaldehyde\"]}``` with prompt prompt_str='Given a text, extract unique entities without repetition. Ensure you consider different forms or mentions of the same entity as a single entity.\\n\\nThe output should be a well-formatted JSON instance that conforms to the JSON schema below.\\n\\nAs an example, for the schema {\"properties\": {\"foo\": {\"title\": \"Foo\", \"description\": \"a list of strings\", \"type\": \"array\", \"items\": {\"type\": \"string\"}}}, \"required\": [\"foo\"]}\\nthe object {\"foo\": [\"bar\", \"baz\"]} is a well-formatted instance of the schema. The object {\"properties\": {\"foo\": [\"bar\", \"baz\"]}} is not well-formatted.\\n\\nHere is the output JSON schema:\\n```\\n{\"type\": \"object\", \"properties\": {\"entities\": {\"title\": \"Entities\", \"type\": \"array\", \"items\": {\"type\": \"string\"}}}, \"required\": [\"entities\"]}\\n```\\n\\nDo not return any preamble or explanations, return only a pure JSON string surrounded by triple backticks (```).\\n\\nExamples:\\n\\ntext: \"The Eiffel Tower, located in Paris, France, is one of the most iconic landmarks globally.\\\\n Millions of visitors are attracted to it each year for its breathtaking views of the city.\\\\n Completed in 1889, it was constructed in time for the 1889 World\\'s Fair.\"\\noutput: ```{\"entities\": [\"Eiffel Tower\", \"Paris\", \"France\", \"1889\", \"World\\'s Fair\"]}```\\n\\ntext: \"The Colosseum in Rome, also known as the Flavian Amphitheatre, stands as a monument to Roman architectural and engineering achievement.\\\\n Construction began under Emperor Vespasian in AD 70 and was completed by his son Titus in AD 80.\\\\n It could hold between 50,000 and 80,000 spectators who watched gladiatorial contests and public spectacles.\"\\noutput: ```{\"entities\": [\"Colosseum\", \"Rome\", \"Flavian Amphitheatre\", \"Vespasian\", \"AD 70\", \"Titus\", \"AD 80\"]}```\\n\\ntext: \"The Great Wall of China, stretching over 21,196 kilometers from east to west, is a marvel of ancient defensive architecture.\\\\n Built to protect against invasions from the north, its construction started as early as the 7th century BC.\\\\n Today, it is a UNESCO World Heritage Site and a major tourist attraction.\"\\noutput: ```{\"entities\": [\"Great Wall of China\", \"21,196 kilometers\", \"7th century BC\", \"UNESCO World Heritage Site\"]}```\\n\\ntext: \"The Apollo 11 mission, which launched on July 16, 1969, marked the first time humans landed on the Moon.\\\\n Astronauts Neil Armstrong, Buzz Aldrin, and Michael Collins made history, with Armstrong being the first man to step on the lunar surface.\\\\n This event was a significant milestone in space exploration.\"\\noutput: ```{\"entities\": [\"Apollo 11 mission\", \"July 16, 1969\", \"Moon\", \"Neil Armstrong\", \"Buzz Aldrin\", \"Michael Collins\"]}```\\n\\nYour actual task:\\n\\ntext: The mismatch-specific uracil DNA glycosylase (MUG) belongs to a homologous family of DNA glycosylases that initiate base-excision repair of G:U/T mismatches. The crystal structure of the Mug repair complex points to a preference of Mug for G:U over G:T mispairs. Nonetheless, Mug does not repair U:G or T:G mismatches in vivo. Mug possesses xanthine DNA glycosylase (XDG) activity in E.coli. The repair activity of Mug is more robust against xanthine than uracil. Furthermore, Mug excises the alkylated base, 3, N(4)-ethenocytosine (epsilonC) from epsilonC:G mismatches, and may be the only enzyme in E.coli that can remove this mutagenic adduct. Thus, the principal role of Mug may be the repair of DNA damages caused by exogenous chemical agents such as chloroacetaldehyde.\\noutput: \\n'\n" - ] - }, - { - "name": "stderr", - "output_type": "stream", - "text": [ - "INFO:httpx:HTTP Request: POST https://api.mistral.ai/v1/chat/completions \"HTTP/1.1 200 OK\"\n" - ] - }, - { - "name": "stdout", - "output_type": "stream", - "text": [ - "start parsing ```json\n", - "{\"entities\": [\"Familial craniosynostosis\", \"Pro250Arg mutation\", \"fibroblast growth factor receptor 3 gene\", \"skin disorders\", \"psoriatic lesions\", \"XRT\", \"tumor site\", \"Gy\", \"colchicine\", \"cell cycle\", \"H2B gene family\", \"Top Down Mass Spectrometry\", \"Electron Capture Dissociation\", \"MS/MS\", \"H2B isoforms\", \"unmodified H2B.Q\", \"H2B.A\", \"H2B.K/T\", \"H2B.J\", \"H2B.E\", \"H2B.B\", \"H2B.F\", \"monoacetylated H2B.A\", \"sodium butyrate treatment\", \"Muenke syndrome\", \"coronal craniosynostosis\", \"sensorineural deafness\", \"craniofacial abnormalities\", \"digital abnormalities\", \"upper airway obstruction\"]}\n", - "``` with prompt prompt_str='Given a text, extract unique entities without repetition. Ensure you consider different forms or mentions of the same entity as a single entity.\\n\\nThe output should be a well-formatted JSON instance that conforms to the JSON schema below.\\n\\nAs an example, for the schema {\"properties\": {\"foo\": {\"title\": \"Foo\", \"description\": \"a list of strings\", \"type\": \"array\", \"items\": {\"type\": \"string\"}}}, \"required\": [\"foo\"]}\\nthe object {\"foo\": [\"bar\", \"baz\"]} is a well-formatted instance of the schema. The object {\"properties\": {\"foo\": [\"bar\", \"baz\"]}} is not well-formatted.\\n\\nHere is the output JSON schema:\\n```\\n{\"type\": \"object\", \"properties\": {\"entities\": {\"title\": \"Entities\", \"type\": \"array\", \"items\": {\"type\": \"string\"}}}, \"required\": [\"entities\"]}\\n```\\n\\nDo not return any preamble or explanations, return only a pure JSON string surrounded by triple backticks (```).\\n\\nExamples:\\n\\ntext: \"The Eiffel Tower, located in Paris, France, is one of the most iconic landmarks globally.\\\\n Millions of visitors are attracted to it each year for its breathtaking views of the city.\\\\n Completed in 1889, it was constructed in time for the 1889 World\\'s Fair.\"\\noutput: ```{\"entities\": [\"Eiffel Tower\", \"Paris\", \"France\", \"1889\", \"World\\'s Fair\"]}```\\n\\ntext: \"The Colosseum in Rome, also known as the Flavian Amphitheatre, stands as a monument to Roman architectural and engineering achievement.\\\\n Construction began under Emperor Vespasian in AD 70 and was completed by his son Titus in AD 80.\\\\n It could hold between 50,000 and 80,000 spectators who watched gladiatorial contests and public spectacles.\"\\noutput: ```{\"entities\": [\"Colosseum\", \"Rome\", \"Flavian Amphitheatre\", \"Vespasian\", \"AD 70\", \"Titus\", \"AD 80\"]}```\\n\\ntext: \"The Great Wall of China, stretching over 21,196 kilometers from east to west, is a marvel of ancient defensive architecture.\\\\n Built to protect against invasions from the north, its construction started as early as the 7th century BC.\\\\n Today, it is a UNESCO World Heritage Site and a major tourist attraction.\"\\noutput: ```{\"entities\": [\"Great Wall of China\", \"21,196 kilometers\", \"7th century BC\", \"UNESCO World Heritage Site\"]}```\\n\\ntext: \"The Apollo 11 mission, which launched on July 16, 1969, marked the first time humans landed on the Moon.\\\\n Astronauts Neil Armstrong, Buzz Aldrin, and Michael Collins made history, with Armstrong being the first man to step on the lunar surface.\\\\n This event was a significant milestone in space exploration.\"\\noutput: ```{\"entities\": [\"Apollo 11 mission\", \"July 16, 1969\", \"Moon\", \"Neil Armstrong\", \"Buzz Aldrin\", \"Michael Collins\"]}```\\n\\nYour actual task:\\n\\ntext: 11428324 / Familial craniosynostosis due to Pro250Arg mutation in the fibroblast growth \\nfactor receptor 3 gene. //\\n15683664 / Skin side effects following XRT take place more often in patients with skin \\ndisorders. In this study six patients with psoriatic lesions were evaluated. The \\ntotal/daily XRT dose to the tumor site was 50-70/1.8-2.0 Gy. No debilitating \\neffect of XRT was observed in both the psoriatic lesions and in the surrounding \\nnormal skin. //\\n16570042 / Mobile phone use and risk of acoustic neuroma: results of the interphone \\ncase-control study in five north European countries [corrected]. //\\n16457587 / The basis set of protein forms expressed by human cells from the H2B gene family \\nwas determined by Top Down Mass Spectrometry. Using Electron Capture \\nDissociation for MS/MS of H2B isoforms, direct evidence for the expression of \\nunmodified H2B.Q, H2B.A, H2B.K/T, H2B.J, H2B.E, H2B.B, H2B.F, and monoacetylated \\nH2B.A was obtained from asynchronous HeLa cells. H2B.A was the most abundant \\nform, with the overall expression profile not changing significantly in cells \\narrested in mitosis by colchicine or during mid-S, mid-G2, G2/M, and mid-G1 \\nphases of the cell cycle. Modest hyperacetylation of H2B family members was \\nobserved after sodium butyrate treatment. //\\n17103449 / P250R mutation in the FGFR3 gene also known as Muenke syndrome is associated \\nwith coronal craniosynostosis, sensorineural deafness, craniofacial, and digital \\nabnormalities. We report a family with this mutation associated with sudden \\ndeath in an affected newborn, most probably due to upper airway obstruction. //\\noutput: \\n'\n" - ] - }, - { - "name": "stderr", - "output_type": "stream", - "text": [ - "INFO:httpx:HTTP Request: POST https://api.mistral.ai/v1/chat/completions \"HTTP/1.1 200 OK\"\n" - ] - }, - { - "name": "stdout", - "output_type": "stream", - "text": [ - "start parsing ```{\"entities\": [\"c-myc\", \"Per2\"]}``` with prompt prompt_str='Given a text, extract unique entities without repetition. Ensure you consider different forms or mentions of the same entity as a single entity.\\n\\nThe output should be a well-formatted JSON instance that conforms to the JSON schema below.\\n\\nAs an example, for the schema {\"properties\": {\"foo\": {\"title\": \"Foo\", \"description\": \"a list of strings\", \"type\": \"array\", \"items\": {\"type\": \"string\"}}}, \"required\": [\"foo\"]}\\nthe object {\"foo\": [\"bar\", \"baz\"]} is a well-formatted instance of the schema. The object {\"properties\": {\"foo\": [\"bar\", \"baz\"]}} is not well-formatted.\\n\\nHere is the output JSON schema:\\n```\\n{\"type\": \"object\", \"properties\": {\"entities\": {\"title\": \"Entities\", \"type\": \"array\", \"items\": {\"type\": \"string\"}}}, \"required\": [\"entities\"]}\\n```\\n\\nDo not return any preamble or explanations, return only a pure JSON string surrounded by triple backticks (```).\\n\\nExamples:\\n\\ntext: \"The Eiffel Tower, located in Paris, France, is one of the most iconic landmarks globally.\\\\n Millions of visitors are attracted to it each year for its breathtaking views of the city.\\\\n Completed in 1889, it was constructed in time for the 1889 World\\'s Fair.\"\\noutput: ```{\"entities\": [\"Eiffel Tower\", \"Paris\", \"France\", \"1889\", \"World\\'s Fair\"]}```\\n\\ntext: \"The Colosseum in Rome, also known as the Flavian Amphitheatre, stands as a monument to Roman architectural and engineering achievement.\\\\n Construction began under Emperor Vespasian in AD 70 and was completed by his son Titus in AD 80.\\\\n It could hold between 50,000 and 80,000 spectators who watched gladiatorial contests and public spectacles.\"\\noutput: ```{\"entities\": [\"Colosseum\", \"Rome\", \"Flavian Amphitheatre\", \"Vespasian\", \"AD 70\", \"Titus\", \"AD 80\"]}```\\n\\ntext: \"The Great Wall of China, stretching over 21,196 kilometers from east to west, is a marvel of ancient defensive architecture.\\\\n Built to protect against invasions from the north, its construction started as early as the 7th century BC.\\\\n Today, it is a UNESCO World Heritage Site and a major tourist attraction.\"\\noutput: ```{\"entities\": [\"Great Wall of China\", \"21,196 kilometers\", \"7th century BC\", \"UNESCO World Heritage Site\"]}```\\n\\ntext: \"The Apollo 11 mission, which launched on July 16, 1969, marked the first time humans landed on the Moon.\\\\n Astronauts Neil Armstrong, Buzz Aldrin, and Michael Collins made history, with Armstrong being the first man to step on the lunar surface.\\\\n This event was a significant milestone in space exploration.\"\\noutput: ```{\"entities\": [\"Apollo 11 mission\", \"July 16, 1969\", \"Moon\", \"Neil Armstrong\", \"Buzz Aldrin\", \"Michael Collins\"]}```\\n\\nYour actual task:\\n\\ntext: Yes, the expression of c-myc is regulated by the circadian clock protein Per2.\\noutput: \\n'\n" - ] - }, - { - "name": "stderr", - "output_type": "stream", - "text": [ - "INFO:httpx:HTTP Request: POST https://api.mistral.ai/v1/chat/completions \"HTTP/1.1 200 OK\"\n" - ] - }, - { - "name": "stdout", - "output_type": "stream", - "text": [ - "start parsing ```json\n", - "{\"entities\": [\"Familial craniosynostosis\", \"Pro250Arg mutation\", \"fibroblast growth factor receptor 3 gene\", \"skin disorders\", \"psoriatic lesions\", \"XRT\", \"tumor site\", \"Gy\", \"colchicine\", \"cell cycle\", \"H2B gene family\", \"Top Down Mass Spectrometry\", \"Electron Capture Dissociation\", \"MS/MS\", \"H2B isoforms\", \"unmodified H2B.Q\", \"H2B.A\", \"H2B.K/T\", \"H2B.J\", \"H2B.E\", \"H2B.B\", \"H2B.F\", \"monoacetylated H2B.A\", \"sodium butyrate treatment\", \"Muenke syndrome\", \"coronal craniosynostosis\", \"sensorineural deafness\", \"craniofacial abnormalities\", \"digital abnormalities\", \"upper airway obstruction\"]}\n", - "``` with prompt prompt_str='Given a text, extract unique entities without repetition. Ensure you consider different forms or mentions of the same entity as a single entity.\\n\\nThe output should be a well-formatted JSON instance that conforms to the JSON schema below.\\n\\nAs an example, for the schema {\"properties\": {\"foo\": {\"title\": \"Foo\", \"description\": \"a list of strings\", \"type\": \"array\", \"items\": {\"type\": \"string\"}}}, \"required\": [\"foo\"]}\\nthe object {\"foo\": [\"bar\", \"baz\"]} is a well-formatted instance of the schema. The object {\"properties\": {\"foo\": [\"bar\", \"baz\"]}} is not well-formatted.\\n\\nHere is the output JSON schema:\\n```\\n{\"type\": \"object\", \"properties\": {\"entities\": {\"title\": \"Entities\", \"type\": \"array\", \"items\": {\"type\": \"string\"}}}, \"required\": [\"entities\"]}\\n```\\n\\nDo not return any preamble or explanations, return only a pure JSON string surrounded by triple backticks (```).\\n\\nExamples:\\n\\ntext: \"The Eiffel Tower, located in Paris, France, is one of the most iconic landmarks globally.\\\\n Millions of visitors are attracted to it each year for its breathtaking views of the city.\\\\n Completed in 1889, it was constructed in time for the 1889 World\\'s Fair.\"\\noutput: ```{\"entities\": [\"Eiffel Tower\", \"Paris\", \"France\", \"1889\", \"World\\'s Fair\"]}```\\n\\ntext: \"The Colosseum in Rome, also known as the Flavian Amphitheatre, stands as a monument to Roman architectural and engineering achievement.\\\\n Construction began under Emperor Vespasian in AD 70 and was completed by his son Titus in AD 80.\\\\n It could hold between 50,000 and 80,000 spectators who watched gladiatorial contests and public spectacles.\"\\noutput: ```{\"entities\": [\"Colosseum\", \"Rome\", \"Flavian Amphitheatre\", \"Vespasian\", \"AD 70\", \"Titus\", \"AD 80\"]}```\\n\\ntext: \"The Great Wall of China, stretching over 21,196 kilometers from east to west, is a marvel of ancient defensive architecture.\\\\n Built to protect against invasions from the north, its construction started as early as the 7th century BC.\\\\n Today, it is a UNESCO World Heritage Site and a major tourist attraction.\"\\noutput: ```{\"entities\": [\"Great Wall of China\", \"21,196 kilometers\", \"7th century BC\", \"UNESCO World Heritage Site\"]}```\\n\\ntext: \"The Apollo 11 mission, which launched on July 16, 1969, marked the first time humans landed on the Moon.\\\\n Astronauts Neil Armstrong, Buzz Aldrin, and Michael Collins made history, with Armstrong being the first man to step on the lunar surface.\\\\n This event was a significant milestone in space exploration.\"\\noutput: ```{\"entities\": [\"Apollo 11 mission\", \"July 16, 1969\", \"Moon\", \"Neil Armstrong\", \"Buzz Aldrin\", \"Michael Collins\"]}```\\n\\nYour actual task:\\n\\ntext: 11428324 / Familial craniosynostosis due to Pro250Arg mutation in the fibroblast growth \\nfactor receptor 3 gene. //\\n15683664 / Skin side effects following XRT take place more often in patients with skin \\ndisorders. In this study six patients with psoriatic lesions were evaluated. The \\ntotal/daily XRT dose to the tumor site was 50-70/1.8-2.0 Gy. No debilitating \\neffect of XRT was observed in both the psoriatic lesions and in the surrounding \\nnormal skin. //\\n16570042 / Mobile phone use and risk of acoustic neuroma: results of the interphone \\ncase-control study in five north European countries [corrected]. //\\n16457587 / The basis set of protein forms expressed by human cells from the H2B gene family \\nwas determined by Top Down Mass Spectrometry. Using Electron Capture \\nDissociation for MS/MS of H2B isoforms, direct evidence for the expression of \\nunmodified H2B.Q, H2B.A, H2B.K/T, H2B.J, H2B.E, H2B.B, H2B.F, and monoacetylated \\nH2B.A was obtained from asynchronous HeLa cells. H2B.A was the most abundant \\nform, with the overall expression profile not changing significantly in cells \\narrested in mitosis by colchicine or during mid-S, mid-G2, G2/M, and mid-G1 \\nphases of the cell cycle. Modest hyperacetylation of H2B family members was \\nobserved after sodium butyrate treatment. //\\n17103449 / P250R mutation in the FGFR3 gene also known as Muenke syndrome is associated \\nwith coronal craniosynostosis, sensorineural deafness, craniofacial, and digital \\nabnormalities. We report a family with this mutation associated with sudden \\ndeath in an affected newborn, most probably due to upper airway obstruction. //\\noutput: \\n'\n" - ] - }, - { - "name": "stderr", - "output_type": "stream", - "text": [ - "INFO:httpx:HTTP Request: POST https://api.mistral.ai/v1/chat/completions \"HTTP/1.1 200 OK\"\n" - ] - }, - { - "name": "stdout", - "output_type": "stream", - "text": [ - "start parsing `{\"entities\": [\"Sorafenib\", \"AMPK\"]}` with prompt prompt_str='Given a text, extract unique entities without repetition. Ensure you consider different forms or mentions of the same entity as a single entity.\\n\\nThe output should be a well-formatted JSON instance that conforms to the JSON schema below.\\n\\nAs an example, for the schema {\"properties\": {\"foo\": {\"title\": \"Foo\", \"description\": \"a list of strings\", \"type\": \"array\", \"items\": {\"type\": \"string\"}}}, \"required\": [\"foo\"]}\\nthe object {\"foo\": [\"bar\", \"baz\"]} is a well-formatted instance of the schema. The object {\"properties\": {\"foo\": [\"bar\", \"baz\"]}} is not well-formatted.\\n\\nHere is the output JSON schema:\\n```\\n{\"type\": \"object\", \"properties\": {\"entities\": {\"title\": \"Entities\", \"type\": \"array\", \"items\": {\"type\": \"string\"}}}, \"required\": [\"entities\"]}\\n```\\n\\nDo not return any preamble or explanations, return only a pure JSON string surrounded by triple backticks (```).\\n\\nExamples:\\n\\ntext: \"The Eiffel Tower, located in Paris, France, is one of the most iconic landmarks globally.\\\\n Millions of visitors are attracted to it each year for its breathtaking views of the city.\\\\n Completed in 1889, it was constructed in time for the 1889 World\\'s Fair.\"\\noutput: ```{\"entities\": [\"Eiffel Tower\", \"Paris\", \"France\", \"1889\", \"World\\'s Fair\"]}```\\n\\ntext: \"The Colosseum in Rome, also known as the Flavian Amphitheatre, stands as a monument to Roman architectural and engineering achievement.\\\\n Construction began under Emperor Vespasian in AD 70 and was completed by his son Titus in AD 80.\\\\n It could hold between 50,000 and 80,000 spectators who watched gladiatorial contests and public spectacles.\"\\noutput: ```{\"entities\": [\"Colosseum\", \"Rome\", \"Flavian Amphitheatre\", \"Vespasian\", \"AD 70\", \"Titus\", \"AD 80\"]}```\\n\\ntext: \"The Great Wall of China, stretching over 21,196 kilometers from east to west, is a marvel of ancient defensive architecture.\\\\n Built to protect against invasions from the north, its construction started as early as the 7th century BC.\\\\n Today, it is a UNESCO World Heritage Site and a major tourist attraction.\"\\noutput: ```{\"entities\": [\"Great Wall of China\", \"21,196 kilometers\", \"7th century BC\", \"UNESCO World Heritage Site\"]}```\\n\\ntext: \"The Apollo 11 mission, which launched on July 16, 1969, marked the first time humans landed on the Moon.\\\\n Astronauts Neil Armstrong, Buzz Aldrin, and Michael Collins made history, with Armstrong being the first man to step on the lunar surface.\\\\n This event was a significant milestone in space exploration.\"\\noutput: ```{\"entities\": [\"Apollo 11 mission\", \"July 16, 1969\", \"Moon\", \"Neil Armstrong\", \"Buzz Aldrin\", \"Michael Collins\"]}```\\n\\nYour actual task:\\n\\ntext: Sorafenib induces persisten AMPK activation\\noutput: \\n'\n" - ] - }, - { - "name": "stderr", - "output_type": "stream", - "text": [ - "INFO:httpx:HTTP Request: POST https://api.mistral.ai/v1/chat/completions \"HTTP/1.1 200 OK\"\n" - ] - }, - { - "name": "stdout", - "output_type": "stream", - "text": [ - "start parsing ```json\n", - "{\"entities\": [\"Familial craniosynostosis\", \"Pro250Arg mutation\", \"fibroblast growth factor receptor 3 gene\", \"skin disorders\", \"psoriatic lesions\", \"XRT\", \"tumor site\", \"Gy\", \"colchicine\", \"cell cycle\", \"H2B gene family\", \"Top Down Mass Spectrometry\", \"Electron Capture Dissociation\", \"MS/MS\", \"H2B isoforms\", \"unmodified H2B.Q\", \"H2B.A\", \"H2B.K/T\", \"H2B.J\", \"H2B.E\", \"H2B.B\", \"H2B.F\", \"monoacetylated H2B.A\", \"sodium butyrate treatment\", \"Muenke syndrome\", \"coronal craniosynostosis\", \"sensorineural deafness\", \"craniofacial abnormalities\", \"digital abnormalities\", \"upper airway obstruction\"]}\n", - "``` with prompt prompt_str='Given a text, extract unique entities without repetition. Ensure you consider different forms or mentions of the same entity as a single entity.\\n\\nThe output should be a well-formatted JSON instance that conforms to the JSON schema below.\\n\\nAs an example, for the schema {\"properties\": {\"foo\": {\"title\": \"Foo\", \"description\": \"a list of strings\", \"type\": \"array\", \"items\": {\"type\": \"string\"}}}, \"required\": [\"foo\"]}\\nthe object {\"foo\": [\"bar\", \"baz\"]} is a well-formatted instance of the schema. The object {\"properties\": {\"foo\": [\"bar\", \"baz\"]}} is not well-formatted.\\n\\nHere is the output JSON schema:\\n```\\n{\"type\": \"object\", \"properties\": {\"entities\": {\"title\": \"Entities\", \"type\": \"array\", \"items\": {\"type\": \"string\"}}}, \"required\": [\"entities\"]}\\n```\\n\\nDo not return any preamble or explanations, return only a pure JSON string surrounded by triple backticks (```).\\n\\nExamples:\\n\\ntext: \"The Eiffel Tower, located in Paris, France, is one of the most iconic landmarks globally.\\\\n Millions of visitors are attracted to it each year for its breathtaking views of the city.\\\\n Completed in 1889, it was constructed in time for the 1889 World\\'s Fair.\"\\noutput: ```{\"entities\": [\"Eiffel Tower\", \"Paris\", \"France\", \"1889\", \"World\\'s Fair\"]}```\\n\\ntext: \"The Colosseum in Rome, also known as the Flavian Amphitheatre, stands as a monument to Roman architectural and engineering achievement.\\\\n Construction began under Emperor Vespasian in AD 70 and was completed by his son Titus in AD 80.\\\\n It could hold between 50,000 and 80,000 spectators who watched gladiatorial contests and public spectacles.\"\\noutput: ```{\"entities\": [\"Colosseum\", \"Rome\", \"Flavian Amphitheatre\", \"Vespasian\", \"AD 70\", \"Titus\", \"AD 80\"]}```\\n\\ntext: \"The Great Wall of China, stretching over 21,196 kilometers from east to west, is a marvel of ancient defensive architecture.\\\\n Built to protect against invasions from the north, its construction started as early as the 7th century BC.\\\\n Today, it is a UNESCO World Heritage Site and a major tourist attraction.\"\\noutput: ```{\"entities\": [\"Great Wall of China\", \"21,196 kilometers\", \"7th century BC\", \"UNESCO World Heritage Site\"]}```\\n\\ntext: \"The Apollo 11 mission, which launched on July 16, 1969, marked the first time humans landed on the Moon.\\\\n Astronauts Neil Armstrong, Buzz Aldrin, and Michael Collins made history, with Armstrong being the first man to step on the lunar surface.\\\\n This event was a significant milestone in space exploration.\"\\noutput: ```{\"entities\": [\"Apollo 11 mission\", \"July 16, 1969\", \"Moon\", \"Neil Armstrong\", \"Buzz Aldrin\", \"Michael Collins\"]}```\\n\\nYour actual task:\\n\\ntext: 11428324 / Familial craniosynostosis due to Pro250Arg mutation in the fibroblast growth \\nfactor receptor 3 gene. //\\n15683664 / Skin side effects following XRT take place more often in patients with skin \\ndisorders. In this study six patients with psoriatic lesions were evaluated. The \\ntotal/daily XRT dose to the tumor site was 50-70/1.8-2.0 Gy. No debilitating \\neffect of XRT was observed in both the psoriatic lesions and in the surrounding \\nnormal skin. //\\n16570042 / Mobile phone use and risk of acoustic neuroma: results of the interphone \\ncase-control study in five north European countries [corrected]. //\\n16457587 / The basis set of protein forms expressed by human cells from the H2B gene family \\nwas determined by Top Down Mass Spectrometry. Using Electron Capture \\nDissociation for MS/MS of H2B isoforms, direct evidence for the expression of \\nunmodified H2B.Q, H2B.A, H2B.K/T, H2B.J, H2B.E, H2B.B, H2B.F, and monoacetylated \\nH2B.A was obtained from asynchronous HeLa cells. H2B.A was the most abundant \\nform, with the overall expression profile not changing significantly in cells \\narrested in mitosis by colchicine or during mid-S, mid-G2, G2/M, and mid-G1 \\nphases of the cell cycle. Modest hyperacetylation of H2B family members was \\nobserved after sodium butyrate treatment. //\\n17103449 / P250R mutation in the FGFR3 gene also known as Muenke syndrome is associated \\nwith coronal craniosynostosis, sensorineural deafness, craniofacial, and digital \\nabnormalities. We report a family with this mutation associated with sudden \\ndeath in an affected newborn, most probably due to upper airway obstruction. //\\noutput: \\n'\n" - ] - }, - { - "name": "stderr", - "output_type": "stream", - "text": [ - "INFO:httpx:HTTP Request: POST https://api.mistral.ai/v1/chat/completions \"HTTP/1.1 200 OK\"\n" - ] - }, - { - "name": "stdout", - "output_type": "stream", - "text": [ - "start parsing ```[\n", - " {\n", - " \"sentence_index\": 0,\n", - " \"simpler_statements\": [\n", - " \"Ribociclib is an inhibitor of an enzyme.\",\n", - " \"The enzyme that ribociclib inhibits is CDK4 and CDK6.\",\n", - " \"CDK4 and CDK6 are cyclin-dependent kinases.\",\n", - " \"Cyclin-dependent kinases play a role in the regulation of the cell cycle.\"\n", - " ]\n", - " },\n", - " {\n", - " \"sentence_index\": 1,\n", - " \"simpler_statements\": [\n", - " \"Ribociclib is used in the treatment of certain types of breast cancer.\"\n", - " ]\n", - " }\n", - "]\n", - "``` with prompt prompt_str='Given a question, an answer, and sentences from the answer analyze the complexity of each sentence given under \\'sentences\\' and break down each sentence into one or more fully understandable statements while also ensuring no pronouns are used in each statement. Format the outputs in JSON.\\n\\nThe output should be a well-formatted JSON instance that conforms to the JSON schema below.\\n\\nAs an example, for the schema {\"properties\": {\"foo\": {\"title\": \"Foo\", \"description\": \"a list of strings\", \"type\": \"array\", \"items\": {\"type\": \"string\"}}}, \"required\": [\"foo\"]}\\nthe object {\"foo\": [\"bar\", \"baz\"]} is a well-formatted instance of the schema. The object {\"properties\": {\"foo\": [\"bar\", \"baz\"]}} is not well-formatted.\\n\\nHere is the output JSON schema:\\n```\\n{\"type\": \"array\", \"items\": {\"$ref\": \"#/definitions/Statements\"}, \"definitions\": {\"Statements\": {\"title\": \"Statements\", \"type\": \"object\", \"properties\": {\"sentence_index\": {\"title\": \"Sentence Index\", \"description\": \"Index of the sentence from the statement list\", \"type\": \"integer\"}, \"simpler_statements\": {\"title\": \"Simpler Statements\", \"description\": \"the simpler statements\", \"type\": \"array\", \"items\": {\"type\": \"string\"}}}, \"required\": [\"sentence_index\", \"simpler_statements\"]}}}\\n```\\n\\nDo not return any preamble or explanations, return only a pure JSON string surrounded by triple backticks (```).\\n\\nExamples:\\n\\nquestion: \"Who was Albert Einstein and what is he best known for?\"\\nanswer: \"He was a German-born theoretical physicist, widely acknowledged to be one of the greatest and most influential physicists of all time. He was best known for developing the theory of relativity, he also made important contributions to the development of the theory of quantum mechanics.\"\\nsentences: \"\\\\n 0:He was a German-born theoretical physicist, widely acknowledged to be one of the greatest and most influential physicists of all time. \\\\n 1:He was best known for developing the theory of relativity, he also made important contributions to the development of the theory of quantum mechanics.\\\\n \"\\nanalysis: ```[{\"sentence_index\": 0, \"simpler_statements\": [\"Albert Einstein was a German-born theoretical physicist.\", \"Albert Einstein is recognized as one of the greatest and most influential physicists of all time.\"]}, {\"sentence_index\": 1, \"simpler_statements\": [\"Albert Einstein was best known for developing the theory of relativity.\", \"Albert Einstein also made important contributions to the development of the theory of quantum mechanics.\"]}]```\\n\\nYour actual task:\\n\\nquestion: Which enzyme is inhibited by ribociclib?\\nanswer: Ribociclib is a selective inhibitor of the enzyme CDK4 and CDK6, which are cyclin-dependent kinases that play a role in the regulation of the cell cycle. It is used in the treatment of certain types of breast cancer.\\nsentences: 0:Ribociclib is a selective inhibitor of the enzyme CDK4 and CDK6, which are cyclin-dependent kinases that play a role in the regulation of the cell cycle. \\n1:It is used in the treatment of certain types of breast cancer.\\nanalysis: \\n'\n" - ] - }, - { - "name": "stderr", - "output_type": "stream", - "text": [ - "INFO:httpx:HTTP Request: POST https://api.mistral.ai/v1/chat/completions \"HTTP/1.1 200 OK\"\n" - ] - }, - { - "name": "stdout", - "output_type": "stream", - "text": [ - "start parsing [\n", - "{\"statement\": \"Ribociclib is an inhibitor of an enzyme.\", \"reason\": \"This statement is not directly related to the context.\", \"verdict\": 0},\n", - "{\"statement\": \"The enzyme that ribociclib inhibits is CDK4 and CDK6.\", \"reason\": \"This statement is not directly related to the context.\", \"verdict\": 0},\n", - "{\"statement\": \"CDK4 and CDK6 are cyclin-dependent kinases.\", \"reason\": \"This statement is not directly related to the context.\", \"verdict\": 0},\n", - "{\"statement\": \"Cyclin-dependent kinases play a role in the regulation of the cell cycle.\", \"reason\": \"This statement is not directly related to the context.\", \"verdict\": 0},\n", - "{\"statement\": \"Ribociclib is used in the treatment of certain types of breast cancer.\", \"reason\": \"This statement is not directly related to the context.\", \"verdict\": 0}\n", - "]\n", - "\n", - "The context provided is about various medical studies and research, while the statements are about the drug Ribociclib and its effects. There is no direct relation between the context and the statements, so the verdict for all statements is 0. with prompt prompt_str='Your task is to judge the faithfulness of a series of statements based on a given context. For each statement you must return verdict as 1 if the statement can be directly inferred based on the context or 0 if the statement can not be directly inferred based on the context.\\n\\nThe output should be a well-formatted JSON instance that conforms to the JSON schema below.\\n\\nAs an example, for the schema {\"properties\": {\"foo\": {\"title\": \"Foo\", \"description\": \"a list of strings\", \"type\": \"array\", \"items\": {\"type\": \"string\"}}}, \"required\": [\"foo\"]}\\nthe object {\"foo\": [\"bar\", \"baz\"]} is a well-formatted instance of the schema. The object {\"properties\": {\"foo\": [\"bar\", \"baz\"]}} is not well-formatted.\\n\\nHere is the output JSON schema:\\n```\\n{\"type\": \"array\", \"items\": {\"$ref\": \"#/definitions/StatementFaithfulnessAnswer\"}, \"definitions\": {\"StatementFaithfulnessAnswer\": {\"title\": \"StatementFaithfulnessAnswer\", \"type\": \"object\", \"properties\": {\"statement\": {\"title\": \"Statement\", \"description\": \"the original statement, word-by-word\", \"type\": \"string\"}, \"reason\": {\"title\": \"Reason\", \"description\": \"the reason of the verdict\", \"type\": \"string\"}, \"verdict\": {\"title\": \"Verdict\", \"description\": \"the verdict(0/1) of the faithfulness.\", \"type\": \"integer\"}}, \"required\": [\"statement\", \"reason\", \"verdict\"]}}}\\n```\\n\\nDo not return any preamble or explanations, return only a pure JSON string surrounded by triple backticks (```).\\n\\nExamples:\\n\\ncontext: \"John is a student at XYZ University. He is pursuing a degree in Computer Science. He is enrolled in several courses this semester, including Data Structures, Algorithms, and Database Management. John is a diligent student and spends a significant amount of time studying and completing assignments. He often stays late in the library to work on his projects.\"\\nstatements: ```[\"John is majoring in Biology.\", \"John is taking a course on Artificial Intelligence.\", \"John is a dedicated student.\", \"John has a part-time job.\"]```\\nanswer: ```[{\"statement\": \"John is majoring in Biology.\", \"reason\": \"John\\'s major is explicitly mentioned as Computer Science. There is no information suggesting he is majoring in Biology.\", \"verdict\": 0}, {\"statement\": \"John is taking a course on Artificial Intelligence.\", \"reason\": \"The context mentions the courses John is currently enrolled in, and Artificial Intelligence is not mentioned. Therefore, it cannot be deduced that John is taking a course on AI.\", \"verdict\": 0}, {\"statement\": \"John is a dedicated student.\", \"reason\": \"The context states that he spends a significant amount of time studying and completing assignments. Additionally, it mentions that he often stays late in the library to work on his projects, which implies dedication.\", \"verdict\": 1}, {\"statement\": \"John has a part-time job.\", \"reason\": \"There is no information given in the context about John having a part-time job.\", \"verdict\": 0}]```\\n\\ncontext: \"Photosynthesis is a process used by plants, algae, and certain bacteria to convert light energy into chemical energy.\"\\nstatements: ```[\"Albert Einstein was a genius.\"]```\\nanswer: ```[{\"statement\": \"Albert Einstein was a genius.\", \"reason\": \"The context and statement are unrelated\", \"verdict\": 0}]```\\n\\nYour actual task:\\n\\ncontext: 11428324 / Familial craniosynostosis due to Pro250Arg mutation in the fibroblast growth \\nfactor receptor 3 gene. //\\n15683664 / Skin side effects following XRT take place more often in patients with skin \\ndisorders. In this study six patients with psoriatic lesions were evaluated. The \\ntotal/daily XRT dose to the tumor site was 50-70/1.8-2.0 Gy. No debilitating \\neffect of XRT was observed in both the psoriatic lesions and in the surrounding \\nnormal skin. //\\n16570042 / Mobile phone use and risk of acoustic neuroma: results of the interphone \\ncase-control study in five north European countries [corrected]. //\\n16457587 / The basis set of protein forms expressed by human cells from the H2B gene family \\nwas determined by Top Down Mass Spectrometry. Using Electron Capture \\nDissociation for MS/MS of H2B isoforms, direct evidence for the expression of \\nunmodified H2B.Q, H2B.A, H2B.K/T, H2B.J, H2B.E, H2B.B, H2B.F, and monoacetylated \\nH2B.A was obtained from asynchronous HeLa cells. H2B.A was the most abundant \\nform, with the overall expression profile not changing significantly in cells \\narrested in mitosis by colchicine or during mid-S, mid-G2, G2/M, and mid-G1 \\nphases of the cell cycle. Modest hyperacetylation of H2B family members was \\nobserved after sodium butyrate treatment. //\\n17103449 / P250R mutation in the FGFR3 gene also known as Muenke syndrome is associated \\nwith coronal craniosynostosis, sensorineural deafness, craniofacial, and digital \\nabnormalities. We report a family with this mutation associated with sudden \\ndeath in an affected newborn, most probably due to upper airway obstruction. //\\nstatements: [\"Ribociclib is an inhibitor of an enzyme.\", \"The enzyme that ribociclib inhibits is CDK4 and CDK6.\", \"CDK4 and CDK6 are cyclin-dependent kinases.\", \"Cyclin-dependent kinases play a role in the regulation of the cell cycle.\", \"Ribociclib is used in the treatment of certain types of breast cancer.\"]\\nanswer: \\n'\n" - ] - }, - { - "name": "stderr", - "output_type": "stream", - "text": [ - "INFO:httpx:HTTP Request: POST https://api.mistral.ai/v1/chat/completions \"HTTP/1.1 200 OK\"\n" - ] - }, - { - "name": "stdout", - "output_type": "stream", - "text": [ - "start parsing {\n", - " \"type\": \"array\",\n", - " \"items\": {\n", - " \"$ref\": \"#/definitions/Statements\",\n", - " \"definitions\": {\n", - " \"Statements\": {\n", - " \"title\": \"Statements\",\n", - " \"type\": \"object\",\n", - " \"properties\": {\n", - " \"sentence\\_index\": {\n", - " \"title\": \"Sentence Index\",\n", - " \"description\": \"Index of the sentence from the statement list\",\n", - " \"type\": \"integer\"\n", - " },\n", - " \"simpler\\_statements\": {\n", - " \"title\": \"Simpler Statements\",\n", - " \"description\": \"the simpler statements\",\n", - " \"type\": \"array\",\n", - " \"items\": {\n", - " \"type\": \"string\"\n", - " }\n", - " }\n", - " },\n", - " \"required\": [\n", - " \"sentence\\_index\",\n", - " \"simpler\\_statements\"\n", - " ]\n", - " }\n", - " }\n", - " },\n", - " \"analyzed\\_data\": [\n", - " {\n", - " \"sentence\\_index\": 0,\n", - " \"simpler\\_statements\": [\n", - " \"Bezlotoxumab is a monoclonal antibody.\"\n", - " ]\n", - " },\n", - " {\n", - " \"sentence\\_index\": 1,\n", - " \"simpler\\_statements\": [\n", - " \"Bezlotoxumab targets the cytokine tumor necrosis factor-alpha (TNF-alpha).\"\n", - " ]\n", - " },\n", - " {\n", - " \"sentence\\_index\": 2,\n", - " \"simpler\\_statements\": [\n", - " \"The mechanism of action of bezlotoxumab is to bind to TNF-alpha.\",\n", - " \"TNF-alpha is a protein that plays a key role in the inflammatory response.\",\n", - " \"Bezlotoxumab blocks the interaction of TNF-alpha with its receptors on the surface of immune cells.\"\n", - " ]\n", - " },\n", - " {\n", - " \"sentence\\_index\": 3,\n", - " \"simpler\\_statements\": [\n", - " \"This prevents the activation of inflammatory pathways and reduces inflammation in the gastrointestinal tract.\",\n", - " \"Reducing inflammation in the gastrointestinal tract alleviates symptoms of Crohn's disease and ulcerative colitis.\"\n", - " ]\n", - " }\n", - " ]\n", - "}\n", - "\n", - "```\n", - "\n", - "``` with prompt prompt_str='Given a question, an answer, and sentences from the answer analyze the complexity of each sentence given under \\'sentences\\' and break down each sentence into one or more fully understandable statements while also ensuring no pronouns are used in each statement. Format the outputs in JSON.\\n\\nThe output should be a well-formatted JSON instance that conforms to the JSON schema below.\\n\\nAs an example, for the schema {\"properties\": {\"foo\": {\"title\": \"Foo\", \"description\": \"a list of strings\", \"type\": \"array\", \"items\": {\"type\": \"string\"}}}, \"required\": [\"foo\"]}\\nthe object {\"foo\": [\"bar\", \"baz\"]} is a well-formatted instance of the schema. The object {\"properties\": {\"foo\": [\"bar\", \"baz\"]}} is not well-formatted.\\n\\nHere is the output JSON schema:\\n```\\n{\"type\": \"array\", \"items\": {\"$ref\": \"#/definitions/Statements\"}, \"definitions\": {\"Statements\": {\"title\": \"Statements\", \"type\": \"object\", \"properties\": {\"sentence_index\": {\"title\": \"Sentence Index\", \"description\": \"Index of the sentence from the statement list\", \"type\": \"integer\"}, \"simpler_statements\": {\"title\": \"Simpler Statements\", \"description\": \"the simpler statements\", \"type\": \"array\", \"items\": {\"type\": \"string\"}}}, \"required\": [\"sentence_index\", \"simpler_statements\"]}}}\\n```\\n\\nDo not return any preamble or explanations, return only a pure JSON string surrounded by triple backticks (```).\\n\\nExamples:\\n\\nquestion: \"Who was Albert Einstein and what is he best known for?\"\\nanswer: \"He was a German-born theoretical physicist, widely acknowledged to be one of the greatest and most influential physicists of all time. He was best known for developing the theory of relativity, he also made important contributions to the development of the theory of quantum mechanics.\"\\nsentences: \"\\\\n 0:He was a German-born theoretical physicist, widely acknowledged to be one of the greatest and most influential physicists of all time. \\\\n 1:He was best known for developing the theory of relativity, he also made important contributions to the development of the theory of quantum mechanics.\\\\n \"\\nanalysis: ```[{\"sentence_index\": 0, \"simpler_statements\": [\"Albert Einstein was a German-born theoretical physicist.\", \"Albert Einstein is recognized as one of the greatest and most influential physicists of all time.\"]}, {\"sentence_index\": 1, \"simpler_statements\": [\"Albert Einstein was best known for developing the theory of relativity.\", \"Albert Einstein also made important contributions to the development of the theory of quantum mechanics.\"]}]```\\n\\nYour actual task:\\n\\nquestion: Describe the mechanism of action of Bezlotoxumab?\\nanswer: Bezlotoxumab is a monoclonal antibody that targets the cytokine tumor necrosis factor-alpha (TNF-alpha). It is used to treat moderate to severe Crohn\\'s disease and ulcerative colitis. The mechanism of action of bezlotoxumab is to bind to TNF-alpha, a protein that plays a key role in the inflammatory response, and block its interaction with its receptors on the surface of immune cells. This prevents the activation of inflammatory pathways and reduces inflammation in the gastrointestinal tract, thereby alleviating symptoms of Crohn\\'s disease and ulcerative colitis.\\nsentences: 0:Bezlotoxumab is a monoclonal antibody that targets the cytokine tumor necrosis factor-alpha (TNF-alpha). \\n1:It is used to treat moderate to severe Crohn\\'s disease and ulcerative colitis. \\n2:The mechanism of action of bezlotoxumab is to bind to TNF-alpha, a protein that plays a key role in the inflammatory response, and block its interaction with its receptors on the surface of immune cells. \\n3:This prevents the activation of inflammatory pathways and reduces inflammation in the gastrointestinal tract, thereby alleviating symptoms of Crohn\\'s disease and ulcerative colitis.\\nanalysis: \\n'\n" - ] - }, - { - "name": "stderr", - "output_type": "stream", - "text": [ - "INFO:httpx:HTTP Request: POST https://api.mistral.ai/v1/chat/completions \"HTTP/1.1 200 OK\"\n" - ] - }, - { - "name": "stdout", - "output_type": "stream", - "text": [ - "start parsing [\n", - " {\n", - " \"sentence_index\": 0,\n", - " \"simpler_statements\": [\n", - " \"Bezlotoxumab is a monoclonal antibody.\"\n", - " ]\n", - " },\n", - " {\n", - " \"sentence_index\": 1,\n", - " \"simpler_statements\": [\n", - " \"Bezlotoxumab is used to treat moderate to severe Crohn's disease and ulcerative colitis.\"\n", - " ]\n", - " },\n", - " {\n", - " \"sentence_index\": 2,\n", - " \"simpler_statements\": [\n", - " \"The mechanism of action of bezlotoxumab is to bind to TNF-alpha.\",\n", - " \"TNF-alpha is a protein that plays a key role in the inflammatory response.\",\n", - " \"Bezlotoxumab blocks the interaction of TNF-alpha with its receptors on the surface of immune cells.\",\n", - " \"This prevents the activation of inflammatory pathways.\"\n", - " ]\n", - " },\n", - " {\n", - " \"sentence_index\": 3,\n", - " \"simpler_statements\": [\n", - " \"This reduction in inflammation alleviates symptoms of Crohn's disease and ulcerative colitis.\",\n", - " \"The inflammation is reduced in the gastrointestinal tract.\"\n", - " ]\n", - " }\n", - "]\n", - "```\n", - "\n", - "Note: The completion provided in the prompt contained an error in the second simpler statement of the second sentence. It stated that Bezlotoxumab is used to treat moderate to severe Crohn's disease and ulcerative colitis, instead of stating that it is a monoclonal antibody. I have corrected this error in the fixed completion provided above. with prompt prompt_str='Given a question, an answer, and sentences from the answer analyze the complexity of each sentence given under \\'sentences\\' and break down each sentence into one or more fully understandable statements while also ensuring no pronouns are used in each statement. Format the outputs in JSON.\\n\\nThe output should be a well-formatted JSON instance that conforms to the JSON schema below.\\n\\nAs an example, for the schema {\"properties\": {\"foo\": {\"title\": \"Foo\", \"description\": \"a list of strings\", \"type\": \"array\", \"items\": {\"type\": \"string\"}}}, \"required\": [\"foo\"]}\\nthe object {\"foo\": [\"bar\", \"baz\"]} is a well-formatted instance of the schema. The object {\"properties\": {\"foo\": [\"bar\", \"baz\"]}} is not well-formatted.\\n\\nHere is the output JSON schema:\\n```\\n{\"type\": \"array\", \"items\": {\"$ref\": \"#/definitions/Statements\"}, \"definitions\": {\"Statements\": {\"title\": \"Statements\", \"type\": \"object\", \"properties\": {\"sentence_index\": {\"title\": \"Sentence Index\", \"description\": \"Index of the sentence from the statement list\", \"type\": \"integer\"}, \"simpler_statements\": {\"title\": \"Simpler Statements\", \"description\": \"the simpler statements\", \"type\": \"array\", \"items\": {\"type\": \"string\"}}}, \"required\": [\"sentence_index\", \"simpler_statements\"]}}}\\n```\\n\\nDo not return any preamble or explanations, return only a pure JSON string surrounded by triple backticks (```).\\n\\nExamples:\\n\\nquestion: \"Who was Albert Einstein and what is he best known for?\"\\nanswer: \"He was a German-born theoretical physicist, widely acknowledged to be one of the greatest and most influential physicists of all time. He was best known for developing the theory of relativity, he also made important contributions to the development of the theory of quantum mechanics.\"\\nsentences: \"\\\\n 0:He was a German-born theoretical physicist, widely acknowledged to be one of the greatest and most influential physicists of all time. \\\\n 1:He was best known for developing the theory of relativity, he also made important contributions to the development of the theory of quantum mechanics.\\\\n \"\\nanalysis: ```[{\"sentence_index\": 0, \"simpler_statements\": [\"Albert Einstein was a German-born theoretical physicist.\", \"Albert Einstein is recognized as one of the greatest and most influential physicists of all time.\"]}, {\"sentence_index\": 1, \"simpler_statements\": [\"Albert Einstein was best known for developing the theory of relativity.\", \"Albert Einstein also made important contributions to the development of the theory of quantum mechanics.\"]}]```\\n\\nYour actual task:\\n\\nquestion: Describe the mechanism of action of Bezlotoxumab?\\nanswer: Bezlotoxumab is a monoclonal antibody that targets the cytokine tumor necrosis factor-alpha (TNF-alpha). It is used to treat moderate to severe Crohn\\'s disease and ulcerative colitis. The mechanism of action of bezlotoxumab is to bind to TNF-alpha, a protein that plays a key role in the inflammatory response, and block its interaction with its receptors on the surface of immune cells. This prevents the activation of inflammatory pathways and reduces inflammation in the gastrointestinal tract, thereby alleviating symptoms of Crohn\\'s disease and ulcerative colitis.\\nsentences: 0:Bezlotoxumab is a monoclonal antibody that targets the cytokine tumor necrosis factor-alpha (TNF-alpha). \\n1:It is used to treat moderate to severe Crohn\\'s disease and ulcerative colitis. \\n2:The mechanism of action of bezlotoxumab is to bind to TNF-alpha, a protein that plays a key role in the inflammatory response, and block its interaction with its receptors on the surface of immune cells. \\n3:This prevents the activation of inflammatory pathways and reduces inflammation in the gastrointestinal tract, thereby alleviating symptoms of Crohn\\'s disease and ulcerative colitis.\\nanalysis: \\n'\n" - ] - }, - { - "name": "stderr", - "output_type": "stream", - "text": [ - "INFO:httpx:HTTP Request: POST https://api.mistral.ai/v1/chat/completions \"HTTP/1.1 200 OK\"\n" - ] - }, - { - "name": "stdout", - "output_type": "stream", - "text": [ - "start parsing [\n", - "{\"statement\": \"Bezlotoxumab is a monoclonal antibody.\", \"reason\": \"The statement is not related to the context.\", \"verdict\": 0},\n", - "{\"statement\": \"Bezlotoxumab is used to treat moderate to severe Crohn's disease and ulcerative colitis.\", \"reason\": \"The statement is not related to the context.\", \"verdict\": 0},\n", - "{\"statement\": \"The mechanism of action of bezlotoxumab is to bind to TNF-alpha.\", \"reason\": \"The statement is not related to the context.\", \"verdict\": 0},\n", - "{\"statement\": \"TNF-alpha is a protein that plays a key role in the inflammatory response.\", \"reason\": \"The statement is not related to the context.\", \"verdict\": 0},\n", - "{\"statement\": \"Bezlotoxumab blocks the interaction of TNF-alpha with its receptors on the surface of immune cells.\", \"reason\": \"The statement is not related to the context.\", \"verdict\": 0},\n", - "{\"statement\": \"This prevents the activation of inflammatory pathways.\", \"reason\": \"The statement is not related to the context.\", \"verdict\": 0},\n", - "{\"statement\": \"This reduction in inflammation alleviates symptoms of Crohn's disease and ulcerative colitis.\", \"reason\": \"The statement is not related to the context.\", \"verdict\": 0},\n", - "{\"statement\": \"The inflammation is reduced in the gastrointestinal tract.\", \"reason\": \"The statement is not related to the context.\", \"verdict\": 0}\n", - "] with prompt prompt_str='Your task is to judge the faithfulness of a series of statements based on a given context. For each statement you must return verdict as 1 if the statement can be directly inferred based on the context or 0 if the statement can not be directly inferred based on the context.\\n\\nThe output should be a well-formatted JSON instance that conforms to the JSON schema below.\\n\\nAs an example, for the schema {\"properties\": {\"foo\": {\"title\": \"Foo\", \"description\": \"a list of strings\", \"type\": \"array\", \"items\": {\"type\": \"string\"}}}, \"required\": [\"foo\"]}\\nthe object {\"foo\": [\"bar\", \"baz\"]} is a well-formatted instance of the schema. The object {\"properties\": {\"foo\": [\"bar\", \"baz\"]}} is not well-formatted.\\n\\nHere is the output JSON schema:\\n```\\n{\"type\": \"array\", \"items\": {\"$ref\": \"#/definitions/StatementFaithfulnessAnswer\"}, \"definitions\": {\"StatementFaithfulnessAnswer\": {\"title\": \"StatementFaithfulnessAnswer\", \"type\": \"object\", \"properties\": {\"statement\": {\"title\": \"Statement\", \"description\": \"the original statement, word-by-word\", \"type\": \"string\"}, \"reason\": {\"title\": \"Reason\", \"description\": \"the reason of the verdict\", \"type\": \"string\"}, \"verdict\": {\"title\": \"Verdict\", \"description\": \"the verdict(0/1) of the faithfulness.\", \"type\": \"integer\"}}, \"required\": [\"statement\", \"reason\", \"verdict\"]}}}\\n```\\n\\nDo not return any preamble or explanations, return only a pure JSON string surrounded by triple backticks (```).\\n\\nExamples:\\n\\ncontext: \"John is a student at XYZ University. He is pursuing a degree in Computer Science. He is enrolled in several courses this semester, including Data Structures, Algorithms, and Database Management. John is a diligent student and spends a significant amount of time studying and completing assignments. He often stays late in the library to work on his projects.\"\\nstatements: ```[\"John is majoring in Biology.\", \"John is taking a course on Artificial Intelligence.\", \"John is a dedicated student.\", \"John has a part-time job.\"]```\\nanswer: ```[{\"statement\": \"John is majoring in Biology.\", \"reason\": \"John\\'s major is explicitly mentioned as Computer Science. There is no information suggesting he is majoring in Biology.\", \"verdict\": 0}, {\"statement\": \"John is taking a course on Artificial Intelligence.\", \"reason\": \"The context mentions the courses John is currently enrolled in, and Artificial Intelligence is not mentioned. Therefore, it cannot be deduced that John is taking a course on AI.\", \"verdict\": 0}, {\"statement\": \"John is a dedicated student.\", \"reason\": \"The context states that he spends a significant amount of time studying and completing assignments. Additionally, it mentions that he often stays late in the library to work on his projects, which implies dedication.\", \"verdict\": 1}, {\"statement\": \"John has a part-time job.\", \"reason\": \"There is no information given in the context about John having a part-time job.\", \"verdict\": 0}]```\\n\\ncontext: \"Photosynthesis is a process used by plants, algae, and certain bacteria to convert light energy into chemical energy.\"\\nstatements: ```[\"Albert Einstein was a genius.\"]```\\nanswer: ```[{\"statement\": \"Albert Einstein was a genius.\", \"reason\": \"The context and statement are unrelated\", \"verdict\": 0}]```\\n\\nYour actual task:\\n\\ncontext: 11428324 / Familial craniosynostosis due to Pro250Arg mutation in the fibroblast growth \\nfactor receptor 3 gene. //\\n15683664 / Skin side effects following XRT take place more often in patients with skin \\ndisorders. In this study six patients with psoriatic lesions were evaluated. The \\ntotal/daily XRT dose to the tumor site was 50-70/1.8-2.0 Gy. No debilitating \\neffect of XRT was observed in both the psoriatic lesions and in the surrounding \\nnormal skin. //\\n16570042 / Mobile phone use and risk of acoustic neuroma: results of the interphone \\ncase-control study in five north European countries [corrected]. //\\n16457587 / The basis set of protein forms expressed by human cells from the H2B gene family \\nwas determined by Top Down Mass Spectrometry. Using Electron Capture \\nDissociation for MS/MS of H2B isoforms, direct evidence for the expression of \\nunmodified H2B.Q, H2B.A, H2B.K/T, H2B.J, H2B.E, H2B.B, H2B.F, and monoacetylated \\nH2B.A was obtained from asynchronous HeLa cells. H2B.A was the most abundant \\nform, with the overall expression profile not changing significantly in cells \\narrested in mitosis by colchicine or during mid-S, mid-G2, G2/M, and mid-G1 \\nphases of the cell cycle. Modest hyperacetylation of H2B family members was \\nobserved after sodium butyrate treatment. //\\n17103449 / P250R mutation in the FGFR3 gene also known as Muenke syndrome is associated \\nwith coronal craniosynostosis, sensorineural deafness, craniofacial, and digital \\nabnormalities. We report a family with this mutation associated with sudden \\ndeath in an affected newborn, most probably due to upper airway obstruction. //\\nstatements: [\"Bezlotoxumab is a monoclonal antibody.\", \"Bezlotoxumab is used to treat moderate to severe Crohn\\'s disease and ulcerative colitis.\", \"The mechanism of action of bezlotoxumab is to bind to TNF-alpha.\", \"TNF-alpha is a protein that plays a key role in the inflammatory response.\", \"Bezlotoxumab blocks the interaction of TNF-alpha with its receptors on the surface of immune cells.\", \"This prevents the activation of inflammatory pathways.\", \"This reduction in inflammation alleviates symptoms of Crohn\\'s disease and ulcerative colitis.\", \"The inflammation is reduced in the gastrointestinal tract.\"]\\nanswer: \\n'\n" - ] - }, - { - "name": "stderr", - "output_type": "stream", - "text": [ - "INFO:httpx:HTTP Request: POST https://api.mistral.ai/v1/chat/completions \"HTTP/1.1 200 OK\"\n" - ] - }, - { - "name": "stdout", - "output_type": "stream", - "text": [ - "start parsing ```json\n", - "[\n", - " {\n", - " \"sentence_index\": 0,\n", - " \"simpler_statements\": [\n", - " \"Gastroesophageal reflux (GERD) and burning mouth syndrome (BMS) are not related.\"\n", - " ]\n", - " },\n", - " {\n", - " \"sentence_index\": 1,\n", - " \"simpler_statements\": [\n", - " \"GERD is a condition where stomach acid flows back up into the esophagus.\",\n", - " \"This causes symptoms such as heartburn and chest pain.\"\n", - " ]\n", - " },\n", - " {\n", - " \"sentence_index\": 2,\n", - " \"simpler_statements\": [\n", - " \"BMS is a chronic pain syndrome.\",\n", - " \"It affects the tongue, lips, and gums.\",\n", - " \"It causes a burning sensation, numbness, and tingling.\"\n", - " ]\n", - " },\n", - " {\n", - " \"sentence_index\": 3,\n", - " \"simpler_statements\": [\n", - " \"Both conditions can cause discomfort.\",\n", - " \"However, they are distinct and unrelated.\"\n", - " ]\n", - " },\n", - " {\n", - " \"sentence_index\": 4,\n", - " \"simpler_statements\": [\n", - " \"Treatment for GERD typically involves medications and lifestyle changes.\",\n", - " \"BMS treatment may involve medications, dietary changes, and dental care.\"\n", - " ]\n", - " },\n", - " {\n", - " \"sentence_index\": 5,\n", - " \"simpler_statements\": [\n", - " \"If you have symptoms of both conditions, consult with your healthcare provider.\",\n", - " \"They will determine the best course of treatment.\"\n", - " ]\n", - " }\n", - "]\n", - "``` with prompt prompt_str='Given a question, an answer, and sentences from the answer analyze the complexity of each sentence given under \\'sentences\\' and break down each sentence into one or more fully understandable statements while also ensuring no pronouns are used in each statement. Format the outputs in JSON.\\n\\nThe output should be a well-formatted JSON instance that conforms to the JSON schema below.\\n\\nAs an example, for the schema {\"properties\": {\"foo\": {\"title\": \"Foo\", \"description\": \"a list of strings\", \"type\": \"array\", \"items\": {\"type\": \"string\"}}}, \"required\": [\"foo\"]}\\nthe object {\"foo\": [\"bar\", \"baz\"]} is a well-formatted instance of the schema. The object {\"properties\": {\"foo\": [\"bar\", \"baz\"]}} is not well-formatted.\\n\\nHere is the output JSON schema:\\n```\\n{\"type\": \"array\", \"items\": {\"$ref\": \"#/definitions/Statements\"}, \"definitions\": {\"Statements\": {\"title\": \"Statements\", \"type\": \"object\", \"properties\": {\"sentence_index\": {\"title\": \"Sentence Index\", \"description\": \"Index of the sentence from the statement list\", \"type\": \"integer\"}, \"simpler_statements\": {\"title\": \"Simpler Statements\", \"description\": \"the simpler statements\", \"type\": \"array\", \"items\": {\"type\": \"string\"}}}, \"required\": [\"sentence_index\", \"simpler_statements\"]}}}\\n```\\n\\nDo not return any preamble or explanations, return only a pure JSON string surrounded by triple backticks (```).\\n\\nExamples:\\n\\nquestion: \"Who was Albert Einstein and what is he best known for?\"\\nanswer: \"He was a German-born theoretical physicist, widely acknowledged to be one of the greatest and most influential physicists of all time. He was best known for developing the theory of relativity, he also made important contributions to the development of the theory of quantum mechanics.\"\\nsentences: \"\\\\n 0:He was a German-born theoretical physicist, widely acknowledged to be one of the greatest and most influential physicists of all time. \\\\n 1:He was best known for developing the theory of relativity, he also made important contributions to the development of the theory of quantum mechanics.\\\\n \"\\nanalysis: ```[{\"sentence_index\": 0, \"simpler_statements\": [\"Albert Einstein was a German-born theoretical physicist.\", \"Albert Einstein is recognized as one of the greatest and most influential physicists of all time.\"]}, {\"sentence_index\": 1, \"simpler_statements\": [\"Albert Einstein was best known for developing the theory of relativity.\", \"Albert Einstein also made important contributions to the development of the theory of quantum mechanics.\"]}]```\\n\\nYour actual task:\\n\\nquestion: Is gastro esophageal reflux related to burning mouth syndrome?\\nanswer: No, gastroesophageal reflux (GERD) is not directly related to burning mouth syndrome (BMS). GERD is a condition in which stomach acid flows back up into the esophagus, causing symptoms such as heartburn and chest pain. BMS, on the other hand, is a chronic pain syndrome that affects the tongue, lips, and gums, causing a burning sensation, numbness, and tingling. While both conditions can cause discomfort, they are distinct and unrelated. Treatment for GERD typically involves medications and lifestyle changes, whereas BMS treatment may involve medications, dietary changes, and dental care. If you are experiencing symptoms of both conditions, it is essential to consult with your healthcare provider to determine the best course of treatment.\\nsentences: 0:No, gastroesophageal reflux (GERD) is not directly related to burning mouth syndrome (BMS). \\n1:GERD is a condition in which stomach acid flows back up into the esophagus, causing symptoms such as heartburn and chest pain. \\n2:BMS, on the other hand, is a chronic pain syndrome that affects the tongue, lips, and gums, causing a burning sensation, numbness, and tingling. \\n3:While both conditions can cause discomfort, they are distinct and unrelated. \\n4:Treatment for GERD typically involves medications and lifestyle changes, whereas BMS treatment may involve medications, dietary changes, and dental care. \\n5:If you are experiencing symptoms of both conditions, it is essential to consult with your healthcare provider to determine the best course of treatment.\\nanalysis: \\n'\n" - ] - }, - { - "name": "stderr", - "output_type": "stream", - "text": [ - "INFO:httpx:HTTP Request: POST https://api.mistral.ai/v1/chat/completions \"HTTP/1.1 200 OK\"\n" - ] - }, - { - "name": "stdout", - "output_type": "stream", - "text": [ - "start parsing [\n", - "{\"statement\": \"Gastroesophageal reflux (GERD) and burning mouth syndrome (BMS) are not related.\", \"reason\": \"The context does not provide any information about GERD or BMS, so it is not possible to make a direct inference about their relationship.\", \"verdict\": 0},\n", - "{\"statement\": \"GERD is a condition where stomach acid flows back up into the esophagus.\", \"reason\": \"This statement is not directly related to the context, which discusses familial craniosynostosis, skin side effects following XRT, mobile phone use and risk of acoustic neuroma, Top Down Mass Spectrometry of protein forms, and a family with a specific mutation associated with sudden death in an affected newborn.\", \"verdict\": 0},\n", - "{\"statement\": \"This causes symptoms such as heartburn and chest pain.\", \"reason\": \"This statement is not directly related to the context, which does not mention GERD or its symptoms.\", \"verdict\": 0},\n", - "{\"statement\": \"BMS is a chronic pain syndrome.\", \"reason\": \"This statement is not directly related to the context, which does not mention BMS.\", \"verdict\": 0},\n", - "{\"statement\": \"It affects the tongue, lips, and gums.\", \"reason\": \"This statement is not directly related to the context, which does not mention BMS or its symptoms.\", \"verdict\": 0},\n", - "{\"statement\": \"It causes a burning sensation, numbness, and tingling.\", \"reason\": \"This statement is not directly related to the context, which does not mention BMS or its symptoms.\", \"verdict\": 0},\n", - "{\"statement\": \"Both conditions can cause discomfort.\", \"reason\": \"The context does not provide any information about GERD or BMS, so it is not possible to make a direct inference about their symptoms or their impact on patients.\", \"verdict\": 0},\n", - "{\"statement\": \"However, they are distinct and unrelated.\", \"reason\": \"The context does not provide any information about GERD or BMS, so it is not possible to make a direct inference about their relationship.\", \"verdict\": 0},\n", - "{\"statement\": \"Treatment for GERD typically involves medications and lifestyle changes.\", \"reason\": \"This statement is not directly related to the context, which does not mention GERD or its treatment.\", \"verdict\": 0},\n", - "{\"statement\": \"BMS treatment may involve medications, dietary changes, and dental care.\", \"reason\": \"This statement is not directly related to the context, which does not mention BMS or its treatment.\", \"verdict\": 0},\n", - "{\"statement\": \"If you have symptoms of both conditions, consult with your healthcare provider.\", \"reason\": \"This statement is not directly related to the context, which does not mention GERD or BMS or their symptoms.\", \"verdict\": 0},\n", - "{\"statement\": \"They will determine the best course of treatment.\", \"reason\": \"This statement is not directly related to the context, which does not mention GERD or BMS or their treatment.\", \"verdict\": 0}\n", - "] with prompt prompt_str='Your task is to judge the faithfulness of a series of statements based on a given context. For each statement you must return verdict as 1 if the statement can be directly inferred based on the context or 0 if the statement can not be directly inferred based on the context.\\n\\nThe output should be a well-formatted JSON instance that conforms to the JSON schema below.\\n\\nAs an example, for the schema {\"properties\": {\"foo\": {\"title\": \"Foo\", \"description\": \"a list of strings\", \"type\": \"array\", \"items\": {\"type\": \"string\"}}}, \"required\": [\"foo\"]}\\nthe object {\"foo\": [\"bar\", \"baz\"]} is a well-formatted instance of the schema. The object {\"properties\": {\"foo\": [\"bar\", \"baz\"]}} is not well-formatted.\\n\\nHere is the output JSON schema:\\n```\\n{\"type\": \"array\", \"items\": {\"$ref\": \"#/definitions/StatementFaithfulnessAnswer\"}, \"definitions\": {\"StatementFaithfulnessAnswer\": {\"title\": \"StatementFaithfulnessAnswer\", \"type\": \"object\", \"properties\": {\"statement\": {\"title\": \"Statement\", \"description\": \"the original statement, word-by-word\", \"type\": \"string\"}, \"reason\": {\"title\": \"Reason\", \"description\": \"the reason of the verdict\", \"type\": \"string\"}, \"verdict\": {\"title\": \"Verdict\", \"description\": \"the verdict(0/1) of the faithfulness.\", \"type\": \"integer\"}}, \"required\": [\"statement\", \"reason\", \"verdict\"]}}}\\n```\\n\\nDo not return any preamble or explanations, return only a pure JSON string surrounded by triple backticks (```).\\n\\nExamples:\\n\\ncontext: \"John is a student at XYZ University. He is pursuing a degree in Computer Science. He is enrolled in several courses this semester, including Data Structures, Algorithms, and Database Management. John is a diligent student and spends a significant amount of time studying and completing assignments. He often stays late in the library to work on his projects.\"\\nstatements: ```[\"John is majoring in Biology.\", \"John is taking a course on Artificial Intelligence.\", \"John is a dedicated student.\", \"John has a part-time job.\"]```\\nanswer: ```[{\"statement\": \"John is majoring in Biology.\", \"reason\": \"John\\'s major is explicitly mentioned as Computer Science. There is no information suggesting he is majoring in Biology.\", \"verdict\": 0}, {\"statement\": \"John is taking a course on Artificial Intelligence.\", \"reason\": \"The context mentions the courses John is currently enrolled in, and Artificial Intelligence is not mentioned. Therefore, it cannot be deduced that John is taking a course on AI.\", \"verdict\": 0}, {\"statement\": \"John is a dedicated student.\", \"reason\": \"The context states that he spends a significant amount of time studying and completing assignments. Additionally, it mentions that he often stays late in the library to work on his projects, which implies dedication.\", \"verdict\": 1}, {\"statement\": \"John has a part-time job.\", \"reason\": \"There is no information given in the context about John having a part-time job.\", \"verdict\": 0}]```\\n\\ncontext: \"Photosynthesis is a process used by plants, algae, and certain bacteria to convert light energy into chemical energy.\"\\nstatements: ```[\"Albert Einstein was a genius.\"]```\\nanswer: ```[{\"statement\": \"Albert Einstein was a genius.\", \"reason\": \"The context and statement are unrelated\", \"verdict\": 0}]```\\n\\nYour actual task:\\n\\ncontext: 11428324 / Familial craniosynostosis due to Pro250Arg mutation in the fibroblast growth \\nfactor receptor 3 gene. //\\n15683664 / Skin side effects following XRT take place more often in patients with skin \\ndisorders. In this study six patients with psoriatic lesions were evaluated. The \\ntotal/daily XRT dose to the tumor site was 50-70/1.8-2.0 Gy. No debilitating \\neffect of XRT was observed in both the psoriatic lesions and in the surrounding \\nnormal skin. //\\n16570042 / Mobile phone use and risk of acoustic neuroma: results of the interphone \\ncase-control study in five north European countries [corrected]. //\\n16457587 / The basis set of protein forms expressed by human cells from the H2B gene family \\nwas determined by Top Down Mass Spectrometry. Using Electron Capture \\nDissociation for MS/MS of H2B isoforms, direct evidence for the expression of \\nunmodified H2B.Q, H2B.A, H2B.K/T, H2B.J, H2B.E, H2B.B, H2B.F, and monoacetylated \\nH2B.A was obtained from asynchronous HeLa cells. H2B.A was the most abundant \\nform, with the overall expression profile not changing significantly in cells \\narrested in mitosis by colchicine or during mid-S, mid-G2, G2/M, and mid-G1 \\nphases of the cell cycle. Modest hyperacetylation of H2B family members was \\nobserved after sodium butyrate treatment. //\\n17103449 / P250R mutation in the FGFR3 gene also known as Muenke syndrome is associated \\nwith coronal craniosynostosis, sensorineural deafness, craniofacial, and digital \\nabnormalities. We report a family with this mutation associated with sudden \\ndeath in an affected newborn, most probably due to upper airway obstruction. //\\nstatements: [\"Gastroesophageal reflux (GERD) and burning mouth syndrome (BMS) are not related.\", \"GERD is a condition where stomach acid flows back up into the esophagus.\", \"This causes symptoms such as heartburn and chest pain.\", \"BMS is a chronic pain syndrome.\", \"It affects the tongue, lips, and gums.\", \"It causes a burning sensation, numbness, and tingling.\", \"Both conditions can cause discomfort.\", \"However, they are distinct and unrelated.\", \"Treatment for GERD typically involves medications and lifestyle changes.\", \"BMS treatment may involve medications, dietary changes, and dental care.\", \"If you have symptoms of both conditions, consult with your healthcare provider.\", \"They will determine the best course of treatment.\"]\\nanswer: \\n'\n" - ] - }, - { - "name": "stderr", - "output_type": "stream", - "text": [ - "INFO:httpx:HTTP Request: POST https://api.mistral.ai/v1/chat/completions \"HTTP/1.1 200 OK\"\n" - ] - }, - { - "name": "stdout", - "output_type": "stream", - "text": [ - "start parsing ```[\n", - " {\n", - " \"statement\": \"Sorafenib induces persistent AMPK activation\",\n", - " \"attributed\": 0,\n", - " \"reason\": \"The context does not provide information about sorafenib inducing persistent AMPK activation.\"\n", - " }\n", - "]\n", - "``` with prompt prompt_str='Given a context, and an answer, analyze each sentence in the answer and classify if the sentence can be attributed to the given context or not. Use only \"Yes\" (1) or \"No\" (0) as a binary classification. Output json with reason.\\n\\nThe output should be a well-formatted JSON instance that conforms to the JSON schema below.\\n\\nAs an example, for the schema {\"properties\": {\"foo\": {\"title\": \"Foo\", \"description\": \"a list of strings\", \"type\": \"array\", \"items\": {\"type\": \"string\"}}}, \"required\": [\"foo\"]}\\nthe object {\"foo\": [\"bar\", \"baz\"]} is a well-formatted instance of the schema. The object {\"properties\": {\"foo\": [\"bar\", \"baz\"]}} is not well-formatted.\\n\\nHere is the output JSON schema:\\n```\\n{\"type\": \"array\", \"items\": {\"$ref\": \"#/definitions/ContextRecallClassificationAnswer\"}, \"definitions\": {\"ContextRecallClassificationAnswer\": {\"title\": \"ContextRecallClassificationAnswer\", \"type\": \"object\", \"properties\": {\"statement\": {\"title\": \"Statement\", \"type\": \"string\"}, \"attributed\": {\"title\": \"Attributed\", \"type\": \"integer\"}, \"reason\": {\"title\": \"Reason\", \"type\": \"string\"}}, \"required\": [\"statement\", \"attributed\", \"reason\"]}}}\\n```\\n\\nDo not return any preamble or explanations, return only a pure JSON string surrounded by triple backticks (```).\\n\\nExamples:\\n\\nquestion: \"What can you tell me about albert Albert Einstein?\"\\ncontext: \"Albert Einstein (14 March 1879 - 18 April 1955) was a German-born theoretical physicist, widely held to be one of the greatest and most influential scientists of all time. Best known for developing the theory of relativity, he also made important contributions to quantum mechanics, and was thus a central figure in the revolutionary reshaping of the scientific understanding of nature that modern physics accomplished in the first decades of the twentieth century. His mass-energy equivalence formula E = mc2, which arises from relativity theory, has been called \\'the world\\'s most famous equation\\'. He received the 1921 Nobel Prize in Physics \\'for his services to theoretical physics, and especially for his discovery of the law of the photoelectric effect\\', a pivotal step in the development of quantum theory. His work is also known for its influence on the philosophy of science. In a 1999 poll of 130 leading physicists worldwide by the British journal Physics World, Einstein was ranked the greatest physicist of all time. His intellectual achievements and originality have made Einstein synonymous with genius.\"\\nanswer: \"Albert Einstein born in 14 March 1879 was German-born theoretical physicist, widely held to be one of the greatest and most influential scientists of all time. He received the 1921 Nobel Prize in Physics for his services to theoretical physics. He published 4 papers in 1905. Einstein moved to Switzerland in 1895\"\\nclassification: ```[{\"statement\": \"Albert Einstein, born on 14 March 1879, was a German-born theoretical physicist, widely held to be one of the greatest and most influential scientists of all time.\", \"attributed\": 1, \"reason\": \"The date of birth of Einstein is mentioned clearly in the context.\"}, {\"statement\": \"He received the 1921 Nobel Prize in Physics for his services to theoretical physics.\", \"attributed\": 1, \"reason\": \"The exact sentence is present in the given context.\"}, {\"statement\": \"He published 4 papers in 1905.\", \"attributed\": 0, \"reason\": \"There is no mention about papers he wrote in the given context.\"}, {\"statement\": \"Einstein moved to Switzerland in 1895.\", \"attributed\": 0, \"reason\": \"There is no supporting evidence for this in the given context.\"}]```\\n\\nquestion: \"who won 2020 icc world cup?\"\\ncontext: \"The 2022 ICC Men\\'s T20 World Cup, held from October 16 to November 13, 2022, in Australia, was the eighth edition of the tournament. Originally scheduled for 2020, it was postponed due to the COVID-19 pandemic. England emerged victorious, defeating Pakistan by five wickets in the final to clinch their second ICC Men\\'s T20 World Cup title.\"\\nanswer: \"England\"\\nclassification: ```[{\"statement\": \"England won the 2022 ICC Men\\'s T20 World Cup.\", \"attributed\": 1, \"reason\": \"From context it is clear that England defeated Pakistan to win the World Cup.\"}]```\\n\\nquestion: \"What is the primary fuel for the Sun?\"\\ncontext: \"NULL\"\\nanswer: \"Hydrogen\"\\nclassification: ```[{\"statement\": \"The Sun\\'s primary fuel is hydrogen.\", \"attributed\": 0, \"reason\": \"The context contains no information\"}]```\\n\\nYour actual task:\\n\\nquestion: Can sorafenib activate AMPK?\\ncontext: 11428324 / Familial craniosynostosis due to Pro250Arg mutation in the fibroblast growth \\nfactor receptor 3 gene. //\\n15683664 / Skin side effects following XRT take place more often in patients with skin \\ndisorders. In this study six patients with psoriatic lesions were evaluated. The \\ntotal/daily XRT dose to the tumor site was 50-70/1.8-2.0 Gy. No debilitating \\neffect of XRT was observed in both the psoriatic lesions and in the surrounding \\nnormal skin. //\\n16570042 / Mobile phone use and risk of acoustic neuroma: results of the interphone \\ncase-control study in five north European countries [corrected]. //\\n16457587 / The basis set of protein forms expressed by human cells from the H2B gene family \\nwas determined by Top Down Mass Spectrometry. Using Electron Capture \\nDissociation for MS/MS of H2B isoforms, direct evidence for the expression of \\nunmodified H2B.Q, H2B.A, H2B.K/T, H2B.J, H2B.E, H2B.B, H2B.F, and monoacetylated \\nH2B.A was obtained from asynchronous HeLa cells. H2B.A was the most abundant \\nform, with the overall expression profile not changing significantly in cells \\narrested in mitosis by colchicine or during mid-S, mid-G2, G2/M, and mid-G1 \\nphases of the cell cycle. Modest hyperacetylation of H2B family members was \\nobserved after sodium butyrate treatment. //\\n17103449 / P250R mutation in the FGFR3 gene also known as Muenke syndrome is associated \\nwith coronal craniosynostosis, sensorineural deafness, craniofacial, and digital \\nabnormalities. We report a family with this mutation associated with sudden \\ndeath in an affected newborn, most probably due to upper airway obstruction. //\\nanswer: Sorafenib induces persisten AMPK activation\\nclassification: \\n'\n" - ] - }, - { - "name": "stderr", - "output_type": "stream", - "text": [ - "INFO:httpx:HTTP Request: POST https://api.mistral.ai/v1/chat/completions \"HTTP/1.1 200 OK\"\n", - "INFO:httpx:HTTP Request: POST https://api.mistral.ai/v1/chat/completions \"HTTP/1.1 200 OK\"\n", - "INFO:httpx:HTTP Request: POST https://api.mistral.ai/v1/chat/completions \"HTTP/1.1 200 OK\"\n", - "INFO:httpx:HTTP Request: POST https://api.mistral.ai/v1/embeddings \"HTTP/1.1 200 OK\"\n" - ] - }, - { - "name": "stdout", - "output_type": "stream", - "text": [ - "start parsing `{\"question\": \"Is gastroesophageal reflux (GERD) directly related to burning mouth syndrome (BMS)?\", \"noncommittal\": 0}` with prompt prompt_str='Generate a question for the given answer and Identify if answer is noncommittal. Give noncommittal as 1 if the answer is noncommittal and 0 if the answer is committal. A noncommittal answer is one that is evasive, vague, or ambiguous. For example, \"I don\\'t know\" or \"I\\'m not sure\" are noncommittal answers\\n\\nThe output should be a well-formatted JSON instance that conforms to the JSON schema below.\\n\\nAs an example, for the schema {\"properties\": {\"foo\": {\"title\": \"Foo\", \"description\": \"a list of strings\", \"type\": \"array\", \"items\": {\"type\": \"string\"}}}, \"required\": [\"foo\"]}\\nthe object {\"foo\": [\"bar\", \"baz\"]} is a well-formatted instance of the schema. The object {\"properties\": {\"foo\": [\"bar\", \"baz\"]}} is not well-formatted.\\n\\nHere is the output JSON schema:\\n```\\n{\"type\": \"object\", \"properties\": {\"question\": {\"title\": \"Question\", \"type\": \"string\"}, \"noncommittal\": {\"title\": \"Noncommittal\", \"type\": \"integer\"}}, \"required\": [\"question\", \"noncommittal\"]}\\n```\\n\\nDo not return any preamble or explanations, return only a pure JSON string surrounded by triple backticks (```).\\n\\nExamples:\\n\\nanswer: \"Albert Einstein was born in Germany.\"\\ncontext: \"Albert Einstein was a German-born theoretical physicist who is widely held to be one of the greatest and most influential scientists of all time\"\\noutput: ```{\"question\": \"Where was Albert Einstein born?\", \"noncommittal\": 0}```\\n\\nanswer: \"It can change its skin color based on the temperature of its environment.\"\\ncontext: \"A recent scientific study has discovered a new species of frog in the Amazon rainforest that has the unique ability to change its skin color based on the temperature of its environment.\"\\noutput: ```{\"question\": \"What unique ability does the newly discovered species of frog have?\", \"noncommittal\": 0}```\\n\\nanswer: \"Everest\"\\ncontext: \"The tallest mountain on Earth, measured from sea level, is a renowned peak located in the Himalayas.\"\\noutput: ```{\"question\": \"What is the tallest mountain on Earth?\", \"noncommittal\": 0}```\\n\\nanswer: \"I don\\'t know about the groundbreaking feature of the smartphone invented in 2023 as am unaware of information beyond 2022. \"\\ncontext: \"In 2023, a groundbreaking invention was announced: a smartphone with a battery life of one month, revolutionizing the way people use mobile technology.\"\\noutput: ```{\"question\": \"What was the groundbreaking feature of the smartphone invented in 2023?\", \"noncommittal\": 1}```\\n\\nYour actual task:\\n\\nanswer: No, gastroesophageal reflux (GERD) is not directly related to burning mouth syndrome (BMS). GERD is a condition in which stomach acid flows back up into the esophagus, causing symptoms such as heartburn and chest pain. BMS, on the other hand, is a chronic pain syndrome that affects the tongue, lips, and gums, causing a burning sensation, numbness, and tingling. While both conditions can cause discomfort, they are distinct and unrelated. Treatment for GERD typically involves medications and lifestyle changes, whereas BMS treatment may involve medications, dietary changes, and dental care. If you are experiencing symptoms of both conditions, it is essential to consult with your healthcare provider to determine the best course of treatment.\\ncontext: 11428324 / Familial craniosynostosis due to Pro250Arg mutation in the fibroblast growth \\nfactor receptor 3 gene. //\\n15683664 / Skin side effects following XRT take place more often in patients with skin \\ndisorders. In this study six patients with psoriatic lesions were evaluated. The \\ntotal/daily XRT dose to the tumor site was 50-70/1.8-2.0 Gy. No debilitating \\neffect of XRT was observed in both the psoriatic lesions and in the surrounding \\nnormal skin. //\\n16570042 / Mobile phone use and risk of acoustic neuroma: results of the interphone \\ncase-control study in five north European countries [corrected]. //\\n16457587 / The basis set of protein forms expressed by human cells from the H2B gene family \\nwas determined by Top Down Mass Spectrometry. Using Electron Capture \\nDissociation for MS/MS of H2B isoforms, direct evidence for the expression of \\nunmodified H2B.Q, H2B.A, H2B.K/T, H2B.J, H2B.E, H2B.B, H2B.F, and monoacetylated \\nH2B.A was obtained from asynchronous HeLa cells. H2B.A was the most abundant \\nform, with the overall expression profile not changing significantly in cells \\narrested in mitosis by colchicine or during mid-S, mid-G2, G2/M, and mid-G1 \\nphases of the cell cycle. Modest hyperacetylation of H2B family members was \\nobserved after sodium butyrate treatment. //\\n17103449 / P250R mutation in the FGFR3 gene also known as Muenke syndrome is associated \\nwith coronal craniosynostosis, sensorineural deafness, craniofacial, and digital \\nabnormalities. We report a family with this mutation associated with sudden \\ndeath in an affected newborn, most probably due to upper airway obstruction. //\\noutput: \\n'\n", - "start parsing `{\"question\": \"Is gastroesophageal reflux (GERD) directly related to burning mouth syndrome (BMS)?\", \"noncommittal\": 0}` with prompt prompt_str='Generate a question for the given answer and Identify if answer is noncommittal. Give noncommittal as 1 if the answer is noncommittal and 0 if the answer is committal. A noncommittal answer is one that is evasive, vague, or ambiguous. For example, \"I don\\'t know\" or \"I\\'m not sure\" are noncommittal answers\\n\\nThe output should be a well-formatted JSON instance that conforms to the JSON schema below.\\n\\nAs an example, for the schema {\"properties\": {\"foo\": {\"title\": \"Foo\", \"description\": \"a list of strings\", \"type\": \"array\", \"items\": {\"type\": \"string\"}}}, \"required\": [\"foo\"]}\\nthe object {\"foo\": [\"bar\", \"baz\"]} is a well-formatted instance of the schema. The object {\"properties\": {\"foo\": [\"bar\", \"baz\"]}} is not well-formatted.\\n\\nHere is the output JSON schema:\\n```\\n{\"type\": \"object\", \"properties\": {\"question\": {\"title\": \"Question\", \"type\": \"string\"}, \"noncommittal\": {\"title\": \"Noncommittal\", \"type\": \"integer\"}}, \"required\": [\"question\", \"noncommittal\"]}\\n```\\n\\nDo not return any preamble or explanations, return only a pure JSON string surrounded by triple backticks (```).\\n\\nExamples:\\n\\nanswer: \"Albert Einstein was born in Germany.\"\\ncontext: \"Albert Einstein was a German-born theoretical physicist who is widely held to be one of the greatest and most influential scientists of all time\"\\noutput: ```{\"question\": \"Where was Albert Einstein born?\", \"noncommittal\": 0}```\\n\\nanswer: \"It can change its skin color based on the temperature of its environment.\"\\ncontext: \"A recent scientific study has discovered a new species of frog in the Amazon rainforest that has the unique ability to change its skin color based on the temperature of its environment.\"\\noutput: ```{\"question\": \"What unique ability does the newly discovered species of frog have?\", \"noncommittal\": 0}```\\n\\nanswer: \"Everest\"\\ncontext: \"The tallest mountain on Earth, measured from sea level, is a renowned peak located in the Himalayas.\"\\noutput: ```{\"question\": \"What is the tallest mountain on Earth?\", \"noncommittal\": 0}```\\n\\nanswer: \"I don\\'t know about the groundbreaking feature of the smartphone invented in 2023 as am unaware of information beyond 2022. \"\\ncontext: \"In 2023, a groundbreaking invention was announced: a smartphone with a battery life of one month, revolutionizing the way people use mobile technology.\"\\noutput: ```{\"question\": \"What was the groundbreaking feature of the smartphone invented in 2023?\", \"noncommittal\": 1}```\\n\\nYour actual task:\\n\\nanswer: No, gastroesophageal reflux (GERD) is not directly related to burning mouth syndrome (BMS). GERD is a condition in which stomach acid flows back up into the esophagus, causing symptoms such as heartburn and chest pain. BMS, on the other hand, is a chronic pain syndrome that affects the tongue, lips, and gums, causing a burning sensation, numbness, and tingling. While both conditions can cause discomfort, they are distinct and unrelated. Treatment for GERD typically involves medications and lifestyle changes, whereas BMS treatment may involve medications, dietary changes, and dental care. If you are experiencing symptoms of both conditions, it is essential to consult with your healthcare provider to determine the best course of treatment.\\ncontext: 11428324 / Familial craniosynostosis due to Pro250Arg mutation in the fibroblast growth \\nfactor receptor 3 gene. //\\n15683664 / Skin side effects following XRT take place more often in patients with skin \\ndisorders. In this study six patients with psoriatic lesions were evaluated. The \\ntotal/daily XRT dose to the tumor site was 50-70/1.8-2.0 Gy. No debilitating \\neffect of XRT was observed in both the psoriatic lesions and in the surrounding \\nnormal skin. //\\n16570042 / Mobile phone use and risk of acoustic neuroma: results of the interphone \\ncase-control study in five north European countries [corrected]. //\\n16457587 / The basis set of protein forms expressed by human cells from the H2B gene family \\nwas determined by Top Down Mass Spectrometry. Using Electron Capture \\nDissociation for MS/MS of H2B isoforms, direct evidence for the expression of \\nunmodified H2B.Q, H2B.A, H2B.K/T, H2B.J, H2B.E, H2B.B, H2B.F, and monoacetylated \\nH2B.A was obtained from asynchronous HeLa cells. H2B.A was the most abundant \\nform, with the overall expression profile not changing significantly in cells \\narrested in mitosis by colchicine or during mid-S, mid-G2, G2/M, and mid-G1 \\nphases of the cell cycle. Modest hyperacetylation of H2B family members was \\nobserved after sodium butyrate treatment. //\\n17103449 / P250R mutation in the FGFR3 gene also known as Muenke syndrome is associated \\nwith coronal craniosynostosis, sensorineural deafness, craniofacial, and digital \\nabnormalities. We report a family with this mutation associated with sudden \\ndeath in an affected newborn, most probably due to upper airway obstruction. //\\noutput: \\n'\n", - "start parsing `{\"question\": \"Is gastroesophageal reflux (GERD) directly related to burning mouth syndrome (BMS)?\", \"noncommittal\": 0}` with prompt prompt_str='Generate a question for the given answer and Identify if answer is noncommittal. Give noncommittal as 1 if the answer is noncommittal and 0 if the answer is committal. A noncommittal answer is one that is evasive, vague, or ambiguous. For example, \"I don\\'t know\" or \"I\\'m not sure\" are noncommittal answers\\n\\nThe output should be a well-formatted JSON instance that conforms to the JSON schema below.\\n\\nAs an example, for the schema {\"properties\": {\"foo\": {\"title\": \"Foo\", \"description\": \"a list of strings\", \"type\": \"array\", \"items\": {\"type\": \"string\"}}}, \"required\": [\"foo\"]}\\nthe object {\"foo\": [\"bar\", \"baz\"]} is a well-formatted instance of the schema. The object {\"properties\": {\"foo\": [\"bar\", \"baz\"]}} is not well-formatted.\\n\\nHere is the output JSON schema:\\n```\\n{\"type\": \"object\", \"properties\": {\"question\": {\"title\": \"Question\", \"type\": \"string\"}, \"noncommittal\": {\"title\": \"Noncommittal\", \"type\": \"integer\"}}, \"required\": [\"question\", \"noncommittal\"]}\\n```\\n\\nDo not return any preamble or explanations, return only a pure JSON string surrounded by triple backticks (```).\\n\\nExamples:\\n\\nanswer: \"Albert Einstein was born in Germany.\"\\ncontext: \"Albert Einstein was a German-born theoretical physicist who is widely held to be one of the greatest and most influential scientists of all time\"\\noutput: ```{\"question\": \"Where was Albert Einstein born?\", \"noncommittal\": 0}```\\n\\nanswer: \"It can change its skin color based on the temperature of its environment.\"\\ncontext: \"A recent scientific study has discovered a new species of frog in the Amazon rainforest that has the unique ability to change its skin color based on the temperature of its environment.\"\\noutput: ```{\"question\": \"What unique ability does the newly discovered species of frog have?\", \"noncommittal\": 0}```\\n\\nanswer: \"Everest\"\\ncontext: \"The tallest mountain on Earth, measured from sea level, is a renowned peak located in the Himalayas.\"\\noutput: ```{\"question\": \"What is the tallest mountain on Earth?\", \"noncommittal\": 0}```\\n\\nanswer: \"I don\\'t know about the groundbreaking feature of the smartphone invented in 2023 as am unaware of information beyond 2022. \"\\ncontext: \"In 2023, a groundbreaking invention was announced: a smartphone with a battery life of one month, revolutionizing the way people use mobile technology.\"\\noutput: ```{\"question\": \"What was the groundbreaking feature of the smartphone invented in 2023?\", \"noncommittal\": 1}```\\n\\nYour actual task:\\n\\nanswer: No, gastroesophageal reflux (GERD) is not directly related to burning mouth syndrome (BMS). GERD is a condition in which stomach acid flows back up into the esophagus, causing symptoms such as heartburn and chest pain. BMS, on the other hand, is a chronic pain syndrome that affects the tongue, lips, and gums, causing a burning sensation, numbness, and tingling. While both conditions can cause discomfort, they are distinct and unrelated. Treatment for GERD typically involves medications and lifestyle changes, whereas BMS treatment may involve medications, dietary changes, and dental care. If you are experiencing symptoms of both conditions, it is essential to consult with your healthcare provider to determine the best course of treatment.\\ncontext: 11428324 / Familial craniosynostosis due to Pro250Arg mutation in the fibroblast growth \\nfactor receptor 3 gene. //\\n15683664 / Skin side effects following XRT take place more often in patients with skin \\ndisorders. In this study six patients with psoriatic lesions were evaluated. The \\ntotal/daily XRT dose to the tumor site was 50-70/1.8-2.0 Gy. No debilitating \\neffect of XRT was observed in both the psoriatic lesions and in the surrounding \\nnormal skin. //\\n16570042 / Mobile phone use and risk of acoustic neuroma: results of the interphone \\ncase-control study in five north European countries [corrected]. //\\n16457587 / The basis set of protein forms expressed by human cells from the H2B gene family \\nwas determined by Top Down Mass Spectrometry. Using Electron Capture \\nDissociation for MS/MS of H2B isoforms, direct evidence for the expression of \\nunmodified H2B.Q, H2B.A, H2B.K/T, H2B.J, H2B.E, H2B.B, H2B.F, and monoacetylated \\nH2B.A was obtained from asynchronous HeLa cells. H2B.A was the most abundant \\nform, with the overall expression profile not changing significantly in cells \\narrested in mitosis by colchicine or during mid-S, mid-G2, G2/M, and mid-G1 \\nphases of the cell cycle. Modest hyperacetylation of H2B family members was \\nobserved after sodium butyrate treatment. //\\n17103449 / P250R mutation in the FGFR3 gene also known as Muenke syndrome is associated \\nwith coronal craniosynostosis, sensorineural deafness, craniofacial, and digital \\nabnormalities. We report a family with this mutation associated with sudden \\ndeath in an affected newborn, most probably due to upper airway obstruction. //\\noutput: \\n'\n" - ] - }, - { - "name": "stderr", - "output_type": "stream", - "text": [ - "INFO:httpx:HTTP Request: POST https://api.mistral.ai/v1/embeddings \"HTTP/1.1 200 OK\"\n", - "INFO:httpx:HTTP Request: POST https://api.mistral.ai/v1/chat/completions \"HTTP/1.1 200 OK\"\n" - ] - }, - { - "name": "stdout", - "output_type": "stream", - "text": [ - "start parsing ```json\n", - "{\n", - " \"reason\": \"The context provided does not seem to be relevant to the question about Sorafenib and AMPK activation, as it discusses familial craniosynostosis and a specific gene mutation. The answer cannot be verified as true or false based on this context.\",\n", - " \"verdict\": 0\n", - "}\n", - "``` with prompt prompt_str='Given question, answer and context verify if the context was useful in arriving at the given answer. Give verdict as \"1\" if useful and \"0\" if not with json output.\\n\\nThe output should be a well-formatted JSON instance that conforms to the JSON schema below.\\n\\nAs an example, for the schema {\"properties\": {\"foo\": {\"title\": \"Foo\", \"description\": \"a list of strings\", \"type\": \"array\", \"items\": {\"type\": \"string\"}}}, \"required\": [\"foo\"]}\\nthe object {\"foo\": [\"bar\", \"baz\"]} is a well-formatted instance of the schema. The object {\"properties\": {\"foo\": [\"bar\", \"baz\"]}} is not well-formatted.\\n\\nHere is the output JSON schema:\\n```\\n{\"description\": \"Answer for the verification task wether the context was useful.\", \"type\": \"object\", \"properties\": {\"reason\": {\"title\": \"Reason\", \"description\": \"Reason for verification\", \"type\": \"string\"}, \"verdict\": {\"title\": \"Verdict\", \"description\": \"Binary (0/1) verdict of verification\", \"type\": \"integer\"}}, \"required\": [\"reason\", \"verdict\"]}\\n```\\n\\nDo not return any preamble or explanations, return only a pure JSON string surrounded by triple backticks (```).\\n\\nExamples:\\n\\nquestion: \"What can you tell me about albert Albert Einstein?\"\\ncontext: \"Albert Einstein (14 March 1879 – 18 April 1955) was a German-born theoretical physicist, widely held to be one of the greatest and most influential scientists of all time. Best known for developing the theory of relativity, he also made important contributions to quantum mechanics, and was thus a central figure in the revolutionary reshaping of the scientific understanding of nature that modern physics accomplished in the first decades of the twentieth century. His mass–energy equivalence formula E = mc2, which arises from relativity theory, has been called \\\\\"the world\\'s most famous equation\\\\\". He received the 1921 Nobel Prize in Physics \\\\\"for his services to theoretical physics, and especially for his discovery of the law of the photoelectric effect\\\\\", a pivotal step in the development of quantum theory. His work is also known for its influence on the philosophy of science. In a 1999 poll of 130 leading physicists worldwide by the British journal Physics World, Einstein was ranked the greatest physicist of all time. His intellectual achievements and originality have made Einstein synonymous with genius.\"\\nanswer: \"Albert Einstein born in 14 March 1879 was German-born theoretical physicist, widely held to be one of the greatest and most influential scientists of all time. He received the 1921 Nobel Prize in Physics for his services to theoretical physics. He published 4 papers in 1905. Einstein moved to Switzerland in 1895\"\\nverification: ```{\"reason\": \"The provided context was indeed useful in arriving at the given answer. The context includes key information about Albert Einstein\\'s life and contributions, which are reflected in the answer.\", \"verdict\": 1}```\\n\\nquestion: \"who won 2020 icc world cup?\"\\ncontext: \"The 2022 ICC Men\\'s T20 World Cup, held from October 16 to November 13, 2022, in Australia, was the eighth edition of the tournament. Originally scheduled for 2020, it was postponed due to the COVID-19 pandemic. England emerged victorious, defeating Pakistan by five wickets in the final to clinch their second ICC Men\\'s T20 World Cup title.\"\\nanswer: \"England\"\\nverification: ```{\"reason\": \"the context was useful in clarifying the situation regarding the 2020 ICC World Cup and indicating that England was the winner of the tournament that was intended to be held in 2020 but actually took place in 2022.\", \"verdict\": 1}```\\n\\nquestion: \"What is the tallest mountain in the world?\"\\ncontext: \"The Andes is the longest continental mountain range in the world, located in South America. It stretches across seven countries and features many of the highest peaks in the Western Hemisphere. The range is known for its diverse ecosystems, including the high-altitude Andean Plateau and the Amazon rainforest.\"\\nanswer: \"Mount Everest.\"\\nverification: ```{\"reason\": \"the provided context discusses the Andes mountain range, which, while impressive, does not include Mount Everest or directly relate to the question about the world\\'s tallest mountain.\", \"verdict\": 0}```\\n\\nYour actual task:\\n\\nquestion: Can sorafenib activate AMPK?\\ncontext: 11428324 / Familial craniosynostosis due to Pro250Arg mutation in the fibroblast growth \\nfactor receptor 3 gene. //\\nanswer: Sorafenib induces persisten AMPK activation\\nverification: \\n'\n" - ] - }, - { - "name": "stderr", - "output_type": "stream", - "text": [ - "INFO:httpx:HTTP Request: POST https://api.mistral.ai/v1/chat/completions \"HTTP/1.1 200 OK\"\n" - ] - }, - { - "name": "stdout", - "output_type": "stream", - "text": [ - "start parsing ```json\n", - "{\n", - " \"reason\": \"The provided context does not contain any information about sorafenib or AMPK, making it impossible to determine if the context was useful in arriving at the given answer.\",\n", - " \"verdict\": 0\n", - "}\n", - "``` with prompt prompt_str='Given question, answer and context verify if the context was useful in arriving at the given answer. Give verdict as \"1\" if useful and \"0\" if not with json output.\\n\\nThe output should be a well-formatted JSON instance that conforms to the JSON schema below.\\n\\nAs an example, for the schema {\"properties\": {\"foo\": {\"title\": \"Foo\", \"description\": \"a list of strings\", \"type\": \"array\", \"items\": {\"type\": \"string\"}}}, \"required\": [\"foo\"]}\\nthe object {\"foo\": [\"bar\", \"baz\"]} is a well-formatted instance of the schema. The object {\"properties\": {\"foo\": [\"bar\", \"baz\"]}} is not well-formatted.\\n\\nHere is the output JSON schema:\\n```\\n{\"description\": \"Answer for the verification task wether the context was useful.\", \"type\": \"object\", \"properties\": {\"reason\": {\"title\": \"Reason\", \"description\": \"Reason for verification\", \"type\": \"string\"}, \"verdict\": {\"title\": \"Verdict\", \"description\": \"Binary (0/1) verdict of verification\", \"type\": \"integer\"}}, \"required\": [\"reason\", \"verdict\"]}\\n```\\n\\nDo not return any preamble or explanations, return only a pure JSON string surrounded by triple backticks (```).\\n\\nExamples:\\n\\nquestion: \"What can you tell me about albert Albert Einstein?\"\\ncontext: \"Albert Einstein (14 March 1879 – 18 April 1955) was a German-born theoretical physicist, widely held to be one of the greatest and most influential scientists of all time. Best known for developing the theory of relativity, he also made important contributions to quantum mechanics, and was thus a central figure in the revolutionary reshaping of the scientific understanding of nature that modern physics accomplished in the first decades of the twentieth century. His mass–energy equivalence formula E = mc2, which arises from relativity theory, has been called \\\\\"the world\\'s most famous equation\\\\\". He received the 1921 Nobel Prize in Physics \\\\\"for his services to theoretical physics, and especially for his discovery of the law of the photoelectric effect\\\\\", a pivotal step in the development of quantum theory. His work is also known for its influence on the philosophy of science. In a 1999 poll of 130 leading physicists worldwide by the British journal Physics World, Einstein was ranked the greatest physicist of all time. His intellectual achievements and originality have made Einstein synonymous with genius.\"\\nanswer: \"Albert Einstein born in 14 March 1879 was German-born theoretical physicist, widely held to be one of the greatest and most influential scientists of all time. He received the 1921 Nobel Prize in Physics for his services to theoretical physics. He published 4 papers in 1905. Einstein moved to Switzerland in 1895\"\\nverification: ```{\"reason\": \"The provided context was indeed useful in arriving at the given answer. The context includes key information about Albert Einstein\\'s life and contributions, which are reflected in the answer.\", \"verdict\": 1}```\\n\\nquestion: \"who won 2020 icc world cup?\"\\ncontext: \"The 2022 ICC Men\\'s T20 World Cup, held from October 16 to November 13, 2022, in Australia, was the eighth edition of the tournament. Originally scheduled for 2020, it was postponed due to the COVID-19 pandemic. England emerged victorious, defeating Pakistan by five wickets in the final to clinch their second ICC Men\\'s T20 World Cup title.\"\\nanswer: \"England\"\\nverification: ```{\"reason\": \"the context was useful in clarifying the situation regarding the 2020 ICC World Cup and indicating that England was the winner of the tournament that was intended to be held in 2020 but actually took place in 2022.\", \"verdict\": 1}```\\n\\nquestion: \"What is the tallest mountain in the world?\"\\ncontext: \"The Andes is the longest continental mountain range in the world, located in South America. It stretches across seven countries and features many of the highest peaks in the Western Hemisphere. The range is known for its diverse ecosystems, including the high-altitude Andean Plateau and the Amazon rainforest.\"\\nanswer: \"Mount Everest.\"\\nverification: ```{\"reason\": \"the provided context discusses the Andes mountain range, which, while impressive, does not include Mount Everest or directly relate to the question about the world\\'s tallest mountain.\", \"verdict\": 0}```\\n\\nYour actual task:\\n\\nquestion: Can sorafenib activate AMPK?\\ncontext: 15683664 / Skin side effects following XRT take place more often in patients with skin \\ndisorders. In this study six patients with psoriatic lesions were evaluated. The \\ntotal/daily XRT dose to the tumor site was 50-70/1.8-2.0 Gy. No debilitating \\neffect of XRT was observed in both the psoriatic lesions and in the surrounding \\nnormal skin. //\\nanswer: Sorafenib induces persisten AMPK activation\\nverification: \\n'\n" - ] - }, - { - "name": "stderr", - "output_type": "stream", - "text": [ - "INFO:httpx:HTTP Request: POST https://api.mistral.ai/v1/chat/completions \"HTTP/1.1 200 OK\"\n" - ] - }, - { - "name": "stdout", - "output_type": "stream", - "text": [ - "start parsing ```json\n", - "{\n", - " \"reason\": \"The provided context does not seem to be relevant to the question about sorafenib and AMPK activation, as it discusses a study on mobile phone use and acoustic neuroma risk. The answer cannot be verified using this context.\",\n", - " \"verdict\": 0\n", - "}\n", - "``` with prompt prompt_str='Given question, answer and context verify if the context was useful in arriving at the given answer. Give verdict as \"1\" if useful and \"0\" if not with json output.\\n\\nThe output should be a well-formatted JSON instance that conforms to the JSON schema below.\\n\\nAs an example, for the schema {\"properties\": {\"foo\": {\"title\": \"Foo\", \"description\": \"a list of strings\", \"type\": \"array\", \"items\": {\"type\": \"string\"}}}, \"required\": [\"foo\"]}\\nthe object {\"foo\": [\"bar\", \"baz\"]} is a well-formatted instance of the schema. The object {\"properties\": {\"foo\": [\"bar\", \"baz\"]}} is not well-formatted.\\n\\nHere is the output JSON schema:\\n```\\n{\"description\": \"Answer for the verification task wether the context was useful.\", \"type\": \"object\", \"properties\": {\"reason\": {\"title\": \"Reason\", \"description\": \"Reason for verification\", \"type\": \"string\"}, \"verdict\": {\"title\": \"Verdict\", \"description\": \"Binary (0/1) verdict of verification\", \"type\": \"integer\"}}, \"required\": [\"reason\", \"verdict\"]}\\n```\\n\\nDo not return any preamble or explanations, return only a pure JSON string surrounded by triple backticks (```).\\n\\nExamples:\\n\\nquestion: \"What can you tell me about albert Albert Einstein?\"\\ncontext: \"Albert Einstein (14 March 1879 – 18 April 1955) was a German-born theoretical physicist, widely held to be one of the greatest and most influential scientists of all time. Best known for developing the theory of relativity, he also made important contributions to quantum mechanics, and was thus a central figure in the revolutionary reshaping of the scientific understanding of nature that modern physics accomplished in the first decades of the twentieth century. His mass–energy equivalence formula E = mc2, which arises from relativity theory, has been called \\\\\"the world\\'s most famous equation\\\\\". He received the 1921 Nobel Prize in Physics \\\\\"for his services to theoretical physics, and especially for his discovery of the law of the photoelectric effect\\\\\", a pivotal step in the development of quantum theory. His work is also known for its influence on the philosophy of science. In a 1999 poll of 130 leading physicists worldwide by the British journal Physics World, Einstein was ranked the greatest physicist of all time. His intellectual achievements and originality have made Einstein synonymous with genius.\"\\nanswer: \"Albert Einstein born in 14 March 1879 was German-born theoretical physicist, widely held to be one of the greatest and most influential scientists of all time. He received the 1921 Nobel Prize in Physics for his services to theoretical physics. He published 4 papers in 1905. Einstein moved to Switzerland in 1895\"\\nverification: ```{\"reason\": \"The provided context was indeed useful in arriving at the given answer. The context includes key information about Albert Einstein\\'s life and contributions, which are reflected in the answer.\", \"verdict\": 1}```\\n\\nquestion: \"who won 2020 icc world cup?\"\\ncontext: \"The 2022 ICC Men\\'s T20 World Cup, held from October 16 to November 13, 2022, in Australia, was the eighth edition of the tournament. Originally scheduled for 2020, it was postponed due to the COVID-19 pandemic. England emerged victorious, defeating Pakistan by five wickets in the final to clinch their second ICC Men\\'s T20 World Cup title.\"\\nanswer: \"England\"\\nverification: ```{\"reason\": \"the context was useful in clarifying the situation regarding the 2020 ICC World Cup and indicating that England was the winner of the tournament that was intended to be held in 2020 but actually took place in 2022.\", \"verdict\": 1}```\\n\\nquestion: \"What is the tallest mountain in the world?\"\\ncontext: \"The Andes is the longest continental mountain range in the world, located in South America. It stretches across seven countries and features many of the highest peaks in the Western Hemisphere. The range is known for its diverse ecosystems, including the high-altitude Andean Plateau and the Amazon rainforest.\"\\nanswer: \"Mount Everest.\"\\nverification: ```{\"reason\": \"the provided context discusses the Andes mountain range, which, while impressive, does not include Mount Everest or directly relate to the question about the world\\'s tallest mountain.\", \"verdict\": 0}```\\n\\nYour actual task:\\n\\nquestion: Can sorafenib activate AMPK?\\ncontext: 16570042 / Mobile phone use and risk of acoustic neuroma: results of the interphone \\ncase-control study in five north European countries [corrected]. //\\nanswer: Sorafenib induces persisten AMPK activation\\nverification: \\n'\n" - ] - }, - { - "name": "stderr", - "output_type": "stream", - "text": [ - "INFO:httpx:HTTP Request: POST https://api.mistral.ai/v1/chat/completions \"HTTP/1.1 200 OK\"\n" - ] - }, - { - "name": "stdout", - "output_type": "stream", - "text": [ - "start parsing ```json\n", - "{\n", - " \"reason\": \"The provided context does not contain any information about sorafenib or its ability to activate AMPK, making it not useful in arriving at the given answer.\",\n", - " \"verdict\": 0\n", - "}\n", - "``` with prompt prompt_str='Given question, answer and context verify if the context was useful in arriving at the given answer. Give verdict as \"1\" if useful and \"0\" if not with json output.\\n\\nThe output should be a well-formatted JSON instance that conforms to the JSON schema below.\\n\\nAs an example, for the schema {\"properties\": {\"foo\": {\"title\": \"Foo\", \"description\": \"a list of strings\", \"type\": \"array\", \"items\": {\"type\": \"string\"}}}, \"required\": [\"foo\"]}\\nthe object {\"foo\": [\"bar\", \"baz\"]} is a well-formatted instance of the schema. The object {\"properties\": {\"foo\": [\"bar\", \"baz\"]}} is not well-formatted.\\n\\nHere is the output JSON schema:\\n```\\n{\"description\": \"Answer for the verification task wether the context was useful.\", \"type\": \"object\", \"properties\": {\"reason\": {\"title\": \"Reason\", \"description\": \"Reason for verification\", \"type\": \"string\"}, \"verdict\": {\"title\": \"Verdict\", \"description\": \"Binary (0/1) verdict of verification\", \"type\": \"integer\"}}, \"required\": [\"reason\", \"verdict\"]}\\n```\\n\\nDo not return any preamble or explanations, return only a pure JSON string surrounded by triple backticks (```).\\n\\nExamples:\\n\\nquestion: \"What can you tell me about albert Albert Einstein?\"\\ncontext: \"Albert Einstein (14 March 1879 – 18 April 1955) was a German-born theoretical physicist, widely held to be one of the greatest and most influential scientists of all time. Best known for developing the theory of relativity, he also made important contributions to quantum mechanics, and was thus a central figure in the revolutionary reshaping of the scientific understanding of nature that modern physics accomplished in the first decades of the twentieth century. His mass–energy equivalence formula E = mc2, which arises from relativity theory, has been called \\\\\"the world\\'s most famous equation\\\\\". He received the 1921 Nobel Prize in Physics \\\\\"for his services to theoretical physics, and especially for his discovery of the law of the photoelectric effect\\\\\", a pivotal step in the development of quantum theory. His work is also known for its influence on the philosophy of science. In a 1999 poll of 130 leading physicists worldwide by the British journal Physics World, Einstein was ranked the greatest physicist of all time. His intellectual achievements and originality have made Einstein synonymous with genius.\"\\nanswer: \"Albert Einstein born in 14 March 1879 was German-born theoretical physicist, widely held to be one of the greatest and most influential scientists of all time. He received the 1921 Nobel Prize in Physics for his services to theoretical physics. He published 4 papers in 1905. Einstein moved to Switzerland in 1895\"\\nverification: ```{\"reason\": \"The provided context was indeed useful in arriving at the given answer. The context includes key information about Albert Einstein\\'s life and contributions, which are reflected in the answer.\", \"verdict\": 1}```\\n\\nquestion: \"who won 2020 icc world cup?\"\\ncontext: \"The 2022 ICC Men\\'s T20 World Cup, held from October 16 to November 13, 2022, in Australia, was the eighth edition of the tournament. Originally scheduled for 2020, it was postponed due to the COVID-19 pandemic. England emerged victorious, defeating Pakistan by five wickets in the final to clinch their second ICC Men\\'s T20 World Cup title.\"\\nanswer: \"England\"\\nverification: ```{\"reason\": \"the context was useful in clarifying the situation regarding the 2020 ICC World Cup and indicating that England was the winner of the tournament that was intended to be held in 2020 but actually took place in 2022.\", \"verdict\": 1}```\\n\\nquestion: \"What is the tallest mountain in the world?\"\\ncontext: \"The Andes is the longest continental mountain range in the world, located in South America. It stretches across seven countries and features many of the highest peaks in the Western Hemisphere. The range is known for its diverse ecosystems, including the high-altitude Andean Plateau and the Amazon rainforest.\"\\nanswer: \"Mount Everest.\"\\nverification: ```{\"reason\": \"the provided context discusses the Andes mountain range, which, while impressive, does not include Mount Everest or directly relate to the question about the world\\'s tallest mountain.\", \"verdict\": 0}```\\n\\nYour actual task:\\n\\nquestion: Can sorafenib activate AMPK?\\ncontext: 16457587 / The basis set of protein forms expressed by human cells from the H2B gene family \\nwas determined by Top Down Mass Spectrometry. Using Electron Capture \\nDissociation for MS/MS of H2B isoforms, direct evidence for the expression of \\nunmodified H2B.Q, H2B.A, H2B.K/T, H2B.J, H2B.E, H2B.B, H2B.F, and monoacetylated \\nH2B.A was obtained from asynchronous HeLa cells. H2B.A was the most abundant \\nform, with the overall expression profile not changing significantly in cells \\narrested in mitosis by colchicine or during mid-S, mid-G2, G2/M, and mid-G1 \\nphases of the cell cycle. Modest hyperacetylation of H2B family members was \\nobserved after sodium butyrate treatment. //\\nanswer: Sorafenib induces persisten AMPK activation\\nverification: \\n'\n" - ] - }, - { - "name": "stderr", - "output_type": "stream", - "text": [ - "INFO:httpx:HTTP Request: POST https://api.mistral.ai/v1/chat/completions \"HTTP/1.1 200 OK\"\n" - ] - }, - { - "name": "stdout", - "output_type": "stream", - "text": [ - "start parsing ```json\n", - "{\n", - " \"reason\": \"The context provided describes a case of Muenke syndrome and a family with a specific genetic mutation. While interesting, it does not provide any information about sorafenib or its ability to activate AMPK. Therefore, the context was not useful in arriving at the given answer.\",\n", - " \"verdict\": 0\n", - "}\n", - "``` with prompt prompt_str='Given question, answer and context verify if the context was useful in arriving at the given answer. Give verdict as \"1\" if useful and \"0\" if not with json output.\\n\\nThe output should be a well-formatted JSON instance that conforms to the JSON schema below.\\n\\nAs an example, for the schema {\"properties\": {\"foo\": {\"title\": \"Foo\", \"description\": \"a list of strings\", \"type\": \"array\", \"items\": {\"type\": \"string\"}}}, \"required\": [\"foo\"]}\\nthe object {\"foo\": [\"bar\", \"baz\"]} is a well-formatted instance of the schema. The object {\"properties\": {\"foo\": [\"bar\", \"baz\"]}} is not well-formatted.\\n\\nHere is the output JSON schema:\\n```\\n{\"description\": \"Answer for the verification task wether the context was useful.\", \"type\": \"object\", \"properties\": {\"reason\": {\"title\": \"Reason\", \"description\": \"Reason for verification\", \"type\": \"string\"}, \"verdict\": {\"title\": \"Verdict\", \"description\": \"Binary (0/1) verdict of verification\", \"type\": \"integer\"}}, \"required\": [\"reason\", \"verdict\"]}\\n```\\n\\nDo not return any preamble or explanations, return only a pure JSON string surrounded by triple backticks (```).\\n\\nExamples:\\n\\nquestion: \"What can you tell me about albert Albert Einstein?\"\\ncontext: \"Albert Einstein (14 March 1879 – 18 April 1955) was a German-born theoretical physicist, widely held to be one of the greatest and most influential scientists of all time. Best known for developing the theory of relativity, he also made important contributions to quantum mechanics, and was thus a central figure in the revolutionary reshaping of the scientific understanding of nature that modern physics accomplished in the first decades of the twentieth century. His mass–energy equivalence formula E = mc2, which arises from relativity theory, has been called \\\\\"the world\\'s most famous equation\\\\\". He received the 1921 Nobel Prize in Physics \\\\\"for his services to theoretical physics, and especially for his discovery of the law of the photoelectric effect\\\\\", a pivotal step in the development of quantum theory. His work is also known for its influence on the philosophy of science. In a 1999 poll of 130 leading physicists worldwide by the British journal Physics World, Einstein was ranked the greatest physicist of all time. His intellectual achievements and originality have made Einstein synonymous with genius.\"\\nanswer: \"Albert Einstein born in 14 March 1879 was German-born theoretical physicist, widely held to be one of the greatest and most influential scientists of all time. He received the 1921 Nobel Prize in Physics for his services to theoretical physics. He published 4 papers in 1905. Einstein moved to Switzerland in 1895\"\\nverification: ```{\"reason\": \"The provided context was indeed useful in arriving at the given answer. The context includes key information about Albert Einstein\\'s life and contributions, which are reflected in the answer.\", \"verdict\": 1}```\\n\\nquestion: \"who won 2020 icc world cup?\"\\ncontext: \"The 2022 ICC Men\\'s T20 World Cup, held from October 16 to November 13, 2022, in Australia, was the eighth edition of the tournament. Originally scheduled for 2020, it was postponed due to the COVID-19 pandemic. England emerged victorious, defeating Pakistan by five wickets in the final to clinch their second ICC Men\\'s T20 World Cup title.\"\\nanswer: \"England\"\\nverification: ```{\"reason\": \"the context was useful in clarifying the situation regarding the 2020 ICC World Cup and indicating that England was the winner of the tournament that was intended to be held in 2020 but actually took place in 2022.\", \"verdict\": 1}```\\n\\nquestion: \"What is the tallest mountain in the world?\"\\ncontext: \"The Andes is the longest continental mountain range in the world, located in South America. It stretches across seven countries and features many of the highest peaks in the Western Hemisphere. The range is known for its diverse ecosystems, including the high-altitude Andean Plateau and the Amazon rainforest.\"\\nanswer: \"Mount Everest.\"\\nverification: ```{\"reason\": \"the provided context discusses the Andes mountain range, which, while impressive, does not include Mount Everest or directly relate to the question about the world\\'s tallest mountain.\", \"verdict\": 0}```\\n\\nYour actual task:\\n\\nquestion: Can sorafenib activate AMPK?\\ncontext: 17103449 / P250R mutation in the FGFR3 gene also known as Muenke syndrome is associated \\nwith coronal craniosynostosis, sensorineural deafness, craniofacial, and digital \\nabnormalities. We report a family with this mutation associated with sudden \\ndeath in an affected newborn, most probably due to upper airway obstruction. //\\nanswer: Sorafenib induces persisten AMPK activation\\nverification: \\n'\n" - ] - }, - { - "name": "stderr", - "output_type": "stream", - "text": [ - "INFO:httpx:HTTP Request: POST https://api.mistral.ai/v1/chat/completions \"HTTP/1.1 200 OK\"\n", - "INFO:httpx:HTTP Request: POST https://api.mistral.ai/v1/chat/completions \"HTTP/1.1 200 OK\"\n", - "INFO:httpx:HTTP Request: POST https://api.mistral.ai/v1/chat/completions \"HTTP/1.1 200 OK\"\n" - ] - }, - { - "name": "stdout", - "output_type": "stream", - "text": [ - "start parsing `{\"question\": \"What is Ribociclib used for, and what enzyme does it inhibit?\", \"noncommittal\": 0}` with prompt prompt_str='Generate a question for the given answer and Identify if answer is noncommittal. Give noncommittal as 1 if the answer is noncommittal and 0 if the answer is committal. A noncommittal answer is one that is evasive, vague, or ambiguous. For example, \"I don\\'t know\" or \"I\\'m not sure\" are noncommittal answers\\n\\nThe output should be a well-formatted JSON instance that conforms to the JSON schema below.\\n\\nAs an example, for the schema {\"properties\": {\"foo\": {\"title\": \"Foo\", \"description\": \"a list of strings\", \"type\": \"array\", \"items\": {\"type\": \"string\"}}}, \"required\": [\"foo\"]}\\nthe object {\"foo\": [\"bar\", \"baz\"]} is a well-formatted instance of the schema. The object {\"properties\": {\"foo\": [\"bar\", \"baz\"]}} is not well-formatted.\\n\\nHere is the output JSON schema:\\n```\\n{\"type\": \"object\", \"properties\": {\"question\": {\"title\": \"Question\", \"type\": \"string\"}, \"noncommittal\": {\"title\": \"Noncommittal\", \"type\": \"integer\"}}, \"required\": [\"question\", \"noncommittal\"]}\\n```\\n\\nDo not return any preamble or explanations, return only a pure JSON string surrounded by triple backticks (```).\\n\\nExamples:\\n\\nanswer: \"Albert Einstein was born in Germany.\"\\ncontext: \"Albert Einstein was a German-born theoretical physicist who is widely held to be one of the greatest and most influential scientists of all time\"\\noutput: ```{\"question\": \"Where was Albert Einstein born?\", \"noncommittal\": 0}```\\n\\nanswer: \"It can change its skin color based on the temperature of its environment.\"\\ncontext: \"A recent scientific study has discovered a new species of frog in the Amazon rainforest that has the unique ability to change its skin color based on the temperature of its environment.\"\\noutput: ```{\"question\": \"What unique ability does the newly discovered species of frog have?\", \"noncommittal\": 0}```\\n\\nanswer: \"Everest\"\\ncontext: \"The tallest mountain on Earth, measured from sea level, is a renowned peak located in the Himalayas.\"\\noutput: ```{\"question\": \"What is the tallest mountain on Earth?\", \"noncommittal\": 0}```\\n\\nanswer: \"I don\\'t know about the groundbreaking feature of the smartphone invented in 2023 as am unaware of information beyond 2022. \"\\ncontext: \"In 2023, a groundbreaking invention was announced: a smartphone with a battery life of one month, revolutionizing the way people use mobile technology.\"\\noutput: ```{\"question\": \"What was the groundbreaking feature of the smartphone invented in 2023?\", \"noncommittal\": 1}```\\n\\nYour actual task:\\n\\nanswer: Ribociclib is a selective inhibitor of the enzyme CDK4 and CDK6, which are cyclin-dependent kinases that play a role in the regulation of the cell cycle. It is used in the treatment of certain types of breast cancer.\\ncontext: 11428324 / Familial craniosynostosis due to Pro250Arg mutation in the fibroblast growth \\nfactor receptor 3 gene. //\\n15683664 / Skin side effects following XRT take place more often in patients with skin \\ndisorders. In this study six patients with psoriatic lesions were evaluated. The \\ntotal/daily XRT dose to the tumor site was 50-70/1.8-2.0 Gy. No debilitating \\neffect of XRT was observed in both the psoriatic lesions and in the surrounding \\nnormal skin. //\\n16570042 / Mobile phone use and risk of acoustic neuroma: results of the interphone \\ncase-control study in five north European countries [corrected]. //\\n16457587 / The basis set of protein forms expressed by human cells from the H2B gene family \\nwas determined by Top Down Mass Spectrometry. Using Electron Capture \\nDissociation for MS/MS of H2B isoforms, direct evidence for the expression of \\nunmodified H2B.Q, H2B.A, H2B.K/T, H2B.J, H2B.E, H2B.B, H2B.F, and monoacetylated \\nH2B.A was obtained from asynchronous HeLa cells. H2B.A was the most abundant \\nform, with the overall expression profile not changing significantly in cells \\narrested in mitosis by colchicine or during mid-S, mid-G2, G2/M, and mid-G1 \\nphases of the cell cycle. Modest hyperacetylation of H2B family members was \\nobserved after sodium butyrate treatment. //\\n17103449 / P250R mutation in the FGFR3 gene also known as Muenke syndrome is associated \\nwith coronal craniosynostosis, sensorineural deafness, craniofacial, and digital \\nabnormalities. We report a family with this mutation associated with sudden \\ndeath in an affected newborn, most probably due to upper airway obstruction. //\\noutput: \\n'\n", - "start parsing `{\"question\": \"What is Ribociclib used for, and what enzyme does it inhibit?\", \"noncommittal\": 0}` with prompt prompt_str='Generate a question for the given answer and Identify if answer is noncommittal. Give noncommittal as 1 if the answer is noncommittal and 0 if the answer is committal. A noncommittal answer is one that is evasive, vague, or ambiguous. For example, \"I don\\'t know\" or \"I\\'m not sure\" are noncommittal answers\\n\\nThe output should be a well-formatted JSON instance that conforms to the JSON schema below.\\n\\nAs an example, for the schema {\"properties\": {\"foo\": {\"title\": \"Foo\", \"description\": \"a list of strings\", \"type\": \"array\", \"items\": {\"type\": \"string\"}}}, \"required\": [\"foo\"]}\\nthe object {\"foo\": [\"bar\", \"baz\"]} is a well-formatted instance of the schema. The object {\"properties\": {\"foo\": [\"bar\", \"baz\"]}} is not well-formatted.\\n\\nHere is the output JSON schema:\\n```\\n{\"type\": \"object\", \"properties\": {\"question\": {\"title\": \"Question\", \"type\": \"string\"}, \"noncommittal\": {\"title\": \"Noncommittal\", \"type\": \"integer\"}}, \"required\": [\"question\", \"noncommittal\"]}\\n```\\n\\nDo not return any preamble or explanations, return only a pure JSON string surrounded by triple backticks (```).\\n\\nExamples:\\n\\nanswer: \"Albert Einstein was born in Germany.\"\\ncontext: \"Albert Einstein was a German-born theoretical physicist who is widely held to be one of the greatest and most influential scientists of all time\"\\noutput: ```{\"question\": \"Where was Albert Einstein born?\", \"noncommittal\": 0}```\\n\\nanswer: \"It can change its skin color based on the temperature of its environment.\"\\ncontext: \"A recent scientific study has discovered a new species of frog in the Amazon rainforest that has the unique ability to change its skin color based on the temperature of its environment.\"\\noutput: ```{\"question\": \"What unique ability does the newly discovered species of frog have?\", \"noncommittal\": 0}```\\n\\nanswer: \"Everest\"\\ncontext: \"The tallest mountain on Earth, measured from sea level, is a renowned peak located in the Himalayas.\"\\noutput: ```{\"question\": \"What is the tallest mountain on Earth?\", \"noncommittal\": 0}```\\n\\nanswer: \"I don\\'t know about the groundbreaking feature of the smartphone invented in 2023 as am unaware of information beyond 2022. \"\\ncontext: \"In 2023, a groundbreaking invention was announced: a smartphone with a battery life of one month, revolutionizing the way people use mobile technology.\"\\noutput: ```{\"question\": \"What was the groundbreaking feature of the smartphone invented in 2023?\", \"noncommittal\": 1}```\\n\\nYour actual task:\\n\\nanswer: Ribociclib is a selective inhibitor of the enzyme CDK4 and CDK6, which are cyclin-dependent kinases that play a role in the regulation of the cell cycle. It is used in the treatment of certain types of breast cancer.\\ncontext: 11428324 / Familial craniosynostosis due to Pro250Arg mutation in the fibroblast growth \\nfactor receptor 3 gene. //\\n15683664 / Skin side effects following XRT take place more often in patients with skin \\ndisorders. In this study six patients with psoriatic lesions were evaluated. The \\ntotal/daily XRT dose to the tumor site was 50-70/1.8-2.0 Gy. No debilitating \\neffect of XRT was observed in both the psoriatic lesions and in the surrounding \\nnormal skin. //\\n16570042 / Mobile phone use and risk of acoustic neuroma: results of the interphone \\ncase-control study in five north European countries [corrected]. //\\n16457587 / The basis set of protein forms expressed by human cells from the H2B gene family \\nwas determined by Top Down Mass Spectrometry. Using Electron Capture \\nDissociation for MS/MS of H2B isoforms, direct evidence for the expression of \\nunmodified H2B.Q, H2B.A, H2B.K/T, H2B.J, H2B.E, H2B.B, H2B.F, and monoacetylated \\nH2B.A was obtained from asynchronous HeLa cells. H2B.A was the most abundant \\nform, with the overall expression profile not changing significantly in cells \\narrested in mitosis by colchicine or during mid-S, mid-G2, G2/M, and mid-G1 \\nphases of the cell cycle. Modest hyperacetylation of H2B family members was \\nobserved after sodium butyrate treatment. //\\n17103449 / P250R mutation in the FGFR3 gene also known as Muenke syndrome is associated \\nwith coronal craniosynostosis, sensorineural deafness, craniofacial, and digital \\nabnormalities. We report a family with this mutation associated with sudden \\ndeath in an affected newborn, most probably due to upper airway obstruction. //\\noutput: \\n'\n", - "start parsing `{\"question\": \"What is Ribociclib used for, and what enzyme does it inhibit?\", \"noncommittal\": 0}` with prompt prompt_str='Generate a question for the given answer and Identify if answer is noncommittal. Give noncommittal as 1 if the answer is noncommittal and 0 if the answer is committal. A noncommittal answer is one that is evasive, vague, or ambiguous. For example, \"I don\\'t know\" or \"I\\'m not sure\" are noncommittal answers\\n\\nThe output should be a well-formatted JSON instance that conforms to the JSON schema below.\\n\\nAs an example, for the schema {\"properties\": {\"foo\": {\"title\": \"Foo\", \"description\": \"a list of strings\", \"type\": \"array\", \"items\": {\"type\": \"string\"}}}, \"required\": [\"foo\"]}\\nthe object {\"foo\": [\"bar\", \"baz\"]} is a well-formatted instance of the schema. The object {\"properties\": {\"foo\": [\"bar\", \"baz\"]}} is not well-formatted.\\n\\nHere is the output JSON schema:\\n```\\n{\"type\": \"object\", \"properties\": {\"question\": {\"title\": \"Question\", \"type\": \"string\"}, \"noncommittal\": {\"title\": \"Noncommittal\", \"type\": \"integer\"}}, \"required\": [\"question\", \"noncommittal\"]}\\n```\\n\\nDo not return any preamble or explanations, return only a pure JSON string surrounded by triple backticks (```).\\n\\nExamples:\\n\\nanswer: \"Albert Einstein was born in Germany.\"\\ncontext: \"Albert Einstein was a German-born theoretical physicist who is widely held to be one of the greatest and most influential scientists of all time\"\\noutput: ```{\"question\": \"Where was Albert Einstein born?\", \"noncommittal\": 0}```\\n\\nanswer: \"It can change its skin color based on the temperature of its environment.\"\\ncontext: \"A recent scientific study has discovered a new species of frog in the Amazon rainforest that has the unique ability to change its skin color based on the temperature of its environment.\"\\noutput: ```{\"question\": \"What unique ability does the newly discovered species of frog have?\", \"noncommittal\": 0}```\\n\\nanswer: \"Everest\"\\ncontext: \"The tallest mountain on Earth, measured from sea level, is a renowned peak located in the Himalayas.\"\\noutput: ```{\"question\": \"What is the tallest mountain on Earth?\", \"noncommittal\": 0}```\\n\\nanswer: \"I don\\'t know about the groundbreaking feature of the smartphone invented in 2023 as am unaware of information beyond 2022. \"\\ncontext: \"In 2023, a groundbreaking invention was announced: a smartphone with a battery life of one month, revolutionizing the way people use mobile technology.\"\\noutput: ```{\"question\": \"What was the groundbreaking feature of the smartphone invented in 2023?\", \"noncommittal\": 1}```\\n\\nYour actual task:\\n\\nanswer: Ribociclib is a selective inhibitor of the enzyme CDK4 and CDK6, which are cyclin-dependent kinases that play a role in the regulation of the cell cycle. It is used in the treatment of certain types of breast cancer.\\ncontext: 11428324 / Familial craniosynostosis due to Pro250Arg mutation in the fibroblast growth \\nfactor receptor 3 gene. //\\n15683664 / Skin side effects following XRT take place more often in patients with skin \\ndisorders. In this study six patients with psoriatic lesions were evaluated. The \\ntotal/daily XRT dose to the tumor site was 50-70/1.8-2.0 Gy. No debilitating \\neffect of XRT was observed in both the psoriatic lesions and in the surrounding \\nnormal skin. //\\n16570042 / Mobile phone use and risk of acoustic neuroma: results of the interphone \\ncase-control study in five north European countries [corrected]. //\\n16457587 / The basis set of protein forms expressed by human cells from the H2B gene family \\nwas determined by Top Down Mass Spectrometry. Using Electron Capture \\nDissociation for MS/MS of H2B isoforms, direct evidence for the expression of \\nunmodified H2B.Q, H2B.A, H2B.K/T, H2B.J, H2B.E, H2B.B, H2B.F, and monoacetylated \\nH2B.A was obtained from asynchronous HeLa cells. H2B.A was the most abundant \\nform, with the overall expression profile not changing significantly in cells \\narrested in mitosis by colchicine or during mid-S, mid-G2, G2/M, and mid-G1 \\nphases of the cell cycle. Modest hyperacetylation of H2B family members was \\nobserved after sodium butyrate treatment. //\\n17103449 / P250R mutation in the FGFR3 gene also known as Muenke syndrome is associated \\nwith coronal craniosynostosis, sensorineural deafness, craniofacial, and digital \\nabnormalities. We report a family with this mutation associated with sudden \\ndeath in an affected newborn, most probably due to upper airway obstruction. //\\noutput: \\n'\n" - ] - }, - { - "name": "stderr", - "output_type": "stream", - "text": [ - "INFO:httpx:HTTP Request: POST https://api.mistral.ai/v1/embeddings \"HTTP/1.1 200 OK\"\n", - "INFO:httpx:HTTP Request: POST https://api.mistral.ai/v1/embeddings \"HTTP/1.1 200 OK\"\n", - "INFO:httpx:HTTP Request: POST https://api.mistral.ai/v1/embeddings \"HTTP/1.1 200 OK\"\n", - "INFO:httpx:HTTP Request: POST https://api.mistral.ai/v1/embeddings \"HTTP/1.1 200 OK\"\n", - "INFO:httpx:HTTP Request: POST https://api.mistral.ai/v1/embeddings \"HTTP/1.1 200 OK\"\n", - "INFO:httpx:HTTP Request: POST https://api.mistral.ai/v1/embeddings \"HTTP/1.1 200 OK\"\n", - "INFO:httpx:HTTP Request: POST https://api.mistral.ai/v1/embeddings \"HTTP/1.1 200 OK\"\n", - "INFO:httpx:HTTP Request: POST https://api.mistral.ai/v1/embeddings \"HTTP/1.1 200 OK\"\n", - "INFO:httpx:HTTP Request: POST https://api.mistral.ai/v1/chat/completions \"HTTP/1.1 200 OK\"\n" - ] - }, - { - "name": "stdout", - "output_type": "stream", - "text": [ - "start parsing ```json\n", - "{\n", - " \"reason\": \"The context provided is not related to the question as it discusses familial craniosynostosis and a specific genetic mutation, while the question is about a possible connection between gastro esophageal reflux and burning mouth syndrome. The answer, which states that there is no data indicating a causal connection, also does not seem to be based on the provided context.\",\n", - " \"verdict\": 0\n", - "}\n", - "``` with prompt prompt_str='Given question, answer and context verify if the context was useful in arriving at the given answer. Give verdict as \"1\" if useful and \"0\" if not with json output.\\n\\nThe output should be a well-formatted JSON instance that conforms to the JSON schema below.\\n\\nAs an example, for the schema {\"properties\": {\"foo\": {\"title\": \"Foo\", \"description\": \"a list of strings\", \"type\": \"array\", \"items\": {\"type\": \"string\"}}}, \"required\": [\"foo\"]}\\nthe object {\"foo\": [\"bar\", \"baz\"]} is a well-formatted instance of the schema. The object {\"properties\": {\"foo\": [\"bar\", \"baz\"]}} is not well-formatted.\\n\\nHere is the output JSON schema:\\n```\\n{\"description\": \"Answer for the verification task wether the context was useful.\", \"type\": \"object\", \"properties\": {\"reason\": {\"title\": \"Reason\", \"description\": \"Reason for verification\", \"type\": \"string\"}, \"verdict\": {\"title\": \"Verdict\", \"description\": \"Binary (0/1) verdict of verification\", \"type\": \"integer\"}}, \"required\": [\"reason\", \"verdict\"]}\\n```\\n\\nDo not return any preamble or explanations, return only a pure JSON string surrounded by triple backticks (```).\\n\\nExamples:\\n\\nquestion: \"What can you tell me about albert Albert Einstein?\"\\ncontext: \"Albert Einstein (14 March 1879 – 18 April 1955) was a German-born theoretical physicist, widely held to be one of the greatest and most influential scientists of all time. Best known for developing the theory of relativity, he also made important contributions to quantum mechanics, and was thus a central figure in the revolutionary reshaping of the scientific understanding of nature that modern physics accomplished in the first decades of the twentieth century. His mass–energy equivalence formula E = mc2, which arises from relativity theory, has been called \\\\\"the world\\'s most famous equation\\\\\". He received the 1921 Nobel Prize in Physics \\\\\"for his services to theoretical physics, and especially for his discovery of the law of the photoelectric effect\\\\\", a pivotal step in the development of quantum theory. His work is also known for its influence on the philosophy of science. In a 1999 poll of 130 leading physicists worldwide by the British journal Physics World, Einstein was ranked the greatest physicist of all time. His intellectual achievements and originality have made Einstein synonymous with genius.\"\\nanswer: \"Albert Einstein born in 14 March 1879 was German-born theoretical physicist, widely held to be one of the greatest and most influential scientists of all time. He received the 1921 Nobel Prize in Physics for his services to theoretical physics. He published 4 papers in 1905. Einstein moved to Switzerland in 1895\"\\nverification: ```{\"reason\": \"The provided context was indeed useful in arriving at the given answer. The context includes key information about Albert Einstein\\'s life and contributions, which are reflected in the answer.\", \"verdict\": 1}```\\n\\nquestion: \"who won 2020 icc world cup?\"\\ncontext: \"The 2022 ICC Men\\'s T20 World Cup, held from October 16 to November 13, 2022, in Australia, was the eighth edition of the tournament. Originally scheduled for 2020, it was postponed due to the COVID-19 pandemic. England emerged victorious, defeating Pakistan by five wickets in the final to clinch their second ICC Men\\'s T20 World Cup title.\"\\nanswer: \"England\"\\nverification: ```{\"reason\": \"the context was useful in clarifying the situation regarding the 2020 ICC World Cup and indicating that England was the winner of the tournament that was intended to be held in 2020 but actually took place in 2022.\", \"verdict\": 1}```\\n\\nquestion: \"What is the tallest mountain in the world?\"\\ncontext: \"The Andes is the longest continental mountain range in the world, located in South America. It stretches across seven countries and features many of the highest peaks in the Western Hemisphere. The range is known for its diverse ecosystems, including the high-altitude Andean Plateau and the Amazon rainforest.\"\\nanswer: \"Mount Everest.\"\\nverification: ```{\"reason\": \"the provided context discusses the Andes mountain range, which, while impressive, does not include Mount Everest or directly relate to the question about the world\\'s tallest mountain.\", \"verdict\": 0}```\\n\\nYour actual task:\\n\\nquestion: Is gastro esophageal reflux related to burning mouth syndrome?\\ncontext: 11428324 / Familial craniosynostosis due to Pro250Arg mutation in the fibroblast growth \\nfactor receptor 3 gene. //\\nanswer: No data indicate causal connection between gastro esophageal/laryngopharyngeal(LPR) reflux disease and the occurrence of intraoral burning sensations\\nverification: \\n'\n" - ] - }, - { - "name": "stderr", - "output_type": "stream", - "text": [ - "INFO:httpx:HTTP Request: POST https://api.mistral.ai/v1/chat/completions \"HTTP/1.1 200 OK\"\n" - ] - }, - { - "name": "stdout", - "output_type": "stream", - "text": [ - "start parsing ```json\n", - "{\n", - " \"reason\": \"The context provided does not discuss gastro esophageal reflux or burning mouth syndrome, and therefore it was not useful in arriving at the given answer.\",\n", - " \"verdict\": 0\n", - "}\n", - "``` with prompt prompt_str='Given question, answer and context verify if the context was useful in arriving at the given answer. Give verdict as \"1\" if useful and \"0\" if not with json output.\\n\\nThe output should be a well-formatted JSON instance that conforms to the JSON schema below.\\n\\nAs an example, for the schema {\"properties\": {\"foo\": {\"title\": \"Foo\", \"description\": \"a list of strings\", \"type\": \"array\", \"items\": {\"type\": \"string\"}}}, \"required\": [\"foo\"]}\\nthe object {\"foo\": [\"bar\", \"baz\"]} is a well-formatted instance of the schema. The object {\"properties\": {\"foo\": [\"bar\", \"baz\"]}} is not well-formatted.\\n\\nHere is the output JSON schema:\\n```\\n{\"description\": \"Answer for the verification task wether the context was useful.\", \"type\": \"object\", \"properties\": {\"reason\": {\"title\": \"Reason\", \"description\": \"Reason for verification\", \"type\": \"string\"}, \"verdict\": {\"title\": \"Verdict\", \"description\": \"Binary (0/1) verdict of verification\", \"type\": \"integer\"}}, \"required\": [\"reason\", \"verdict\"]}\\n```\\n\\nDo not return any preamble or explanations, return only a pure JSON string surrounded by triple backticks (```).\\n\\nExamples:\\n\\nquestion: \"What can you tell me about albert Albert Einstein?\"\\ncontext: \"Albert Einstein (14 March 1879 – 18 April 1955) was a German-born theoretical physicist, widely held to be one of the greatest and most influential scientists of all time. Best known for developing the theory of relativity, he also made important contributions to quantum mechanics, and was thus a central figure in the revolutionary reshaping of the scientific understanding of nature that modern physics accomplished in the first decades of the twentieth century. His mass–energy equivalence formula E = mc2, which arises from relativity theory, has been called \\\\\"the world\\'s most famous equation\\\\\". He received the 1921 Nobel Prize in Physics \\\\\"for his services to theoretical physics, and especially for his discovery of the law of the photoelectric effect\\\\\", a pivotal step in the development of quantum theory. His work is also known for its influence on the philosophy of science. In a 1999 poll of 130 leading physicists worldwide by the British journal Physics World, Einstein was ranked the greatest physicist of all time. His intellectual achievements and originality have made Einstein synonymous with genius.\"\\nanswer: \"Albert Einstein born in 14 March 1879 was German-born theoretical physicist, widely held to be one of the greatest and most influential scientists of all time. He received the 1921 Nobel Prize in Physics for his services to theoretical physics. He published 4 papers in 1905. Einstein moved to Switzerland in 1895\"\\nverification: ```{\"reason\": \"The provided context was indeed useful in arriving at the given answer. The context includes key information about Albert Einstein\\'s life and contributions, which are reflected in the answer.\", \"verdict\": 1}```\\n\\nquestion: \"who won 2020 icc world cup?\"\\ncontext: \"The 2022 ICC Men\\'s T20 World Cup, held from October 16 to November 13, 2022, in Australia, was the eighth edition of the tournament. Originally scheduled for 2020, it was postponed due to the COVID-19 pandemic. England emerged victorious, defeating Pakistan by five wickets in the final to clinch their second ICC Men\\'s T20 World Cup title.\"\\nanswer: \"England\"\\nverification: ```{\"reason\": \"the context was useful in clarifying the situation regarding the 2020 ICC World Cup and indicating that England was the winner of the tournament that was intended to be held in 2020 but actually took place in 2022.\", \"verdict\": 1}```\\n\\nquestion: \"What is the tallest mountain in the world?\"\\ncontext: \"The Andes is the longest continental mountain range in the world, located in South America. It stretches across seven countries and features many of the highest peaks in the Western Hemisphere. The range is known for its diverse ecosystems, including the high-altitude Andean Plateau and the Amazon rainforest.\"\\nanswer: \"Mount Everest.\"\\nverification: ```{\"reason\": \"the provided context discusses the Andes mountain range, which, while impressive, does not include Mount Everest or directly relate to the question about the world\\'s tallest mountain.\", \"verdict\": 0}```\\n\\nYour actual task:\\n\\nquestion: Is gastro esophageal reflux related to burning mouth syndrome?\\ncontext: 15683664 / Skin side effects following XRT take place more often in patients with skin \\ndisorders. In this study six patients with psoriatic lesions were evaluated. The \\ntotal/daily XRT dose to the tumor site was 50-70/1.8-2.0 Gy. No debilitating \\neffect of XRT was observed in both the psoriatic lesions and in the surrounding \\nnormal skin. //\\nanswer: No data indicate causal connection between gastro esophageal/laryngopharyngeal(LPR) reflux disease and the occurrence of intraoral burning sensations\\nverification: \\n'\n" - ] - }, - { - "name": "stderr", - "output_type": "stream", - "text": [ - "INFO:httpx:HTTP Request: POST https://api.mistral.ai/v1/chat/completions \"HTTP/1.1 200 OK\"\n" - ] - }, - { - "name": "stdout", - "output_type": "stream", - "text": [ - "start parsing ```json\n", - "{\n", - " \"reason\": \"The context provided is a study on mobile phone use and risk of acoustic neuroma, which does not mention or discuss any connection between gastro esophageal reflux and burning mouth syndrome. The answer is also not supported by the context.\",\n", - " \"verdict\": 0\n", - "}\n", - "``` with prompt prompt_str='Given question, answer and context verify if the context was useful in arriving at the given answer. Give verdict as \"1\" if useful and \"0\" if not with json output.\\n\\nThe output should be a well-formatted JSON instance that conforms to the JSON schema below.\\n\\nAs an example, for the schema {\"properties\": {\"foo\": {\"title\": \"Foo\", \"description\": \"a list of strings\", \"type\": \"array\", \"items\": {\"type\": \"string\"}}}, \"required\": [\"foo\"]}\\nthe object {\"foo\": [\"bar\", \"baz\"]} is a well-formatted instance of the schema. The object {\"properties\": {\"foo\": [\"bar\", \"baz\"]}} is not well-formatted.\\n\\nHere is the output JSON schema:\\n```\\n{\"description\": \"Answer for the verification task wether the context was useful.\", \"type\": \"object\", \"properties\": {\"reason\": {\"title\": \"Reason\", \"description\": \"Reason for verification\", \"type\": \"string\"}, \"verdict\": {\"title\": \"Verdict\", \"description\": \"Binary (0/1) verdict of verification\", \"type\": \"integer\"}}, \"required\": [\"reason\", \"verdict\"]}\\n```\\n\\nDo not return any preamble or explanations, return only a pure JSON string surrounded by triple backticks (```).\\n\\nExamples:\\n\\nquestion: \"What can you tell me about albert Albert Einstein?\"\\ncontext: \"Albert Einstein (14 March 1879 – 18 April 1955) was a German-born theoretical physicist, widely held to be one of the greatest and most influential scientists of all time. Best known for developing the theory of relativity, he also made important contributions to quantum mechanics, and was thus a central figure in the revolutionary reshaping of the scientific understanding of nature that modern physics accomplished in the first decades of the twentieth century. His mass–energy equivalence formula E = mc2, which arises from relativity theory, has been called \\\\\"the world\\'s most famous equation\\\\\". He received the 1921 Nobel Prize in Physics \\\\\"for his services to theoretical physics, and especially for his discovery of the law of the photoelectric effect\\\\\", a pivotal step in the development of quantum theory. His work is also known for its influence on the philosophy of science. In a 1999 poll of 130 leading physicists worldwide by the British journal Physics World, Einstein was ranked the greatest physicist of all time. His intellectual achievements and originality have made Einstein synonymous with genius.\"\\nanswer: \"Albert Einstein born in 14 March 1879 was German-born theoretical physicist, widely held to be one of the greatest and most influential scientists of all time. He received the 1921 Nobel Prize in Physics for his services to theoretical physics. He published 4 papers in 1905. Einstein moved to Switzerland in 1895\"\\nverification: ```{\"reason\": \"The provided context was indeed useful in arriving at the given answer. The context includes key information about Albert Einstein\\'s life and contributions, which are reflected in the answer.\", \"verdict\": 1}```\\n\\nquestion: \"who won 2020 icc world cup?\"\\ncontext: \"The 2022 ICC Men\\'s T20 World Cup, held from October 16 to November 13, 2022, in Australia, was the eighth edition of the tournament. Originally scheduled for 2020, it was postponed due to the COVID-19 pandemic. England emerged victorious, defeating Pakistan by five wickets in the final to clinch their second ICC Men\\'s T20 World Cup title.\"\\nanswer: \"England\"\\nverification: ```{\"reason\": \"the context was useful in clarifying the situation regarding the 2020 ICC World Cup and indicating that England was the winner of the tournament that was intended to be held in 2020 but actually took place in 2022.\", \"verdict\": 1}```\\n\\nquestion: \"What is the tallest mountain in the world?\"\\ncontext: \"The Andes is the longest continental mountain range in the world, located in South America. It stretches across seven countries and features many of the highest peaks in the Western Hemisphere. The range is known for its diverse ecosystems, including the high-altitude Andean Plateau and the Amazon rainforest.\"\\nanswer: \"Mount Everest.\"\\nverification: ```{\"reason\": \"the provided context discusses the Andes mountain range, which, while impressive, does not include Mount Everest or directly relate to the question about the world\\'s tallest mountain.\", \"verdict\": 0}```\\n\\nYour actual task:\\n\\nquestion: Is gastro esophageal reflux related to burning mouth syndrome?\\ncontext: 16570042 / Mobile phone use and risk of acoustic neuroma: results of the interphone \\ncase-control study in five north European countries [corrected]. //\\nanswer: No data indicate causal connection between gastro esophageal/laryngopharyngeal(LPR) reflux disease and the occurrence of intraoral burning sensations\\nverification: \\n'\n" - ] - }, - { - "name": "stderr", - "output_type": "stream", - "text": [ - "INFO:httpx:HTTP Request: POST https://api.mistral.ai/v1/chat/completions \"HTTP/1.1 200 OK\"\n" - ] - }, - { - "name": "stdout", - "output_type": "stream", - "text": [ - "start parsing ```json\n", - "{\n", - " \"reason\": \"The provided context is not related to the question about the connection between gastro esophageal reflux and burning mouth syndrome. The context discusses the expression of protein forms from the H2B gene family, which does not provide any information about the relationship between the two medical conditions mentioned in the question.\",\n", - " \"verdict\": 0\n", - "}\n", - "``` with prompt prompt_str='Given question, answer and context verify if the context was useful in arriving at the given answer. Give verdict as \"1\" if useful and \"0\" if not with json output.\\n\\nThe output should be a well-formatted JSON instance that conforms to the JSON schema below.\\n\\nAs an example, for the schema {\"properties\": {\"foo\": {\"title\": \"Foo\", \"description\": \"a list of strings\", \"type\": \"array\", \"items\": {\"type\": \"string\"}}}, \"required\": [\"foo\"]}\\nthe object {\"foo\": [\"bar\", \"baz\"]} is a well-formatted instance of the schema. The object {\"properties\": {\"foo\": [\"bar\", \"baz\"]}} is not well-formatted.\\n\\nHere is the output JSON schema:\\n```\\n{\"description\": \"Answer for the verification task wether the context was useful.\", \"type\": \"object\", \"properties\": {\"reason\": {\"title\": \"Reason\", \"description\": \"Reason for verification\", \"type\": \"string\"}, \"verdict\": {\"title\": \"Verdict\", \"description\": \"Binary (0/1) verdict of verification\", \"type\": \"integer\"}}, \"required\": [\"reason\", \"verdict\"]}\\n```\\n\\nDo not return any preamble or explanations, return only a pure JSON string surrounded by triple backticks (```).\\n\\nExamples:\\n\\nquestion: \"What can you tell me about albert Albert Einstein?\"\\ncontext: \"Albert Einstein (14 March 1879 – 18 April 1955) was a German-born theoretical physicist, widely held to be one of the greatest and most influential scientists of all time. Best known for developing the theory of relativity, he also made important contributions to quantum mechanics, and was thus a central figure in the revolutionary reshaping of the scientific understanding of nature that modern physics accomplished in the first decades of the twentieth century. His mass–energy equivalence formula E = mc2, which arises from relativity theory, has been called \\\\\"the world\\'s most famous equation\\\\\". He received the 1921 Nobel Prize in Physics \\\\\"for his services to theoretical physics, and especially for his discovery of the law of the photoelectric effect\\\\\", a pivotal step in the development of quantum theory. His work is also known for its influence on the philosophy of science. In a 1999 poll of 130 leading physicists worldwide by the British journal Physics World, Einstein was ranked the greatest physicist of all time. His intellectual achievements and originality have made Einstein synonymous with genius.\"\\nanswer: \"Albert Einstein born in 14 March 1879 was German-born theoretical physicist, widely held to be one of the greatest and most influential scientists of all time. He received the 1921 Nobel Prize in Physics for his services to theoretical physics. He published 4 papers in 1905. Einstein moved to Switzerland in 1895\"\\nverification: ```{\"reason\": \"The provided context was indeed useful in arriving at the given answer. The context includes key information about Albert Einstein\\'s life and contributions, which are reflected in the answer.\", \"verdict\": 1}```\\n\\nquestion: \"who won 2020 icc world cup?\"\\ncontext: \"The 2022 ICC Men\\'s T20 World Cup, held from October 16 to November 13, 2022, in Australia, was the eighth edition of the tournament. Originally scheduled for 2020, it was postponed due to the COVID-19 pandemic. England emerged victorious, defeating Pakistan by five wickets in the final to clinch their second ICC Men\\'s T20 World Cup title.\"\\nanswer: \"England\"\\nverification: ```{\"reason\": \"the context was useful in clarifying the situation regarding the 2020 ICC World Cup and indicating that England was the winner of the tournament that was intended to be held in 2020 but actually took place in 2022.\", \"verdict\": 1}```\\n\\nquestion: \"What is the tallest mountain in the world?\"\\ncontext: \"The Andes is the longest continental mountain range in the world, located in South America. It stretches across seven countries and features many of the highest peaks in the Western Hemisphere. The range is known for its diverse ecosystems, including the high-altitude Andean Plateau and the Amazon rainforest.\"\\nanswer: \"Mount Everest.\"\\nverification: ```{\"reason\": \"the provided context discusses the Andes mountain range, which, while impressive, does not include Mount Everest or directly relate to the question about the world\\'s tallest mountain.\", \"verdict\": 0}```\\n\\nYour actual task:\\n\\nquestion: Is gastro esophageal reflux related to burning mouth syndrome?\\ncontext: 16457587 / The basis set of protein forms expressed by human cells from the H2B gene family \\nwas determined by Top Down Mass Spectrometry. Using Electron Capture \\nDissociation for MS/MS of H2B isoforms, direct evidence for the expression of \\nunmodified H2B.Q, H2B.A, H2B.K/T, H2B.J, H2B.E, H2B.B, H2B.F, and monoacetylated \\nH2B.A was obtained from asynchronous HeLa cells. H2B.A was the most abundant \\nform, with the overall expression profile not changing significantly in cells \\narrested in mitosis by colchicine or during mid-S, mid-G2, G2/M, and mid-G1 \\nphases of the cell cycle. Modest hyperacetylation of H2B family members was \\nobserved after sodium butyrate treatment. //\\nanswer: No data indicate causal connection between gastro esophageal/laryngopharyngeal(LPR) reflux disease and the occurrence of intraoral burning sensations\\nverification: \\n'\n" - ] - }, - { - "name": "stderr", - "output_type": "stream", - "text": [ - "INFO:httpx:HTTP Request: POST https://api.mistral.ai/v1/chat/completions \"HTTP/1.1 200 OK\"\n" - ] - }, - { - "name": "stdout", - "output_type": "stream", - "text": [ - "start parsing ```json\n", - "{\n", - " \"reason\": \"The context provided is about a specific genetic mutation and its associated symptoms, which does not include gastro esophageal reflux or burning mouth syndrome. The answer also confirms that there is no data indicating a causal connection between the two conditions. Therefore, the context was not useful in arriving at the given answer.\",\n", - " \"verdict\": 0\n", - "}\n", - "``` with prompt prompt_str='Given question, answer and context verify if the context was useful in arriving at the given answer. Give verdict as \"1\" if useful and \"0\" if not with json output.\\n\\nThe output should be a well-formatted JSON instance that conforms to the JSON schema below.\\n\\nAs an example, for the schema {\"properties\": {\"foo\": {\"title\": \"Foo\", \"description\": \"a list of strings\", \"type\": \"array\", \"items\": {\"type\": \"string\"}}}, \"required\": [\"foo\"]}\\nthe object {\"foo\": [\"bar\", \"baz\"]} is a well-formatted instance of the schema. The object {\"properties\": {\"foo\": [\"bar\", \"baz\"]}} is not well-formatted.\\n\\nHere is the output JSON schema:\\n```\\n{\"description\": \"Answer for the verification task wether the context was useful.\", \"type\": \"object\", \"properties\": {\"reason\": {\"title\": \"Reason\", \"description\": \"Reason for verification\", \"type\": \"string\"}, \"verdict\": {\"title\": \"Verdict\", \"description\": \"Binary (0/1) verdict of verification\", \"type\": \"integer\"}}, \"required\": [\"reason\", \"verdict\"]}\\n```\\n\\nDo not return any preamble or explanations, return only a pure JSON string surrounded by triple backticks (```).\\n\\nExamples:\\n\\nquestion: \"What can you tell me about albert Albert Einstein?\"\\ncontext: \"Albert Einstein (14 March 1879 – 18 April 1955) was a German-born theoretical physicist, widely held to be one of the greatest and most influential scientists of all time. Best known for developing the theory of relativity, he also made important contributions to quantum mechanics, and was thus a central figure in the revolutionary reshaping of the scientific understanding of nature that modern physics accomplished in the first decades of the twentieth century. His mass–energy equivalence formula E = mc2, which arises from relativity theory, has been called \\\\\"the world\\'s most famous equation\\\\\". He received the 1921 Nobel Prize in Physics \\\\\"for his services to theoretical physics, and especially for his discovery of the law of the photoelectric effect\\\\\", a pivotal step in the development of quantum theory. His work is also known for its influence on the philosophy of science. In a 1999 poll of 130 leading physicists worldwide by the British journal Physics World, Einstein was ranked the greatest physicist of all time. His intellectual achievements and originality have made Einstein synonymous with genius.\"\\nanswer: \"Albert Einstein born in 14 March 1879 was German-born theoretical physicist, widely held to be one of the greatest and most influential scientists of all time. He received the 1921 Nobel Prize in Physics for his services to theoretical physics. He published 4 papers in 1905. Einstein moved to Switzerland in 1895\"\\nverification: ```{\"reason\": \"The provided context was indeed useful in arriving at the given answer. The context includes key information about Albert Einstein\\'s life and contributions, which are reflected in the answer.\", \"verdict\": 1}```\\n\\nquestion: \"who won 2020 icc world cup?\"\\ncontext: \"The 2022 ICC Men\\'s T20 World Cup, held from October 16 to November 13, 2022, in Australia, was the eighth edition of the tournament. Originally scheduled for 2020, it was postponed due to the COVID-19 pandemic. England emerged victorious, defeating Pakistan by five wickets in the final to clinch their second ICC Men\\'s T20 World Cup title.\"\\nanswer: \"England\"\\nverification: ```{\"reason\": \"the context was useful in clarifying the situation regarding the 2020 ICC World Cup and indicating that England was the winner of the tournament that was intended to be held in 2020 but actually took place in 2022.\", \"verdict\": 1}```\\n\\nquestion: \"What is the tallest mountain in the world?\"\\ncontext: \"The Andes is the longest continental mountain range in the world, located in South America. It stretches across seven countries and features many of the highest peaks in the Western Hemisphere. The range is known for its diverse ecosystems, including the high-altitude Andean Plateau and the Amazon rainforest.\"\\nanswer: \"Mount Everest.\"\\nverification: ```{\"reason\": \"the provided context discusses the Andes mountain range, which, while impressive, does not include Mount Everest or directly relate to the question about the world\\'s tallest mountain.\", \"verdict\": 0}```\\n\\nYour actual task:\\n\\nquestion: Is gastro esophageal reflux related to burning mouth syndrome?\\ncontext: 17103449 / P250R mutation in the FGFR3 gene also known as Muenke syndrome is associated \\nwith coronal craniosynostosis, sensorineural deafness, craniofacial, and digital \\nabnormalities. We report a family with this mutation associated with sudden \\ndeath in an affected newborn, most probably due to upper airway obstruction. //\\nanswer: No data indicate causal connection between gastro esophageal/laryngopharyngeal(LPR) reflux disease and the occurrence of intraoral burning sensations\\nverification: \\n'\n" - ] - }, - { - "name": "stderr", - "output_type": "stream", - "text": [ - "INFO:httpx:HTTP Request: POST https://api.mistral.ai/v1/chat/completions \"HTTP/1.1 200 OK\"\n", - "INFO:httpx:HTTP Request: POST https://api.mistral.ai/v1/chat/completions \"HTTP/1.1 200 OK\"\n", - "INFO:httpx:HTTP Request: POST https://api.mistral.ai/v1/chat/completions \"HTTP/1.1 200 OK\"\n" - ] - }, - { - "name": "stdout", - "output_type": "stream", - "text": [ - "start parsing ```json\n", - "{\n", - " \"question\": \"Has sorafenib, a tyrosine kinase inhibitor, been shown to activate AMP-activated protein kinase (AMPK) in any studies?\",\n", - " \"noncommittal\": 0\n", - "}\n", - "``` with prompt prompt_str='Generate a question for the given answer and Identify if answer is noncommittal. Give noncommittal as 1 if the answer is noncommittal and 0 if the answer is committal. A noncommittal answer is one that is evasive, vague, or ambiguous. For example, \"I don\\'t know\" or \"I\\'m not sure\" are noncommittal answers\\n\\nThe output should be a well-formatted JSON instance that conforms to the JSON schema below.\\n\\nAs an example, for the schema {\"properties\": {\"foo\": {\"title\": \"Foo\", \"description\": \"a list of strings\", \"type\": \"array\", \"items\": {\"type\": \"string\"}}}, \"required\": [\"foo\"]}\\nthe object {\"foo\": [\"bar\", \"baz\"]} is a well-formatted instance of the schema. The object {\"properties\": {\"foo\": [\"bar\", \"baz\"]}} is not well-formatted.\\n\\nHere is the output JSON schema:\\n```\\n{\"type\": \"object\", \"properties\": {\"question\": {\"title\": \"Question\", \"type\": \"string\"}, \"noncommittal\": {\"title\": \"Noncommittal\", \"type\": \"integer\"}}, \"required\": [\"question\", \"noncommittal\"]}\\n```\\n\\nDo not return any preamble or explanations, return only a pure JSON string surrounded by triple backticks (```).\\n\\nExamples:\\n\\nanswer: \"Albert Einstein was born in Germany.\"\\ncontext: \"Albert Einstein was a German-born theoretical physicist who is widely held to be one of the greatest and most influential scientists of all time\"\\noutput: ```{\"question\": \"Where was Albert Einstein born?\", \"noncommittal\": 0}```\\n\\nanswer: \"It can change its skin color based on the temperature of its environment.\"\\ncontext: \"A recent scientific study has discovered a new species of frog in the Amazon rainforest that has the unique ability to change its skin color based on the temperature of its environment.\"\\noutput: ```{\"question\": \"What unique ability does the newly discovered species of frog have?\", \"noncommittal\": 0}```\\n\\nanswer: \"Everest\"\\ncontext: \"The tallest mountain on Earth, measured from sea level, is a renowned peak located in the Himalayas.\"\\noutput: ```{\"question\": \"What is the tallest mountain on Earth?\", \"noncommittal\": 0}```\\n\\nanswer: \"I don\\'t know about the groundbreaking feature of the smartphone invented in 2023 as am unaware of information beyond 2022. \"\\ncontext: \"In 2023, a groundbreaking invention was announced: a smartphone with a battery life of one month, revolutionizing the way people use mobile technology.\"\\noutput: ```{\"question\": \"What was the groundbreaking feature of the smartphone invented in 2023?\", \"noncommittal\": 1}```\\n\\nYour actual task:\\n\\nanswer: Yes, sorafenib, a tyrosine kinase inhibitor, has been shown to activate AMP-activated protein kinase (AMPK) in some studies. AMPK is a cellular energy sensor that plays a crucial role in regulating cellular energy homeostasis, metabolism, and autophagy. Sorafenib, which is commonly used to treat liver cancer, has been found to activate AMPK through the inhibition of the protein kinase ATR (ataxia-telangiectasia mutated and Rad3-related protein) and the activation of the AMPKα subunit. This activation of AMPK by sorafenib may contribute to its anticancer effects, as AMPK can inhibit cell proliferation, promote autophagy, and induce apoptosis in cancer cells. However, the activation of AMPK by sorafenib may also have potential side effects, such as muscle weakness and fatigue, due to the inhibition of protein synthesis and mitochondrial biogenesis. Further research is needed to fully understand the effects of sorafenib on AMPK and its potential implications for cancer treatment and side effects.\\ncontext: 11428324 / Familial craniosynostosis due to Pro250Arg mutation in the fibroblast growth \\nfactor receptor 3 gene. //\\n15683664 / Skin side effects following XRT take place more often in patients with skin \\ndisorders. In this study six patients with psoriatic lesions were evaluated. The \\ntotal/daily XRT dose to the tumor site was 50-70/1.8-2.0 Gy. No debilitating \\neffect of XRT was observed in both the psoriatic lesions and in the surrounding \\nnormal skin. //\\n16570042 / Mobile phone use and risk of acoustic neuroma: results of the interphone \\ncase-control study in five north European countries [corrected]. //\\n16457587 / The basis set of protein forms expressed by human cells from the H2B gene family \\nwas determined by Top Down Mass Spectrometry. Using Electron Capture \\nDissociation for MS/MS of H2B isoforms, direct evidence for the expression of \\nunmodified H2B.Q, H2B.A, H2B.K/T, H2B.J, H2B.E, H2B.B, H2B.F, and monoacetylated \\nH2B.A was obtained from asynchronous HeLa cells. H2B.A was the most abundant \\nform, with the overall expression profile not changing significantly in cells \\narrested in mitosis by colchicine or during mid-S, mid-G2, G2/M, and mid-G1 \\nphases of the cell cycle. Modest hyperacetylation of H2B family members was \\nobserved after sodium butyrate treatment. //\\n17103449 / P250R mutation in the FGFR3 gene also known as Muenke syndrome is associated \\nwith coronal craniosynostosis, sensorineural deafness, craniofacial, and digital \\nabnormalities. We report a family with this mutation associated with sudden \\ndeath in an affected newborn, most probably due to upper airway obstruction. //\\noutput: \\n'\n", - "start parsing ```json\n", - "{\n", - " \"question\": \"Has sorafenib, a tyrosine kinase inhibitor, been shown to activate AMP-activated protein kinase (AMPK) in any studies?\",\n", - " \"noncommittal\": 0\n", - "}\n", - "``` with prompt prompt_str='Generate a question for the given answer and Identify if answer is noncommittal. Give noncommittal as 1 if the answer is noncommittal and 0 if the answer is committal. A noncommittal answer is one that is evasive, vague, or ambiguous. For example, \"I don\\'t know\" or \"I\\'m not sure\" are noncommittal answers\\n\\nThe output should be a well-formatted JSON instance that conforms to the JSON schema below.\\n\\nAs an example, for the schema {\"properties\": {\"foo\": {\"title\": \"Foo\", \"description\": \"a list of strings\", \"type\": \"array\", \"items\": {\"type\": \"string\"}}}, \"required\": [\"foo\"]}\\nthe object {\"foo\": [\"bar\", \"baz\"]} is a well-formatted instance of the schema. The object {\"properties\": {\"foo\": [\"bar\", \"baz\"]}} is not well-formatted.\\n\\nHere is the output JSON schema:\\n```\\n{\"type\": \"object\", \"properties\": {\"question\": {\"title\": \"Question\", \"type\": \"string\"}, \"noncommittal\": {\"title\": \"Noncommittal\", \"type\": \"integer\"}}, \"required\": [\"question\", \"noncommittal\"]}\\n```\\n\\nDo not return any preamble or explanations, return only a pure JSON string surrounded by triple backticks (```).\\n\\nExamples:\\n\\nanswer: \"Albert Einstein was born in Germany.\"\\ncontext: \"Albert Einstein was a German-born theoretical physicist who is widely held to be one of the greatest and most influential scientists of all time\"\\noutput: ```{\"question\": \"Where was Albert Einstein born?\", \"noncommittal\": 0}```\\n\\nanswer: \"It can change its skin color based on the temperature of its environment.\"\\ncontext: \"A recent scientific study has discovered a new species of frog in the Amazon rainforest that has the unique ability to change its skin color based on the temperature of its environment.\"\\noutput: ```{\"question\": \"What unique ability does the newly discovered species of frog have?\", \"noncommittal\": 0}```\\n\\nanswer: \"Everest\"\\ncontext: \"The tallest mountain on Earth, measured from sea level, is a renowned peak located in the Himalayas.\"\\noutput: ```{\"question\": \"What is the tallest mountain on Earth?\", \"noncommittal\": 0}```\\n\\nanswer: \"I don\\'t know about the groundbreaking feature of the smartphone invented in 2023 as am unaware of information beyond 2022. \"\\ncontext: \"In 2023, a groundbreaking invention was announced: a smartphone with a battery life of one month, revolutionizing the way people use mobile technology.\"\\noutput: ```{\"question\": \"What was the groundbreaking feature of the smartphone invented in 2023?\", \"noncommittal\": 1}```\\n\\nYour actual task:\\n\\nanswer: Yes, sorafenib, a tyrosine kinase inhibitor, has been shown to activate AMP-activated protein kinase (AMPK) in some studies. AMPK is a cellular energy sensor that plays a crucial role in regulating cellular energy homeostasis, metabolism, and autophagy. Sorafenib, which is commonly used to treat liver cancer, has been found to activate AMPK through the inhibition of the protein kinase ATR (ataxia-telangiectasia mutated and Rad3-related protein) and the activation of the AMPKα subunit. This activation of AMPK by sorafenib may contribute to its anticancer effects, as AMPK can inhibit cell proliferation, promote autophagy, and induce apoptosis in cancer cells. However, the activation of AMPK by sorafenib may also have potential side effects, such as muscle weakness and fatigue, due to the inhibition of protein synthesis and mitochondrial biogenesis. Further research is needed to fully understand the effects of sorafenib on AMPK and its potential implications for cancer treatment and side effects.\\ncontext: 11428324 / Familial craniosynostosis due to Pro250Arg mutation in the fibroblast growth \\nfactor receptor 3 gene. //\\n15683664 / Skin side effects following XRT take place more often in patients with skin \\ndisorders. In this study six patients with psoriatic lesions were evaluated. The \\ntotal/daily XRT dose to the tumor site was 50-70/1.8-2.0 Gy. No debilitating \\neffect of XRT was observed in both the psoriatic lesions and in the surrounding \\nnormal skin. //\\n16570042 / Mobile phone use and risk of acoustic neuroma: results of the interphone \\ncase-control study in five north European countries [corrected]. //\\n16457587 / The basis set of protein forms expressed by human cells from the H2B gene family \\nwas determined by Top Down Mass Spectrometry. Using Electron Capture \\nDissociation for MS/MS of H2B isoforms, direct evidence for the expression of \\nunmodified H2B.Q, H2B.A, H2B.K/T, H2B.J, H2B.E, H2B.B, H2B.F, and monoacetylated \\nH2B.A was obtained from asynchronous HeLa cells. H2B.A was the most abundant \\nform, with the overall expression profile not changing significantly in cells \\narrested in mitosis by colchicine or during mid-S, mid-G2, G2/M, and mid-G1 \\nphases of the cell cycle. Modest hyperacetylation of H2B family members was \\nobserved after sodium butyrate treatment. //\\n17103449 / P250R mutation in the FGFR3 gene also known as Muenke syndrome is associated \\nwith coronal craniosynostosis, sensorineural deafness, craniofacial, and digital \\nabnormalities. We report a family with this mutation associated with sudden \\ndeath in an affected newborn, most probably due to upper airway obstruction. //\\noutput: \\n'\n", - "start parsing ```json\n", - "{\n", - " \"question\": \"Has sorafenib, a tyrosine kinase inhibitor, been shown to activate AMP-activated protein kinase (AMPK) in any studies?\",\n", - " \"noncommittal\": 0\n", - "}\n", - "``` with prompt prompt_str='Generate a question for the given answer and Identify if answer is noncommittal. Give noncommittal as 1 if the answer is noncommittal and 0 if the answer is committal. A noncommittal answer is one that is evasive, vague, or ambiguous. For example, \"I don\\'t know\" or \"I\\'m not sure\" are noncommittal answers\\n\\nThe output should be a well-formatted JSON instance that conforms to the JSON schema below.\\n\\nAs an example, for the schema {\"properties\": {\"foo\": {\"title\": \"Foo\", \"description\": \"a list of strings\", \"type\": \"array\", \"items\": {\"type\": \"string\"}}}, \"required\": [\"foo\"]}\\nthe object {\"foo\": [\"bar\", \"baz\"]} is a well-formatted instance of the schema. The object {\"properties\": {\"foo\": [\"bar\", \"baz\"]}} is not well-formatted.\\n\\nHere is the output JSON schema:\\n```\\n{\"type\": \"object\", \"properties\": {\"question\": {\"title\": \"Question\", \"type\": \"string\"}, \"noncommittal\": {\"title\": \"Noncommittal\", \"type\": \"integer\"}}, \"required\": [\"question\", \"noncommittal\"]}\\n```\\n\\nDo not return any preamble or explanations, return only a pure JSON string surrounded by triple backticks (```).\\n\\nExamples:\\n\\nanswer: \"Albert Einstein was born in Germany.\"\\ncontext: \"Albert Einstein was a German-born theoretical physicist who is widely held to be one of the greatest and most influential scientists of all time\"\\noutput: ```{\"question\": \"Where was Albert Einstein born?\", \"noncommittal\": 0}```\\n\\nanswer: \"It can change its skin color based on the temperature of its environment.\"\\ncontext: \"A recent scientific study has discovered a new species of frog in the Amazon rainforest that has the unique ability to change its skin color based on the temperature of its environment.\"\\noutput: ```{\"question\": \"What unique ability does the newly discovered species of frog have?\", \"noncommittal\": 0}```\\n\\nanswer: \"Everest\"\\ncontext: \"The tallest mountain on Earth, measured from sea level, is a renowned peak located in the Himalayas.\"\\noutput: ```{\"question\": \"What is the tallest mountain on Earth?\", \"noncommittal\": 0}```\\n\\nanswer: \"I don\\'t know about the groundbreaking feature of the smartphone invented in 2023 as am unaware of information beyond 2022. \"\\ncontext: \"In 2023, a groundbreaking invention was announced: a smartphone with a battery life of one month, revolutionizing the way people use mobile technology.\"\\noutput: ```{\"question\": \"What was the groundbreaking feature of the smartphone invented in 2023?\", \"noncommittal\": 1}```\\n\\nYour actual task:\\n\\nanswer: Yes, sorafenib, a tyrosine kinase inhibitor, has been shown to activate AMP-activated protein kinase (AMPK) in some studies. AMPK is a cellular energy sensor that plays a crucial role in regulating cellular energy homeostasis, metabolism, and autophagy. Sorafenib, which is commonly used to treat liver cancer, has been found to activate AMPK through the inhibition of the protein kinase ATR (ataxia-telangiectasia mutated and Rad3-related protein) and the activation of the AMPKα subunit. This activation of AMPK by sorafenib may contribute to its anticancer effects, as AMPK can inhibit cell proliferation, promote autophagy, and induce apoptosis in cancer cells. However, the activation of AMPK by sorafenib may also have potential side effects, such as muscle weakness and fatigue, due to the inhibition of protein synthesis and mitochondrial biogenesis. Further research is needed to fully understand the effects of sorafenib on AMPK and its potential implications for cancer treatment and side effects.\\ncontext: 11428324 / Familial craniosynostosis due to Pro250Arg mutation in the fibroblast growth \\nfactor receptor 3 gene. //\\n15683664 / Skin side effects following XRT take place more often in patients with skin \\ndisorders. In this study six patients with psoriatic lesions were evaluated. The \\ntotal/daily XRT dose to the tumor site was 50-70/1.8-2.0 Gy. No debilitating \\neffect of XRT was observed in both the psoriatic lesions and in the surrounding \\nnormal skin. //\\n16570042 / Mobile phone use and risk of acoustic neuroma: results of the interphone \\ncase-control study in five north European countries [corrected]. //\\n16457587 / The basis set of protein forms expressed by human cells from the H2B gene family \\nwas determined by Top Down Mass Spectrometry. Using Electron Capture \\nDissociation for MS/MS of H2B isoforms, direct evidence for the expression of \\nunmodified H2B.Q, H2B.A, H2B.K/T, H2B.J, H2B.E, H2B.B, H2B.F, and monoacetylated \\nH2B.A was obtained from asynchronous HeLa cells. H2B.A was the most abundant \\nform, with the overall expression profile not changing significantly in cells \\narrested in mitosis by colchicine or during mid-S, mid-G2, G2/M, and mid-G1 \\nphases of the cell cycle. Modest hyperacetylation of H2B family members was \\nobserved after sodium butyrate treatment. //\\n17103449 / P250R mutation in the FGFR3 gene also known as Muenke syndrome is associated \\nwith coronal craniosynostosis, sensorineural deafness, craniofacial, and digital \\nabnormalities. We report a family with this mutation associated with sudden \\ndeath in an affected newborn, most probably due to upper airway obstruction. //\\noutput: \\n'\n" - ] - }, - { - "name": "stderr", - "output_type": "stream", - "text": [ - "INFO:httpx:HTTP Request: POST https://api.mistral.ai/v1/embeddings \"HTTP/1.1 200 OK\"\n", - "INFO:httpx:HTTP Request: POST https://api.mistral.ai/v1/embeddings \"HTTP/1.1 200 OK\"\n", - "INFO:httpx:HTTP Request: POST https://api.mistral.ai/v1/chat/completions \"HTTP/1.1 200 OK\"\n" - ] - }, - { - "name": "stdout", - "output_type": "stream", - "text": [ - "start parsing ```json\n", - "{\n", - " \"reason\": \"The context provided does not contain any information about ribociclib or the enzyme it inhibits. However, the answer is provided independently and does not rely on the context for accuracy. Therefore, the context was not useful in arriving at the given answer.\",\n", - " \"verdict\": 0\n", - "}\n", - "``` with prompt prompt_str='Given question, answer and context verify if the context was useful in arriving at the given answer. Give verdict as \"1\" if useful and \"0\" if not with json output.\\n\\nThe output should be a well-formatted JSON instance that conforms to the JSON schema below.\\n\\nAs an example, for the schema {\"properties\": {\"foo\": {\"title\": \"Foo\", \"description\": \"a list of strings\", \"type\": \"array\", \"items\": {\"type\": \"string\"}}}, \"required\": [\"foo\"]}\\nthe object {\"foo\": [\"bar\", \"baz\"]} is a well-formatted instance of the schema. The object {\"properties\": {\"foo\": [\"bar\", \"baz\"]}} is not well-formatted.\\n\\nHere is the output JSON schema:\\n```\\n{\"description\": \"Answer for the verification task wether the context was useful.\", \"type\": \"object\", \"properties\": {\"reason\": {\"title\": \"Reason\", \"description\": \"Reason for verification\", \"type\": \"string\"}, \"verdict\": {\"title\": \"Verdict\", \"description\": \"Binary (0/1) verdict of verification\", \"type\": \"integer\"}}, \"required\": [\"reason\", \"verdict\"]}\\n```\\n\\nDo not return any preamble or explanations, return only a pure JSON string surrounded by triple backticks (```).\\n\\nExamples:\\n\\nquestion: \"What can you tell me about albert Albert Einstein?\"\\ncontext: \"Albert Einstein (14 March 1879 – 18 April 1955) was a German-born theoretical physicist, widely held to be one of the greatest and most influential scientists of all time. Best known for developing the theory of relativity, he also made important contributions to quantum mechanics, and was thus a central figure in the revolutionary reshaping of the scientific understanding of nature that modern physics accomplished in the first decades of the twentieth century. His mass–energy equivalence formula E = mc2, which arises from relativity theory, has been called \\\\\"the world\\'s most famous equation\\\\\". He received the 1921 Nobel Prize in Physics \\\\\"for his services to theoretical physics, and especially for his discovery of the law of the photoelectric effect\\\\\", a pivotal step in the development of quantum theory. His work is also known for its influence on the philosophy of science. In a 1999 poll of 130 leading physicists worldwide by the British journal Physics World, Einstein was ranked the greatest physicist of all time. His intellectual achievements and originality have made Einstein synonymous with genius.\"\\nanswer: \"Albert Einstein born in 14 March 1879 was German-born theoretical physicist, widely held to be one of the greatest and most influential scientists of all time. He received the 1921 Nobel Prize in Physics for his services to theoretical physics. He published 4 papers in 1905. Einstein moved to Switzerland in 1895\"\\nverification: ```{\"reason\": \"The provided context was indeed useful in arriving at the given answer. The context includes key information about Albert Einstein\\'s life and contributions, which are reflected in the answer.\", \"verdict\": 1}```\\n\\nquestion: \"who won 2020 icc world cup?\"\\ncontext: \"The 2022 ICC Men\\'s T20 World Cup, held from October 16 to November 13, 2022, in Australia, was the eighth edition of the tournament. Originally scheduled for 2020, it was postponed due to the COVID-19 pandemic. England emerged victorious, defeating Pakistan by five wickets in the final to clinch their second ICC Men\\'s T20 World Cup title.\"\\nanswer: \"England\"\\nverification: ```{\"reason\": \"the context was useful in clarifying the situation regarding the 2020 ICC World Cup and indicating that England was the winner of the tournament that was intended to be held in 2020 but actually took place in 2022.\", \"verdict\": 1}```\\n\\nquestion: \"What is the tallest mountain in the world?\"\\ncontext: \"The Andes is the longest continental mountain range in the world, located in South America. It stretches across seven countries and features many of the highest peaks in the Western Hemisphere. The range is known for its diverse ecosystems, including the high-altitude Andean Plateau and the Amazon rainforest.\"\\nanswer: \"Mount Everest.\"\\nverification: ```{\"reason\": \"the provided context discusses the Andes mountain range, which, while impressive, does not include Mount Everest or directly relate to the question about the world\\'s tallest mountain.\", \"verdict\": 0}```\\n\\nYour actual task:\\n\\nquestion: Which enzyme is inhibited by ribociclib?\\ncontext: 11428324 / Familial craniosynostosis due to Pro250Arg mutation in the fibroblast growth \\nfactor receptor 3 gene. //\\nanswer: Ribociclib is inhibitor of cyclin D-cyclin-dependent kinase 4/6 (CDK 4/6). It is used for breast cancer treatment.\\nverification: \\n'\n" - ] - }, - { - "name": "stderr", - "output_type": "stream", - "text": [ - "INFO:httpx:HTTP Request: POST https://api.mistral.ai/v1/chat/completions \"HTTP/1.1 200 OK\"\n" - ] - }, - { - "name": "stdout", - "output_type": "stream", - "text": [ - "start parsing ```json\n", - "{\n", - " \"reason\": \"The context does not provide information about ribociclib or any enzymes that it might inhibit. However, the answer is provided without reference to the context, so the context was not useful in arriving at the answer.\",\n", - " \"verdict\": 0\n", - "}\n", - "``` with prompt prompt_str='Given question, answer and context verify if the context was useful in arriving at the given answer. Give verdict as \"1\" if useful and \"0\" if not with json output.\\n\\nThe output should be a well-formatted JSON instance that conforms to the JSON schema below.\\n\\nAs an example, for the schema {\"properties\": {\"foo\": {\"title\": \"Foo\", \"description\": \"a list of strings\", \"type\": \"array\", \"items\": {\"type\": \"string\"}}}, \"required\": [\"foo\"]}\\nthe object {\"foo\": [\"bar\", \"baz\"]} is a well-formatted instance of the schema. The object {\"properties\": {\"foo\": [\"bar\", \"baz\"]}} is not well-formatted.\\n\\nHere is the output JSON schema:\\n```\\n{\"description\": \"Answer for the verification task wether the context was useful.\", \"type\": \"object\", \"properties\": {\"reason\": {\"title\": \"Reason\", \"description\": \"Reason for verification\", \"type\": \"string\"}, \"verdict\": {\"title\": \"Verdict\", \"description\": \"Binary (0/1) verdict of verification\", \"type\": \"integer\"}}, \"required\": [\"reason\", \"verdict\"]}\\n```\\n\\nDo not return any preamble or explanations, return only a pure JSON string surrounded by triple backticks (```).\\n\\nExamples:\\n\\nquestion: \"What can you tell me about albert Albert Einstein?\"\\ncontext: \"Albert Einstein (14 March 1879 – 18 April 1955) was a German-born theoretical physicist, widely held to be one of the greatest and most influential scientists of all time. Best known for developing the theory of relativity, he also made important contributions to quantum mechanics, and was thus a central figure in the revolutionary reshaping of the scientific understanding of nature that modern physics accomplished in the first decades of the twentieth century. His mass–energy equivalence formula E = mc2, which arises from relativity theory, has been called \\\\\"the world\\'s most famous equation\\\\\". He received the 1921 Nobel Prize in Physics \\\\\"for his services to theoretical physics, and especially for his discovery of the law of the photoelectric effect\\\\\", a pivotal step in the development of quantum theory. His work is also known for its influence on the philosophy of science. In a 1999 poll of 130 leading physicists worldwide by the British journal Physics World, Einstein was ranked the greatest physicist of all time. His intellectual achievements and originality have made Einstein synonymous with genius.\"\\nanswer: \"Albert Einstein born in 14 March 1879 was German-born theoretical physicist, widely held to be one of the greatest and most influential scientists of all time. He received the 1921 Nobel Prize in Physics for his services to theoretical physics. He published 4 papers in 1905. Einstein moved to Switzerland in 1895\"\\nverification: ```{\"reason\": \"The provided context was indeed useful in arriving at the given answer. The context includes key information about Albert Einstein\\'s life and contributions, which are reflected in the answer.\", \"verdict\": 1}```\\n\\nquestion: \"who won 2020 icc world cup?\"\\ncontext: \"The 2022 ICC Men\\'s T20 World Cup, held from October 16 to November 13, 2022, in Australia, was the eighth edition of the tournament. Originally scheduled for 2020, it was postponed due to the COVID-19 pandemic. England emerged victorious, defeating Pakistan by five wickets in the final to clinch their second ICC Men\\'s T20 World Cup title.\"\\nanswer: \"England\"\\nverification: ```{\"reason\": \"the context was useful in clarifying the situation regarding the 2020 ICC World Cup and indicating that England was the winner of the tournament that was intended to be held in 2020 but actually took place in 2022.\", \"verdict\": 1}```\\n\\nquestion: \"What is the tallest mountain in the world?\"\\ncontext: \"The Andes is the longest continental mountain range in the world, located in South America. It stretches across seven countries and features many of the highest peaks in the Western Hemisphere. The range is known for its diverse ecosystems, including the high-altitude Andean Plateau and the Amazon rainforest.\"\\nanswer: \"Mount Everest.\"\\nverification: ```{\"reason\": \"the provided context discusses the Andes mountain range, which, while impressive, does not include Mount Everest or directly relate to the question about the world\\'s tallest mountain.\", \"verdict\": 0}```\\n\\nYour actual task:\\n\\nquestion: Which enzyme is inhibited by ribociclib?\\ncontext: 15683664 / Skin side effects following XRT take place more often in patients with skin \\ndisorders. In this study six patients with psoriatic lesions were evaluated. The \\ntotal/daily XRT dose to the tumor site was 50-70/1.8-2.0 Gy. No debilitating \\neffect of XRT was observed in both the psoriatic lesions and in the surrounding \\nnormal skin. //\\nanswer: Ribociclib is inhibitor of cyclin D-cyclin-dependent kinase 4/6 (CDK 4/6). It is used for breast cancer treatment.\\nverification: \\n'\n" - ] - }, - { - "name": "stderr", - "output_type": "stream", - "text": [ - "INFO:httpx:HTTP Request: POST https://api.mistral.ai/v1/chat/completions \"HTTP/1.1 200 OK\"\n" - ] - }, - { - "name": "stdout", - "output_type": "stream", - "text": [ - "start parsing ```json\n", - "{\n", - " \"reason\": \"The context does not provide any information about ribociclib or any enzymes that it might inhibit. It is a study about mobile phone use and acoustic neuroma. The answer is not related to the context.\",\n", - " \"verdict\": 0\n", - "}\n", - "``` with prompt prompt_str='Given question, answer and context verify if the context was useful in arriving at the given answer. Give verdict as \"1\" if useful and \"0\" if not with json output.\\n\\nThe output should be a well-formatted JSON instance that conforms to the JSON schema below.\\n\\nAs an example, for the schema {\"properties\": {\"foo\": {\"title\": \"Foo\", \"description\": \"a list of strings\", \"type\": \"array\", \"items\": {\"type\": \"string\"}}}, \"required\": [\"foo\"]}\\nthe object {\"foo\": [\"bar\", \"baz\"]} is a well-formatted instance of the schema. The object {\"properties\": {\"foo\": [\"bar\", \"baz\"]}} is not well-formatted.\\n\\nHere is the output JSON schema:\\n```\\n{\"description\": \"Answer for the verification task wether the context was useful.\", \"type\": \"object\", \"properties\": {\"reason\": {\"title\": \"Reason\", \"description\": \"Reason for verification\", \"type\": \"string\"}, \"verdict\": {\"title\": \"Verdict\", \"description\": \"Binary (0/1) verdict of verification\", \"type\": \"integer\"}}, \"required\": [\"reason\", \"verdict\"]}\\n```\\n\\nDo not return any preamble or explanations, return only a pure JSON string surrounded by triple backticks (```).\\n\\nExamples:\\n\\nquestion: \"What can you tell me about albert Albert Einstein?\"\\ncontext: \"Albert Einstein (14 March 1879 – 18 April 1955) was a German-born theoretical physicist, widely held to be one of the greatest and most influential scientists of all time. Best known for developing the theory of relativity, he also made important contributions to quantum mechanics, and was thus a central figure in the revolutionary reshaping of the scientific understanding of nature that modern physics accomplished in the first decades of the twentieth century. His mass–energy equivalence formula E = mc2, which arises from relativity theory, has been called \\\\\"the world\\'s most famous equation\\\\\". He received the 1921 Nobel Prize in Physics \\\\\"for his services to theoretical physics, and especially for his discovery of the law of the photoelectric effect\\\\\", a pivotal step in the development of quantum theory. His work is also known for its influence on the philosophy of science. In a 1999 poll of 130 leading physicists worldwide by the British journal Physics World, Einstein was ranked the greatest physicist of all time. His intellectual achievements and originality have made Einstein synonymous with genius.\"\\nanswer: \"Albert Einstein born in 14 March 1879 was German-born theoretical physicist, widely held to be one of the greatest and most influential scientists of all time. He received the 1921 Nobel Prize in Physics for his services to theoretical physics. He published 4 papers in 1905. Einstein moved to Switzerland in 1895\"\\nverification: ```{\"reason\": \"The provided context was indeed useful in arriving at the given answer. The context includes key information about Albert Einstein\\'s life and contributions, which are reflected in the answer.\", \"verdict\": 1}```\\n\\nquestion: \"who won 2020 icc world cup?\"\\ncontext: \"The 2022 ICC Men\\'s T20 World Cup, held from October 16 to November 13, 2022, in Australia, was the eighth edition of the tournament. Originally scheduled for 2020, it was postponed due to the COVID-19 pandemic. England emerged victorious, defeating Pakistan by five wickets in the final to clinch their second ICC Men\\'s T20 World Cup title.\"\\nanswer: \"England\"\\nverification: ```{\"reason\": \"the context was useful in clarifying the situation regarding the 2020 ICC World Cup and indicating that England was the winner of the tournament that was intended to be held in 2020 but actually took place in 2022.\", \"verdict\": 1}```\\n\\nquestion: \"What is the tallest mountain in the world?\"\\ncontext: \"The Andes is the longest continental mountain range in the world, located in South America. It stretches across seven countries and features many of the highest peaks in the Western Hemisphere. The range is known for its diverse ecosystems, including the high-altitude Andean Plateau and the Amazon rainforest.\"\\nanswer: \"Mount Everest.\"\\nverification: ```{\"reason\": \"the provided context discusses the Andes mountain range, which, while impressive, does not include Mount Everest or directly relate to the question about the world\\'s tallest mountain.\", \"verdict\": 0}```\\n\\nYour actual task:\\n\\nquestion: Which enzyme is inhibited by ribociclib?\\ncontext: 16570042 / Mobile phone use and risk of acoustic neuroma: results of the interphone \\ncase-control study in five north European countries [corrected]. //\\nanswer: Ribociclib is inhibitor of cyclin D-cyclin-dependent kinase 4/6 (CDK 4/6). It is used for breast cancer treatment.\\nverification: \\n'\n" - ] - }, - { - "name": "stderr", - "output_type": "stream", - "text": [ - "INFO:httpx:HTTP Request: POST https://api.mistral.ai/v1/chat/completions \"HTTP/1.1 200 OK\"\n" - ] - }, - { - "name": "stdout", - "output_type": "stream", - "text": [ - "start parsing ```json\n", - "{\n", - " \"reason\": \"The provided context discusses the expression of H2B gene family proteins and their modifications in asynchronous HeLa cells, as well as changes in expression during different phases of the cell cycle and in response to certain treatments. However, the context does not provide any information about the enzyme that is inhibited by ribociclib. The answer, which identifies ribociclib as an inhibitor of CDK 4/6, is not directly related to the context.\",\n", - " \"verdict\": 0\n", - "}\n", - "``` with prompt prompt_str='Given question, answer and context verify if the context was useful in arriving at the given answer. Give verdict as \"1\" if useful and \"0\" if not with json output.\\n\\nThe output should be a well-formatted JSON instance that conforms to the JSON schema below.\\n\\nAs an example, for the schema {\"properties\": {\"foo\": {\"title\": \"Foo\", \"description\": \"a list of strings\", \"type\": \"array\", \"items\": {\"type\": \"string\"}}}, \"required\": [\"foo\"]}\\nthe object {\"foo\": [\"bar\", \"baz\"]} is a well-formatted instance of the schema. The object {\"properties\": {\"foo\": [\"bar\", \"baz\"]}} is not well-formatted.\\n\\nHere is the output JSON schema:\\n```\\n{\"description\": \"Answer for the verification task wether the context was useful.\", \"type\": \"object\", \"properties\": {\"reason\": {\"title\": \"Reason\", \"description\": \"Reason for verification\", \"type\": \"string\"}, \"verdict\": {\"title\": \"Verdict\", \"description\": \"Binary (0/1) verdict of verification\", \"type\": \"integer\"}}, \"required\": [\"reason\", \"verdict\"]}\\n```\\n\\nDo not return any preamble or explanations, return only a pure JSON string surrounded by triple backticks (```).\\n\\nExamples:\\n\\nquestion: \"What can you tell me about albert Albert Einstein?\"\\ncontext: \"Albert Einstein (14 March 1879 – 18 April 1955) was a German-born theoretical physicist, widely held to be one of the greatest and most influential scientists of all time. Best known for developing the theory of relativity, he also made important contributions to quantum mechanics, and was thus a central figure in the revolutionary reshaping of the scientific understanding of nature that modern physics accomplished in the first decades of the twentieth century. His mass–energy equivalence formula E = mc2, which arises from relativity theory, has been called \\\\\"the world\\'s most famous equation\\\\\". He received the 1921 Nobel Prize in Physics \\\\\"for his services to theoretical physics, and especially for his discovery of the law of the photoelectric effect\\\\\", a pivotal step in the development of quantum theory. His work is also known for its influence on the philosophy of science. In a 1999 poll of 130 leading physicists worldwide by the British journal Physics World, Einstein was ranked the greatest physicist of all time. His intellectual achievements and originality have made Einstein synonymous with genius.\"\\nanswer: \"Albert Einstein born in 14 March 1879 was German-born theoretical physicist, widely held to be one of the greatest and most influential scientists of all time. He received the 1921 Nobel Prize in Physics for his services to theoretical physics. He published 4 papers in 1905. Einstein moved to Switzerland in 1895\"\\nverification: ```{\"reason\": \"The provided context was indeed useful in arriving at the given answer. The context includes key information about Albert Einstein\\'s life and contributions, which are reflected in the answer.\", \"verdict\": 1}```\\n\\nquestion: \"who won 2020 icc world cup?\"\\ncontext: \"The 2022 ICC Men\\'s T20 World Cup, held from October 16 to November 13, 2022, in Australia, was the eighth edition of the tournament. Originally scheduled for 2020, it was postponed due to the COVID-19 pandemic. England emerged victorious, defeating Pakistan by five wickets in the final to clinch their second ICC Men\\'s T20 World Cup title.\"\\nanswer: \"England\"\\nverification: ```{\"reason\": \"the context was useful in clarifying the situation regarding the 2020 ICC World Cup and indicating that England was the winner of the tournament that was intended to be held in 2020 but actually took place in 2022.\", \"verdict\": 1}```\\n\\nquestion: \"What is the tallest mountain in the world?\"\\ncontext: \"The Andes is the longest continental mountain range in the world, located in South America. It stretches across seven countries and features many of the highest peaks in the Western Hemisphere. The range is known for its diverse ecosystems, including the high-altitude Andean Plateau and the Amazon rainforest.\"\\nanswer: \"Mount Everest.\"\\nverification: ```{\"reason\": \"the provided context discusses the Andes mountain range, which, while impressive, does not include Mount Everest or directly relate to the question about the world\\'s tallest mountain.\", \"verdict\": 0}```\\n\\nYour actual task:\\n\\nquestion: Which enzyme is inhibited by ribociclib?\\ncontext: 16457587 / The basis set of protein forms expressed by human cells from the H2B gene family \\nwas determined by Top Down Mass Spectrometry. Using Electron Capture \\nDissociation for MS/MS of H2B isoforms, direct evidence for the expression of \\nunmodified H2B.Q, H2B.A, H2B.K/T, H2B.J, H2B.E, H2B.B, H2B.F, and monoacetylated \\nH2B.A was obtained from asynchronous HeLa cells. H2B.A was the most abundant \\nform, with the overall expression profile not changing significantly in cells \\narrested in mitosis by colchicine or during mid-S, mid-G2, G2/M, and mid-G1 \\nphases of the cell cycle. Modest hyperacetylation of H2B family members was \\nobserved after sodium butyrate treatment. //\\nanswer: Ribociclib is inhibitor of cyclin D-cyclin-dependent kinase 4/6 (CDK 4/6). It is used for breast cancer treatment.\\nverification: \\n'\n" - ] - }, - { - "name": "stderr", - "output_type": "stream", - "text": [ - "INFO:httpx:HTTP Request: POST https://api.mistral.ai/v1/chat/completions \"HTTP/1.1 200 OK\"\n" - ] - }, - { - "name": "stdout", - "output_type": "stream", - "text": [ - "start parsing ```json\n", - "{\n", - " \"reason\": \"The context does not provide information about ribociclib or any enzymes that it might inhibit. However, the answer is a statement about ribociclib, so it is plausible that the answer was obtained from a different source. Therefore, the context was not useful in arriving at the given answer.\",\n", - " \"verdict\": 0\n", - "}\n", - "``` with prompt prompt_str='Given question, answer and context verify if the context was useful in arriving at the given answer. Give verdict as \"1\" if useful and \"0\" if not with json output.\\n\\nThe output should be a well-formatted JSON instance that conforms to the JSON schema below.\\n\\nAs an example, for the schema {\"properties\": {\"foo\": {\"title\": \"Foo\", \"description\": \"a list of strings\", \"type\": \"array\", \"items\": {\"type\": \"string\"}}}, \"required\": [\"foo\"]}\\nthe object {\"foo\": [\"bar\", \"baz\"]} is a well-formatted instance of the schema. The object {\"properties\": {\"foo\": [\"bar\", \"baz\"]}} is not well-formatted.\\n\\nHere is the output JSON schema:\\n```\\n{\"description\": \"Answer for the verification task wether the context was useful.\", \"type\": \"object\", \"properties\": {\"reason\": {\"title\": \"Reason\", \"description\": \"Reason for verification\", \"type\": \"string\"}, \"verdict\": {\"title\": \"Verdict\", \"description\": \"Binary (0/1) verdict of verification\", \"type\": \"integer\"}}, \"required\": [\"reason\", \"verdict\"]}\\n```\\n\\nDo not return any preamble or explanations, return only a pure JSON string surrounded by triple backticks (```).\\n\\nExamples:\\n\\nquestion: \"What can you tell me about albert Albert Einstein?\"\\ncontext: \"Albert Einstein (14 March 1879 – 18 April 1955) was a German-born theoretical physicist, widely held to be one of the greatest and most influential scientists of all time. Best known for developing the theory of relativity, he also made important contributions to quantum mechanics, and was thus a central figure in the revolutionary reshaping of the scientific understanding of nature that modern physics accomplished in the first decades of the twentieth century. His mass–energy equivalence formula E = mc2, which arises from relativity theory, has been called \\\\\"the world\\'s most famous equation\\\\\". He received the 1921 Nobel Prize in Physics \\\\\"for his services to theoretical physics, and especially for his discovery of the law of the photoelectric effect\\\\\", a pivotal step in the development of quantum theory. His work is also known for its influence on the philosophy of science. In a 1999 poll of 130 leading physicists worldwide by the British journal Physics World, Einstein was ranked the greatest physicist of all time. His intellectual achievements and originality have made Einstein synonymous with genius.\"\\nanswer: \"Albert Einstein born in 14 March 1879 was German-born theoretical physicist, widely held to be one of the greatest and most influential scientists of all time. He received the 1921 Nobel Prize in Physics for his services to theoretical physics. He published 4 papers in 1905. Einstein moved to Switzerland in 1895\"\\nverification: ```{\"reason\": \"The provided context was indeed useful in arriving at the given answer. The context includes key information about Albert Einstein\\'s life and contributions, which are reflected in the answer.\", \"verdict\": 1}```\\n\\nquestion: \"who won 2020 icc world cup?\"\\ncontext: \"The 2022 ICC Men\\'s T20 World Cup, held from October 16 to November 13, 2022, in Australia, was the eighth edition of the tournament. Originally scheduled for 2020, it was postponed due to the COVID-19 pandemic. England emerged victorious, defeating Pakistan by five wickets in the final to clinch their second ICC Men\\'s T20 World Cup title.\"\\nanswer: \"England\"\\nverification: ```{\"reason\": \"the context was useful in clarifying the situation regarding the 2020 ICC World Cup and indicating that England was the winner of the tournament that was intended to be held in 2020 but actually took place in 2022.\", \"verdict\": 1}```\\n\\nquestion: \"What is the tallest mountain in the world?\"\\ncontext: \"The Andes is the longest continental mountain range in the world, located in South America. It stretches across seven countries and features many of the highest peaks in the Western Hemisphere. The range is known for its diverse ecosystems, including the high-altitude Andean Plateau and the Amazon rainforest.\"\\nanswer: \"Mount Everest.\"\\nverification: ```{\"reason\": \"the provided context discusses the Andes mountain range, which, while impressive, does not include Mount Everest or directly relate to the question about the world\\'s tallest mountain.\", \"verdict\": 0}```\\n\\nYour actual task:\\n\\nquestion: Which enzyme is inhibited by ribociclib?\\ncontext: 17103449 / P250R mutation in the FGFR3 gene also known as Muenke syndrome is associated \\nwith coronal craniosynostosis, sensorineural deafness, craniofacial, and digital \\nabnormalities. We report a family with this mutation associated with sudden \\ndeath in an affected newborn, most probably due to upper airway obstruction. //\\nanswer: Ribociclib is inhibitor of cyclin D-cyclin-dependent kinase 4/6 (CDK 4/6). It is used for breast cancer treatment.\\nverification: \\n'\n" - ] - }, - { - "name": "stderr", - "output_type": "stream", - "text": [ - "INFO:httpx:HTTP Request: POST https://api.mistral.ai/v1/chat/completions \"HTTP/1.1 200 OK\"\n" - ] - }, - { - "name": "stdout", - "output_type": "stream", - "text": [ - "start parsing ```[\n", - " {\n", - " \"statement\": \"Gastro esophageal reflux is related to burning mouth syndrome.\",\n", - " \"attributed\": 0,\n", - " \"reason\": \"There is no mention of gastro esophageal reflux or burning mouth syndrome in the given context.\"\n", - " },\n", - " {\n", - " \"statement\": \"There is no data indicating a causal connection between gastro esophageal/laryngopharyngeal (LPR) reflux disease and the occurrence of intraoral burning sensations.\",\n", - " \"attributed\": 1,\n", - " \"reason\": \"The statement is a paraphrase of the information present in the answer.\"\n", - " }\n", - "]\n", - "``` with prompt prompt_str='Given a context, and an answer, analyze each sentence in the answer and classify if the sentence can be attributed to the given context or not. Use only \"Yes\" (1) or \"No\" (0) as a binary classification. Output json with reason.\\n\\nThe output should be a well-formatted JSON instance that conforms to the JSON schema below.\\n\\nAs an example, for the schema {\"properties\": {\"foo\": {\"title\": \"Foo\", \"description\": \"a list of strings\", \"type\": \"array\", \"items\": {\"type\": \"string\"}}}, \"required\": [\"foo\"]}\\nthe object {\"foo\": [\"bar\", \"baz\"]} is a well-formatted instance of the schema. The object {\"properties\": {\"foo\": [\"bar\", \"baz\"]}} is not well-formatted.\\n\\nHere is the output JSON schema:\\n```\\n{\"type\": \"array\", \"items\": {\"$ref\": \"#/definitions/ContextRecallClassificationAnswer\"}, \"definitions\": {\"ContextRecallClassificationAnswer\": {\"title\": \"ContextRecallClassificationAnswer\", \"type\": \"object\", \"properties\": {\"statement\": {\"title\": \"Statement\", \"type\": \"string\"}, \"attributed\": {\"title\": \"Attributed\", \"type\": \"integer\"}, \"reason\": {\"title\": \"Reason\", \"type\": \"string\"}}, \"required\": [\"statement\", \"attributed\", \"reason\"]}}}\\n```\\n\\nDo not return any preamble or explanations, return only a pure JSON string surrounded by triple backticks (```).\\n\\nExamples:\\n\\nquestion: \"What can you tell me about albert Albert Einstein?\"\\ncontext: \"Albert Einstein (14 March 1879 - 18 April 1955) was a German-born theoretical physicist, widely held to be one of the greatest and most influential scientists of all time. Best known for developing the theory of relativity, he also made important contributions to quantum mechanics, and was thus a central figure in the revolutionary reshaping of the scientific understanding of nature that modern physics accomplished in the first decades of the twentieth century. His mass-energy equivalence formula E = mc2, which arises from relativity theory, has been called \\'the world\\'s most famous equation\\'. He received the 1921 Nobel Prize in Physics \\'for his services to theoretical physics, and especially for his discovery of the law of the photoelectric effect\\', a pivotal step in the development of quantum theory. His work is also known for its influence on the philosophy of science. In a 1999 poll of 130 leading physicists worldwide by the British journal Physics World, Einstein was ranked the greatest physicist of all time. His intellectual achievements and originality have made Einstein synonymous with genius.\"\\nanswer: \"Albert Einstein born in 14 March 1879 was German-born theoretical physicist, widely held to be one of the greatest and most influential scientists of all time. He received the 1921 Nobel Prize in Physics for his services to theoretical physics. He published 4 papers in 1905. Einstein moved to Switzerland in 1895\"\\nclassification: ```[{\"statement\": \"Albert Einstein, born on 14 March 1879, was a German-born theoretical physicist, widely held to be one of the greatest and most influential scientists of all time.\", \"attributed\": 1, \"reason\": \"The date of birth of Einstein is mentioned clearly in the context.\"}, {\"statement\": \"He received the 1921 Nobel Prize in Physics for his services to theoretical physics.\", \"attributed\": 1, \"reason\": \"The exact sentence is present in the given context.\"}, {\"statement\": \"He published 4 papers in 1905.\", \"attributed\": 0, \"reason\": \"There is no mention about papers he wrote in the given context.\"}, {\"statement\": \"Einstein moved to Switzerland in 1895.\", \"attributed\": 0, \"reason\": \"There is no supporting evidence for this in the given context.\"}]```\\n\\nquestion: \"who won 2020 icc world cup?\"\\ncontext: \"The 2022 ICC Men\\'s T20 World Cup, held from October 16 to November 13, 2022, in Australia, was the eighth edition of the tournament. Originally scheduled for 2020, it was postponed due to the COVID-19 pandemic. England emerged victorious, defeating Pakistan by five wickets in the final to clinch their second ICC Men\\'s T20 World Cup title.\"\\nanswer: \"England\"\\nclassification: ```[{\"statement\": \"England won the 2022 ICC Men\\'s T20 World Cup.\", \"attributed\": 1, \"reason\": \"From context it is clear that England defeated Pakistan to win the World Cup.\"}]```\\n\\nquestion: \"What is the primary fuel for the Sun?\"\\ncontext: \"NULL\"\\nanswer: \"Hydrogen\"\\nclassification: ```[{\"statement\": \"The Sun\\'s primary fuel is hydrogen.\", \"attributed\": 0, \"reason\": \"The context contains no information\"}]```\\n\\nYour actual task:\\n\\nquestion: Is gastro esophageal reflux related to burning mouth syndrome?\\ncontext: 11428324 / Familial craniosynostosis due to Pro250Arg mutation in the fibroblast growth \\nfactor receptor 3 gene. //\\n15683664 / Skin side effects following XRT take place more often in patients with skin \\ndisorders. In this study six patients with psoriatic lesions were evaluated. The \\ntotal/daily XRT dose to the tumor site was 50-70/1.8-2.0 Gy. No debilitating \\neffect of XRT was observed in both the psoriatic lesions and in the surrounding \\nnormal skin. //\\n16570042 / Mobile phone use and risk of acoustic neuroma: results of the interphone \\ncase-control study in five north European countries [corrected]. //\\n16457587 / The basis set of protein forms expressed by human cells from the H2B gene family \\nwas determined by Top Down Mass Spectrometry. Using Electron Capture \\nDissociation for MS/MS of H2B isoforms, direct evidence for the expression of \\nunmodified H2B.Q, H2B.A, H2B.K/T, H2B.J, H2B.E, H2B.B, H2B.F, and monoacetylated \\nH2B.A was obtained from asynchronous HeLa cells. H2B.A was the most abundant \\nform, with the overall expression profile not changing significantly in cells \\narrested in mitosis by colchicine or during mid-S, mid-G2, G2/M, and mid-G1 \\nphases of the cell cycle. Modest hyperacetylation of H2B family members was \\nobserved after sodium butyrate treatment. //\\n17103449 / P250R mutation in the FGFR3 gene also known as Muenke syndrome is associated \\nwith coronal craniosynostosis, sensorineural deafness, craniofacial, and digital \\nabnormalities. We report a family with this mutation associated with sudden \\ndeath in an affected newborn, most probably due to upper airway obstruction. //\\nanswer: No data indicate causal connection between gastro esophageal/laryngopharyngeal(LPR) reflux disease and the occurrence of intraoral burning sensations\\nclassification: \\n'\n" - ] - }, - { - "name": "stderr", - "output_type": "stream", - "text": [ - "INFO:httpx:HTTP Request: POST https://api.mistral.ai/v1/chat/completions \"HTTP/1.1 200 OK\"\n" - ] - }, - { - "name": "stdout", - "output_type": "stream", - "text": [ - "start parsing ```\n", - "[\n", - " {\n", - " \"sentence_index\": 0,\n", - " \"simpler_statements\": [\n", - " \"Sorafenib activates AMP-activated protein kinase (AMPK).\",\n", - " \"Sorafenib is a tyrosine kinase inhibitor.\"\n", - " ]\n", - " },\n", - " {\n", - " \"sentence_index\": 1,\n", - " \"simpler_statements\": [\n", - " \"AMPK is a cellular energy sensor.\",\n", - " \"AMPK plays a crucial role in regulating cellular energy homeostasis, metabolism, and autophagy.\"\n", - " ]\n", - " },\n", - " {\n", - " \"sentence_index\": 2,\n", - " \"simpler_statements\": [\n", - " \"Sorafenib is used to treat liver cancer.\",\n", - " \"Sorafenib activates AMPK through the inhibition of ATR and the activation of the AMPKα subunit.\"\n", - " ]\n", - " },\n", - " {\n", - " \"sentence_index\": 3,\n", - " \"simpler_statements\": [\n", - " \"The activation of AMPK by sorafenib may contribute to its anticancer effects.\",\n", - " \"AMPK can inhibit cell proliferation, promote autophagy, and induce apoptosis in cancer cells.\"\n", - " ]\n", - " },\n", - " {\n", - " \"sentence_index\": 4,\n", - " \"simpler_statements\": [\n", - " \"The activation of AMPK by sorafenib may have potential side effects.\",\n", - " \"The potential side effects of AMPK activation by sorafenib include muscle weakness and fatigue.\",\n", - " \"The side effects are due to the inhibition of protein synthesis and mitochondrial biogenesis.\"\n", - " ]\n", - " },\n", - " {\n", - " \"sentence_index\": 5,\n", - " \"simpler_statements\": [\n", - " \"Further research is needed to understand the effects of sorafenib on AMPK.\",\n", - " \"Additional research is required to understand the potential implications for cancer treatment and side effects.\"\n", - " ]\n", - " }\n", - "]\n", - "``` with prompt prompt_str='Given a question, an answer, and sentences from the answer analyze the complexity of each sentence given under \\'sentences\\' and break down each sentence into one or more fully understandable statements while also ensuring no pronouns are used in each statement. Format the outputs in JSON.\\n\\nThe output should be a well-formatted JSON instance that conforms to the JSON schema below.\\n\\nAs an example, for the schema {\"properties\": {\"foo\": {\"title\": \"Foo\", \"description\": \"a list of strings\", \"type\": \"array\", \"items\": {\"type\": \"string\"}}}, \"required\": [\"foo\"]}\\nthe object {\"foo\": [\"bar\", \"baz\"]} is a well-formatted instance of the schema. The object {\"properties\": {\"foo\": [\"bar\", \"baz\"]}} is not well-formatted.\\n\\nHere is the output JSON schema:\\n```\\n{\"type\": \"array\", \"items\": {\"$ref\": \"#/definitions/Statements\"}, \"definitions\": {\"Statements\": {\"title\": \"Statements\", \"type\": \"object\", \"properties\": {\"sentence_index\": {\"title\": \"Sentence Index\", \"description\": \"Index of the sentence from the statement list\", \"type\": \"integer\"}, \"simpler_statements\": {\"title\": \"Simpler Statements\", \"description\": \"the simpler statements\", \"type\": \"array\", \"items\": {\"type\": \"string\"}}}, \"required\": [\"sentence_index\", \"simpler_statements\"]}}}\\n```\\n\\nDo not return any preamble or explanations, return only a pure JSON string surrounded by triple backticks (```).\\n\\nExamples:\\n\\nquestion: \"Who was Albert Einstein and what is he best known for?\"\\nanswer: \"He was a German-born theoretical physicist, widely acknowledged to be one of the greatest and most influential physicists of all time. He was best known for developing the theory of relativity, he also made important contributions to the development of the theory of quantum mechanics.\"\\nsentences: \"\\\\n 0:He was a German-born theoretical physicist, widely acknowledged to be one of the greatest and most influential physicists of all time. \\\\n 1:He was best known for developing the theory of relativity, he also made important contributions to the development of the theory of quantum mechanics.\\\\n \"\\nanalysis: ```[{\"sentence_index\": 0, \"simpler_statements\": [\"Albert Einstein was a German-born theoretical physicist.\", \"Albert Einstein is recognized as one of the greatest and most influential physicists of all time.\"]}, {\"sentence_index\": 1, \"simpler_statements\": [\"Albert Einstein was best known for developing the theory of relativity.\", \"Albert Einstein also made important contributions to the development of the theory of quantum mechanics.\"]}]```\\n\\nYour actual task:\\n\\nquestion: Can sorafenib activate AMPK?\\nanswer: Yes, sorafenib, a tyrosine kinase inhibitor, has been shown to activate AMP-activated protein kinase (AMPK) in some studies. AMPK is a cellular energy sensor that plays a crucial role in regulating cellular energy homeostasis, metabolism, and autophagy. Sorafenib, which is commonly used to treat liver cancer, has been found to activate AMPK through the inhibition of the protein kinase ATR (ataxia-telangiectasia mutated and Rad3-related protein) and the activation of the AMPKα subunit. This activation of AMPK by sorafenib may contribute to its anticancer effects, as AMPK can inhibit cell proliferation, promote autophagy, and induce apoptosis in cancer cells. However, the activation of AMPK by sorafenib may also have potential side effects, such as muscle weakness and fatigue, due to the inhibition of protein synthesis and mitochondrial biogenesis. Further research is needed to fully understand the effects of sorafenib on AMPK and its potential implications for cancer treatment and side effects.\\nsentences: 0:Yes, sorafenib, a tyrosine kinase inhibitor, has been shown to activate AMP-activated protein kinase (AMPK) in some studies. \\n1:AMPK is a cellular energy sensor that plays a crucial role in regulating cellular energy homeostasis, metabolism, and autophagy. \\n2:Sorafenib, which is commonly used to treat liver cancer, has been found to activate AMPK through the inhibition of the protein kinase ATR (ataxia-telangiectasia mutated and Rad3-related protein) and the activation of the AMPKα subunit. \\n3:This activation of AMPK by sorafenib may contribute to its anticancer effects, as AMPK can inhibit cell proliferation, promote autophagy, and induce apoptosis in cancer cells. \\n4:However, the activation of AMPK by sorafenib may also have potential side effects, such as muscle weakness and fatigue, due to the inhibition of protein synthesis and mitochondrial biogenesis. \\n5:Further research is needed to fully understand the effects of sorafenib on AMPK and its potential implications for cancer treatment and side effects.\\nanalysis: \\n'\n" - ] - }, - { - "name": "stderr", - "output_type": "stream", - "text": [ - "INFO:httpx:HTTP Request: POST https://api.mistral.ai/v1/chat/completions \"HTTP/1.1 200 OK\"\n" - ] - }, - { - "name": "stdout", - "output_type": "stream", - "text": [ - "start parsing [\n", - "{\"statement\": \"Sorafenib activates AMP-activated protein kinase (AMPK).\", \"reason\": \"There is no information in the context about Sorafenib or AMP-activated protein kinase (AMPK).\", \"verdict\": 0},\n", - "{\"statement\": \"Sorafenib is a tyrosine kinase inhibitor.\", \"reason\": \"There is no information in the context about Sorafenib or its properties.\", \"verdict\": 0},\n", - "{\"statement\": \"AMPK is a cellular energy sensor.\", \"reason\": \"There is no information in the context about AMPK or its functions.\", \"verdict\": 0},\n", - "{\"statement\": \"AMPK plays a crucial role in regulating cellular energy homeostasis, metabolism, and autophagy.\", \"reason\": \"There is no information in the context about AMPK or its functions.\", \"verdict\": 0},\n", - "{\"statement\": \"Sorafenib is used to treat liver cancer.\", \"reason\": \"There is no information in the context about Sorafenib or its uses in cancer treatment.\", \"verdict\": 0},\n", - "{\"statement\": \"Sorafenib activates AMPK through the inhibition of ATR and the activation of the AMPKα subunit.\", \"reason\": \"There is no information in the context about Sorafenib, AMPK, ATR or the mechanism of activation.\", \"verdict\": 0},\n", - "{\"statement\": \"The activation of AMPK by sorafenib may contribute to its anticancer effects.\", \"reason\": \"There is no information in the context about Sorafenib, AMPK or its effects on cancer.\", \"verdict\": 0},\n", - "{\"statement\": \"AMPK can inhibit cell proliferation, promote autophagy, and induce apoptosis in cancer cells.\", \"reason\": \"There is no information in the context about AMPK or its effects on cancer.\", \"verdict\": 0},\n", - "{\"statement\": \"The activation of AMPK by sorafenib may have potential side effects.\", \"reason\": \"There is no information in the context about Sorafenib, AMPK or its potential side effects.\", \"verdict\": 0},\n", - "{\"statement\": \"The potential side effects of AMPK activation by sorafenib include muscle weakness and fatigue.\", \"reason\": \"There is no information in the context about Sorafenib, AMPK or its potential side effects.\", \"verdict\": 0},\n", - "{\"statement\": \"The side effects are due to the inhibition of protein synthesis and mitochondrial biogenesis.\", \"reason\": \"There is no information in the context about Sorafenib, AMPK, protein synthesis, mitochondrial biogenesis or its side effects.\", \"verdict\": 0},\n", - "{\"statement\": \"Further research is needed to understand the effects of sorafenib on AMPK.\", \"reason\": \"There is no information in the context about Sorafenib, AMPK or the need for further research.\", \"verdict\": 0},\n", - "{\"statement\": \"Additional research is required to understand the potential implications for cancer treatment and side effects.\", \"reason\": \"There is no information in the context about Sorafenib, AMPK, cancer treatment or side effects.\", \"verdict\": 0}\n", - "]\n", - "\n", - "The context provided does not contain any information about Sorafenib or AMP-activated protein kinase (AMPK), therefore all the statements about Sorafenib and AMPK cannot be directly inferred from the context. with prompt prompt_str='Your task is to judge the faithfulness of a series of statements based on a given context. For each statement you must return verdict as 1 if the statement can be directly inferred based on the context or 0 if the statement can not be directly inferred based on the context.\\n\\nThe output should be a well-formatted JSON instance that conforms to the JSON schema below.\\n\\nAs an example, for the schema {\"properties\": {\"foo\": {\"title\": \"Foo\", \"description\": \"a list of strings\", \"type\": \"array\", \"items\": {\"type\": \"string\"}}}, \"required\": [\"foo\"]}\\nthe object {\"foo\": [\"bar\", \"baz\"]} is a well-formatted instance of the schema. The object {\"properties\": {\"foo\": [\"bar\", \"baz\"]}} is not well-formatted.\\n\\nHere is the output JSON schema:\\n```\\n{\"type\": \"array\", \"items\": {\"$ref\": \"#/definitions/StatementFaithfulnessAnswer\"}, \"definitions\": {\"StatementFaithfulnessAnswer\": {\"title\": \"StatementFaithfulnessAnswer\", \"type\": \"object\", \"properties\": {\"statement\": {\"title\": \"Statement\", \"description\": \"the original statement, word-by-word\", \"type\": \"string\"}, \"reason\": {\"title\": \"Reason\", \"description\": \"the reason of the verdict\", \"type\": \"string\"}, \"verdict\": {\"title\": \"Verdict\", \"description\": \"the verdict(0/1) of the faithfulness.\", \"type\": \"integer\"}}, \"required\": [\"statement\", \"reason\", \"verdict\"]}}}\\n```\\n\\nDo not return any preamble or explanations, return only a pure JSON string surrounded by triple backticks (```).\\n\\nExamples:\\n\\ncontext: \"John is a student at XYZ University. He is pursuing a degree in Computer Science. He is enrolled in several courses this semester, including Data Structures, Algorithms, and Database Management. John is a diligent student and spends a significant amount of time studying and completing assignments. He often stays late in the library to work on his projects.\"\\nstatements: ```[\"John is majoring in Biology.\", \"John is taking a course on Artificial Intelligence.\", \"John is a dedicated student.\", \"John has a part-time job.\"]```\\nanswer: ```[{\"statement\": \"John is majoring in Biology.\", \"reason\": \"John\\'s major is explicitly mentioned as Computer Science. There is no information suggesting he is majoring in Biology.\", \"verdict\": 0}, {\"statement\": \"John is taking a course on Artificial Intelligence.\", \"reason\": \"The context mentions the courses John is currently enrolled in, and Artificial Intelligence is not mentioned. Therefore, it cannot be deduced that John is taking a course on AI.\", \"verdict\": 0}, {\"statement\": \"John is a dedicated student.\", \"reason\": \"The context states that he spends a significant amount of time studying and completing assignments. Additionally, it mentions that he often stays late in the library to work on his projects, which implies dedication.\", \"verdict\": 1}, {\"statement\": \"John has a part-time job.\", \"reason\": \"There is no information given in the context about John having a part-time job.\", \"verdict\": 0}]```\\n\\ncontext: \"Photosynthesis is a process used by plants, algae, and certain bacteria to convert light energy into chemical energy.\"\\nstatements: ```[\"Albert Einstein was a genius.\"]```\\nanswer: ```[{\"statement\": \"Albert Einstein was a genius.\", \"reason\": \"The context and statement are unrelated\", \"verdict\": 0}]```\\n\\nYour actual task:\\n\\ncontext: 11428324 / Familial craniosynostosis due to Pro250Arg mutation in the fibroblast growth \\nfactor receptor 3 gene. //\\n15683664 / Skin side effects following XRT take place more often in patients with skin \\ndisorders. In this study six patients with psoriatic lesions were evaluated. The \\ntotal/daily XRT dose to the tumor site was 50-70/1.8-2.0 Gy. No debilitating \\neffect of XRT was observed in both the psoriatic lesions and in the surrounding \\nnormal skin. //\\n16570042 / Mobile phone use and risk of acoustic neuroma: results of the interphone \\ncase-control study in five north European countries [corrected]. //\\n16457587 / The basis set of protein forms expressed by human cells from the H2B gene family \\nwas determined by Top Down Mass Spectrometry. Using Electron Capture \\nDissociation for MS/MS of H2B isoforms, direct evidence for the expression of \\nunmodified H2B.Q, H2B.A, H2B.K/T, H2B.J, H2B.E, H2B.B, H2B.F, and monoacetylated \\nH2B.A was obtained from asynchronous HeLa cells. H2B.A was the most abundant \\nform, with the overall expression profile not changing significantly in cells \\narrested in mitosis by colchicine or during mid-S, mid-G2, G2/M, and mid-G1 \\nphases of the cell cycle. Modest hyperacetylation of H2B family members was \\nobserved after sodium butyrate treatment. //\\n17103449 / P250R mutation in the FGFR3 gene also known as Muenke syndrome is associated \\nwith coronal craniosynostosis, sensorineural deafness, craniofacial, and digital \\nabnormalities. We report a family with this mutation associated with sudden \\ndeath in an affected newborn, most probably due to upper airway obstruction. //\\nstatements: [\"Sorafenib activates AMP-activated protein kinase (AMPK).\", \"Sorafenib is a tyrosine kinase inhibitor.\", \"AMPK is a cellular energy sensor.\", \"AMPK plays a crucial role in regulating cellular energy homeostasis, metabolism, and autophagy.\", \"Sorafenib is used to treat liver cancer.\", \"Sorafenib activates AMPK through the inhibition of ATR and the activation of the AMPK\\\\u03b1 subunit.\", \"The activation of AMPK by sorafenib may contribute to its anticancer effects.\", \"AMPK can inhibit cell proliferation, promote autophagy, and induce apoptosis in cancer cells.\", \"The activation of AMPK by sorafenib may have potential side effects.\", \"The potential side effects of AMPK activation by sorafenib include muscle weakness and fatigue.\", \"The side effects are due to the inhibition of protein synthesis and mitochondrial biogenesis.\", \"Further research is needed to understand the effects of sorafenib on AMPK.\", \"Additional research is required to understand the potential implications for cancer treatment and side effects.\"]\\nanswer: \\n'\n" - ] - }, - { - "name": "stderr", - "output_type": "stream", - "text": [ - "INFO:httpx:HTTP Request: POST https://api.mistral.ai/v1/chat/completions \"HTTP/1.1 200 OK\"\n" - ] - }, - { - "name": "stdout", - "output_type": "stream", - "text": [ - "start parsing ```[\n", - " {\n", - " \"statement\": \"Ribociclib is an inhibitor of cyclin D-cyclin-dependent kinase 4/6 (CDK 4/6).\",\n", - " \"attributed\": 0,\n", - " \"reason\": \"The context does not mention anything about ribociclib being an inhibitor of cyclin D-cyclin-dependent kinase 4/6 (CDK 4/6).\"\n", - " },\n", - " {\n", - " \"statement\": \"Ribociclib is used for breast cancer treatment.\",\n", - " \"attributed\": 0,\n", - " \"reason\": \"The context does not mention anything about ribociclib being used for breast cancer treatment.\"\n", - " }\n", - "]\n", - "``` with prompt prompt_str='Given a context, and an answer, analyze each sentence in the answer and classify if the sentence can be attributed to the given context or not. Use only \"Yes\" (1) or \"No\" (0) as a binary classification. Output json with reason.\\n\\nThe output should be a well-formatted JSON instance that conforms to the JSON schema below.\\n\\nAs an example, for the schema {\"properties\": {\"foo\": {\"title\": \"Foo\", \"description\": \"a list of strings\", \"type\": \"array\", \"items\": {\"type\": \"string\"}}}, \"required\": [\"foo\"]}\\nthe object {\"foo\": [\"bar\", \"baz\"]} is a well-formatted instance of the schema. The object {\"properties\": {\"foo\": [\"bar\", \"baz\"]}} is not well-formatted.\\n\\nHere is the output JSON schema:\\n```\\n{\"type\": \"array\", \"items\": {\"$ref\": \"#/definitions/ContextRecallClassificationAnswer\"}, \"definitions\": {\"ContextRecallClassificationAnswer\": {\"title\": \"ContextRecallClassificationAnswer\", \"type\": \"object\", \"properties\": {\"statement\": {\"title\": \"Statement\", \"type\": \"string\"}, \"attributed\": {\"title\": \"Attributed\", \"type\": \"integer\"}, \"reason\": {\"title\": \"Reason\", \"type\": \"string\"}}, \"required\": [\"statement\", \"attributed\", \"reason\"]}}}\\n```\\n\\nDo not return any preamble or explanations, return only a pure JSON string surrounded by triple backticks (```).\\n\\nExamples:\\n\\nquestion: \"What can you tell me about albert Albert Einstein?\"\\ncontext: \"Albert Einstein (14 March 1879 - 18 April 1955) was a German-born theoretical physicist, widely held to be one of the greatest and most influential scientists of all time. Best known for developing the theory of relativity, he also made important contributions to quantum mechanics, and was thus a central figure in the revolutionary reshaping of the scientific understanding of nature that modern physics accomplished in the first decades of the twentieth century. His mass-energy equivalence formula E = mc2, which arises from relativity theory, has been called \\'the world\\'s most famous equation\\'. He received the 1921 Nobel Prize in Physics \\'for his services to theoretical physics, and especially for his discovery of the law of the photoelectric effect\\', a pivotal step in the development of quantum theory. His work is also known for its influence on the philosophy of science. In a 1999 poll of 130 leading physicists worldwide by the British journal Physics World, Einstein was ranked the greatest physicist of all time. His intellectual achievements and originality have made Einstein synonymous with genius.\"\\nanswer: \"Albert Einstein born in 14 March 1879 was German-born theoretical physicist, widely held to be one of the greatest and most influential scientists of all time. He received the 1921 Nobel Prize in Physics for his services to theoretical physics. He published 4 papers in 1905. Einstein moved to Switzerland in 1895\"\\nclassification: ```[{\"statement\": \"Albert Einstein, born on 14 March 1879, was a German-born theoretical physicist, widely held to be one of the greatest and most influential scientists of all time.\", \"attributed\": 1, \"reason\": \"The date of birth of Einstein is mentioned clearly in the context.\"}, {\"statement\": \"He received the 1921 Nobel Prize in Physics for his services to theoretical physics.\", \"attributed\": 1, \"reason\": \"The exact sentence is present in the given context.\"}, {\"statement\": \"He published 4 papers in 1905.\", \"attributed\": 0, \"reason\": \"There is no mention about papers he wrote in the given context.\"}, {\"statement\": \"Einstein moved to Switzerland in 1895.\", \"attributed\": 0, \"reason\": \"There is no supporting evidence for this in the given context.\"}]```\\n\\nquestion: \"who won 2020 icc world cup?\"\\ncontext: \"The 2022 ICC Men\\'s T20 World Cup, held from October 16 to November 13, 2022, in Australia, was the eighth edition of the tournament. Originally scheduled for 2020, it was postponed due to the COVID-19 pandemic. England emerged victorious, defeating Pakistan by five wickets in the final to clinch their second ICC Men\\'s T20 World Cup title.\"\\nanswer: \"England\"\\nclassification: ```[{\"statement\": \"England won the 2022 ICC Men\\'s T20 World Cup.\", \"attributed\": 1, \"reason\": \"From context it is clear that England defeated Pakistan to win the World Cup.\"}]```\\n\\nquestion: \"What is the primary fuel for the Sun?\"\\ncontext: \"NULL\"\\nanswer: \"Hydrogen\"\\nclassification: ```[{\"statement\": \"The Sun\\'s primary fuel is hydrogen.\", \"attributed\": 0, \"reason\": \"The context contains no information\"}]```\\n\\nYour actual task:\\n\\nquestion: Which enzyme is inhibited by ribociclib?\\ncontext: 11428324 / Familial craniosynostosis due to Pro250Arg mutation in the fibroblast growth \\nfactor receptor 3 gene. //\\n15683664 / Skin side effects following XRT take place more often in patients with skin \\ndisorders. In this study six patients with psoriatic lesions were evaluated. The \\ntotal/daily XRT dose to the tumor site was 50-70/1.8-2.0 Gy. No debilitating \\neffect of XRT was observed in both the psoriatic lesions and in the surrounding \\nnormal skin. //\\n16570042 / Mobile phone use and risk of acoustic neuroma: results of the interphone \\ncase-control study in five north European countries [corrected]. //\\n16457587 / The basis set of protein forms expressed by human cells from the H2B gene family \\nwas determined by Top Down Mass Spectrometry. Using Electron Capture \\nDissociation for MS/MS of H2B isoforms, direct evidence for the expression of \\nunmodified H2B.Q, H2B.A, H2B.K/T, H2B.J, H2B.E, H2B.B, H2B.F, and monoacetylated \\nH2B.A was obtained from asynchronous HeLa cells. H2B.A was the most abundant \\nform, with the overall expression profile not changing significantly in cells \\narrested in mitosis by colchicine or during mid-S, mid-G2, G2/M, and mid-G1 \\nphases of the cell cycle. Modest hyperacetylation of H2B family members was \\nobserved after sodium butyrate treatment. //\\n17103449 / P250R mutation in the FGFR3 gene also known as Muenke syndrome is associated \\nwith coronal craniosynostosis, sensorineural deafness, craniofacial, and digital \\nabnormalities. We report a family with this mutation associated with sudden \\ndeath in an affected newborn, most probably due to upper airway obstruction. //\\nanswer: Ribociclib is inhibitor of cyclin D-cyclin-dependent kinase 4/6 (CDK 4/6). It is used for breast cancer treatment.\\nclassification: \\n'\n", - "[[MetricResults(element_wise_scores=[ElementWiseScores(label='rag-mini-bioasq@@prompt', values=['[user: Describe the mechanism of action of Bezlotoxumab?]', '[user: Can sorafenib activate AMPK?]', '[user: Which growth factors are known to be involved in the induction of EMT?]', '[user: What is the effect of the alleles CYP2C19*2 and CYP2C19*3 on CYP2C19 function?]', '[user: Which enzyme is inhibited by ribociclib?]', '[user: Is the abnormal dosage of ultraconserved elements disfavored in cancer cells?]', '[user: Is c-myc subject to regulation by the circadian clock?]', '[user: Is gastro esophageal reflux related to burning mouth syndrome?]', '[user: Are genes that escape X-chromosome inactivation related to mental impairment?]', '[user: What is the role of mismatched uracil glycosylase (Mug) in DNA repair?]'], average_function=)], need_average=False), MetricResults(element_wise_scores=[ElementWiseScores(label='rag-mini-bioasq@@answers', values=[\"1: Bezlotoxumab is a monoclonal antibody that targets the cytokine tumor necrosis factor-alpha (TNF-alpha). It is used to treat moderate to severe Crohn's disease and ulcerative colitis. The mechanism of action of bezlotoxumab is to bind to TNF-alpha, a protein that plays a key role in the inflammatory response, and block its interaction with its receptors on the surface of immune cells. This prevents the activation of inflammatory pathways and reduces inflammation in the gastrointestinal tract, thereby alleviating symptoms of Crohn's disease and ulcerative colitis.\\n\\n2: Bezlotoxumab is a humanized monoclonal antibody that targets the p40 subunit of interleukin-23 (IL-23), a cytokine involved in the pathogenesis of Crohn's disease and ulcerative colitis. By binding to the p40 subunit, bezlotoxumab inhibits the production of IL-23, which in turn reduces the activity of inflammatory cells and alleviates inflammation in the gastrointestinal tract. This leads to a decrease in the number of inflammatory cells and a reduction in the production of pro-inflammatory cytokines, ultimately resulting in improved symptoms and reduced disease activity in patients with Crohn's disease and ulcerative colitis.\\n\\n3: Bezlotoxumab is a monoclonal antibody that targets the toxin Bacteroides fragilis (Bf) and is used to treat Clostridium difficile-associated diarrhea (CDAD). The mechanism of action of bezlotoxumab is to bind to the Bf toxin, preventing it from binding to its receptor on the surface of intestinal epithelial cells. This prevents the toxin from exerting its effects, which include disruption of the intestinal epithelial barrier and the release of inflammatory cytokines, leading to inflammation and tissue damage. By blocking the toxin's activity, bezlotoxumab helps to reduce the severity and duration of CDAD.\\n\\n4: Bezlotoxumab is a humanized monoclonal antibody that targets the p40 subunit of interleukin-23 (IL-23), a cytokine involved in the pathogenesis of inflammatory bowel disease (IBD). The mechanism of action of bezlotoxumab involves binding to the p40 subunit of IL-23, preventing its interaction with its receptor and subsequently inhibiting the downstream signaling pathways that lead to inflammation and tissue damage. This results in reduced production of pro-inflammatory cytokines and chemokines, ultimately decreasing inflammation and promoting a more favorable disease course in patients with IBD.\\n\\n5: Bezlotoxumab is a humanized monoclonal antibody that targets the cytokine tumor necrosis factor-alpha (TNF-alpha). It is used to treat moderate to severe Crohn's disease and ulcerative colitis, two types of inflammatory bowel disease. The mechanism of action of bezlotoxumab is to bind to TNF-alpha, a protein that plays a key role in the inflammatory response, and block its interaction with its receptors on the surface of immune cells. This reduces the inflammatory response and helps to decrease the signs and symptoms of the diseases.\", '1: Yes, sorafenib, a tyrosine kinase inhibitor, has been shown to activate AMP-activated protein kinase (AMPK) in some studies. AMPK is a cellular energy sensor that plays a crucial role in regulating cellular energy homeostasis, metabolism, and autophagy. Sorafenib, which is commonly used to treat liver cancer, has been found to activate AMPK through the inhibition of the protein kinase ATR (ataxia-telangiectasia mutated and Rad3-related protein) and the activation of the AMPKα subunit. This activation of AMPK by sorafenib may contribute to its anticancer effects, as AMPK can inhibit cell proliferation, promote autophagy, and induce apoptosis in cancer cells. However, the activation of AMPK by sorafenib may also have potential side effects, such as muscle weakness and fatigue, due to the inhibition of protein synthesis and mitochondrial biogenesis. Further research is needed to fully understand the effects of sorafenib on AMPK and its potential implications for cancer treatment and side effects.\\n\\n2: Sorafenib, a tyrosine kinase inhibitor, has been shown to activate AMP-activated protein kinase (AMPK) in some studies. AMPK is a key regulator of cellular energy homeostasis and metabolism, and its activation has been implicated in the development of resistance to cancer therapy. Sorafenib has been shown to activate AMPK in some cancer cell lines, leading to changes in cell metabolism and survival. However, the specific effects of sorafenib on AMPK activation and its potential role in cancer therapy are still being investigated. Further research is needed to determine the precise mechanisms by which sorafenib activates AMPK and its potential therapeutic implications.\\n\\n3: Yes, sorafenib, a tyrosine kinase inhibitor, has been shown to activate AMP-activated protein kinase (AMPK) in some studies. AMPK is a cellular energy sensor that plays a crucial role in regulating cellular energy homeostasis and metabolism. Activation of AMPK by sorafenib may contribute to its anticancer effects by inhibiting cell proliferation and inducing apoptosis in cancer cells. However, the specific effects of sorafenib on AMPK activation may vary depending on the cell type, dose, and duration of treatment. Further research is needed to fully understand the relationship between sorafenib and AMPK activation.\\n\\n4: Sorafenib, a tyrosine kinase inhibitor, has been shown to have various effects on cellular signaling pathways, including the activation of AMP-activated protein kinase (AMPK). Studies have demonstrated that sorafenib can activate AMPK in a dose- and time-dependent manner, leading to inhibition of cell proliferation and induction of apoptosis in cancer cells. The activation of AMPK by sorafenib is thought to be mediated through the inhibition of the phosphatidylinositol 3-kinase/Akt pathway and the activation of the LKB1/STK11/CAAMPK signaling pathway. However, the exact mechanisms by which sorafenib activates AMPK are still not fully understood and require further investigation.\\n\\n5: Yes, sorafenib, a tyrosine kinase inhibitor, has been shown to activate AMP-activated protein kinase (AMPK) in some studies. AMPK is a cellular energy sensor that plays a crucial role in regulating cellular energy homeostasis, metabolism, and autophagy. Sorafenib, which is commonly used to treat liver cancer, has been found to activate AMPK through the inhibition of the protein kinase ATR (ataxia-telangiectasia mutated and Rad3-related protein), which is a negative regulator of AMPK. Activation of AMPK by sorafenib may contribute to its anticancer effects by inducing cell cycle arrest, apoptosis, and autophagy in cancer cells. However, the activation of AMPK by sorafenib may also have potential side effects, such as muscle weakness and fatigue, in some patients. Further research is needed to fully understand the effects of sorafenib on AMPK and its potential implications for cancer treatment and side effects.', '1: Several growth factors have been shown to be involved in the induction of epithelial-mesenchymal transition (EMT), including:\\n\\n1. Transforming growth factor-beta (TGF-β): TGF-β is a potent inducer of EMT and plays a crucial role in the development of cancer metastasis.\\n2. Epidermal growth factor (EGF): EGF stimulates EMT in various cell types, including cancer cells, and promotes tumor invasion and metastasis.\\n3. Platelet-derived growth factor (PDGF): PDGF is known to induce EMT in various cell types, including cancer cells, and promotes tumor progression and metastasis.\\n4. Fibroblast growth factor (FGF): FGF signaling has been shown to induce EMT in various cell types, including cancer cells, and promote tumor invasion and metastasis.\\n5. Hepatocyte growth factor (HGF): HGF is a potent inducer of EMT and plays a crucial role in the development of cancer metastasis.\\n6. Vascular endothelial growth factor (VEGF): VEGF is known to induce EMT in endothelial cells and promote angiogenesis, which is a crucial step in tumor growth and metastasis.\\n7. Insulin-like growth factor-\\n\\n2: Epithelial-mesenchymal transition (EMT) is a complex process that involves the conversion of epithelial cells into mesenchymal cells. Several growth factors have been implicated in the induction of EMT, including:\\n\\n1. Transforming growth factor-beta (TGF-β): TGF-β is a potent inducer of EMT and plays a crucial role in the development of cancer metastasis.\\n2. Epidermal growth factor (EGF): EGF stimulates EMT by activating the EGF receptor (EGFR) and downstream signaling pathways.\\n3. Fibroblast growth factor (FGF): FGF signaling has been shown to promote EMT in various cancer types.\\n4. Platelet-derived growth factor (PDGF): PDGF signaling can induce EMT by activating the PDGF receptor (PDGFR) and downstream signaling pathways.\\n5. Hepatocyte growth factor (HGF): HGF is a potent inducer of EMT and is involved in the metastatic process.\\n6. Wnt signaling pathway: The Wnt signaling pathway is involved in the regulation of EMT and has been implicated in cancer progression and metastasis.\\n7. Notch signaling pathway: The Notch signaling pathway is also involved in the regulation of\\n\\n3: Transforming growth factor-beta (TGF-β), epidermal growth factor (EGF), platelet-derived growth factor (PDGF), and fibroblast growth factor (FGF) are some of the growth factors known to be involved in the induction of epithelial-mesenchymal transition (EMT). These growth factors can stimulate the expression of EMT-inducing transcription factors, such as Snail, Slug, and Twist, which in turn promote the degradation of cell-cell adhesion molecules and the activation of matrix metalloproteinases, leading to the loss of cell polarity and the acquisition of a mesenchymal phenotype.\\n\\n4: Epithelial-mesenchymal transition (EMT) is a complex process that involves the \\ntransformation of epithelial cells into mesenchymal cells. Several growth factors \\nare known to be involved in the induction of EMT, including:\\n\\n1. Transforming growth factor-beta (TGF-beta): TGF-beta is a potent inducer of EMT \\nand plays a crucial role in the development of various cancers, including \\ncarcinomas, sarcomas, and melanomas.\\n\\n2. Epidermal growth factor (EGF): EGF is another potent inducer of EMT and is \\ninvolved in the development of various cancers, including breast, lung, and \\ncolorectal cancers.\\n\\n3. Fibroblast growth factor (FGF): FGF is a family of growth factors that can \\ninduce EMT and are involved in the development of various cancers, including \\ngliomas and sarcomas.\\n\\n4. Platelet-derived growth factor (PDGF): PDGF is a potent inducer of EMT and is \\ninvolved in the development of various cancers, including gliomas, sarcomas, and \\nosteosarcomas.\\n\\n5. Wnt signaling pathway: The Wnt signaling pathway is a complex\\n\\n5: Transforming growth factor-beta (TGF-beta), epidermal growth factor (EGF), and fibroblast growth factor (FGF) are known to be involved in the induction of epithelial-mesenchymal transition (EMT). These growth factors can stimulate the expression of EMT-inducing transcription factors, such as Snail and Twist, and promote the degradation of cell-cell adhesion molecules, such as E-cadherin, leading to the acquisition of a mesenchymal phenotype.', '1: The CYP2C19*2 and CYP2C19*3 alleles are both loss-of-function mutations in the CYP2C19 gene, which encodes the enzyme CYP2C19. This enzyme is involved in the metabolism of several drugs, including clopidogrel, a medication used to prevent blood clots in patients with cardiovascular disease.\\n\\nThe CYP2C19*2 allele is a 681G>A mutation that results in a premature stop codon, leading to a truncated protein that lacks the C-terminal region, which is essential for enzyme function. This mutation results in a complete loss of enzyme activity.\\n\\nThe CYP2C19*3 allele is a 745G>A mutation that results in a frameshift, leading to a truncated protein that lacks the majority of the enzyme\\'s catalytic domain. This mutation also results in a complete loss of enzyme activity.\\n\\nIndividuals who are homozygous for either of these alleles or heterozygous for both alleles will have a complete loss of CYP2C19 function, which can result in reduced efficacy of clopidogrel and an increased risk of cardiovascular events. This is known as the \"CYP2C19 poor metabolizer\" phenotype.\\n\\nIn summary, the C\\n\\n2: The CYP2C19*2 and CYP2C19*3 alleles are both loss-of-function alleles, meaning they result in reduced or absent CYP2C19 enzyme activity. CYP2C19 is a gene that encodes an enzyme involved in the metabolism of certain drugs, including clopidogrel, a medication used to prevent blood clots in patients with heart disease.\\n\\nThe CYP2C19*2 allele is a single nucleotide polymorphism (SNP) that results in a premature stop codon, leading to a truncated protein that lacks the active site of the enzyme. Individuals with this allele have reduced or absent CYP2C19 activity.\\n\\nThe CYP2C19*3 allele is a frameshift mutation that results in a truncated protein that also lacks the active site of the enzyme. Individuals with this allele have reduced or absent CYP2C19 activity.\\n\\nIndividuals who are homozygous for either the CYP2C19*2 or CYP2C19*3 allele, or heterozygous for both alleles, are considered to be CYP2C19 poor metabolizers. These individuals may have a reduced response to clopidogrel, which can increase their risk of adverse cardiovascular events.\\n\\n3: The CYP2C19*2 and CYP2C19*3 alleles are both loss-of-function alleles, meaning they result in reduced or absent CYP2C19 enzyme activity. CYP2C19 is a cytochrome P450 enzyme that is involved in the metabolism of many drugs, including clopidogrel, a medication commonly used to prevent blood clots in patients with cardiovascular disease.\\n\\nIndividuals with the CYP2C19*2 allele have a single nucleotide polymorphism (SNP) that results in a premature stop codon, leading to a truncated protein that lacks the active site of the enzyme. This results in a significant reduction in the metabolism of clopidogrel, which can lead to reduced efficacy of the medication.\\n\\nThe CYP2C19*3 allele is a frameshift mutation that results in a truncated protein with a disrupted active site. This allele also leads to reduced or absent CYP2C19 enzyme activity, which can result in decreased metabolism of clopidogrel and reduced efficacy of the medication.\\n\\nIn individuals with either the CYP2C19*2 or CYP2C19*3 allele, the metabolism of clopidogrel may be significantly impaired, which can result in reduced efficacy of the\\n\\n4: The CYP2C19*2 and CYP2C19*3 alleles are both loss-of-function alleles that result in reduced or absent CYP2C19 enzyme activity. CYP2C19 is a gene that encodes an enzyme involved in the metabolism of many drugs, including clopidogrel, a medication used to prevent blood clots. Individuals with these alleles may not metabolize clopidogrel effectively, which can increase the risk of adverse cardiovascular events. The CYP2C19*2 allele results in a frameshift mutation that leads to a truncated protein, while the CYP2C19*3 allele results in a premature stop codon, also leading to a truncated protein. Both alleles are associated with a reduced ability to metabolize clopidogrel, which can increase the risk of cardiovascular events in individuals taking this medication.\\n\\n5: The CYP2C19*2 and CYP2C19*3 alleles are both loss-of-function mutations in the CYP2C19 gene, which encodes the enzyme CYP2C19. This enzyme is involved in the metabolism of several drugs, including clopidogrel, a medication used to prevent blood clots in patients with cardiovascular disease.\\n\\nThe CYP2C19*2 allele is a 681G>A mutation that results in a premature stop codon, leading to a truncated protein that lacks the C-terminal region, which is essential for enzyme function. This results in a nonfunctional enzyme, and individuals with this allele are considered to be poor metabolizers of CYP2C19.\\n\\nThe CYP2C19*3 allele is a 745G>A mutation that results in a frameshift mutation, leading to a truncated protein that lacks the majority of the enzyme\\'s catalytic domain. This mutation also results in a nonfunctional enzyme, and individuals with this allele are also considered to be poor metabolizers of CYP2C19.\\n\\nIndividuals who are homozygous for either the CYP2C19*2 or CYP2C19*3 allele, or heterozygous for both alleles, are considered to', '1: Ribociclib is a selective inhibitor of the enzyme CDK4 and CDK6, which are cyclin-dependent kinases that play a role in the regulation of the cell cycle. It is used in the treatment of certain types of breast cancer.\\n\\n2: Ribociclib is a selective inhibitor of cyclin-dependent kinase 4 (CDK4) and CDK6. It is used in the treatment of hormone receptor-positive, HER2-negative breast cancer.\\n\\n3: Ribociclib is an inhibitor of the enzyme CDK4 and CDK6, which are cyclin-dependent kinases that play a role in the regulation of the cell cycle. It is used in the treatment of certain types of breast cancer.\\n\\n4: Ribociclib is a selective inhibitor of cyclin-dependent kinase 4 (CDK4) and CDK6, which are key regulators of the cell cycle. It is used in the treatment of estrogen receptor-positive, HER2-negative breast cancer.\\n\\n5: Ribociclib is a selective inhibitor of cyclin-dependent kinase 4 (CDK4) and CDK6, which are involved in the regulation of the cell cycle and cell proliferation. It is used in the treatment of hormone receptor-positive, HER2-negative breast cancer.', '1: The abnormal dosage of ultraconserved elements (UCEs) has been implicated in the development of various diseases, including cancer. UCEs are highly conserved non-coding DNA sequences that are present in the human genome and have been shown to have important regulatory functions. Alterations in the dosage of UCEs have been associated with various diseases, including cancer.\\n\\nStudies have shown that alterations in the dosage of UCEs can lead to changes in gene expression, which can contribute to the development and progression of cancer. For example, increased dosage of UCEs has been associated with increased expression of oncogenes, while decreased dosage has been associated with decreased expression of tumor suppressor genes.\\n\\nIn familial craniosynostosis, a mutation in the fibroblast growth factor receptor 3 gene (FGFR3) can lead to abnormal cranial suture development and premature fusion. This condition is characterized by premature fusion of the cranial sutures, leading to abnormal skull development and deformities. The Pro250Arg mutation in the FGFR3 gene is one such mutation that has been associated with familial craniosynostosis.\\n\\nIn summary, alterations in the dosage of UCEs can contribute to the development and progression of cancer, and mutations in genes such as FG\\n\\n2: No, the abnormal dosage of ultraconserved elements is not disfavored in cancer cells. In fact, some studies have shown that cancer cells may have an increased requirement for certain ultraconserved elements, such as thymine, which is a key component of DNA. This is because cancer cells often have a higher metabolic rate and require more energy to support their rapid growth and proliferation. Additionally, some cancer cells may have altered DNA repair mechanisms, which could make them more susceptible to damage from radiation or other DNA-damaging agents. However, more research is needed to fully understand the relationship between ultraconserved elements and cancer cells.\\n\\n3: The Interphone study is a case-control study that investigated the association between mobile phone use and the risk of acoustic neuroma, a benign tumor of the inner ear. The study included 504 cases and 1,036 controls from Denmark, Finland, Norway, Sweden, and the United Kingdom. The results showed that there was no significant association between mobile phone use and the risk of acoustic neuroma. The study found that the risk of acoustic neuroma was not increased in individuals who used mobile phones for more than 10 years, and there was no dose-response relationship between mobile phone use and acoustic neuroma risk. These findings suggest that mobile phone use is not a significant risk factor for acoustic neuroma. \\n\\nRegarding the second question, the abnormal dosage of ultraconserved elements (UCEs) has been studied in the context of cancer. UCEs are non-coding RNA sequences that are highly conserved across species and have been implicated in the regulation of gene expression. Abnormal expression of UCEs has been associated with various types of cancer, including breast, lung, and colorectal cancer. Studies have shown that the abnormal dosage of UCEs can lead to dysregulation of gene expression, genomic instability, and genomic imprinting, which can contribute to the development\\n\\n4: The relationship between the dosage of ultraconserved elements and cancer cells is not fully understood. Some studies suggest that alterations in the dosage of ultraconserved elements may contribute to the development and progression of cancer. For example, a study published in the journal Nature found that increased dosage of the ultraconserved element H2B gene family is associated with poor prognosis in ovarian cancer. Another study published in the journal Cancer Research found that increased dosage of the ultraconserved element U6 small nuclear RNA is associated with increased risk of lung cancer. However, other studies have found no significant association between ultraconserved elements and cancer risk. More research is needed to fully understand the relationship between ultraconserved elements and cancer.\\n\\n5: Yes, the abnormal dosage of ultraconserved elements (UCEs) is disfavored in cancer cells. UCEs are highly conserved non-coding sequences that are present in the human genome and are thought to play a role in the regulation of gene expression. Studies have shown that alterations in the dosage of UCEs are associated with various types of cancer, including breast, lung, and colorectal cancer. In particular, increased dosage of UCEs has been linked to tumor progression and metastasis, while decreased dosage has been associated with tumor suppression. This suggests that maintaining the correct dosage of UCEs is crucial for normal cellular function and that alterations in UCE dosage may contribute to the development and progression of cancer.', \"1: Yes, the c-myc gene is regulated by the circadian clock. The circadian rhythm is a natural cycle that regulates the sleep-wake cycle and other biological processes in the body. The c-myc gene is one of the genes that are regulated by the circadian clock, which means that its expression levels change throughout the day and night. This regulation is controlled by the circadian clock genes, which are a group of genes that help regulate the timing of various physiological processes in the body. The circadian clock genes include CLOCK, BMAL1, and PER2, among others. These genes work together to regulate the expression of other genes, including the c-myc gene, in a 24-hour cycle. This regulation is important for maintaining proper physiological function and ensuring that the body's internal systems are synchronized with the external environment.\\n\\n2: Yes, the expression of the c-myc gene is regulated by the circadian clock. Studies have shown that the expression of c-myc is regulated by the circadian clock and is involved in the regulation of cell proliferation and differentiation. The circadian clock regulates the expression of c-myc through the interaction of clock genes and transcription factors, which control the expression of the gene in a 24-hour cycle. This regulation is important for maintaining the normal functioning of cells and tissues, and dysregulation of the circadian clock can lead to various diseases, including cancer.\\n\\n3: Is c-myc subject to regulation by the circadian clock? \\n\\nYes, the c-myc gene is regulated by the circadian clock. The c-myc gene is a proto-oncogene that is involved in cell growth and differentiation. Studies have shown that the expression of c-myc is regulated by the circadian clock, with its expression peaking during the day and decreasing at night. This regulation is mediated by the transcription factor CLOCK/BMAL1, which binds to the E-box element in the promoter region of the c-myc gene. The circadian regulation of c-myc expression is thought to play a role in the regulation of cell proliferation and differentiation, and may be involved in the development of certain diseases, such as cancer.\\n\\n4: Yes, the c-myc gene is regulated by the circadian clock. The circadian clock regulates the expression of many genes, including c-myc, through the transcriptional activity of the clock genes. The circadian clock is a complex system that involves a network of interacting genes and proteins that regulate the expression of other genes in a 24-hour cycle. The clock genes are responsible for controlling the timing of gene expression and other cellular processes, such as cell division, metabolism, and hormone production. The circadian clock is regulated by a set of transcription factors, including CLOCK and BMAL1, which activate or repress the expression of target genes in a circadian manner. The c-myc gene is one of the target genes regulated by the circadian clock, and its expression is modulated by the circadian rhythm. The regulation of c-myc by the circadian clock is important for maintaining cellular homeostasis and preventing the development of diseases such as cancer.\\n\\n5: Yes, the c-myc gene is regulated by the circadian clock. The circadian clock is a group of genes that control the timing of various physiological processes in the body, including cell division and growth. The c-myc gene is one of the genes that is regulated by the circadian clock, and its expression levels fluctuate throughout the day and night. This regulation is important for maintaining proper cell growth and division, and disruptions in this regulation have been linked to various diseases, including cancer.\", '1: No, gastroesophageal reflux (GERD) is not directly related to burning mouth syndrome (BMS). GERD is a condition in which stomach acid flows back up into the esophagus, causing symptoms such as heartburn and chest pain. BMS, on the other hand, is a chronic pain syndrome that affects the tongue, lips, and gums, causing a burning sensation, numbness, and tingling. While both conditions can cause discomfort, they are distinct and unrelated. Treatment for GERD typically involves medications and lifestyle changes, whereas BMS treatment may involve medications, dietary changes, and dental care. If you are experiencing symptoms of both conditions, it is essential to consult with your healthcare provider to determine the best course of treatment.\\n\\n2: There is limited evidence to suggest that gastroesophageal reflux (GER) may be related to burning mouth syndrome (BMS). Some studies have found an association between GER and BMS, but the relationship is not well established. GER may cause symptoms such as heartburn and regurgitation, which could potentially exacerbate or mimic the symptoms of BMS. However, more research is needed to determine the exact relationship between the two conditions.\\n\\n3: No, gastroesophageal reflux (GER) is not directly related to burning mouth syndrome (BMS). GER is a condition in which stomach acid flows back up into the esophagus, causing symptoms such as heartburn and regurgitation. BMS, on the other hand, is a chronic pain syndrome that affects the tongue, lips, and gums, and is characterized by burning or tingling sensations in these areas. While some studies have suggested a possible association between GER and BMS, the relationship is not well established and more research is needed to determine any potential link.\\n\\n4: There is limited evidence to suggest a potential association between gastroesophageal reflux (GER) and burning mouth syndrome (BMS). Some studies have reported an increased prevalence of GER in patients with BMS, but the relationship between the two conditions remains unclear. It is possible that GER may contribute to BMS in some cases, but further research is needed to establish a definitive link. In the meantime, treating GER symptoms may help alleviate BMS symptoms in some patients.\\n\\n5: No, gastroesophageal reflux (GER) is not directly related to burning mouth syndrome (BMS). GER is a condition where stomach acid flows back up into the esophagus, causing symptoms such as heartburn and regurgitation. BMS, on the other hand, is a chronic pain syndrome that affects the tongue, lips, and gums, causing a burning or tingling sensation. While some studies have suggested a possible association between GER and BMS, the relationship is not well-established, and more research is needed to determine any potential link between the two conditions.', '1: Yes, genes that escape X-chromosome inactivation have been linked to mental impairment. X-chromosome inactivation is a process by which one of the two X chromosomes in females is inactivated in each cell during embryonic development. This inactivation is random and results in one X chromosome being silenced in each cell. However, some genes on the X chromosome escape this inactivation and remain active in both X and Y cells. These genes are called X-linked genes or X-linked dominant genes.\\n\\nStudies have shown that genes that escape X-chromosome inactivation are more likely to be involved in brain function and development, and mutations in these genes have been linked to various neurological disorders, including intellectual disability, autism, and schizophrenia.\\n\\nFor example, the MECP2 gene, which escapes X-chromosome inactivation, is associated with Rett syndrome, a severe neurological disorder that affects brain function and behavior. Mutations in the MECP2 gene can cause intellectual disability, seizures, and abnormal movements.\\n\\nSimilarly, the FMR1 gene, which also escapes X-chromosome inactivation, is associated with Fragile X syndrome, the most common inherited cause of intellectual disability.\\n\\nIn summary, genes that escape X-chromosome inactivation are more likely to be involved in brain function and development, and\\n\\n2: No, genes that escape X-chromosome inactivation are not directly related to mental impairment. X-chromosome inactivation is a process where one of the two X chromosomes in females is inactivated in each cell during embryonic development. This inactivation is thought to be a mechanism to prevent overexpression of genes on the X chromosome and to equalize X chromosome gene expression between males and females.\\n\\nGenes that escape X-chromosome inactivation are those that continue to be expressed from both X chromosomes in every cell, rather than being silenced on one of the X chromosomes. This can lead to differences in gene expression between males and females, but it is not directly related to mental impairment.\\n\\nMental impairment can be caused by a variety of factors, including genetic mutations, environmental factors, and other biological factors. While some genetic disorders that affect the X chromosome can lead to intellectual disability, genes that escape X-chromosome inactivation are not a direct cause of mental impairment.\\n\\n3: The X chromosome is one of the two sex chromosomes in humans, and it carries many genes that are essential for normal development and function. In females, one of the two X chromosomes is inactivated in each cell, a process known as X-chromosome inactivation (XCI). This process helps to equalize gene expression between males and females.\\n\\nRecent studies have suggested that certain genes on the X chromosome may escape XCI and have a role in brain development and function. These genes may be more active in females than males, which could potentially contribute to the development of mental impairment.\\n\\nOne study published in the journal Nature Communications found that genes that escape XCI are more likely to be involved in brain development and function. The study analyzed the expression of over 12,000 genes in the brains of male and female mice and found that genes that escape XCI were more active in females than males. The researchers also found that these genes were enriched for genes involved in brain development and function.\\n\\nAnother study published in the journal Human Molecular Genetics found that variants in genes that escape XCI were associated with an increased risk of schizophrenia in females. The study analyzed the DNA of over 3,000 individuals with schizophrenia and found that variants in genes that escape XCI were more common in females with\\n\\n4: Yes, genes that escape X-chromosome inactivation (XCI) have been implicated in various neurological and psychiatric disorders, including intellectual disability, autism, and schizophrenia. XCI is a process by which one of the two X chromosomes in females is inactivated, leading to differences in gene expression between males and females. Some genes on the X chromosome escape this inactivation process, resulting in equal expression of these genes in both males and females. These genes are often referred to as X-linked genes or X-linked dominant genes. \\n\\nSeveral studies have shown that genes that escape XCI are overrepresented in disorders that affect brain function, such as intellectual disability, autism, and schizophrenia. This may be due to the fact that these genes are more likely to have a significant impact on brain development and function, or that they are more susceptible to mutations that can lead to disease. \\n\\nFor example, the MECP2 gene, which escapes XCI, is associated with Rett syndrome, a severe neurological disorder that affects brain function and behavior. Other genes that escape XCI that have been implicated in neurological disorders include the FMR1 gene, which is associated with Fragile X syndrome, and the NLGN4 gene, which is associated with autism.\\n\\nIn summary, genes that escape X-ch\\n\\n5: Yes, genes that escape X-chromosome inactivation (XCI) have been linked to mental \\nimpairment. XCI is a process by which one of the two X chromosomes in female mammals \\nis inactivated to ensure dosage compensation between males and females. Some genes \\non the X chromosome escape this inactivation and are expressed at higher levels in \\nfemales than males. These genes are called X-linked genes or X-linked genes that \\nescape XCI. \\n\\nStudies have shown that certain X-linked genes that escape XCI are associated with \\nneurodevelopmental disorders, including intellectual disability, autism spectrum \\ndisorder, and schizophrenia. For example, the gene FMR1, which encodes the protein \\nFragile X Mental Retardation Protein (FMRP), is a well-known example of a gene \\nthat escapes XCI and is associated with Fragile X syndrome, the most common \\ninheritable cause of intellectual disability. Other examples include the genes \\nMECP2, ARHGAP11, and NLGN4, which have been implicated in Rett syndrome, \\nautism spectrum disorder, and schizophrenia, respectively. \\n\\nIn addition, some studies have suggested that the expression levels of X-linked genes \\nthat escape XCI may be dys', '1: Mismatched uracil glycosylase (MUG) is an enzyme that plays a crucial role in the base excision repair (BER) pathway, which is responsible for repairing DNA damage caused by oxidative stress, alkylation, and deamination. MUG is involved in the removal of uracil and other non-standard bases from DNA, which can result from errors during DNA replication or from exposure to environmental mutagens. The enzyme recognizes and binds to these abnormal bases, excising them and leaving a gap that is then filled by the DNA polymerase and sealed by DNA ligase. This process helps to maintain the integrity of the genome and prevent mutations that can lead to diseases such as cancer. In the absence of MUG, cells would accumulate these abnormal bases, leading to genomic instability and an increased risk of cancer.\\n\\n2: Mismatched uracil glycosylase (MUG) is an enzyme that plays a crucial role in the base excision repair (BER) pathway, which is responsible for repairing DNA damage caused by oxidative stress, alkylation, and deamination. MUG is involved in the removal of uracil, a non-standard base that can be incorporated into DNA during replication, and 5-hydroxymethyluracil, a product of oxidative DNA damage. The enzyme recognizes and removes these mispaired bases, preventing the accumulation of mutations and genomic instability. In the absence of MUG, cells are more susceptible to DNA damage and mutations, which can lead to various diseases, including cancer.\\n\\n3: Uracil glycosylase (UNG) is an enzyme that plays a crucial role in the base excision repair (BER) pathway, which is responsible for repairing DNA damage caused by oxidative stress, spontaneous deamination, and alkylation. Mismatched uracil glycosylase (MUG) is a variant of UNG that has a higher affinity for mismatched uracil-containing DNA substrates. MUG is involved in the repair of DNA mismatches and uracil-containing DNA lesions, which can result from errors during DNA replication or from exposure to certain chemicals or radiation. In the BER pathway, MUG helps to recognize and remove these lesions, preventing mutations and genomic instability. In summary, MUG plays a critical role in maintaining genomic stability and preventing the accumulation of mutations that can lead to cancer and other diseases.\\n\\n4: Mismatched uracil glycosylase (MUG) is an enzyme that plays a crucial role in DNA repair. It is involved in the removal of uracil residues from DNA, which are misincorporated during DNA synthesis or generated by spontaneous deamination of cytosine. MUG recognizes and excises these uracil residues, which can be mutagenic if left unrepaired, and replaces them with the correct base, thymine. This process is essential for maintaining genomic stability and preventing mutations. MUG is particularly important in the repair of oxidative DNA damage, which is a major cause of aging and various diseases. In addition, MUG has been shown to be involved in the repair of DNA damage caused by exposure to certain chemicals and radiation. Overall, MUG plays a critical role in maintaining the integrity of the genome and preventing the accumulation of mutations that can lead to disease.\\n\\n5: Mismatched uracil glycosylase (MUG) is an enzyme that plays a crucial role in the base excision repair (BER) pathway, which is responsible for repairing DNA damage caused by spontaneous deamination of cytosine and methylation of cytosine and adenine. MUG specifically recognizes and removes uracil, a non-standard base that can be incorporated into DNA during replication, leading to mutations. The enzyme then interacts with other proteins in the BER pathway to repair the damaged DNA and maintain genomic stability. Mutations in the MUG gene can lead to an increased risk of cancer and neurological disorders.'], average_function=)], need_average=False), MetricResults(element_wise_scores=[ElementWiseScores(label='rag-mini-bioasq@@documents', values=['1: 11428324 / Familial craniosynostosis due to Pro250Arg mutation in the fibroblast growth \\nfactor receptor 3 gene. //\\n\\n2: 15683664 / Skin side effects following XRT take place more often in patients with skin \\ndisorders. In this study six patients with psoriatic lesions were evaluated. The \\ntotal/daily XRT dose to the tumor site was 50-70/1.8-2.0 Gy. No debilitating \\neffect of XRT was observed in both the psoriatic lesions and in the surrounding \\nnormal skin. //\\n\\n3: 16570042 / Mobile phone use and risk of acoustic neuroma: results of the interphone \\ncase-control study in five north European countries [corrected]. //\\n\\n4: 16457587 / The basis set of protein forms expressed by human cells from the H2B gene family \\nwas determined by Top Down Mass Spectrometry. Using Electron Capture \\nDissociation for MS/MS of H2B isoforms, direct evidence for the expression of \\nunmodified H2B.Q, H2B.A, H2B.K/T, H2B.J, H2B.E, H2B.B, H2B.F, and monoacetylated \\nH2B.A was obtained from asynchronous HeLa cells. H2B.A was the most abundant \\nform, with the overall expression profile not changing significantly in cells \\narrested in mitosis by colchicine or during mid-S, mid-G2, G2/M, and mid-G1 \\nphases of the cell cycle. Modest hyperacetylation of H2B family members was \\nobserved after sodium butyrate treatment. //\\n\\n5: 17103449 / P250R mutation in the FGFR3 gene also known as Muenke syndrome is associated \\nwith coronal craniosynostosis, sensorineural deafness, craniofacial, and digital \\nabnormalities. We report a family with this mutation associated with sudden \\ndeath in an affected newborn, most probably due to upper airway obstruction. //', '1: 11428324 / Familial craniosynostosis due to Pro250Arg mutation in the fibroblast growth \\nfactor receptor 3 gene. //\\n\\n2: 15683664 / Skin side effects following XRT take place more often in patients with skin \\ndisorders. In this study six patients with psoriatic lesions were evaluated. The \\ntotal/daily XRT dose to the tumor site was 50-70/1.8-2.0 Gy. No debilitating \\neffect of XRT was observed in both the psoriatic lesions and in the surrounding \\nnormal skin. //\\n\\n3: 16570042 / Mobile phone use and risk of acoustic neuroma: results of the interphone \\ncase-control study in five north European countries [corrected]. //\\n\\n4: 16457587 / The basis set of protein forms expressed by human cells from the H2B gene family \\nwas determined by Top Down Mass Spectrometry. Using Electron Capture \\nDissociation for MS/MS of H2B isoforms, direct evidence for the expression of \\nunmodified H2B.Q, H2B.A, H2B.K/T, H2B.J, H2B.E, H2B.B, H2B.F, and monoacetylated \\nH2B.A was obtained from asynchronous HeLa cells. H2B.A was the most abundant \\nform, with the overall expression profile not changing significantly in cells \\narrested in mitosis by colchicine or during mid-S, mid-G2, G2/M, and mid-G1 \\nphases of the cell cycle. Modest hyperacetylation of H2B family members was \\nobserved after sodium butyrate treatment. //\\n\\n5: 17103449 / P250R mutation in the FGFR3 gene also known as Muenke syndrome is associated \\nwith coronal craniosynostosis, sensorineural deafness, craniofacial, and digital \\nabnormalities. We report a family with this mutation associated with sudden \\ndeath in an affected newborn, most probably due to upper airway obstruction. //', '1: 11428324 / Familial craniosynostosis due to Pro250Arg mutation in the fibroblast growth \\nfactor receptor 3 gene. //\\n\\n2: 15683664 / Skin side effects following XRT take place more often in patients with skin \\ndisorders. In this study six patients with psoriatic lesions were evaluated. The \\ntotal/daily XRT dose to the tumor site was 50-70/1.8-2.0 Gy. No debilitating \\neffect of XRT was observed in both the psoriatic lesions and in the surrounding \\nnormal skin. //\\n\\n3: 16570042 / Mobile phone use and risk of acoustic neuroma: results of the interphone \\ncase-control study in five north European countries [corrected]. //\\n\\n4: 16457587 / The basis set of protein forms expressed by human cells from the H2B gene family \\nwas determined by Top Down Mass Spectrometry. Using Electron Capture \\nDissociation for MS/MS of H2B isoforms, direct evidence for the expression of \\nunmodified H2B.Q, H2B.A, H2B.K/T, H2B.J, H2B.E, H2B.B, H2B.F, and monoacetylated \\nH2B.A was obtained from asynchronous HeLa cells. H2B.A was the most abundant \\nform, with the overall expression profile not changing significantly in cells \\narrested in mitosis by colchicine or during mid-S, mid-G2, G2/M, and mid-G1 \\nphases of the cell cycle. Modest hyperacetylation of H2B family members was \\nobserved after sodium butyrate treatment. //\\n\\n5: 17103449 / P250R mutation in the FGFR3 gene also known as Muenke syndrome is associated \\nwith coronal craniosynostosis, sensorineural deafness, craniofacial, and digital \\nabnormalities. We report a family with this mutation associated with sudden \\ndeath in an affected newborn, most probably due to upper airway obstruction. //', '1: 11428324 / Familial craniosynostosis due to Pro250Arg mutation in the fibroblast growth \\nfactor receptor 3 gene. //\\n\\n2: 15683664 / Skin side effects following XRT take place more often in patients with skin \\ndisorders. In this study six patients with psoriatic lesions were evaluated. The \\ntotal/daily XRT dose to the tumor site was 50-70/1.8-2.0 Gy. No debilitating \\neffect of XRT was observed in both the psoriatic lesions and in the surrounding \\nnormal skin. //\\n\\n3: 16570042 / Mobile phone use and risk of acoustic neuroma: results of the interphone \\ncase-control study in five north European countries [corrected]. //\\n\\n4: 16457587 / The basis set of protein forms expressed by human cells from the H2B gene family \\nwas determined by Top Down Mass Spectrometry. Using Electron Capture \\nDissociation for MS/MS of H2B isoforms, direct evidence for the expression of \\nunmodified H2B.Q, H2B.A, H2B.K/T, H2B.J, H2B.E, H2B.B, H2B.F, and monoacetylated \\nH2B.A was obtained from asynchronous HeLa cells. H2B.A was the most abundant \\nform, with the overall expression profile not changing significantly in cells \\narrested in mitosis by colchicine or during mid-S, mid-G2, G2/M, and mid-G1 \\nphases of the cell cycle. Modest hyperacetylation of H2B family members was \\nobserved after sodium butyrate treatment. //\\n\\n5: 17103449 / P250R mutation in the FGFR3 gene also known as Muenke syndrome is associated \\nwith coronal craniosynostosis, sensorineural deafness, craniofacial, and digital \\nabnormalities. We report a family with this mutation associated with sudden \\ndeath in an affected newborn, most probably due to upper airway obstruction. //', '1: 11428324 / Familial craniosynostosis due to Pro250Arg mutation in the fibroblast growth \\nfactor receptor 3 gene. //\\n\\n2: 15683664 / Skin side effects following XRT take place more often in patients with skin \\ndisorders. In this study six patients with psoriatic lesions were evaluated. The \\ntotal/daily XRT dose to the tumor site was 50-70/1.8-2.0 Gy. No debilitating \\neffect of XRT was observed in both the psoriatic lesions and in the surrounding \\nnormal skin. //\\n\\n3: 16570042 / Mobile phone use and risk of acoustic neuroma: results of the interphone \\ncase-control study in five north European countries [corrected]. //\\n\\n4: 16457587 / The basis set of protein forms expressed by human cells from the H2B gene family \\nwas determined by Top Down Mass Spectrometry. Using Electron Capture \\nDissociation for MS/MS of H2B isoforms, direct evidence for the expression of \\nunmodified H2B.Q, H2B.A, H2B.K/T, H2B.J, H2B.E, H2B.B, H2B.F, and monoacetylated \\nH2B.A was obtained from asynchronous HeLa cells. H2B.A was the most abundant \\nform, with the overall expression profile not changing significantly in cells \\narrested in mitosis by colchicine or during mid-S, mid-G2, G2/M, and mid-G1 \\nphases of the cell cycle. Modest hyperacetylation of H2B family members was \\nobserved after sodium butyrate treatment. //\\n\\n5: 17103449 / P250R mutation in the FGFR3 gene also known as Muenke syndrome is associated \\nwith coronal craniosynostosis, sensorineural deafness, craniofacial, and digital \\nabnormalities. We report a family with this mutation associated with sudden \\ndeath in an affected newborn, most probably due to upper airway obstruction. //', '1: 11428324 / Familial craniosynostosis due to Pro250Arg mutation in the fibroblast growth \\nfactor receptor 3 gene. //\\n\\n2: 15683664 / Skin side effects following XRT take place more often in patients with skin \\ndisorders. In this study six patients with psoriatic lesions were evaluated. The \\ntotal/daily XRT dose to the tumor site was 50-70/1.8-2.0 Gy. No debilitating \\neffect of XRT was observed in both the psoriatic lesions and in the surrounding \\nnormal skin. //\\n\\n3: 16570042 / Mobile phone use and risk of acoustic neuroma: results of the interphone \\ncase-control study in five north European countries [corrected]. //\\n\\n4: 16457587 / The basis set of protein forms expressed by human cells from the H2B gene family \\nwas determined by Top Down Mass Spectrometry. Using Electron Capture \\nDissociation for MS/MS of H2B isoforms, direct evidence for the expression of \\nunmodified H2B.Q, H2B.A, H2B.K/T, H2B.J, H2B.E, H2B.B, H2B.F, and monoacetylated \\nH2B.A was obtained from asynchronous HeLa cells. H2B.A was the most abundant \\nform, with the overall expression profile not changing significantly in cells \\narrested in mitosis by colchicine or during mid-S, mid-G2, G2/M, and mid-G1 \\nphases of the cell cycle. Modest hyperacetylation of H2B family members was \\nobserved after sodium butyrate treatment. //\\n\\n5: 17103449 / P250R mutation in the FGFR3 gene also known as Muenke syndrome is associated \\nwith coronal craniosynostosis, sensorineural deafness, craniofacial, and digital \\nabnormalities. We report a family with this mutation associated with sudden \\ndeath in an affected newborn, most probably due to upper airway obstruction. //', '1: 11428324 / Familial craniosynostosis due to Pro250Arg mutation in the fibroblast growth \\nfactor receptor 3 gene. //\\n\\n2: 15683664 / Skin side effects following XRT take place more often in patients with skin \\ndisorders. In this study six patients with psoriatic lesions were evaluated. The \\ntotal/daily XRT dose to the tumor site was 50-70/1.8-2.0 Gy. No debilitating \\neffect of XRT was observed in both the psoriatic lesions and in the surrounding \\nnormal skin. //\\n\\n3: 16570042 / Mobile phone use and risk of acoustic neuroma: results of the interphone \\ncase-control study in five north European countries [corrected]. //\\n\\n4: 16457587 / The basis set of protein forms expressed by human cells from the H2B gene family \\nwas determined by Top Down Mass Spectrometry. Using Electron Capture \\nDissociation for MS/MS of H2B isoforms, direct evidence for the expression of \\nunmodified H2B.Q, H2B.A, H2B.K/T, H2B.J, H2B.E, H2B.B, H2B.F, and monoacetylated \\nH2B.A was obtained from asynchronous HeLa cells. H2B.A was the most abundant \\nform, with the overall expression profile not changing significantly in cells \\narrested in mitosis by colchicine or during mid-S, mid-G2, G2/M, and mid-G1 \\nphases of the cell cycle. Modest hyperacetylation of H2B family members was \\nobserved after sodium butyrate treatment. //\\n\\n5: 17103449 / P250R mutation in the FGFR3 gene also known as Muenke syndrome is associated \\nwith coronal craniosynostosis, sensorineural deafness, craniofacial, and digital \\nabnormalities. We report a family with this mutation associated with sudden \\ndeath in an affected newborn, most probably due to upper airway obstruction. //', '1: 11428324 / Familial craniosynostosis due to Pro250Arg mutation in the fibroblast growth \\nfactor receptor 3 gene. //\\n\\n2: 15683664 / Skin side effects following XRT take place more often in patients with skin \\ndisorders. In this study six patients with psoriatic lesions were evaluated. The \\ntotal/daily XRT dose to the tumor site was 50-70/1.8-2.0 Gy. No debilitating \\neffect of XRT was observed in both the psoriatic lesions and in the surrounding \\nnormal skin. //\\n\\n3: 16570042 / Mobile phone use and risk of acoustic neuroma: results of the interphone \\ncase-control study in five north European countries [corrected]. //\\n\\n4: 16457587 / The basis set of protein forms expressed by human cells from the H2B gene family \\nwas determined by Top Down Mass Spectrometry. Using Electron Capture \\nDissociation for MS/MS of H2B isoforms, direct evidence for the expression of \\nunmodified H2B.Q, H2B.A, H2B.K/T, H2B.J, H2B.E, H2B.B, H2B.F, and monoacetylated \\nH2B.A was obtained from asynchronous HeLa cells. H2B.A was the most abundant \\nform, with the overall expression profile not changing significantly in cells \\narrested in mitosis by colchicine or during mid-S, mid-G2, G2/M, and mid-G1 \\nphases of the cell cycle. Modest hyperacetylation of H2B family members was \\nobserved after sodium butyrate treatment. //\\n\\n5: 17103449 / P250R mutation in the FGFR3 gene also known as Muenke syndrome is associated \\nwith coronal craniosynostosis, sensorineural deafness, craniofacial, and digital \\nabnormalities. We report a family with this mutation associated with sudden \\ndeath in an affected newborn, most probably due to upper airway obstruction. //', '1: 11428324 / Familial craniosynostosis due to Pro250Arg mutation in the fibroblast growth \\nfactor receptor 3 gene. //\\n\\n2: 15683664 / Skin side effects following XRT take place more often in patients with skin \\ndisorders. In this study six patients with psoriatic lesions were evaluated. The \\ntotal/daily XRT dose to the tumor site was 50-70/1.8-2.0 Gy. No debilitating \\neffect of XRT was observed in both the psoriatic lesions and in the surrounding \\nnormal skin. //\\n\\n3: 16570042 / Mobile phone use and risk of acoustic neuroma: results of the interphone \\ncase-control study in five north European countries [corrected]. //\\n\\n4: 17103449 / P250R mutation in the FGFR3 gene also known as Muenke syndrome is associated \\nwith coronal craniosynostosis, sensorineural deafness, craniofacial, and digital \\nabnormalities. We report a family with this mutation associated with sudden \\ndeath in an affected newborn, most probably due to upper airway obstruction. //\\n\\n5: 16457587 / The basis set of protein forms expressed by human cells from the H2B gene family \\nwas determined by Top Down Mass Spectrometry. Using Electron Capture \\nDissociation for MS/MS of H2B isoforms, direct evidence for the expression of \\nunmodified H2B.Q, H2B.A, H2B.K/T, H2B.J, H2B.E, H2B.B, H2B.F, and monoacetylated \\nH2B.A was obtained from asynchronous HeLa cells. H2B.A was the most abundant \\nform, with the overall expression profile not changing significantly in cells \\narrested in mitosis by colchicine or during mid-S, mid-G2, G2/M, and mid-G1 \\nphases of the cell cycle. Modest hyperacetylation of H2B family members was \\nobserved after sodium butyrate treatment. //', '1: 11428324 / Familial craniosynostosis due to Pro250Arg mutation in the fibroblast growth \\nfactor receptor 3 gene. //\\n\\n2: 15683664 / Skin side effects following XRT take place more often in patients with skin \\ndisorders. In this study six patients with psoriatic lesions were evaluated. The \\ntotal/daily XRT dose to the tumor site was 50-70/1.8-2.0 Gy. No debilitating \\neffect of XRT was observed in both the psoriatic lesions and in the surrounding \\nnormal skin. //\\n\\n3: 16570042 / Mobile phone use and risk of acoustic neuroma: results of the interphone \\ncase-control study in five north European countries [corrected]. //\\n\\n4: 16457587 / The basis set of protein forms expressed by human cells from the H2B gene family \\nwas determined by Top Down Mass Spectrometry. Using Electron Capture \\nDissociation for MS/MS of H2B isoforms, direct evidence for the expression of \\nunmodified H2B.Q, H2B.A, H2B.K/T, H2B.J, H2B.E, H2B.B, H2B.F, and monoacetylated \\nH2B.A was obtained from asynchronous HeLa cells. H2B.A was the most abundant \\nform, with the overall expression profile not changing significantly in cells \\narrested in mitosis by colchicine or during mid-S, mid-G2, G2/M, and mid-G1 \\nphases of the cell cycle. Modest hyperacetylation of H2B family members was \\nobserved after sodium butyrate treatment. //\\n\\n5: 17103449 / P250R mutation in the FGFR3 gene also known as Muenke syndrome is associated \\nwith coronal craniosynostosis, sensorineural deafness, craniofacial, and digital \\nabnormalities. We report a family with this mutation associated with sudden \\ndeath in an affected newborn, most probably due to upper airway obstruction. //'], average_function=)], need_average=False), MetricResults(element_wise_scores=[ElementWiseScores(label='rag-mini-bioasq@@scores', values=['1: 0.37\\n\\n2: 0.34\\n\\n3: 0.26\\n\\n4: 0.21\\n\\n5: 0.21', '1: 0.37\\n\\n2: 0.34\\n\\n3: 0.26\\n\\n4: 0.21\\n\\n5: 0.21', '1: 0.37\\n\\n2: 0.33\\n\\n3: 0.26\\n\\n4: 0.21\\n\\n5: 0.2', '1: 0.37\\n\\n2: 0.34\\n\\n3: 0.26\\n\\n4: 0.21\\n\\n5: 0.21', '1: 0.37\\n\\n2: 0.33\\n\\n3: 0.26\\n\\n4: 0.2\\n\\n5: 0.2', '1: 0.37\\n\\n2: 0.33\\n\\n3: 0.26\\n\\n4: 0.21\\n\\n5: 0.21', '1: 0.37\\n\\n2: 0.33\\n\\n3: 0.26\\n\\n4: 0.21\\n\\n5: 0.21', '1: 0.37\\n\\n2: 0.33\\n\\n3: 0.26\\n\\n4: 0.2\\n\\n5: 0.2', '1: 0.37\\n\\n2: 0.33\\n\\n3: 0.26\\n\\n4: 0.21\\n\\n5: 0.21', '1: 0.37\\n\\n2: 0.33\\n\\n3: 0.26\\n\\n4: 0.21\\n\\n5: 0.2'], average_function=)], need_average=False), {'faithfulness': 0.0071, 'answer_relevancy': 0.9429, 'answer_similarity': 0.9176, 'context_precision': 0.1756, 'context_recall': 0.0750, 'context_entity_recall': 0.0000}]]\n" - ] - } - ], - "source": [ - "output = rag_cherry_pick.on_evaluate(None, None, None, tokenizer=tokenizer, model=trainer.model)\n", - "print(output)" - ] - }, - { - "cell_type": "code", - "execution_count": 20, - "metadata": { - "scrolled": true - }, - "outputs": [ - { - "name": "stdout", - "output_type": "stream", - "text": [ - "Question\n", - "[user: Which growth factors are known to be involved in the induction of EMT?]\n", - "---\n", - "Answer\n", - "1: Several growth factors have been shown to be involved in the induction of epithelial-mesenchymal transition (EMT), including:\n", - "\n", - "1. Transforming growth factor-beta (TGF-β): TGF-β is a potent inducer of EMT and plays a crucial role in the development of cancer metastasis.\n", - "2. Epidermal growth factor (EGF): EGF stimulates EMT in various cell types, including cancer cells, and promotes tumor invasion and metastasis.\n", - "3. Platelet-derived growth factor (PDGF): PDGF is known to induce EMT in various cell types, including cancer cells, and promotes tumor progression and metastasis.\n", - "4. Fibroblast growth factor (FGF): FGF signaling has been shown to induce EMT in various cell types, including cancer cells, and promote tumor invasion and metastasis.\n", - "5. Hepatocyte growth factor (HGF): HGF is a potent inducer of EMT and plays a crucial role in the development of cancer metastasis.\n", - "6. Vascular endothelial growth factor (VEGF): VEGF is known to induce EMT in endothelial cells and promote angiogenesis, which is a crucial step in tumor growth and metastasis.\n", - "7. Insulin-like growth factor-\n", - "\n", - "2: Epithelial-mesenchymal transition (EMT) is a complex process that involves the conversion of epithelial cells into mesenchymal cells. Several growth factors have been implicated in the induction of EMT, including:\n", - "\n", - "1. Transforming growth factor-beta (TGF-β): TGF-β is a potent inducer of EMT and plays a crucial role in the development of cancer metastasis.\n", - "2. Epidermal growth factor (EGF): EGF stimulates EMT by activating the EGF receptor (EGFR) and downstream signaling pathways.\n", - "3. Fibroblast growth factor (FGF): FGF signaling has been shown to promote EMT in various cancer types.\n", - "4. Platelet-derived growth factor (PDGF): PDGF signaling can induce EMT by activating the PDGF receptor (PDGFR) and downstream signaling pathways.\n", - "5. Hepatocyte growth factor (HGF): HGF is a potent inducer of EMT and is involved in the metastatic process.\n", - "6. Wnt signaling pathway: The Wnt signaling pathway is involved in the regulation of EMT and has been implicated in cancer progression and metastasis.\n", - "7. Notch signaling pathway: The Notch signaling pathway is also involved in the regulation of\n", - "\n", - "3: Transforming growth factor-beta (TGF-β), epidermal growth factor (EGF), platelet-derived growth factor (PDGF), and fibroblast growth factor (FGF) are some of the growth factors known to be involved in the induction of epithelial-mesenchymal transition (EMT). These growth factors can stimulate the expression of EMT-inducing transcription factors, such as Snail, Slug, and Twist, which in turn promote the degradation of cell-cell adhesion molecules and the activation of matrix metalloproteinases, leading to the loss of cell polarity and the acquisition of a mesenchymal phenotype.\n", - "\n", - "4: Epithelial-mesenchymal transition (EMT) is a complex process that involves the \n", - "transformation of epithelial cells into mesenchymal cells. Several growth factors \n", - "are known to be involved in the induction of EMT, including:\n", - "\n", - "1. Transforming growth factor-beta (TGF-beta): TGF-beta is a potent inducer of EMT \n", - "and plays a crucial role in the development of various cancers, including \n", - "carcinomas, sarcomas, and melanomas.\n", - "\n", - "2. Epidermal growth factor (EGF): EGF is another potent inducer of EMT and is \n", - "involved in the development of various cancers, including breast, lung, and \n", - "colorectal cancers.\n", - "\n", - "3. Fibroblast growth factor (FGF): FGF is a family of growth factors that can \n", - "induce EMT and are involved in the development of various cancers, including \n", - "gliomas and sarcomas.\n", - "\n", - "4. Platelet-derived growth factor (PDGF): PDGF is a potent inducer of EMT and is \n", - "involved in the development of various cancers, including gliomas, sarcomas, and \n", - "osteosarcomas.\n", - "\n", - "5. Wnt signaling pathway: The Wnt signaling pathway is a complex\n", - "\n", - "5: Transforming growth factor-beta (TGF-beta), epidermal growth factor (EGF), and fibroblast growth factor (FGF) are known to be involved in the induction of epithelial-mesenchymal transition (EMT). These growth factors can stimulate the expression of EMT-inducing transcription factors, such as Snail and Twist, and promote the degradation of cell-cell adhesion molecules, such as E-cadherin, leading to the acquisition of a mesenchymal phenotype.\n", - "---\n", - "Documents\n", - "1: 11428324 / Familial craniosynostosis due to Pro250Arg mutation in the fibroblast growth \n", - "factor receptor 3 gene. //\n", - "\n", - "2: 15683664 / Skin side effects following XRT take place more often in patients with skin \n", - "disorders. In this study six patients with psoriatic lesions were evaluated. The \n", - "total/daily XRT dose to the tumor site was 50-70/1.8-2.0 Gy. No debilitating \n", - "effect of XRT was observed in both the psoriatic lesions and in the surrounding \n", - "normal skin. //\n", - "\n", - "3: 16570042 / Mobile phone use and risk of acoustic neuroma: results of the interphone \n", - "case-control study in five north European countries [corrected]. //\n", - "\n", - "4: 16457587 / The basis set of protein forms expressed by human cells from the H2B gene family \n", - "was determined by Top Down Mass Spectrometry. Using Electron Capture \n", - "Dissociation for MS/MS of H2B isoforms, direct evidence for the expression of \n", - "unmodified H2B.Q, H2B.A, H2B.K/T, H2B.J, H2B.E, H2B.B, H2B.F, and monoacetylated \n", - "H2B.A was obtained from asynchronous HeLa cells. H2B.A was the most abundant \n", - "form, with the overall expression profile not changing significantly in cells \n", - "arrested in mitosis by colchicine or during mid-S, mid-G2, G2/M, and mid-G1 \n", - "phases of the cell cycle. Modest hyperacetylation of H2B family members was \n", - "observed after sodium butyrate treatment. //\n", - "\n", - "5: 17103449 / P250R mutation in the FGFR3 gene also known as Muenke syndrome is associated \n", - "with coronal craniosynostosis, sensorineural deafness, craniofacial, and digital \n", - "abnormalities. We report a family with this mutation associated with sudden \n", - "death in an affected newborn, most probably due to upper airway obstruction. //\n", - "---\n", - "Scores\n", - "1: 0.37\n", - "\n", - "2: 0.33\n", - "\n", - "3: 0.26\n", - "\n", - "4: 0.21\n", - "\n", - "5: 0.2\n", - "The history saving thread hit an unexpected error (OperationalError('attempt to write a readonly database')).History will not be written to the database.\n" - ] - } - ], - "source": [ - "# show cherry picks after fine tuning\n", - "sample_idx=2\n", - "\n", - "print('Question')\n", - "print(output[0][0].element_wise_scores[0].values[sample_idx])\n", - "print('---')\n", - "print('Answer')\n", - "print(output[0][1].element_wise_scores[0].values[sample_idx])\n", - "print('---')\n", - "print('Documents')\n", - "print(output[0][2].element_wise_scores[0].values[sample_idx])\n", - "print('---')\n", - "print('Scores')\n", - "print(output[0][3].element_wise_scores[0].values[sample_idx])" - ] - }, - { - "cell_type": "code", - "execution_count": 21, - "metadata": {}, - "outputs": [ - { - "data": { - "text/plain": [ - "{'faithfulness': 0.0071, 'answer_relevancy': 0.9429, 'answer_similarity': 0.9176, 'context_precision': 0.1756, 'context_recall': 0.0750, 'context_entity_recall': 0.0000}" - ] - }, - "execution_count": 21, - "metadata": {}, - "output_type": "execute_result" - } - ], - "source": [ - "output[-1][-1]" - ] - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": {}, - "outputs": [], - "source": [] - } - ], - "metadata": { - "kernelspec": { - "display_name": "Python 3 (ipykernel)", - "language": "python", - "name": "python3" - }, - "language_info": { - "codemirror_mode": { - "name": "ipython", - "version": 3 - }, - "file_extension": ".py", - "mimetype": "text/x-python", - "name": "python", - "nbconvert_exporter": "python", - "pygments_lexer": "ipython3", - "version": "3.10.12" - } - }, - "nbformat": 4, - "nbformat_minor": 4 -} diff --git a/tutorials/rag/rag.py b/tutorials/rag/rag.py index ef59e81..7a78cfa 100644 --- a/tutorials/rag/rag.py +++ b/tutorials/rag/rag.py @@ -218,19 +218,8 @@ def evaluate(val_records, rag_model): cherry_pick_settings = ChatCherryPickSettings.model_validate(cherry_pick_settings_dict) from turbo_alignment.metrics.metric import Metric - from turbo_alignment.metrics.registry import RagasMetricsSettings - - ragas_metrics = Metric.by_name('ragas_metrics')( - settings=RagasMetricsSettings( - mistralai_api_key=os.getenv('MISTRALAI_API_KEY'), - openai_api_key=os.getenv('OPENAI_API_KEY'), - need_average=[False], - ) - ) - rag_cherry_pick = RagCherryPickCallback( - cherry_pick_settings, datasets=[inference_chat_dataset], metrics=[ragas_metrics] - ) + rag_cherry_pick = RagCherryPickCallback(cherry_pick_settings, datasets=[inference_chat_dataset], metrics=[]) output = rag_cherry_pick.on_evaluate(None, None, None, tokenizer=tokenizer, model=rag_model) From 269ff2113f410a5e455c93668e8185d68716befd Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=D0=9C=D0=B0=D0=BB=D0=B0=D1=85=D0=BE=D0=B2=20=D0=90=D0=BB?= =?UTF-8?q?=D0=B5=D0=BA=D1=81=D0=B5=D0=B9=20=D0=9F=D0=B0=D0=B2=D0=BB=D0=BE?= =?UTF-8?q?=D0=B2=D0=B8=D1=87?= Date: Tue, 6 Aug 2024 14:51:05 +0000 Subject: [PATCH 12/31] update readme --- README.md | 1 - 1 file changed, 1 deletion(-) diff --git a/README.md b/README.md index 0ce8668..79a59d6 100755 --- a/README.md +++ b/README.md @@ -56,7 +56,6 @@ Turbo-Alignment supports a wide range of methods for model training and alignmen - **📏** Length - **🌀** Perplexity - **🌟** METEOR -- **📐** RAGAS - **🔍** Retrieval Utility From f38f7b1cf03ec0d4b3839821c465ae5cc02a42ab Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=D0=9C=D0=B0=D0=BB=D0=B0=D1=85=D0=BE=D0=B2=20=D0=90=D0=BB?= =?UTF-8?q?=D0=B5=D0=BA=D1=81=D0=B5=D0=B9=20=D0=9F=D0=B0=D0=B2=D0=BB=D0=BE?= =?UTF-8?q?=D0=B2=D0=B8=D1=87?= Date: Tue, 6 Aug 2024 14:52:13 +0000 Subject: [PATCH 13/31] update makefile --- Makefile | 3 +++ 1 file changed, 3 insertions(+) diff --git a/Makefile b/Makefile index 8fa7f59..94724e2 100644 --- a/Makefile +++ b/Makefile @@ -39,6 +39,9 @@ ifneq ($(CODE),) unify --in-place --recursive $(CODE) tutorials endif +bash-dev: + docker run -v $(shell pwd):/app --rm -it ${DEV_IMAGE} bash + lock: rm poetry.lock poetry lock From f8e19259e445a1f1e20a041ac423696dee9a7192 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=D0=9C=D0=B0=D0=BB=D0=B0=D1=85=D0=BE=D0=B2=20=D0=90=D0=BB?= =?UTF-8?q?=D0=B5=D0=BA=D1=81=D0=B5=D0=B9=20=D0=9F=D0=B0=D0=B2=D0=BB=D0=BE?= =?UTF-8?q?=D0=B2=D0=B8=D1=87?= Date: Tue, 6 Aug 2024 15:16:48 +0000 Subject: [PATCH 14/31] fix metrics --- turbo_alignment/settings/metric.py | 1 - 1 file changed, 1 deletion(-) diff --git a/turbo_alignment/settings/metric.py b/turbo_alignment/settings/metric.py index a2f9054..a0cecac 100755 --- a/turbo_alignment/settings/metric.py +++ b/turbo_alignment/settings/metric.py @@ -19,7 +19,6 @@ class MetricType(str, Enum): KL: str = 'kl' TOOL_CALL_METRICS: str = 'tool_call_metrics' RETRIEVAL_UTILITY: str = 'retrieval_utility' - INTENT_CLASSIFIER_ACCURACY: str = 'intent_classifier_accuracy' class ElementWiseScores(ExtraFieldsNotAllowedBaseModel): From cc078bbb21d7612a89bf91446b20c809a64cd56a Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=D0=9C=D0=B0=D0=BB=D0=B0=D1=85=D0=BE=D0=B2=20=D0=90=D0=BB?= =?UTF-8?q?=D0=B5=D0=BA=D1=81=D0=B5=D0=B9=20=D0=9F=D0=B0=D0=B2=D0=BB=D0=BE?= =?UTF-8?q?=D0=B2=D0=B8=D1=87?= Date: Tue, 6 Aug 2024 15:49:01 +0000 Subject: [PATCH 15/31] remove rag tutorials --- tutorials/rag/.env.example | 2 - tutorials/rag/rag.py | 329 ------------------------------------- 2 files changed, 331 deletions(-) delete mode 100644 tutorials/rag/.env.example delete mode 100644 tutorials/rag/rag.py diff --git a/tutorials/rag/.env.example b/tutorials/rag/.env.example deleted file mode 100644 index ba99471..0000000 --- a/tutorials/rag/.env.example +++ /dev/null @@ -1,2 +0,0 @@ -MISTRALAI_API_KEY= -# or specify OPENAI_API_KEY= \ No newline at end of file diff --git a/tutorials/rag/rag.py b/tutorials/rag/rag.py deleted file mode 100644 index 7a78cfa..0000000 --- a/tutorials/rag/rag.py +++ /dev/null @@ -1,329 +0,0 @@ -import os -import random - -import dotenv -import torch - -assert dotenv.load_dotenv() - -GENERATOR_MODEL = 'NousResearch/Hermes-2-Theta-Llama-3-8B' -ENCODER_MODEL = 'abacaj/llama-161M-100B' - -from peft import get_peft_config -from peft.peft_model import PeftModelForCausalLM -from transformers import ( - AdamW, - AutoTokenizer, - BitsAndBytesConfig, - PreTrainedModel, - PreTrainedTokenizerBase, - TrainingArguments, -) - -from turbo_alignment.cherry_picks.rag import RagCherryPickCallback -from turbo_alignment.dataset.chat.chat import ChatDataset -from turbo_alignment.settings.datasets.base import ( - DatasetSourceSettings, - DatasetStrategy, -) -from turbo_alignment.settings.datasets.chat import ChatDatasetSettings -from turbo_alignment.settings.pipelines.train.rag import RAGTrainExperimentSettings - -tokenizer = AutoTokenizer.from_pretrained(GENERATOR_MODEL) - -from datasets import Value, load_dataset - -from turbo_alignment import pipelines -from turbo_alignment.dataset.registry import DatasetRegistry -from turbo_alignment.settings import pipelines as pipeline_settings - -ds_qap = load_dataset('rag-datasets/rag-mini-bioasq', 'question-answer-passages') -ds_corpus = load_dataset('rag-datasets/rag-mini-bioasq', 'text-corpus') - -from transformers import AutoModelForCausalLM - -question_encoder = AutoModelForCausalLM.from_pretrained(ENCODER_MODEL) -question_encoder.eval() -question_tokenizer = AutoTokenizer.from_pretrained(ENCODER_MODEL) - -from turbo_alignment.modeling.rag.utils import get_question_embeddings - - -def save_index(num_passages=1000): - def embed(sentence): - with torch.no_grad(): - input_ids = question_tokenizer.encode(sentence, return_tensors='pt') - attention_mask = torch.ones_like(input_ids) - encoder_output = question_encoder(input_ids, attention_mask=attention_mask, output_hidden_states=True) - embedding = get_question_embeddings(encoder_output, attention_mask) - embedding = embedding.reshape(-1).numpy() - - return embedding - - if num_passages is not None: - passages_with_embeddings = ds_corpus['passages'].select(range(num_passages)) - else: - passages_with_embeddings = ds_corpus['passages'] - - passages_with_embeddings = passages_with_embeddings.map(lambda example: {'embeddings': embed(example['passage'])}) - - passages_with_embeddings.add_faiss_index(column='embeddings') - - print(passages_with_embeddings.get_nearest_examples('embeddings', embed('I am happy.'), k=10)) - - passages_with_embeddings.save_faiss_index('embeddings', 'my_index.faiss') - - passages_with_embeddings.drop_index('embeddings') - passages_with_embeddings = passages_with_embeddings.rename_column('id', 'title').rename_column('passage', 'text') - - features = passages_with_embeddings.features.copy() - features['title'] = Value('string') - passages_with_embeddings = passages_with_embeddings.cast(features) - passages_with_embeddings.save_to_disk('passages') - - -# save_index() - -model_settings_json = { - 'generator_settings': { - 'model_path': GENERATOR_MODEL, - 'model_type': 'causal', - 'transformers_settings': {}, - 'embeddings_initialization_strategy': { - '<|begin_of_text|>': '', - '<|end_of_text|>': '', - '': 'bot', - '': 'user', - '': 'system', - }, - 'peft_settings': { - 'r': 4, - 'lora_alpha': 16, - 'lora_dropout': 0.05, - 'target_modules': ['q_proj', 'v_proj', 'k_proj', 'o_proj'], - 'task_type': 'CAUSAL_LM', - 'modules_to_save': [], - 'name': 'LORA', - }, - }, - 'question_encoder_settings': { - 'model_path': ENCODER_MODEL, - 'model_type': 'encoder', - 'transformers_settings': {}, - 'embeddings_initialization_strategy': {}, - }, - 'index_settings': {'index_path': 'my_index.faiss', 'passages_path': 'passages'}, - 'retrieval_settings': {'n_docs': 2, 'max_doc_length': 256, 'query_encoder_max_length': 128}, -} - -from turbo_alignment.modeling.rag.rag_model import RagSequenceForGeneration -from turbo_alignment.modeling.rag.rag_tokenizer import RagTokenizer -from turbo_alignment.settings.rag_model import RAGPreTrainedModelSettings - -model_settings = RAGPreTrainedModelSettings.model_validate(model_settings_json) - -quantization_config = BitsAndBytesConfig(load_in_4bit=True, bnb_4bit_compute_dtype=torch.float16) -generator = AutoModelForCausalLM.from_pretrained(GENERATOR_MODEL, quantization_config=quantization_config) - -is_train = True - -if is_train: - peft_config = model_settings.generator_settings.peft_settings.dict() - peft_config['peft_type'] = peft_config['name'] - del peft_config['name'] - - peft_config = get_peft_config(peft_config) - generator = PeftModelForCausalLM(generator, peft_config) - -rag_tokenizer = RagTokenizer(model_settings, tokenizer_path=None) - -rag_model = RagSequenceForGeneration(model_settings, generator, question_encoder, rag_tokenizer) - -records = [] -for example in ds_qap['test']: - messages = [{'role': 'user', 'content': example['question']}, {'role': 'bot', 'content': example['answer']}] - record = { - 'messages': messages, - 'meta': {'relevant_passage_ids': example['relevant_passage_ids']}, - 'id': example['id'], - } - - records.append(record) - -random.seed(0) -random.shuffle(records) -train_num_samples = int(0.8 * len(records)) -train_records = records[:train_num_samples] -val_records = records[train_num_samples:] -val_records = val_records[:10] - - -def records_to_dataset(records: list, strategy: str, tokenizer: PreTrainedTokenizerBase): - dataset_cls = DatasetRegistry.by_name('chat').by_name(strategy) - - source = DatasetSourceSettings(name='rag-mini-bioasq', records_data=records, num_samples=len(records)) - - chat_dataset_settings_dict = { - 'prompt_template': { - 'role_tag_mapping': {'bot': '', 'user': '', 'system': ''}, - 'prefix_template': '<|im_start|>{role}\n', - 'suffix_template': '<|im_end|>', - }, - 'dataset_type': 'chat', - 'max_tokens_count': None, - 'only_answer_loss': True, - } - chat_dataset_settings = ChatDatasetSettings(**chat_dataset_settings_dict) - - dataset = dataset_cls(source=source, settings=chat_dataset_settings, tokenizer=tokenizer, read=True) - - return dataset - - -def evaluate(val_records, rag_model): - from turbo_alignment.cherry_picks.rag import RagCherryPickCallback - - inference_chat_dataset = records_to_dataset(val_records, 'inference', tokenizer) - - cherry_pick_settings_dict = { - 'generator_transformers_settings': { - 'num_beams': 1, - 'max_new_tokens': 256, - 'do_sample': False, - }, - 'custom_generation_settings': {'generation_eos_token': '<|im_end|>', 'skip_special_tokens': True}, - 'dataset_settings': { - 'sources': [ - { - 'name': 'support', - 'records_path': 'tests/fixtures/datasets/chat/train_chat_rag.jsonl', - 'num_samples': 1, - } - ], - 'prompt_template': { - 'role_tag_mapping': {'bot': '', 'user': '', 'system': ''}, - 'prefix_template': '<|im_start|>{role}', - 'suffix_template': '<|im_end|>', - }, - 'dataset_type': 'chat', - 'max_tokens_count': 20000, - 'random_cut': True, - 'only_answer_loss': False, - }, - 'metric_settings': [], - } - - from turbo_alignment.settings.cherry_pick import ChatCherryPickSettings - - cherry_pick_settings = ChatCherryPickSettings.model_validate(cherry_pick_settings_dict) - - from turbo_alignment.metrics.metric import Metric - - rag_cherry_pick = RagCherryPickCallback(cherry_pick_settings, datasets=[inference_chat_dataset], metrics=[]) - - output = rag_cherry_pick.on_evaluate(None, None, None, tokenizer=tokenizer, model=rag_model) - - -if not is_train: - evaluate(val_records, rag_model) - - -def train(train_records, val_records): - # Training Args - kwargs = { - 'output_dir': 'train_rag_output', - 'evaluation_strategy': 'epoch', - 'save_strategy': 'epoch', - 'per_device_train_batch_size': 2, - 'per_device_eval_batch_size': 1, - 'gradient_accumulation_steps': 1, - 'eval_steps': 150, - 'save_steps': 150, - 'logging_steps': 1, - 'learning_rate': 0.0004, - 'num_train_epochs': 1, - 'max_steps': 200, - 'lr_scheduler_type': 'linear', - 'lr_scheduler_kwargs': {}, - 'warmup_steps': 0, - 'warmup_ratio': 0.1, - 'fp16': True, - 'bf16': False, - 'tf32': False, - 'torch_compile': False, - 'optim': 'adamw_torch', - 'adam_beta1': 0.9, - 'adam_beta2': 0.98, - 'adam_epsilon': 1e-06, - 'weight_decay': 0.01, - 'max_grad_norm': 0.11, - 'deepspeed': None, - 'save_total_limit': 1, - 'save_only_model': False, - 'no_cuda': False, - 'prediction_loss_only': False, - 'load_best_model_at_end': True, - 'logging_first_step': True, - 'fsdp_config': None, - 'fsdp': '', - 'dataloader_num_workers': 8, - 'dataloader_prefetch_factor': None, - 'dataloader_persistent_workers': False, - 'dataloader_pin_memory': True, - 'gradient_checkpointing': False, - 'gradient_checkpointing_kwargs': {}, - 'neftune_noise_alpha': None, - 'report_to': [], - } - training_args = TrainingArguments(**kwargs) - - training_args._n_gpu = 1 - - # create train dataset and val dataset - - train_dataset = records_to_dataset(train_records, 'train', tokenizer) - val_dataset = records_to_dataset(val_records, 'inference', tokenizer) - - # create trainer - from transformers.data.data_collator import ( - DataCollatorForSeq2Seq, - DataCollatorForTokenClassification, - ) - - data_collator = DataCollatorForTokenClassification(tokenizer, pad_to_multiple_of=8) - - from turbo_alignment.trainers.multigpu import MultiGPUCherryPicksTrainer - - os.environ['TOKENIZERS_PARALLELISM'] = 'false' - - trainer = MultiGPUCherryPicksTrainer( - model=rag_model, - args=training_args, - train_dataset=train_dataset, - eval_dataset=val_dataset, - callbacks=[], - data_collator=data_collator, - tokenizer=tokenizer, - ) - generator_parameters = rag_model.rag.generator.parameters() - question_encoder_parameters = rag_model.rag.question_encoder.parameters() - optimizer = AdamW( - [ - {'params': generator_parameters, 'lr': training_args.learning_rate / 1000}, - { - 'params': question_encoder_parameters, - 'lr': training_args.learning_rate * 10, - }, - ] - ) - trainer.optimizer = optimizer - - trainer.train() - - return trainer.model - - -if is_train: - rag_model = train(train_records, val_records) - - evaluate(val_records, rag_model) From 824e9ad72c1ad5453a1696cfb99b37beaf232c9c Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=D0=9C=D0=B0=D0=BB=D0=B0=D1=85=D0=BE=D0=B2=20=D0=90=D0=BB?= =?UTF-8?q?=D0=B5=D0=BA=D1=81=D0=B5=D0=B9=20=D0=9F=D0=B0=D0=B2=D0=BB=D0=BE?= =?UTF-8?q?=D0=B2=D0=B8=D1=87?= Date: Tue, 6 Aug 2024 15:49:21 +0000 Subject: [PATCH 16/31] remove generation_eos_token and add stop_strings --- .../fixtures/configs/inference/rag/base.json | 2 +- tests/fixtures/configs/train/dpo/base.json | 2 +- tests/fixtures/configs/train/kto/base.json | 2 +- .../multimodal/llama_c_abs_clip_pickle.json | 2 +- .../multimodal/llama_llava_base_clip.json | 2 +- .../multimodal/llama_llava_clip_pickle.json | 2 +- tests/fixtures/configs/train/rag/base.json | 2 +- tests/fixtures/configs/train/sft/base.json | 2 +- .../configs/train/sft/prompt_tuning.json | 2 +- .../configs/train/sft/sft_with_rm_metric.json | 2 +- .../multimodal/images/image.clip.safetensors | Bin 144384 -> 144384 bytes .../common/tf/stopping_criteria.py | 13 -------- turbo_alignment/generators/base.py | 29 ++---------------- turbo_alignment/generators/chat.py | 2 -- turbo_alignment/generators/rag.py | 1 - turbo_alignment/generators/vllm_chat.py | 7 +++-- turbo_alignment/modeling/rag/rag_model.py | 1 - turbo_alignment/settings/generators/chat.py | 1 - turbo_alignment/settings/tf/generation.py | 1 + 19 files changed, 17 insertions(+), 58 deletions(-) delete mode 100755 turbo_alignment/common/tf/stopping_criteria.py diff --git a/tests/fixtures/configs/inference/rag/base.json b/tests/fixtures/configs/inference/rag/base.json index 2282b7b..dff8d56 100755 --- a/tests/fixtures/configs/inference/rag/base.json +++ b/tests/fixtures/configs/inference/rag/base.json @@ -41,10 +41,10 @@ "num_beams": 1, "max_new_tokens": 10, "repetition_penalty": 1.2, + "stop_strings": "", "do_sample": false }, "custom_settings": { - "generation_eos_token": "", "skip_special_tokens": false, "remove_prompt": false } diff --git a/tests/fixtures/configs/train/dpo/base.json b/tests/fixtures/configs/train/dpo/base.json index 8df1392..a06caad 100755 --- a/tests/fixtures/configs/train/dpo/base.json +++ b/tests/fixtures/configs/train/dpo/base.json @@ -56,10 +56,10 @@ "generator_transformers_settings": { "num_beams": 1, "do_sample": false, + "stop_strings": "", "max_new_tokens": 8 }, "custom_generation_settings": { - "generation_eos_token": "", "skip_special_tokens": false }, "dataset_settings": { diff --git a/tests/fixtures/configs/train/kto/base.json b/tests/fixtures/configs/train/kto/base.json index 30d4192..28dc7a4 100755 --- a/tests/fixtures/configs/train/kto/base.json +++ b/tests/fixtures/configs/train/kto/base.json @@ -54,10 +54,10 @@ "generator_transformers_settings": { "num_beams": 1, "do_sample": false, + "stop_strings": "", "max_new_tokens": 8 }, "custom_generation_settings": { - "generation_eos_token": "", "skip_special_tokens": false }, "dataset_settings": { diff --git a/tests/fixtures/configs/train/multimodal/llama_c_abs_clip_pickle.json b/tests/fixtures/configs/train/multimodal/llama_c_abs_clip_pickle.json index f140504..2ad3f7d 100644 --- a/tests/fixtures/configs/train/multimodal/llama_c_abs_clip_pickle.json +++ b/tests/fixtures/configs/train/multimodal/llama_c_abs_clip_pickle.json @@ -146,10 +146,10 @@ "num_beams": 1, "max_new_tokens": 128, "repetition_penalty": 1.1, + "stop_strings": "", "do_sample": true }, "custom_generation_settings": { - "generation_eos_token": "", "skip_special_tokens": true }, "dataset_settings": { diff --git a/tests/fixtures/configs/train/multimodal/llama_llava_base_clip.json b/tests/fixtures/configs/train/multimodal/llama_llava_base_clip.json index 1b51ab2..98fbad8 100644 --- a/tests/fixtures/configs/train/multimodal/llama_llava_base_clip.json +++ b/tests/fixtures/configs/train/multimodal/llama_llava_base_clip.json @@ -146,10 +146,10 @@ "num_beams": 1, "max_new_tokens": 128, "repetition_penalty": 1.1, + "stop_strings": "", "do_sample": true }, "custom_generation_settings": { - "generation_eos_token": "", "skip_special_tokens": true }, "dataset_settings": { diff --git a/tests/fixtures/configs/train/multimodal/llama_llava_clip_pickle.json b/tests/fixtures/configs/train/multimodal/llama_llava_clip_pickle.json index 9f23e43..d7a46e7 100644 --- a/tests/fixtures/configs/train/multimodal/llama_llava_clip_pickle.json +++ b/tests/fixtures/configs/train/multimodal/llama_llava_clip_pickle.json @@ -146,10 +146,10 @@ "num_beams": 1, "max_new_tokens": 4, "repetition_penalty": 1.1, + "stop_strings": "", "do_sample": false }, "custom_generation_settings": { - "generation_eos_token": "", "skip_special_tokens": true }, "dataset_settings": { diff --git a/tests/fixtures/configs/train/rag/base.json b/tests/fixtures/configs/train/rag/base.json index b003986..f11b4b8 100755 --- a/tests/fixtures/configs/train/rag/base.json +++ b/tests/fixtures/configs/train/rag/base.json @@ -87,10 +87,10 @@ "num_beams": 3, "max_new_tokens": 16, "repetition_penalty": 1.1, + "stop_strings": "", "do_sample": true }, "custom_generation_settings": { - "generation_eos_token": "", "skip_special_tokens": false }, "dataset_settings": { diff --git a/tests/fixtures/configs/train/sft/base.json b/tests/fixtures/configs/train/sft/base.json index 8e0b4d4..b5dc9fd 100755 --- a/tests/fixtures/configs/train/sft/base.json +++ b/tests/fixtures/configs/train/sft/base.json @@ -69,10 +69,10 @@ "cherry_pick_settings": { "generator_transformers_settings": { "num_beams": 3, + "stop_strings": ["", ""], "max_new_tokens": 8 }, "custom_generation_settings": { - "generation_eos_token": "", "skip_special_tokens": false }, "dataset_settings": { diff --git a/tests/fixtures/configs/train/sft/prompt_tuning.json b/tests/fixtures/configs/train/sft/prompt_tuning.json index 0a09dfc..c187176 100755 --- a/tests/fixtures/configs/train/sft/prompt_tuning.json +++ b/tests/fixtures/configs/train/sft/prompt_tuning.json @@ -63,10 +63,10 @@ "num_beams": 1, "max_new_tokens": 35, "repetition_penalty": 1.1, + "stop_strings": "", "do_sample": true }, "custom_generation_settings": { - "generation_eos_token": "", "skip_special_tokens": false }, "dataset_settings": { diff --git a/tests/fixtures/configs/train/sft/sft_with_rm_metric.json b/tests/fixtures/configs/train/sft/sft_with_rm_metric.json index 2a4515c..c281971 100755 --- a/tests/fixtures/configs/train/sft/sft_with_rm_metric.json +++ b/tests/fixtures/configs/train/sft/sft_with_rm_metric.json @@ -70,10 +70,10 @@ "generator_transformers_settings": { "num_beams": 1, "num_return_sequences": 2, + "stop_strings": "", "max_new_tokens": 8 }, "custom_generation_settings": { - "generation_eos_token": "", "skip_special_tokens": false }, "dataset_settings": { diff --git a/tests/fixtures/datasets/multimodal/images/image.clip.safetensors b/tests/fixtures/datasets/multimodal/images/image.clip.safetensors index af7685fedd507707531a498a50f68378238e2dee..bb4d44bd9b1ccdab9f6e0885c8ed8c00718c7855 100644 GIT binary patch literal 144384 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

}sTS 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

9Q$05LZ6VQ^|Cn%&c& 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 So5nSW3jmjr09vzF9RCL_NsPt- literal 144384 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

g{sILD|uJ)MJ8>-^%RWcNi{bD}hH@F1)oL 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 X_+K9lR8(WHhz$g{>Ok7MMHv4FH(Pso diff --git a/turbo_alignment/common/tf/stopping_criteria.py b/turbo_alignment/common/tf/stopping_criteria.py deleted file mode 100755 index df8314c..0000000 --- a/turbo_alignment/common/tf/stopping_criteria.py +++ /dev/null @@ -1,13 +0,0 @@ -import torch -from transformers import PreTrainedTokenizerBase, StoppingCriteria - - -class EndTagCriteria(StoppingCriteria): - def __init__(self, end_tag: str, tokenizer: PreTrainedTokenizerBase) -> None: - super().__init__() - self.tokenizer = tokenizer - self.stop_tag = end_tag - - def __call__(self, input_ids: torch.LongTensor, score: torch.FloatTensor, **kwargs) -> bool: - assert input_ids.shape[0] == 1 - return self.tokenizer.decode(input_ids[0], skip_special_tokens=False)[-len(self.stop_tag) :] == self.stop_tag diff --git a/turbo_alignment/generators/base.py b/turbo_alignment/generators/base.py index 72c1643..8a9d36e 100755 --- a/turbo_alignment/generators/base.py +++ b/turbo_alignment/generators/base.py @@ -4,14 +4,8 @@ import torch from accelerate import Accelerator -from transformers import ( - GenerationConfig, - PreTrainedModel, - PreTrainedTokenizerBase, - StoppingCriteriaList, -) - -from turbo_alignment.common.tf.stopping_criteria import EndTagCriteria +from transformers import GenerationConfig, PreTrainedModel, PreTrainedTokenizerBase + from turbo_alignment.dataset.base import BaseDataset from turbo_alignment.dataset.base.models import DatasetRecord from turbo_alignment.settings.generators.chat import CustomChatGenerationSettings @@ -105,27 +99,8 @@ def __init__( self._return_logits = return_logits - eos_token_id: list[int] = self._tokenizer.encode( - custom_generation_settings.generation_eos_token, add_special_tokens=False - ) - - self._stopping_criteria: StoppingCriteriaList | None = None - if len(eos_token_id) != 1: - eos_token_id = [] - if transformers_settings.num_beams > 1 or transformers_settings.do_sample: - raise ValueError('You should use only 1 eos token with num_beams > 1 or do_sample=True') - self._stopping_criteria = StoppingCriteriaList( - [ - EndTagCriteria( - custom_generation_settings.generation_eos_token, - tokenizer=tokenizer, - ) - ] - ) - self._transformers_generator_parameters = GenerationConfig( bos_token_id=self._tokenizer.bos_token_id, - eos_token_id=eos_token_id, **transformers_settings.dict(), ) diff --git a/turbo_alignment/generators/chat.py b/turbo_alignment/generators/chat.py index 5b778cc..418488b 100755 --- a/turbo_alignment/generators/chat.py +++ b/turbo_alignment/generators/chat.py @@ -40,7 +40,6 @@ def _generate_from_batch_records( attention_mask=batched_attention_mask, generation_config=self._transformers_generator_parameters, pad_token_id=self._tokenizer.pad_token_id, - stopping_criteria=self._stopping_criteria, ) postprocessed_output_indices = self._postprocess( @@ -85,7 +84,6 @@ def _generate_from_single_record( attention_mask=attention_mask, generation_config=self._transformers_generator_parameters, pad_token_id=self._tokenizer.pad_token_id, - stopping_criteria=self._stopping_criteria, ) postprocessed_output_indices = self._postprocess( diff --git a/turbo_alignment/generators/rag.py b/turbo_alignment/generators/rag.py index 89a4e3c..0e8a67e 100755 --- a/turbo_alignment/generators/rag.py +++ b/turbo_alignment/generators/rag.py @@ -23,7 +23,6 @@ def _generate_from_single_record( inputs=input_ids, generation_config=self._transformers_generator_parameters, pad_token_id=self._tokenizer.pad_token_id, - stopping_criteria=self._stopping_criteria, ) answers = self._decode(token_indices=answer_indices.cpu()) diff --git a/turbo_alignment/generators/vllm_chat.py b/turbo_alignment/generators/vllm_chat.py index 03235c0..5fc9c54 100755 --- a/turbo_alignment/generators/vllm_chat.py +++ b/turbo_alignment/generators/vllm_chat.py @@ -25,9 +25,10 @@ def __init__( model.set_tokenizer(tokenizer) super().__init__(model, tokenizer, batch=batch) - eos_token_id: list[int] = self._tokenizer.encode( - custom_generation_settings.generation_eos_token, add_special_tokens=False - ) + if isinstance(transformers_settings.stop_strings, list): + raise ValueError('You should use only 1 eos token with VLLM') + + eos_token_id: list[int] = self._tokenizer.encode(transformers_settings.stop_strings, add_special_tokens=False) beam_search_params = {'best_of': transformers_settings.num_return_sequences, 'use_beam_search': False} if transformers_settings.num_beams > 1: diff --git a/turbo_alignment/modeling/rag/rag_model.py b/turbo_alignment/modeling/rag/rag_model.py index 9a58c2a..07960ce 100755 --- a/turbo_alignment/modeling/rag/rag_model.py +++ b/turbo_alignment/modeling/rag/rag_model.py @@ -343,7 +343,6 @@ def generate( input_ids=joined_input_ids, generation_config=generation_config, pad_token_id=self.tokenizer.pad_token_id, - stopping_criteria=kwargs['stopping_criteria'], ) # TODO chose max-prob sequence with accounting for doc probs only_answer_output = output_sequences[:, joined_input_ids.shape[-1] :] diff --git a/turbo_alignment/settings/generators/chat.py b/turbo_alignment/settings/generators/chat.py index 3869baf..01bcc09 100755 --- a/turbo_alignment/settings/generators/chat.py +++ b/turbo_alignment/settings/generators/chat.py @@ -3,6 +3,5 @@ class CustomChatGenerationSettings(ExtraFieldsNotAllowedBaseModel): skip_special_tokens: bool = True - generation_eos_token: str = '' remove_prompt: bool = True batch: int = 1 diff --git a/turbo_alignment/settings/tf/generation.py b/turbo_alignment/settings/tf/generation.py index ee977ff..14537d9 100755 --- a/turbo_alignment/settings/tf/generation.py +++ b/turbo_alignment/settings/tf/generation.py @@ -10,3 +10,4 @@ class GeneratorTransformersSettings(ExtraFieldsNotAllowedBaseModel): top_p: float = 1.0 top_k: int = 50 temperature: float = 1.0 + stop_strings: str | list[str] = '' From 1a84f094a8c333d5ebe2049905dba26373272036 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=D0=9C=D0=B0=D0=BB=D0=B0=D1=85=D0=BE=D0=B2=20=D0=90=D0=BB?= =?UTF-8?q?=D0=B5=D0=BA=D1=81=D0=B5=D0=B9=20=D0=9F=D0=B0=D0=B2=D0=BB=D0=BE?= =?UTF-8?q?=D0=B2=D0=B8=D1=87?= Date: Wed, 7 Aug 2024 12:55:47 +0000 Subject: [PATCH 17/31] fix some linters --- turbo_alignment/generators/chat.py | 2 +- turbo_alignment/generators/vllm_chat.py | 2 +- .../modeling/common/transformer.py | 11 +++- .../modeling/imagebind/heads/registry.py | 4 +- .../modeling/imagebind/imagebind.py | 3 +- .../imagebind/postprocessors/registry.py | 4 +- .../modeling/imagebind/preprocessors/impl.py | 8 +-- .../imagebind/preprocessors/registry.py | 3 +- .../modeling/imagebind/trunks/registry.py | 3 +- .../multimodal/encoders/image/clip.py | 3 +- .../modeling/multimodal/lm/base.py | 2 +- .../modeling/multimodal/lm/projection.py | 9 ++- .../multimodal/projectors/c_abstractor.py | 11 ++-- turbo_alignment/modeling/rag/rag_model.py | 2 +- turbo_alignment/pipelines/inference/chat.py | 2 +- .../pipelines/preprocessing/multimodal.py | 2 +- turbo_alignment/pipelines/train/rag.py | 2 +- .../settings/pipelines/train/rag.py | 2 +- turbo_alignment/trainers/classification.py | 2 +- turbo_alignment/trainers/dpo.py | 13 ++--- turbo_alignment/trainers/kto.py | 4 +- turbo_alignment/trainers/multigpu.py | 56 ------------------- turbo_alignment/trainers/multimodal.py | 6 +- turbo_alignment/trainers/utils.py | 8 +-- 24 files changed, 59 insertions(+), 105 deletions(-) diff --git a/turbo_alignment/generators/chat.py b/turbo_alignment/generators/chat.py index 418488b..20ae081 100755 --- a/turbo_alignment/generators/chat.py +++ b/turbo_alignment/generators/chat.py @@ -113,7 +113,7 @@ def _generate_from_single_record( answer_token_ids=a_t_ids.unsqueeze(0), logits=l.unsqueeze(0), ) - for i, (a, a_t_ids, l) in enumerate(zip(answers, answer_tokens_ids, logits)) # type: ignore[arg-type] + for i, (a, a_t_ids, l) in enumerate(zip(answers, answer_tokens_ids, logits)) ] else: answer_messages = [ diff --git a/turbo_alignment/generators/vllm_chat.py b/turbo_alignment/generators/vllm_chat.py index 5fc9c54..2d74026 100755 --- a/turbo_alignment/generators/vllm_chat.py +++ b/turbo_alignment/generators/vllm_chat.py @@ -44,7 +44,7 @@ def __init__( skip_special_tokens=custom_generation_settings.skip_special_tokens, stop_token_ids=eos_token_id, max_tokens=transformers_settings.max_new_tokens, - **beam_search_params, # type: ignore[arg-type] + **beam_search_params, ) def _generate_from_batch( diff --git a/turbo_alignment/modeling/common/transformer.py b/turbo_alignment/modeling/common/transformer.py index 3582c64..eebc380 100755 --- a/turbo_alignment/modeling/common/transformer.py +++ b/turbo_alignment/modeling/common/transformer.py @@ -77,7 +77,16 @@ class MultiheadAttention(torch.nn.MultiheadAttention): # pylint: disable=arguments-differ def forward(self, x: torch.Tensor, attn_mask: torch.Tensor) -> torch.Tensor: # type: ignore[override] - return super().forward(x, x, x, need_weights=False, attn_mask=attn_mask)[0] + return super().forward( + query=x, + key=x, + value=x, + key_padding_mask=None, + need_weights=False, + attn_mask=attn_mask, + average_attn_weights=True, + is_causal=False, + )[0] class BlockWithMasking(torch.nn.Module): diff --git a/turbo_alignment/modeling/imagebind/heads/registry.py b/turbo_alignment/modeling/imagebind/heads/registry.py index e1f1388..9dbd9d7 100755 --- a/turbo_alignment/modeling/imagebind/heads/registry.py +++ b/turbo_alignment/modeling/imagebind/heads/registry.py @@ -1,3 +1,5 @@ +from abc import ABC + import torch from turbo_alignment.modeling.common.helpers import SelectElement, SelectEOSAndProject @@ -7,7 +9,7 @@ ) -class Heads(torch.nn.ModuleDict): # pylint: disable=abstract-method +class Heads(ABC, torch.nn.ModuleDict): @staticmethod def __get_vision_head( vision_embed_dim: int, diff --git a/turbo_alignment/modeling/imagebind/imagebind.py b/turbo_alignment/modeling/imagebind/imagebind.py index 269dd02..7a2e6e3 100755 --- a/turbo_alignment/modeling/imagebind/imagebind.py +++ b/turbo_alignment/modeling/imagebind/imagebind.py @@ -1,4 +1,3 @@ -# pylint: skip-file # pylint: disable=unused-import import torch @@ -60,7 +59,7 @@ def load_imagebind(settings: ImageBindSettings) -> ImageBindModel: return model -class ImageBindSingleton(metaclass=ParametrizedSingleton[ImageBindSettings]): # type: ignore[misc] +class ImageBindSingleton(metaclass=ParametrizedSingleton[ImageBindSettings]): def __init__(self, settings: ImageBindSettings) -> None: self._model = load_imagebind(settings) diff --git a/turbo_alignment/modeling/imagebind/postprocessors/registry.py b/turbo_alignment/modeling/imagebind/postprocessors/registry.py index d0a7bcd..b3d631d 100755 --- a/turbo_alignment/modeling/imagebind/postprocessors/registry.py +++ b/turbo_alignment/modeling/imagebind/postprocessors/registry.py @@ -1,3 +1,5 @@ +from abc import ABC + import torch from turbo_alignment.modeling.common.helpers import LearnableLogitScaling, Normalize @@ -7,7 +9,7 @@ ) -class Postprocessors(torch.nn.ModuleDict): # pylint: disable=abstract-method +class Postprocessors(ABC, torch.nn.ModuleDict): def __init__(self, _settings: ImageBindArchitectureSettings): super().__init__() diff --git a/turbo_alignment/modeling/imagebind/preprocessors/impl.py b/turbo_alignment/modeling/imagebind/preprocessors/impl.py index 25d3a4a..ced8476 100755 --- a/turbo_alignment/modeling/imagebind/preprocessors/impl.py +++ b/turbo_alignment/modeling/imagebind/preprocessors/impl.py @@ -177,12 +177,11 @@ def get_pos_embedding(self, vision_input, all_vision_tokens): class RGBDTPreprocessor(VerboseNNModule): - # pylint: disable=dangerous-default-value def __init__( self, rgbt_stem: PatchEmbedGeneric | None, depth_stem: PatchEmbedGeneric | None, - img_size: list = [3, 224, 224], + img_size: list | None = None, num_cls_tokens: int = 1, pos_embed_fn: Callable | None = None, use_type_embed: bool = False, @@ -190,6 +189,8 @@ def __init__( ) -> None: super().__init__() stem = rgbt_stem if rgbt_stem is not None else depth_stem + if img_size is None: + img_size = [3, 224, 224] assert stem is not None ( self.patches_layout, @@ -277,11 +278,10 @@ def forward(self, vision: torch.Tensor | None = None, depth: torch.Tensor | None class AudioPreprocessor(RGBDTPreprocessor): - # pylint: disable=arguments-differ def __init__(self, audio_stem: PatchEmbedGeneric, **kwargs) -> None: super().__init__(rgbt_stem=audio_stem, depth_stem=None, **kwargs) - def forward(self, audio: torch.Tensor | None = None) -> dict: # type: ignore [override] + def forward(self, *_args, audio: torch.Tensor | None = None, **_kwargs) -> dict: # vision here is actually audio return super().forward(vision=audio) diff --git a/turbo_alignment/modeling/imagebind/preprocessors/registry.py b/turbo_alignment/modeling/imagebind/preprocessors/registry.py index ae5e65d..d5e6043 100755 --- a/turbo_alignment/modeling/imagebind/preprocessors/registry.py +++ b/turbo_alignment/modeling/imagebind/preprocessors/registry.py @@ -1,3 +1,4 @@ +from abc import ABC from functools import partial import torch @@ -16,7 +17,7 @@ ) -class Preprocessors(torch.nn.ModuleDict): # pylint: disable=abstract-method +class Preprocessors(ABC, torch.nn.ModuleDict): @staticmethod def __get_rgbt_preprocessor( video_frames: int, diff --git a/turbo_alignment/modeling/imagebind/trunks/registry.py b/turbo_alignment/modeling/imagebind/trunks/registry.py index 5a5bf6b..f3e113f 100755 --- a/turbo_alignment/modeling/imagebind/trunks/registry.py +++ b/turbo_alignment/modeling/imagebind/trunks/registry.py @@ -1,3 +1,4 @@ +from abc import ABC from functools import partial import torch @@ -13,7 +14,7 @@ ) -class Trunks(torch.nn.ModuleDict): # pylint: disable=abstract-method +class Trunks(ABC, torch.nn.ModuleDict): @staticmethod def __instantiate_trunk( embed_dim: int, diff --git a/turbo_alignment/modeling/multimodal/encoders/image/clip.py b/turbo_alignment/modeling/multimodal/encoders/image/clip.py index 4d7b9bc..d803c17 100644 --- a/turbo_alignment/modeling/multimodal/encoders/image/clip.py +++ b/turbo_alignment/modeling/multimodal/encoders/image/clip.py @@ -25,8 +25,7 @@ def __init__(self, encoder_path: Path, model_clip: Optional[CLIPModel] = None, i def _get_clip_hidden_states(model_clip: CLIPModel, inputs: torch.Tensor, is_pickle: bool = False) -> torch.Tensor: if is_pickle: return inputs - # pylint: disable=line-too-long - # https://github.com/huggingface/transformers/blob/main/src/transformers/models/llava/modeling_llava.py#L213 # noqa: E501 + # https://github.com/huggingface/transformers/blob/main/src/transformers/models/llava/modeling_llava.py#L213 # -2 is default value of vision_feature_layer in llava config # [1:] is everything after vit [cls] token return model_clip.vision_model(inputs.squeeze(1), output_hidden_states=True).hidden_states[-2][ diff --git a/turbo_alignment/modeling/multimodal/lm/base.py b/turbo_alignment/modeling/multimodal/lm/base.py index d2f6bc7..bc7b10e 100644 --- a/turbo_alignment/modeling/multimodal/lm/base.py +++ b/turbo_alignment/modeling/multimodal/lm/base.py @@ -35,7 +35,7 @@ def __init__( self.language_model_dim = ( language_model.base_model.model.model.embed_tokens.modules_to_save.default.weight.shape[1] ) - self.encoders = torch.nn.ModuleDict(encoders) # type: ignore[arg-type] + self.encoders = torch.nn.ModuleDict(encoders) for encoder in self.encoders.values(): encoder.eval() diff --git a/turbo_alignment/modeling/multimodal/lm/projection.py b/turbo_alignment/modeling/multimodal/lm/projection.py index 21de1e0..69e2d1b 100644 --- a/turbo_alignment/modeling/multimodal/lm/projection.py +++ b/turbo_alignment/modeling/multimodal/lm/projection.py @@ -40,14 +40,13 @@ def __init__(self, *args, **kwargs) -> None: Please, set n_modality_embs to {self.encoders[modality].n_modality_embs} in config.' if self.modality_projector_initialization_mapping: - if self.modality_projector_initialization_mapping.get(modality): + state_dict_path = self.modality_projector_initialization_mapping.get(modality) + if state_dict_path is not None: logger.info(f'Loading {modality} connector weights') - state_dictionary = torch.load( - self.modality_projector_initialization_mapping[modality] # type: ignore[arg-type] - ) + state_dictionary = torch.load(state_dict_path) modality_adapters[modality].load_state_dict(state_dictionary) - logger.info(f'Sucsessfully loaded from {self.modality_projector_initialization_mapping[modality]}') + logger.info(f'Sucsessfully loaded from {state_dict_path}') self.modality_adapters = torch.nn.ModuleDict(modality_adapters) diff --git a/turbo_alignment/modeling/multimodal/projectors/c_abstractor.py b/turbo_alignment/modeling/multimodal/projectors/c_abstractor.py index ed4fbf0..7bf08df 100644 --- a/turbo_alignment/modeling/multimodal/projectors/c_abstractor.py +++ b/turbo_alignment/modeling/multimodal/projectors/c_abstractor.py @@ -1,3 +1,4 @@ +from abc import ABC from functools import partial import torch @@ -14,6 +15,7 @@ class HoneybeeVisualProjectorConfig(BaseModel): projector_type: str = 'c-abs' + initializer_range: float = 1.0 depth: int = 3 mlp_depth: int = 2 hidden_size: int = 1024 @@ -42,7 +44,7 @@ def build_eos_tokens(config: HoneybeeVisualProjectorConfig, output_hidden_size: num_eos_tokens = config.num_eos_tokens if num_eos_tokens: eos_tokens = torch.nn.Parameter(torch.randn(1, num_eos_tokens, output_hidden_size)) - torch.nn.init.trunc_normal_(eos_tokens, mean=0.0, std=config.initializer_range) # type: ignore + torch.nn.init.trunc_normal_(eos_tokens, mean=0.0, std=config.initializer_range) else: eos_tokens = None @@ -58,9 +60,9 @@ def build_prenorm(config: HoneybeeVisualProjectorConfig): def build_mlp(depth: int, hidden_size: int, output_hidden_size: int): - layers = [torch.nn.Linear(hidden_size, output_hidden_size)] + layers: list[torch.nn.Module] = [torch.nn.Linear(hidden_size, output_hidden_size)] for _ in range(1, depth): - layers.append(torch.nn.SiLU()) # type: ignore + layers.append(torch.nn.SiLU()) layers.append(torch.nn.Linear(output_hidden_size, output_hidden_size)) return torch.nn.Sequential(*layers) @@ -131,8 +133,7 @@ def _load_from_state_dict(self, state_dict, *args, **kwargs): super()._load_from_state_dict(state_dict, *args, **kwargs) -# pylint: disable=abstract-method -class ConvProjector(Projector): +class ConvProjector(ABC, Projector): def _forward(self, x): # x: [B, L, dim] hw = int(x.size(1) ** 0.5) diff --git a/turbo_alignment/modeling/rag/rag_model.py b/turbo_alignment/modeling/rag/rag_model.py index 07960ce..7e233bf 100755 --- a/turbo_alignment/modeling/rag/rag_model.py +++ b/turbo_alignment/modeling/rag/rag_model.py @@ -296,7 +296,7 @@ def generate( self, inputs: torch.LongTensor, generation_config: GenerationConfig | None = None, - **kwargs, # pylint: disable=unused-argument + **_kwargs, ) -> tuple[torch.LongTensor, torch.LongTensor, torch.Tensor]: # TODO remove code duplicate with forward diff --git a/turbo_alignment/pipelines/inference/chat.py b/turbo_alignment/pipelines/inference/chat.py index a40df0f..272197d 100755 --- a/turbo_alignment/pipelines/inference/chat.py +++ b/turbo_alignment/pipelines/inference/chat.py @@ -40,7 +40,7 @@ def _get_single_inference_settings( model = ( accelerator.prepare_model(model, device_placement=True, evaluation_mode=True) if torch.cuda.is_available() - else model.to('cpu') # type: ignore[attr-defined] + else model.to('cpu') ) for generation_settings in model_inference_settings.generation_settings: diff --git a/turbo_alignment/pipelines/preprocessing/multimodal.py b/turbo_alignment/pipelines/preprocessing/multimodal.py index c9c7ba8..efffe97 100644 --- a/turbo_alignment/pipelines/preprocessing/multimodal.py +++ b/turbo_alignment/pipelines/preprocessing/multimodal.py @@ -47,7 +47,7 @@ def _read_modality_objects(self, reader: BaseModalityReader, dataset_path: Path) total_number_of_objects = len(list(dataset_path.iterdir())) logger.info('📖 Reading modality objects...') - files_paths = [] # type: ignore + files_paths = [] for extension in available_extensions: files_paths.extend(dataset_path.glob(f'*.{extension}')) diff --git a/turbo_alignment/pipelines/train/rag.py b/turbo_alignment/pipelines/train/rag.py index 6c61fb7..5ef7cec 100755 --- a/turbo_alignment/pipelines/train/rag.py +++ b/turbo_alignment/pipelines/train/rag.py @@ -65,7 +65,7 @@ def _get_cherry_pick_callback( @staticmethod def _get_additional_special_tokens( - experiment_settings: RAGTrainExperimentSettings, # type: ignore[override] + experiment_settings: RAGTrainExperimentSettings, ) -> list[str]: gen_settings = experiment_settings.model_settings.generator_settings embeddings_initialization_strategy = gen_settings.embeddings_initialization_strategy diff --git a/turbo_alignment/settings/pipelines/train/rag.py b/turbo_alignment/settings/pipelines/train/rag.py index f6cb6a3..49b6599 100755 --- a/turbo_alignment/settings/pipelines/train/rag.py +++ b/turbo_alignment/settings/pipelines/train/rag.py @@ -5,7 +5,7 @@ class RAGTrainExperimentSettings(BaseTrainExperimentSettings): - model_settings: RAGPreTrainedModelSettings # type: ignore[assignment] + model_settings: RAGPreTrainedModelSettings train_dataset_settings: ChatMultiDatasetSettings val_dataset_settings: ChatMultiDatasetSettings diff --git a/turbo_alignment/trainers/classification.py b/turbo_alignment/trainers/classification.py index b68ac53..897c536 100755 --- a/turbo_alignment/trainers/classification.py +++ b/turbo_alignment/trainers/classification.py @@ -59,7 +59,7 @@ def classification_loss( def auto_class_weights(dataset: Dataset) -> list[float]: - labels = [dataset[i]['labels'] for i in range(len(dataset))] # type: ignore[arg-type] + labels = [dataset[i]['labels'] for i in range(len(dataset))] class_weights = compute_class_weight('balanced', classes=np.unique(labels), y=np.array(labels)) return class_weights.tolist() diff --git a/turbo_alignment/trainers/dpo.py b/turbo_alignment/trainers/dpo.py index 8d91070..5418f5d 100755 --- a/turbo_alignment/trainers/dpo.py +++ b/turbo_alignment/trainers/dpo.py @@ -1,4 +1,3 @@ -# mypy: disable-error-code="call-overload" from collections import defaultdict from dataclasses import dataclass, field from typing import Any, Callable, Literal @@ -268,9 +267,9 @@ def __init__( self.sync_ref_settings = args.sync_ref_settings if hasattr(args, 'loss_settings'): - self.loss_type = args.loss_settings['loss_type'] # type: ignore[index] + self.loss_type = args.loss_settings['loss_type'] loss_args = args.loss_settings - loss_args.pop('loss_type') # type: ignore[union-attr] + loss_args.pop('loss_type') self.dpo_loss_registry = DPOLossRegistry.by_name(self.loss_type)(**loss_args) self._stored_metrics: dict[str, dict[str, list[float]]] = defaultdict(lambda: defaultdict(list)) @@ -310,7 +309,7 @@ def __init__( self.add_callback(PrinterCallback if self.args.disable_tqdm else ProgressCallback) self.control: TrainerControl = self.callback_handler.on_init_end(self.args, self.state, self.control) - if self.sync_ref_settings['sync_ref_model']: # type: ignore[index] + if self.sync_ref_settings['sync_ref_model']: self.add_callback(SyncRefModelCallback(sync_ref_settings=self.sync_ref_settings)) def dpo_loss( @@ -371,7 +370,7 @@ def concatenated_forward( policy_best_decode_logps: torch.Tensor = all_logps[chosen_idxs + rejected_idx :] if len(policy_best_decode_logps) == 0: - policy_best_decode_logps = None # type: ignore[assignment] + policy_best_decode_logps = None chosen_logits = all_logits[:chosen_idxs] rejected_logits = all_logits[chosen_idxs:] @@ -463,7 +462,7 @@ def get_batch_metrics( sft_prefix_name = prefix + 'rewards/sft_' metrics = self._compute_metrics(metrics, sft_prefix_name, sft_chosen_rewards, sft_rejected_rewards) - return losses.mean(), metrics # type: ignore + return losses.mean(), metrics def _compute_metrics( self, metrics: dict[str, float], prefix_name: str, chosen_rewards: torch.Tensor, rejected_rewards: torch.Tensor @@ -523,7 +522,7 @@ def prediction_step( 'logits_test/rejected': metrics['logits_test/rejected'], } logits = tuple(v for k, v in logits_dict.items() if k not in ignore_keys) - logits = torch.stack(logits).mean(axis=1) # type: ignore[arg-type, call-overload] + logits = torch.stack(logits).mean(axis=1) labels = torch.zeros(logits.shape[0]) return loss.detach(), logits, labels diff --git a/turbo_alignment/trainers/kto.py b/turbo_alignment/trainers/kto.py index 29adceb..e219d5a 100755 --- a/turbo_alignment/trainers/kto.py +++ b/turbo_alignment/trainers/kto.py @@ -30,9 +30,7 @@ @dataclass class KTOTrainingArguments(TrainingArguments): beta: float = 0.1 - sync_ref_settings: SyncRefModelSettings = field( - default_factory=SyncRefModelSettings() # type: ignore[call-overload] - ) + sync_ref_settings: SyncRefModelSettings = field(default_factory=SyncRefModelSettings()) use_ref_model: bool = True average_log_prob: bool = False undesirable_weight: float = 1.0 diff --git a/turbo_alignment/trainers/multigpu.py b/turbo_alignment/trainers/multigpu.py index 3a75e39..7c84076 100755 --- a/turbo_alignment/trainers/multigpu.py +++ b/turbo_alignment/trainers/multigpu.py @@ -1,7 +1,5 @@ -import os from typing import Callable -import numpy as np from torch import nn from torch.utils.data import Dataset from transformers import ( @@ -16,7 +14,6 @@ TrainingArguments, ) from transformers.integrations import get_reporting_integration_callbacks -from transformers.trainer_utils import PREFIX_CHECKPOINT_DIR from turbo_alignment.common.tf.callbacks.common import WandbMetricsCallbackHandler @@ -61,56 +58,3 @@ def __init__( ) self.add_callback(PrinterCallback if self.args.disable_tqdm else ProgressCallback) self.control: TrainerControl = self.callback_handler.on_init_end(self.args, self.state, self.control) - - def _save_checkpoint(self, model, trial, metrics=None): # pylint: disable=unused-argument - # FIX: https://github.com/huggingface/transformers/issues/28119 - # https://github.com/huggingface/transformers/pull/29370 - - # In all cases, including ddp/dp/deepspeed, self.model is always a reference to the model we - # want to save except FullyShardedDDP. - # assert unwrap_model(model) is self.model, "internal model should be a reference to self.model" - - # Save model checkpoint - checkpoint_folder = f'{PREFIX_CHECKPOINT_DIR}-{self.state.global_step}' - - if self.hp_search_backend is None and trial is None: - self.store_flos() - - run_dir = self._get_output_dir(trial=trial) - output_dir = os.path.join(run_dir, checkpoint_folder) - self.save_model(output_dir, _internal_call=True) - - if not self.args.save_only_model: - # Save optimizer and scheduler - self._save_optimizer_and_scheduler(output_dir) - # Save RNG state - self._save_rng_state(output_dir) - - # Determine the new best metric / best model checkpoint - if metrics is not None and self.args.metric_for_best_model is not None: - metric_to_check = self.args.metric_for_best_model - if not metric_to_check.startswith('eval_'): - metric_to_check = f'eval_{metric_to_check}' - metric_value = metrics[metric_to_check] - - operator = np.greater if self.args.greater_is_better else np.less - if ( - self.state.best_metric is None - or self.state.best_model_checkpoint is None - or operator(metric_value, self.state.best_metric) - ): - self.state.best_metric = metric_value - self.state.best_model_checkpoint = output_dir - - # Save the Trainer state - if self.args.should_save: - self.state.save_to_json(os.path.join(output_dir, 'trainer_state.json')) - - if self.args.push_to_hub: - self._push_from_checkpoint(output_dir) - - # Maybe delete some older checkpoints. - if self.args.should_save: - # Solely rely on numerical checkpoint id for rotation. - # mtime is not reliable especially on some fuse fs in cloud environments. - self._rotate_checkpoints(use_mtime=False, output_dir=run_dir) diff --git a/turbo_alignment/trainers/multimodal.py b/turbo_alignment/trainers/multimodal.py index ea87f21..8099485 100755 --- a/turbo_alignment/trainers/multimodal.py +++ b/turbo_alignment/trainers/multimodal.py @@ -26,7 +26,7 @@ class TrainerCustomSave(MultiGPUCherryPicksTrainer): - def _save_checkpoint(self, model, trial, metrics=None): # pylint: disable=unused-argument + def _save_checkpoint(self, model, trial, metrics=None): logger.info('Running custom _save_checkpoint') checkpoint_folder = f'{PREFIX_CHECKPOINT_DIR}-{self.state.global_step}' run_dir = self._get_output_dir(trial=trial) @@ -269,7 +269,7 @@ def prediction_step( 'logits_test/rejected': metrics['logits_test/rejected'], } logits = tuple(v for k, v in logits_dict.items() if k not in ignore_keys) - logits = torch.stack(logits).mean(axis=1) # type: ignore[arg-type, call-overload] + logits = torch.stack(logits).mean(axis=1) labels = torch.zeros(logits.shape[0]) return loss.detach(), logits, labels @@ -285,7 +285,7 @@ def log(self, logs: Dict[str, float]) -> None: del self._stored_metrics[train_eval] return super().log(logs) # pylint: disable=no-member - def _save_checkpoint(self, model, trial, metrics=None): # pylint: disable=unused-argument + def _save_checkpoint(self, model, trial, metrics=None): logger.info('Running custom _save_checkpoint') checkpoint_folder = f'{PREFIX_CHECKPOINT_DIR}-{self.state.global_step}' run_dir = self._get_output_dir(trial=trial) diff --git a/turbo_alignment/trainers/utils.py b/turbo_alignment/trainers/utils.py index ebd054a..8021d0a 100755 --- a/turbo_alignment/trainers/utils.py +++ b/turbo_alignment/trainers/utils.py @@ -54,10 +54,10 @@ def prepare_model_for_deepspeed( config_kwargs = deepcopy(deepspeed_plugin.deepspeed_config) if model is not None: if hasattr(model, 'config'): - hidden_size: int | None = ( # type: ignore - max(model.config.hidden_sizes) # type: ignore - if getattr(model.config, 'hidden_sizes', None) # type: ignore - else getattr(model.config, 'hidden_size', None) # type: ignore + hidden_size: int | None = ( + max(model.config.hidden_sizes) + if getattr(model.config, 'hidden_sizes', None) + else getattr(model.config, 'hidden_size', None) ) if hidden_size is not None and config_kwargs['zero_optimization']['stage'] == 3: From d33ece63d530add2a80510978d49e76af4485919 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=D0=9C=D0=B0=D0=BB=D0=B0=D1=85=D0=BE=D0=B2=20=D0=90=D0=BB?= =?UTF-8?q?=D0=B5=D0=BA=D1=81=D0=B5=D0=B9=20=D0=9F=D0=B0=D0=B2=D0=BB=D0=BE?= =?UTF-8?q?=D0=B2=D0=B8=D1=87?= Date: Wed, 7 Aug 2024 14:32:38 +0000 Subject: [PATCH 18/31] fix linters and tests --- tests/cli/test_multimodal_inference.py | 42 +++++++++---------- .../multimodal/llama_c_abs_clip_pickle.json | 8 ++-- .../datasets/multimodal/image_chat.jsonl | 3 +- .../adapter/adapter_config.json | 4 +- turbo_alignment/generators/chat.py | 2 +- turbo_alignment/generators/vllm_chat.py | 5 ++- .../modeling/imagebind/imagebind.py | 2 +- .../modeling/multimodal/lm/base.py | 2 +- .../modeling/multimodal/lm/projection.py | 3 +- turbo_alignment/pipelines/inference/chat.py | 2 +- .../pipelines/preprocessing/multimodal.py | 2 +- turbo_alignment/pipelines/train/rag.py | 2 +- .../settings/pipelines/train/base.py | 2 +- .../settings/pipelines/train/rag.py | 2 +- turbo_alignment/trainers/classification.py | 2 +- turbo_alignment/trainers/dpo.py | 18 ++++---- turbo_alignment/trainers/kto.py | 4 +- turbo_alignment/trainers/multimodal.py | 2 +- 18 files changed, 58 insertions(+), 49 deletions(-) diff --git a/tests/cli/test_multimodal_inference.py b/tests/cli/test_multimodal_inference.py index 91d1b0e..60c9a05 100644 --- a/tests/cli/test_multimodal_inference.py +++ b/tests/cli/test_multimodal_inference.py @@ -1,26 +1,26 @@ -# from pathlib import Path +from pathlib import Path -# import pytest -# from typer.testing import CliRunner +import pytest +from typer.testing import CliRunner -# from tests.constants import FIXTURES_PATH -# from turbo_alignment.cli import app -# from turbo_alignment.settings.pipelines.inference.multimodal import ( -# MultimodalInferenceExperimentSettings, -# ) +from tests.constants import FIXTURES_PATH +from turbo_alignment.cli import app +from turbo_alignment.settings.pipelines.inference.multimodal import ( + MultimodalInferenceExperimentSettings, +) -# runner = CliRunner() +runner = CliRunner() -# @pytest.mark.parametrize( -# 'config_path', -# [ -# FIXTURES_PATH / 'configs/inference/multimodal/llama_llava_clip_pickle.json', -# ], -# ) -# def test_multimodal_inference_mlp_with_preprocessing(config_path: Path): -# result = runner.invoke( -# app, ['inference_multimodal', '--inference_settings_path', str(config_path)], catch_exceptions=False -# ) -# assert result.exit_code == 0 -# assert MultimodalInferenceExperimentSettings.parse_file(config_path).save_path.is_dir() +@pytest.mark.parametrize( + 'config_path', + [ + FIXTURES_PATH / 'configs/inference/multimodal/llama_llava_clip_pickle.json', + ], +) +def test_multimodal_inference_mlp_with_preprocessing(config_path: Path): + result = runner.invoke( + app, ['inference_multimodal', '--inference_settings_path', str(config_path)], catch_exceptions=False + ) + assert result.exit_code == 0 + assert MultimodalInferenceExperimentSettings.parse_file(config_path).save_path.is_dir() diff --git a/tests/fixtures/configs/train/multimodal/llama_c_abs_clip_pickle.json b/tests/fixtures/configs/train/multimodal/llama_c_abs_clip_pickle.json index 2ad3f7d..0beced3 100644 --- a/tests/fixtures/configs/train/multimodal/llama_c_abs_clip_pickle.json +++ b/tests/fixtures/configs/train/multimodal/llama_c_abs_clip_pickle.json @@ -31,7 +31,7 @@ "start_modality_token": "", "end_modality_token": "", "dataset_type": "multimodal", - "max_tokens_count": 2000, + "max_tokens_count": 150, "only_answer_loss": true, "truncate_top": false }, @@ -67,7 +67,7 @@ "start_modality_token": "", "end_modality_token": "", "dataset_type": "multimodal", - "max_tokens_count": 2000, + "max_tokens_count": 150, "only_answer_loss": true, "truncate_top": false }, @@ -144,7 +144,7 @@ "cherry_pick_settings": { "generator_transformers_settings": { "num_beams": 1, - "max_new_tokens": 128, + "max_new_tokens": 16, "repetition_penalty": 1.1, "stop_strings": "", "do_sample": true @@ -170,7 +170,7 @@ "suffix_template": "" }, "dataset_type": "multimodal", - "max_tokens_count": 2000, + "max_tokens_count": 150, "n_modality_embeddings": 225, "start_modality_token": "", "end_modality_token": "", diff --git a/tests/fixtures/datasets/multimodal/image_chat.jsonl b/tests/fixtures/datasets/multimodal/image_chat.jsonl index b621ea1..e53f0b5 100644 --- a/tests/fixtures/datasets/multimodal/image_chat.jsonl +++ b/tests/fixtures/datasets/multimodal/image_chat.jsonl @@ -1,5 +1,4 @@ {"id": "0", "messages": [{"role": "user", "type": "image", "content": "tests/fixtures/datasets/multimodal/images/img_1.jpg"}, {"role": "user", "type": "text", "content": "Describe the scene"}, {"role": "bot", "type": "text", "content": "Sorry, I will not describe the scene."}]} {"id": "1", "messages": [{"role": "user", "type": "image", "content": "tests/fixtures/datasets/multimodal/images/img_2.jpg"}, {"role": "user", "type": "text", "content": "What do you see on the image?"}, {"role": "bot", "type": "text", "content": "I see nothing."}, {"role": "user", "type": "text", "content": "What about this one?"}, {"role": "user", "type": "image", "content": "tests/fixtures/datasets/multimodal/images/img_1.jpg"}, {"role": "bot", "type": "text", "content": "Sorry..."}]} {"id": "2", "messages": [{"role": "user", "type": "image", "content": "tests/fixtures/datasets/multimodal/images/img_3.jpg"}, {"role": "user", "type": "image", "content": "tests/fixtures/datasets/multimodal/images/img_4.jpg"}, {"role": "user", "type": "text", "content": "Please, describe these two photos."}, {"role": "bot", "type": "text", "content": "OK."}]} -{"id": "3", "messages": [{"role": "user", "type": "image", "content": "tests/fixtures/datasets/multimodal/images/img_5.jpg"}, {"role": "user", "type": "text", "content": "Describe the scene"}, {"role": "bot", "type": "text", "content": "No."}]} -{"id": "4", "messages": [{"role": "user", "type": "image", "content": "tests/fixtures/datasets/multimodal/images/does_not_exist.jpg"}, {"role": "user", "type": "text", "content": "Describe the scene"}, {"role": "bot", "type": "text", "content": "No."}]} \ No newline at end of file +{"id": "3", "messages": [{"role": "user", "type": "image", "content": "tests/fixtures/datasets/multimodal/images/img_5.jpg"}, {"role": "user", "type": "text", "content": "Describe the scene"}, {"role": "bot", "type": "text", "content": "No."}]} \ No newline at end of file diff --git a/tests/fixtures/models/llama2_tiny_multimodal_clip_mlp/adapter/adapter_config.json b/tests/fixtures/models/llama2_tiny_multimodal_clip_mlp/adapter/adapter_config.json index 0d0a47e..2522058 100644 --- a/tests/fixtures/models/llama2_tiny_multimodal_clip_mlp/adapter/adapter_config.json +++ b/tests/fixtures/models/llama2_tiny_multimodal_clip_mlp/adapter/adapter_config.json @@ -22,8 +22,8 @@ "rank_pattern": {}, "revision": null, "target_modules": [ - "q_proj", - "k_proj" + "k_proj", + "q_proj" ], "task_type": "CAUSAL_LM", "use_rslora": false diff --git a/turbo_alignment/generators/chat.py b/turbo_alignment/generators/chat.py index 20ae081..418488b 100755 --- a/turbo_alignment/generators/chat.py +++ b/turbo_alignment/generators/chat.py @@ -113,7 +113,7 @@ def _generate_from_single_record( answer_token_ids=a_t_ids.unsqueeze(0), logits=l.unsqueeze(0), ) - for i, (a, a_t_ids, l) in enumerate(zip(answers, answer_tokens_ids, logits)) + for i, (a, a_t_ids, l) in enumerate(zip(answers, answer_tokens_ids, logits)) # type: ignore[arg-type] ] else: answer_messages = [ diff --git a/turbo_alignment/generators/vllm_chat.py b/turbo_alignment/generators/vllm_chat.py index 2d74026..513c5e7 100755 --- a/turbo_alignment/generators/vllm_chat.py +++ b/turbo_alignment/generators/vllm_chat.py @@ -30,7 +30,10 @@ def __init__( eos_token_id: list[int] = self._tokenizer.encode(transformers_settings.stop_strings, add_special_tokens=False) - beam_search_params = {'best_of': transformers_settings.num_return_sequences, 'use_beam_search': False} + beam_search_params: dict[str, Any] = { + 'best_of': transformers_settings.num_return_sequences, + 'use_beam_search': False, + } if transformers_settings.num_beams > 1: beam_search_params['use_beam_search'] = True beam_search_params['best_of'] = transformers_settings.num_beams diff --git a/turbo_alignment/modeling/imagebind/imagebind.py b/turbo_alignment/modeling/imagebind/imagebind.py index 7a2e6e3..e039f96 100755 --- a/turbo_alignment/modeling/imagebind/imagebind.py +++ b/turbo_alignment/modeling/imagebind/imagebind.py @@ -59,7 +59,7 @@ def load_imagebind(settings: ImageBindSettings) -> ImageBindModel: return model -class ImageBindSingleton(metaclass=ParametrizedSingleton[ImageBindSettings]): +class ImageBindSingleton(metaclass=ParametrizedSingleton[ImageBindSettings]): # type: ignore[misc] def __init__(self, settings: ImageBindSettings) -> None: self._model = load_imagebind(settings) diff --git a/turbo_alignment/modeling/multimodal/lm/base.py b/turbo_alignment/modeling/multimodal/lm/base.py index bc7b10e..d2f6bc7 100644 --- a/turbo_alignment/modeling/multimodal/lm/base.py +++ b/turbo_alignment/modeling/multimodal/lm/base.py @@ -35,7 +35,7 @@ def __init__( self.language_model_dim = ( language_model.base_model.model.model.embed_tokens.modules_to_save.default.weight.shape[1] ) - self.encoders = torch.nn.ModuleDict(encoders) + self.encoders = torch.nn.ModuleDict(encoders) # type: ignore[arg-type] for encoder in self.encoders.values(): encoder.eval() diff --git a/turbo_alignment/modeling/multimodal/lm/projection.py b/turbo_alignment/modeling/multimodal/lm/projection.py index 69e2d1b..90062e6 100644 --- a/turbo_alignment/modeling/multimodal/lm/projection.py +++ b/turbo_alignment/modeling/multimodal/lm/projection.py @@ -1,4 +1,5 @@ from collections import defaultdict +from pathlib import Path import torch from scipy.ndimage.measurements import find_objects, label @@ -40,7 +41,7 @@ def __init__(self, *args, **kwargs) -> None: Please, set n_modality_embs to {self.encoders[modality].n_modality_embs} in config.' if self.modality_projector_initialization_mapping: - state_dict_path = self.modality_projector_initialization_mapping.get(modality) + state_dict_path: Path | None = self.modality_projector_initialization_mapping.get(modality, None) if state_dict_path is not None: logger.info(f'Loading {modality} connector weights') diff --git a/turbo_alignment/pipelines/inference/chat.py b/turbo_alignment/pipelines/inference/chat.py index 272197d..a40df0f 100755 --- a/turbo_alignment/pipelines/inference/chat.py +++ b/turbo_alignment/pipelines/inference/chat.py @@ -40,7 +40,7 @@ def _get_single_inference_settings( model = ( accelerator.prepare_model(model, device_placement=True, evaluation_mode=True) if torch.cuda.is_available() - else model.to('cpu') + else model.to('cpu') # type: ignore[attr-defined] ) for generation_settings in model_inference_settings.generation_settings: diff --git a/turbo_alignment/pipelines/preprocessing/multimodal.py b/turbo_alignment/pipelines/preprocessing/multimodal.py index efffe97..5ade1cf 100644 --- a/turbo_alignment/pipelines/preprocessing/multimodal.py +++ b/turbo_alignment/pipelines/preprocessing/multimodal.py @@ -47,7 +47,7 @@ def _read_modality_objects(self, reader: BaseModalityReader, dataset_path: Path) total_number_of_objects = len(list(dataset_path.iterdir())) logger.info('📖 Reading modality objects...') - files_paths = [] + files_paths: list[Path] = [] for extension in available_extensions: files_paths.extend(dataset_path.glob(f'*.{extension}')) diff --git a/turbo_alignment/pipelines/train/rag.py b/turbo_alignment/pipelines/train/rag.py index 5ef7cec..6c61fb7 100755 --- a/turbo_alignment/pipelines/train/rag.py +++ b/turbo_alignment/pipelines/train/rag.py @@ -65,7 +65,7 @@ def _get_cherry_pick_callback( @staticmethod def _get_additional_special_tokens( - experiment_settings: RAGTrainExperimentSettings, + experiment_settings: RAGTrainExperimentSettings, # type: ignore[override] ) -> list[str]: gen_settings = experiment_settings.model_settings.generator_settings embeddings_initialization_strategy = gen_settings.embeddings_initialization_strategy diff --git a/turbo_alignment/settings/pipelines/train/base.py b/turbo_alignment/settings/pipelines/train/base.py index 16f2e02..7ed9d66 100755 --- a/turbo_alignment/settings/pipelines/train/base.py +++ b/turbo_alignment/settings/pipelines/train/base.py @@ -28,7 +28,7 @@ class BaseTrainExperimentSettings(BaseSettings): trainer_settings: TrainerSettings tokenizer_settings: TokenizerSettings - model_settings: ModelForPeftSettings | PreTrainedModelSettings | PreTrainedAdaptersModelSettings + model_settings: (ModelForPeftSettings | PreTrainedModelSettings | PreTrainedAdaptersModelSettings) train_dataset_settings: MultiDatasetSettings val_dataset_settings: MultiDatasetSettings diff --git a/turbo_alignment/settings/pipelines/train/rag.py b/turbo_alignment/settings/pipelines/train/rag.py index 49b6599..f6cb6a3 100755 --- a/turbo_alignment/settings/pipelines/train/rag.py +++ b/turbo_alignment/settings/pipelines/train/rag.py @@ -5,7 +5,7 @@ class RAGTrainExperimentSettings(BaseTrainExperimentSettings): - model_settings: RAGPreTrainedModelSettings + model_settings: RAGPreTrainedModelSettings # type: ignore[assignment] train_dataset_settings: ChatMultiDatasetSettings val_dataset_settings: ChatMultiDatasetSettings diff --git a/turbo_alignment/trainers/classification.py b/turbo_alignment/trainers/classification.py index 897c536..b68ac53 100755 --- a/turbo_alignment/trainers/classification.py +++ b/turbo_alignment/trainers/classification.py @@ -59,7 +59,7 @@ def classification_loss( def auto_class_weights(dataset: Dataset) -> list[float]: - labels = [dataset[i]['labels'] for i in range(len(dataset))] + labels = [dataset[i]['labels'] for i in range(len(dataset))] # type: ignore[arg-type] class_weights = compute_class_weight('balanced', classes=np.unique(labels), y=np.array(labels)) return class_weights.tolist() diff --git a/turbo_alignment/trainers/dpo.py b/turbo_alignment/trainers/dpo.py index 5418f5d..52eed29 100755 --- a/turbo_alignment/trainers/dpo.py +++ b/turbo_alignment/trainers/dpo.py @@ -233,10 +233,14 @@ def compute_loss( @dataclass class DPOTrainingArguments(TrainingArguments): - loss_settings: SigmoidLossSettings | HingeLossSettings | IPOLossSettings | SlicHfLoss | KTOLoss | CPOLoss = field( + loss_settings: ( + SigmoidLossSettings | HingeLossSettings | IPOLossSettings | SlicHfLoss | KTOLoss | CPOLoss + ) = field( # type: ignore[call-overload] default_factory=SigmoidLossSettings(loss_type=DPOLossesType.SIGMOID) ) - sync_ref_settings: SyncRefModelSettings = field(default_factory=SyncRefModelSettings()) + sync_ref_settings: SyncRefModelSettings = field( # type: ignore[call-overload] + default_factory=SyncRefModelSettings() + ) use_ref_model: bool = True use_sft_model: bool = False average_log_prob: bool = False @@ -267,9 +271,9 @@ def __init__( self.sync_ref_settings = args.sync_ref_settings if hasattr(args, 'loss_settings'): - self.loss_type = args.loss_settings['loss_type'] + self.loss_type = args.loss_settings['loss_type'] # type: ignore[index] loss_args = args.loss_settings - loss_args.pop('loss_type') + loss_args.pop('loss_type') # type: ignore[union-attr] self.dpo_loss_registry = DPOLossRegistry.by_name(self.loss_type)(**loss_args) self._stored_metrics: dict[str, dict[str, list[float]]] = defaultdict(lambda: defaultdict(list)) @@ -309,7 +313,7 @@ def __init__( self.add_callback(PrinterCallback if self.args.disable_tqdm else ProgressCallback) self.control: TrainerControl = self.callback_handler.on_init_end(self.args, self.state, self.control) - if self.sync_ref_settings['sync_ref_model']: + if self.sync_ref_settings['sync_ref_model']: # type: ignore[index] self.add_callback(SyncRefModelCallback(sync_ref_settings=self.sync_ref_settings)) def dpo_loss( @@ -370,7 +374,7 @@ def concatenated_forward( policy_best_decode_logps: torch.Tensor = all_logps[chosen_idxs + rejected_idx :] if len(policy_best_decode_logps) == 0: - policy_best_decode_logps = None + policy_best_decode_logps = None # type: ignore[assignment] chosen_logits = all_logits[:chosen_idxs] rejected_logits = all_logits[chosen_idxs:] @@ -522,7 +526,7 @@ def prediction_step( 'logits_test/rejected': metrics['logits_test/rejected'], } logits = tuple(v for k, v in logits_dict.items() if k not in ignore_keys) - logits = torch.stack(logits).mean(axis=1) + logits = torch.stack(logits).mean(axis=1) # type: ignore[call-overload, arg-type] labels = torch.zeros(logits.shape[0]) return loss.detach(), logits, labels diff --git a/turbo_alignment/trainers/kto.py b/turbo_alignment/trainers/kto.py index e219d5a..e3e7c6e 100755 --- a/turbo_alignment/trainers/kto.py +++ b/turbo_alignment/trainers/kto.py @@ -30,7 +30,9 @@ @dataclass class KTOTrainingArguments(TrainingArguments): beta: float = 0.1 - sync_ref_settings: SyncRefModelSettings = field(default_factory=SyncRefModelSettings()) + sync_ref_settings: SyncRefModelSettings = field( + default_factory=SyncRefModelSettings() + ) # type: ignore[call-overload] use_ref_model: bool = True average_log_prob: bool = False undesirable_weight: float = 1.0 diff --git a/turbo_alignment/trainers/multimodal.py b/turbo_alignment/trainers/multimodal.py index 8099485..0441365 100755 --- a/turbo_alignment/trainers/multimodal.py +++ b/turbo_alignment/trainers/multimodal.py @@ -269,7 +269,7 @@ def prediction_step( 'logits_test/rejected': metrics['logits_test/rejected'], } logits = tuple(v for k, v in logits_dict.items() if k not in ignore_keys) - logits = torch.stack(logits).mean(axis=1) + logits = torch.stack(logits).mean(axis=1) # type: ignore[call-overload, arg-type] labels = torch.zeros(logits.shape[0]) return loss.detach(), logits, labels From a03e995c13472e7c16bf1093619d6eb5f98e84ec Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=D0=A0=D1=8B=D0=BA=D0=BE=D0=B2=20=D0=95=D0=BB=D0=B8=D1=81?= =?UTF-8?q?=D0=B5=D0=B9=20=D0=A1=D0=B5=D1=80=D0=B3=D0=B5=D0=B5=D0=B2=D0=B8?= =?UTF-8?q?=D1=87?= Date: Mon, 19 Aug 2024 11:34:07 +0000 Subject: [PATCH 19/31] in progress --- tutorials/multimodal/multimodal.json | 195 +++++++++++++++++++++++++++ 1 file changed, 195 insertions(+) create mode 100644 tutorials/multimodal/multimodal.json diff --git a/tutorials/multimodal/multimodal.json b/tutorials/multimodal/multimodal.json new file mode 100644 index 0000000..1b5040a --- /dev/null +++ b/tutorials/multimodal/multimodal.json @@ -0,0 +1,195 @@ +{ + "train_dataset_settings": { + "sources": [ + { + "name": "train", + "records_path": "tests/fixtures/datasets/multimodal/image_chat.jsonl", + "sample_rate": 1 + } + ], + "prompt_template": { + "role_tag_mapping": { + "bot": "", + "user": "", + "system": "" + }, + "prefix_template": "{role}", + "suffix_template": "" + }, + "modality_token_mapping": { + "image": "", + "audio": "

g{sILD|uJ)MJ8>-^%RWcNi{bD}hH@F1)oL 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 X_+K9lR8(WHhz$g{>Ok7MMHv4FH(Pso literal 144384 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

}sTS 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

9Q$05LZ6VQ^|Cn%&c& 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 So5nSW3jmjr09vzF9RCL_NsPt- diff --git a/turbo_alignment/common/data/multimodal/common.py b/turbo_alignment/common/data/multimodal/common.py index 60afa6e..fc4d9b4 100644 --- a/turbo_alignment/common/data/multimodal/common.py +++ b/turbo_alignment/common/data/multimodal/common.py @@ -25,5 +25,4 @@ def read(self, path: str) -> torch.Tensor: safetensors_file = self._get_safetensors_file(Path(path).parent) if self.processed_tensors is None: self.processed_tensors = safe_open(safetensors_file, framework='pt', device='cpu') - return self.processed_tensors.get_tensor(Path(path).name) diff --git a/turbo_alignment/dataset/multimodal/multimodal.py b/turbo_alignment/dataset/multimodal/multimodal.py index 0f19c97..54fcde2 100644 --- a/turbo_alignment/dataset/multimodal/multimodal.py +++ b/turbo_alignment/dataset/multimodal/multimodal.py @@ -190,6 +190,7 @@ def convert_records(self, records: list[MultimodalDatasetRecord]) -> list[dict[s ) tokenized_record['labels'][modality_tokens_mask] = DISABLE_LOSS_LABEL + outputs.append( { **tokenized_record, diff --git a/turbo_alignment/modeling/multimodal/lm/projection.py b/turbo_alignment/modeling/multimodal/lm/projection.py index 90062e6..69c5055 100644 --- a/turbo_alignment/modeling/multimodal/lm/projection.py +++ b/turbo_alignment/modeling/multimodal/lm/projection.py @@ -122,7 +122,6 @@ def forward( labels: torch.LongTensor | None = None, ) -> ModelOutput: multimodal_lm_input_embeds = self.convert_inputs_to_embeds(input_ids, modality_inputs, modality_tokens_mask) - return self.language_model( inputs_embeds=multimodal_lm_input_embeds, labels=labels, attention_mask=attention_mask ) diff --git a/turbo_alignment/pipelines/preprocessing/multimodal.py b/turbo_alignment/pipelines/preprocessing/multimodal.py index 5ade1cf..f85a65d 100644 --- a/turbo_alignment/pipelines/preprocessing/multimodal.py +++ b/turbo_alignment/pipelines/preprocessing/multimodal.py @@ -121,6 +121,7 @@ def run(self, experiment_settings: MultimodalDatasetProcessingSettings) -> None: experiment_settings.output_file_path.mkdir(parents=True, exist_ok=True) tensors = self._get_safetensor_dict(encoded_modality_tensors, encoded_file_paths) + del encoded_modality_tensors save_file( diff --git a/turbo_alignment/trainers/multimodal.py b/turbo_alignment/trainers/multimodal.py index 0441365..59189dc 100755 --- a/turbo_alignment/trainers/multimodal.py +++ b/turbo_alignment/trainers/multimodal.py @@ -53,9 +53,15 @@ def _save_checkpoint(self, model, trial, metrics=None): (output_dir / 'adapter').mkdir(parents=True, exist_ok=True) (output_dir / 'tokenizer').mkdir(parents=True, exist_ok=True) - torch.save(model.modality_adapters.state_dict(), output_dir / 'projections' / 'modality_adapters.pt') + if isinstance(model, torch.nn.DataParallel): + torch.save( + model.module.modality_adapters.state_dict(), output_dir / 'projections' / 'modality_adapters.pt' + ) + model.module.language_model.save_pretrained(output_dir / 'adapter') + else: + torch.save(model.modality_adapters.state_dict(), output_dir / 'projections' / 'modality_adapters.pt') + model.language_model.save_pretrained(output_dir / 'adapter') - model.language_model.save_pretrained(output_dir / 'adapter') self.tokenizer.save_pretrained(output_dir / 'tokenizer') From 54fd161dfb7645906c4eff3f2367def3f5aeebbf Mon Sep 17 00:00:00 2001 From: lmeribal Date: Tue, 20 Aug 2024 15:41:17 +0000 Subject: [PATCH 30/31] tutorial --- .../multimodal/create_tutorial_dataset.py | 43 ++++++++++++++++++ tutorials/multimodal/multimodal.json | 39 ++++++++-------- tutorials/multimodal/multimodal.md | 27 ++++++++++-- tutorials/multimodal/multimodal.py | 44 ------------------- tutorials/multimodal/preprocessing.json | 14 ++++++ 5 files changed, 101 insertions(+), 66 deletions(-) create mode 100644 tutorials/multimodal/create_tutorial_dataset.py delete mode 100644 tutorials/multimodal/multimodal.py create mode 100644 tutorials/multimodal/preprocessing.json diff --git a/tutorials/multimodal/create_tutorial_dataset.py b/tutorials/multimodal/create_tutorial_dataset.py new file mode 100644 index 0000000..ee7582d --- /dev/null +++ b/tutorials/multimodal/create_tutorial_dataset.py @@ -0,0 +1,43 @@ +import json +import random +import subprocess +from pathlib import Path +from typing import Any + +from datasets import load_dataset + +from turbo_alignment.common.data.io import write_jsonl +from turbo_alignment.dataset.chat.models import ChatMessageRole +from turbo_alignment.dataset.multimodal.models import ( + MultimodalChatMessage, + MultimodalDatasetRecord, + MultimodalImageMessage, + MultimodalTextMessage, +) +from turbo_alignment.settings.modality import Modality + + +def convert_to_multimodal_record(row): + return MultimodalDatasetRecord( + id=row['id'], + messages=[ + MultimodalImageMessage(role=ChatMessageRole.USER, content=f"images/00000/{str(row['id']).zfill(9)}.jpg"), + MultimodalTextMessage(role=ChatMessageRole.BOT, content=row['image_descriptions'][0].strip()), + ], + ).dict() + + +if __name__ == '__main__': + dataset = load_dataset('passing2961/photochat_plus')['train'] + dataset = dataset.add_column('id', range(len(dataset))) + dataset = dataset.train_test_split(test_size=0.1) + + dataset['train_multimodal_records'] = dataset['train'].map( + convert_to_multimodal_record, remove_columns=dataset['train'].column_names + ) + dataset['val_multimodal_records'] = dataset['test'].map( + convert_to_multimodal_record, remove_columns=dataset['test'].column_names + ) + + write_jsonl([item for item in dataset['train_multimodal_records']], Path('train_multimodal.jsonl')) + write_jsonl([item for item in dataset['val_multimodal_records']], Path('val_multimodal.jsonl')) diff --git a/tutorials/multimodal/multimodal.json b/tutorials/multimodal/multimodal.json index 5f07749..6910ab3 100644 --- a/tutorials/multimodal/multimodal.json +++ b/tutorials/multimodal/multimodal.json @@ -4,7 +4,7 @@ { "name": "train", "records_path": "train_chat.jsonl", - "sample_rate": 1 + "num_samples": 10 } ], "prompt_template": { @@ -23,11 +23,11 @@ "modality_reader_settings_mapping": { "image": { "reader_type": "clip", - "reader_path": "../models/clip-vit-base-patch16" + "reader_path": "openai/clip-vit-base-patch32" }, "audio": null }, - "n_modality_embeddings": 196, + "n_modality_embeddings": 49, "start_modality_token": "", "end_modality_token": "", "dataset_type": "multimodal", @@ -39,8 +39,8 @@ "sources": [ { "name": "test", - "records_path": "train_chat.jsonl", - "sample_rate": 1 + "records_path": "val_chat.jsonl", + "num_samples": 10 } ], "prompt_template": { @@ -59,11 +59,11 @@ "modality_reader_settings_mapping": { "image": { "reader_type": "clip", - "reader_path": "../models/clip-vit-base-patch16" + "reader_path": "openai/clip-vit-base-patch32" }, "audio": null }, - "n_modality_embeddings": 196, + "n_modality_embeddings": 49, "start_modality_token": "", "end_modality_token": "", "dataset_type": "multimodal", @@ -72,7 +72,7 @@ "truncate_top": false }, "model_settings": { - "model_path": "../models/Qwen1.5-0.5B", + "model_path": "Qwen/Qwen1.5-0.5B", "model_type": "causal", "transformers_settings": {}, "peft_settings": { @@ -104,21 +104,22 @@ }, "tokenizer_settings": {}, "trainer_settings": { - "evaluation_strategy": "epoch", - "save_strategy": "epoch", + "evaluation_strategy": "steps", + "save_strategy": "steps", "per_device_train_batch_size": 1, "per_device_eval_batch_size": 1, "gradient_accumulation_steps": 1, "logging_steps": 1, - "learning_rate": 0.00002, + "eval_steps": 32, + "save_steps": 32, + "learning_rate": 1e-6, "num_train_epochs": 1, "lr_scheduler_type": "cosine", "warmup_steps": 0, "fp16": false, "bf16": false, "optim": "adamw_torch", - "save_total_limit": 1, - "no_cuda": true + "save_total_limit": 1 }, "wandb_settings": { "project_name": "alignment", @@ -129,7 +130,7 @@ "image": { "modality_encoder_type": "clip", "is_pickle": false, - "encoder_path": "../models/clip-vit-base-patch16" + "encoder_path": "openai/clip-vit-base-patch32" }, "audio": null }, @@ -146,10 +147,10 @@ "num_beams": 1, "max_new_tokens": 128, "repetition_penalty": 1.1, - "do_sample": true + "do_sample": true, + "stop_strings": "" }, "custom_generation_settings": { - "generation_eos_token": "", "skip_special_tokens": true }, "dataset_settings": { @@ -157,7 +158,7 @@ { "name": "cherry_picks", "records_path": "val_chat.jsonl", - "sample_rate": 1 + "num_samples": 10 } ], "prompt_template": { @@ -171,7 +172,7 @@ }, "dataset_type": "multimodal", "max_tokens_count": 2000, - "n_modality_embeddings": 196, + "n_modality_embeddings": 49, "start_modality_token": "", "end_modality_token": "", "only_answer_loss": true, @@ -182,7 +183,7 @@ "modality_reader_settings_mapping": { "image": { "reader_type": "clip", - "reader_path": "../models/clip-vit-base-patch16" + "reader_path": "openai/clip-vit-base-patch32" }, "audio": null }, diff --git a/tutorials/multimodal/multimodal.md b/tutorials/multimodal/multimodal.md index 42b17d5..0bde159 100644 --- a/tutorials/multimodal/multimodal.md +++ b/tutorials/multimodal/multimodal.md @@ -1,8 +1,29 @@ -## models +# Multimodal Tutorial -## dataset +## Getting started +First, let's download a small dataset suitable for the image captioning task: +```bash git clone https://huggingface.co/datasets/passing2961/photochat_plus +``` +## Download the images +To download the images from the PhotoChat dataset, we will use the `img2dataset` tool: +```bash pip install img2dataset +``` -img2dataset --url_list=photochat_plus/photochat_plus.json --output_folder=images --thread_count=64 --image_size=256 --url_col=photo_url --input_format=json \ No newline at end of file +To download images, use the following command: +```bash +img2dataset --url_list=photochat_plus/photochat_plus.json --output_folder=images --thread_count=64 --image_size=256 --url_col=photo_url --input_format=json +``` + +We also need to convert the HuggingFace dataset to the `turbo-alignment` format using this script: +```bash +poetry run python tutorials/multimodal/create_tutorial_dataset.py +``` + +## Train your model +Finally, we are ready to train the model. Run this script to perform the training process. +```bash +poetry run python -m turbo_alignment train_multimodal --experiment_settings_path tutorials/multimodal/multimodal.json +``` diff --git a/tutorials/multimodal/multimodal.py b/tutorials/multimodal/multimodal.py deleted file mode 100644 index 13bbff0..0000000 --- a/tutorials/multimodal/multimodal.py +++ /dev/null @@ -1,44 +0,0 @@ -from datasets import load_dataset -import random -import subprocess -import json -from pathlib import Path -from typing import Any - - - -def write_jsonl(records: Any, path: Path) -> None: - with path.open('w', encoding='utf-8') as f: - for r in records: - f.write(json.dumps(r, ensure_ascii=False) + '\n') -# TMP - - -dataset = load_dataset("passing2961/photochat_plus")['train'] - -data = [] - -for i, sample in enumerate(dataset): - data.append({ - 'id': i, - 'messages': [ - { - 'role': 'user', - 'type': 'image', - 'content': f'images/00000/{str(i).zfill(9)}.jpg' - }, - { - 'role': 'bot', - 'type': 'text', - 'content': sample['image_descriptions'][0].strip() - } - ] - }) - -random.shuffle(data) -threshold = int(0.1 * len(data)) -test = data[:threshold] -train = data[threshold:] - -write_jsonl(test, Path('val_chat.jsonl')) -write_jsonl(train, Path('train_chat.jsonl')) \ No newline at end of file diff --git a/tutorials/multimodal/preprocessing.json b/tutorials/multimodal/preprocessing.json new file mode 100644 index 0000000..da9e68d --- /dev/null +++ b/tutorials/multimodal/preprocessing.json @@ -0,0 +1,14 @@ +{ + "reader_settings": { + "reader_type": "clip", + "reader_path": "openai/clip-vit-base-patch32" + }, + "encoder_settings": { + "modality_encoder_type": "clip", + "encoder_path": "openai/clip-vit-base-patch32" + }, + "modality": "image", + "dataset_path": "images/00000", + "batch_size": 256, + "output_file_path": "images/00000" +} From b114dd32bece99d213b83ec1611e935db91ed0f1 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=D0=9C=D0=B0=D0=BB=D0=B0=D1=85=D0=BE=D0=B2=20=D0=90=D0=BB?= =?UTF-8?q?=D0=B5=D0=BA=D1=81=D0=B5=D0=B9=20=D0=9F=D0=B0=D0=B2=D0=BB=D0=BE?= =?UTF-8?q?=D0=B2=D0=B8=D1=87?= Date: Fri, 23 Aug 2024 13:36:23 +0000 Subject: [PATCH 31/31] fix poetry version --- pyproject.toml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/pyproject.toml b/pyproject.toml index 99fb5ce..c8a6871 100755 --- a/pyproject.toml +++ b/pyproject.toml @@ -3,7 +3,7 @@ name = "turbo-alignment" packages = [ { include = "turbo_alignment" }, ] -version = "0.1.0" +version = "0.0.2" description = "turbo-alignment repository" authors = ["T Mega Alignment Team " ]